Summary of changes from v2.6.4 to v2.6.5 ============================================ PPC32: Added big-endian cfg_addr access PPC32: Simplified handling of big/little endian pci indirect access [NET] add netpoll API [NET] Add netpoll support for tg3 [NET] use the netpoll API to transmit kernel printks over UDP [PATCH] netpoll for 3c59x >From the old -aa tree with minor changes. Orginally done by Andrea I think. [PATCH] netpoll for tulip Netpoll for tulip. Uses disable_irq() because tulip is unfortunately still lockless. [PATCH] netpoll for amd8111e netpoll for amd8111e [PATCH] Netpoll for pcnet32 netpoll for pcnet32 [PATCH] fix tg3 netpoll No need to use disable_irq because tg3 is properly spinlocked. Can just call the interrupt handler directly. [PATCH] netpoll for eepro100 netpoll for eepro100 This was in Ingo's old original netconsole patches. [PATCH] 3c59x netpoll typo Poll code (in net-drivers-2.5-exp) was calling undefined function. [PATCH] netpoll: fix compilation with CONFIG_NETPOLL_RX Fix compilation without CONFIG_NETPOLL_RX [PATCH] netpoll: push zap_completion_queue for lkcd Move zap_completion_queue call inside netpoll so we don't need to export it separately. [netdrvr smc-ultra] netpoll support Hi Jeff, Below is the pollcontroller patch for smc ultra net driver. This patch can be applied over 2.6.0-test9-bk25-netdrvr-exp1.patch [netdrvr tlan] netpoll support Hi Jeff, Below is the pollcontroller patch for tlan network device driver. This patch can be applied over 2.6.0-test9-bk25-netdrvr-exp1.patch [netdrvr via-rhine] add netpoll support [PATCH] netpoll abort for bad interface Fix bug freeing nonexistent dev when aborting on bad interface name. tiny-mpm/net/core/netpoll.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) [netdrvr] add netpoll support to several 8390-based drivers [PATCH] netconsole init return code On Sat, Jan 10, 2004 at 08:07:09PM -0500, Jeff Garzik wrote: > Matt Mackall wrote: > > tiny-mpm/drivers/net/netconsole.c | 4 ++-- > > 1 files changed, 2 insertions(+), 2 deletions(-) > > > >diff -puN drivers/net/netconsole.c~netconsole-error > >drivers/net/netconsole.c > >17:40:59.000000000 -0600 > >+++ tiny-mpm/drivers/net/netconsole.c 2004-01-10 17:42:12.000000000 -0600 > >@@ -105,11 +105,11 @@ static int init_netconsole(void) > > > > if(!configured) { > > printk("netconsole: not configured, aborting\n"); > >- return 1; > >+ return -EINVAL; > > } > > > > if(netpoll_setup(&np)) > >- return 1; > >+ return -EINVAL; > > > oops. obviously I read this after I sent a previous email. > > Can you please resend the "configured" patch, which I already deleted? tiny-mpm/drivers/net/netconsole.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) [PATCH] netconsole init return code tiny-mpm/drivers/net/netconsole.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) [PATCH] netpoll carrier handling On Sat, Jan 10, 2004 at 08:04:10PM -0500, Jeff Garzik wrote: > > if you are gonna all verbal n such with 'atleast' and 'atmost', then use > time_after() rather than !time_before() ;-) tiny-mpm/net/core/netpoll.c | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) [PATCH] fix netpoll printk bug [PATCH] fix for netpoll braindamage for 64-bit Spotted by Jim Houston on amd64. [PATCH] netconsole warning fix drivers/net/netconsole.c:99: warning: initialization from incompatible pointer type input: Fix hid-core for devices that have less usages than values in a hid report. We could iterate beyond the end of array of usages before. input: Add a new ioctl to hiddev, which allows multiple usages to be set in a single request. Also fixes sizes of fields in hiddev structs to use _uXX types. input: It looks like the Saitek RumblePad needs a BADPAD entry. input: Add support for another a4tech 2-wheel USB mouse, with a Cypress ID this time. Also rearrange the HID blacklist a bit - it has grown too long. usb: Minor documentation fix reflecting new USB module names in acm.txt input: Fix sunkbd.c to work with serport. Must sleep. input: Use request_region() instead of check_region() in ns558.c it's both safer and correct. input: Bail out in atkbd.c if scancode set is changed, don't reinitialize scancode map. This is even more anoying than a new keyboard device in the unlikely case of set change. input: Add support for scroll wheel on MS Office and similar keyboards. input: Create an extra option for enabling IBM RapidAccess keyboard special features (atkbd.extra), instead of abusing the atkbd.set option for this. input: Convert HP/PARISC Lasi/Dino PS/2 keyboard/mouse driver from an input driver to a serio driver. input: Credit to Panagiotis Issaris for Graphire 3 support. input: Remove the obsolete "busmouse.c" helper driver. input: Fix "psmouse: Lost sync" problem. It was really losing sync. input: Fix a warning in i8042.c input: Fix a bug introduced by Andrew Morton's gcc3.2 fixes. input: Re-add a loop to set the old scancode bit in device key bitmap. [PATCH] I2C: i2c-voodoo3.c needs I2C_ADAP_CLASS_TV_ANALOG The Voodoo3 i2c bus has either a bt869 tv-out chip, or also a tv tuner, decoder and msp3400. Without I2C_ADAP_CLASS_TV_ANALOG, the i2c clients would have to do a strcmp of the adapter name to distiguish between the i2c and ddc adapters. Yes, they should be able to tell if the chip at a given address is what they are looking for, but in the case of the v3tv module, which is the v4l device, in the 2.4 kerenl I've got it set to create a dummy client, and the strcmp is the only way to distinguish the i2c from the ddc. In the 2.6 kernel, class can be defined, simplifying things for the v3tv module. [PATCH] I2C: Enable debugging in fscher I just noticed that I forgot to enable debugging in the new fscher driver. Sorry for that. Here is a patch that fixes this. [PATCH] I2C: Credit James Bolt in w83l785ts I forgot to give the credit he deserves to James Bolt for testing the latest w83l785ts driver changes. Here is a patch that fixes that. [PATCH] I2C: New chip driver ported: lm80 Here is a port for the lm80 driver, which supports LM80 chips by National Semiconductor. The port is mostly the work of Tiago Sousa, which I reviewed and polished as necessary. [PATCH] I2C: update I2C help text VIDEO_BT848 selects I2C_ALGOBIT. [PATCH] I2C: Support for IXP42x GPIO-based I2C Following is an updated patch to add support for using the GPIO lines on an Intel IXP42x SOC for I2C. Changes since last patch include: - Cleanups as per Jean Delvare's comments - Rename functions as 42x instead of 425 - Change the comments at the top of the file to better reflect the purpose of this driver. This code has been tested with the eeprom client driver and worked w/o any problems. I2C: fix oops in i2c-ali1535 driver if no hardware is present. Thanks to Dave Jones for pointing this out. PPC32: More cleanups of the IBM Spruce code. From Randy Vinson . PPC32: Fix a thinko in the gen550 code. From Randy Vinson . PPC32: Make {in,out}[bwl] be consistent on all platforms. This exposes warnings in todc_time.c for everyone, and then fixes them. PPC32: Make sure the read in in_8, in_{le,be}{16,32} happens before we return. A forward port of changes from Paul Mackerras. [PATCH] eepro100.c warning fix drivers/net/eepro100.c:545: warning: `poll_speedo' declared `static' but never defined ALSA CVS update - Takashi Iwai Intel8x0 driver - added the ac97 quirk for Intel D845WN (82801BA) ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the mic gpio switch handling on the old ALC650. - fixed the wrong register initialization on ALC655/658. ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the detection of surround/LFE VRA on ALC650. ALSA CVS update - Takashi Iwai USB generic driver - assign PCM unique (sub)streams for each USB format type. this will avoid the mix up of format I and format III on M-audio transit. ALSA CVS update - Takashi Iwai Digigram VX core - fixed the wrong lock (bug #2052) - use spin_lock_irqsave() now. ALSA CVS update - Takashi Iwai Documentation,ALSA Core,PCI drivers,MIXART driver,IGNORE - added snd-mixart driver for Digigram miXart boards. ALSA CVS update - Takashi Iwai Digigram VX core - fixed another wrong lock. ALSA CVS update - Takashi Iwai ICE1712 driver,ICE1724 driver - added the support of independent surround PCM for ice1724. ALSA CVS update - Takashi Iwai Intel8x0 driver - return with IRQ_RETVAL() for the unknown IRQ bits (often found on nForce2) with debug messages. ALSA CVS update - Takashi Iwai VIA82xx driver - changed the default DXS of GA-7VAXP to NO_VRA. ALSA CVS update - Takashi Iwai AC97 Codec Core - fix for AD1885 - set the default MISC register value. - disabled 'digital audio mode', which seems problematic on many boards. ALSA CVS update - Takashi Iwai AC97 Codec Core Clemens Ladisch : added AD1888 support. ALSA CVS update - Takashi Iwai USB generic driver Clemens Ladisch : Terratec PHASE 26 MIDI support ALSA CVS update - Takashi Iwai Digigram VX core Alain Cretet : - fixed the missing input VU meter. ALSA CVS update - Takashi Iwai Digigram VX core Alain Cretet : - fixed the 24bit mono recording. ALSA CVS update - Takashi Iwai ALSA sequencer - fixed the race conditions. ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the initial value of AD_MISC register for AD1885. ALSA CVS update - Jaroslav Kysela Intel8x0 driver Added spinlock to pointer callback - ichdev->position is not changed atomically ALSA CVS update - Takashi Iwai VIA82xx driver - added the dxs default for MSI KT6 Delta-SR. - fixed the calculation of rate bits (based on 0x100000). ALSA CVS update - Takashi Iwai MIXART driver - replaced the debug messages with snd_printdd(). ALSA CVS update - Takashi Iwai Intel8x0 driver - clean up the irq status bit debugging. - added nVidia Ck8S support. ALSA CVS update - Takashi Iwai ALSA<-OSS sequencer - fixed the behavior of SNDCTL_SEQ_IOCTL. (don't close the device). ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation Added period_frames to fix poll behavior ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation Fixed oss.period_frames setup ALSA CVS update - Jaroslav Kysela PCM Midlevel Added OSS period frames to proc interface ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation Fixed oops regarding last period_frames update ALSA CVS update - Takashi Iwai USB generic driver Clemens Ladisch : - added the quirk for Edirol UA-3FX. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Fixed swap_headphone() when headpone controls do not exist ALSA CVS update - Jaroslav Kysela Trident driver Fixed s/pdif control initialization ALSA CVS update - Jaroslav Kysela RME HDSP driver Fixed wrong assert, added checks for copy_*_user functions ALSA CVS update - Jaroslav Kysela ALSA sequencer Clemens Ladisch Timestamping (if enabled on a subscription or a port) is not applied to the quoted event but to the quoting event. This patch adds a function to copy only selected fields into the event to be delivered. - fix KERNEL_QUOTE event timestamping - fix typo in port_broadcast_event ALSA CVS update - Jaroslav Kysela MPU401 UART Clemens Ladisch remove unneeded technical information from port names ALSA CVS update - Jaroslav Kysela ALSA sequencer Clemens Ladisch This patch reverses the order of the 'Rawmidi x' and rawmidi name parts of client names to enable selecting clients by a unique prefix (as snd_seq_parse_address does). ALSA CVS update - Jaroslav Kysela USB generic driver Clemens Ladisch - add device-specific port names - begin numbering ports at 1 ALSA CVS update - Jaroslav Kysela ALSA sequencer Clemens Ladisch - fix typo in port flags - add GM2 capability bit ALSA CVS update - Jaroslav Kysela MIXART driver Added missing header file inclusion ALSA CVS update - Jaroslav Kysela Documentation,ALSA Core,PCMCIA Kconfig,PCMCIA Sound Core PDAudioCF driver Added Sound Core PDAudioCF driver ALSA CVS update - Jaroslav Kysela EMU10K1/EMU10K2 driver Fixed page overflow ALSA CVS update - Jaroslav Kysela Serial BUS drivers Moved AK4117 from alsa-driver tree to satisfy dependency for PDAudioCF driver ALSA CVS update - Jaroslav Kysela AK4117 receiver Added missing ak4117.h file Fixed compilation of PDAudioCF driver [PATCH] I2C: fix space in message BTW, I found something to be fixed in i2c-core: [PATCH] I2C: fix mor rmmod oopses > Oh nevermind, that's just a dumb driver. It's doing a release_region > on memory it didn't get. Stupid, stupid, stupid... While we're at it, what about fixing two other drivers that obviously have the same problem? (BTW I didn't get an oops as I tried reproducing the problem, only a "Trying to free nonexistent resource" in dmesg.) [PATCH] I2C: Lowercase chips name This patch brings the name field of adm1021.c, it87.c and via686a.c in conformance with the defined standard ("all lowercase, as simple as the driver name itself"). [PATCH] I2C: fix Hangs with w83781d Here is a patch for the w83781d driver that prevents register bits from being arbitrary changed when we force temp2/3 to comparator mode. Keith Duthie had been reporting various problems with that driver and finally found that this arbitrary change was the cause of them. He also tested this patch, which he confirmed to work. [PATCH] I2C: fix it87 sensor type Here comes a patch by Takeru Komoriya which fixes the way the it87 driver handles temperature sensor types selection. * Use the same values as the CVS driver and sensors program. * Better comments. * Get rid of the old setting method (already gone in CVS). * Handle invalid values correctly. [PATCH] I2C: fix another oops in i2c-core with debug Some times ago, you fixed an oops in i2c-core when debugging is enabled: http://marc.theaimsgroup.com/?l=linux-kernel&m=107585749612115&w=2 Looks like you missed that second one: [PATCH] I2C: Remove asb100 support from w83781d Now that we have a separate asb100 driver, we can remove the (bad) support of it from the w83781d driver. Following patch does this. I've already cleaned this up in our CVS repository. [PATCH] I2C: update for sysfs-interface documentation [PATCH] I2C: rename sysfs files, part 1 of 2 Here it is. The associated libsensors patch is here: http://jdelvare.net1.nerim.net/sensors/libsensors-sysfs-names-1.diff (not applied yet, on purpose) [PATCH] I2C: rename sysfs files, part 2 of 2 Here is the second step of my sysfs renaming plan. This one does the following renames (as I already announced on the LKML): temp_hyst -> temp_max_hyst or temp_crit_hyst sensor -> temp_type pwm -> fan_pwm pwm_enable -> fan_pwm_enable vid -> in_ref The associated libsensors patch is here: http://jdelvare.net1.nerim.net/sensors/libsensors-sysfs-names-2.diff (not applied yet, on purpose) Note that the w83781d part is a bit more complex, not only because it is the only driver to require the 5 changes, but also because at some point the macros assume that the internal variable names match the sysfs names, so I had to change them too (better than rewriting the macros, methinks). For reference, here is the list of changes, by driver: asb100: hyst -> max_hyst (4) pwm -> fan_pwm (1) pwm_enable -> fan_pwm_enable (1) vid -> in_ref (1) fscher: pwm -> fan_pwm (3) gl518sm: hyst -> max_hyst (1) it87: sensor -> temp_type (3) lm75: hyst -> max_hyst (1) lm78: hyst -> max_hyst (1) vid -> in_ref (1) lm85: pwm -> fan_pwm (3) pwm_enable -> fan_pwm_enable (3) vid -> in_ref (1) lm90: hyst -> crit_hyst (2) via686a: hyst -> max_hyst (3) w83781d: hyst -> max_hyst (2) sensor -> temp_type (3) pwm -> fan_pwm (4) pwm_enable -> fan_pwm_enable (1) vid -> in_ref (1) There's also a documentation update. There will be one more after that (to make it more readable, no contents change), and a patch to lm83.c to bring it to compliance with the (new) standard. (If you wonder why I did not change it with the other drivers: because it was *already* not in compliance with the old standard. There's some real work to do for this one.) [PATCH] PCI: fix i2c quirk for SiS735 chipset SMBus driver I2C: fix compiler warnings in 2 drivers. PPC32: print useful flags in oops, like x86 / ppc64. [PATCH] SCSI: Recognize device type 0x0C Device type 0x0C is RAID, so show it as such [PATCH] SCSI: remove some SGI devices from the device list Some SGI RAID devices identify as being SCSI-3, so they don't need to be in the scsi_static_device_list any more. I've tested to make sure that all luns still show up in a sparse, large config. So I'm proposing removing them. Thanks to hch for the suggestion. ALSA CVS update - Jaroslav Kysela USB generic driver usb_ch9.h is already included in usb.h ALSA CVS update - Takashi Iwai ALS4000 driver - fixed the build without joystick support. ALSA CVS update - Takashi Iwai CMIPCI driver - use 0x201 as the default joystick port address. ALSA CVS update - Takashi Iwai Documentation - fixed the description for snd-cmipci module option. ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the handling of S/PDIF rates. the IEC958 status bits are updated according to the current rate. ALSA CVS update - Takashi Iwai MIXART driver - fixed the race condition in message flow. - removed obsolete debug prints. - make prepare callback non-atomic. - synchronize with the pending messages in prepare and hw_free callbacks. ALSA CVS update - Takashi Iwai PCM Midlevel,Intel8x0 driver - added snd_pcm_limit_hw_rates() to determine the min/max rates from rates bits. ALSA CVS update - Takashi Iwai VIA82xx driver - added dxs_support default for EPIA MII. ALSA CVS update - Jaroslav Kysela EMU10K1/EMU10K2 driver James Courtier-Dutton , some additions ALSA CVS update - Jaroslav Kysela Sound Core PDAudioCF driver akpm@osdl.org Fix pdaudiocf_irq.c for gcc-3.5 ALSA CVS update - Takashi Iwai Documentation - fixed the example code of ctl info callback with enum type. ALSA CVS update - Takashi Iwai VIA82xx driver - added the dxs_support default for Uniwill laptop. SCSI: mptfusion update to 3.00.04 From: Moore, Eric Dean [PATCH] USB Storage: unusual_devs.h update On Thu, 19 Feb 2004, Evan Felix wrote: > I plugged a Cyclades AlterPath BIO USb device into my linux 2.6.2 laptop > and it asked me to send you this: > > > hub 1-1.2:1.0: new USB device on port 3, assigned address 6 > hub 1-1.2.3:1.0: USB hub found > hub 1-1.2.3:1.0: 4 ports detected > hub 1-1.2.3:1.0: new USB device on port 1, assigned address 7 > hub 1-1.2.3:1.0: new USB device on port 2, assigned address 8 > Initializing USB Mass Storage driver... > usb-storage: This device (05dc,0001,0001 S 06 P 50) has an unneeded > SubClass entry in unusual_devs.h > Please send a copy of this message to > > scsi0 : SCSI emulation for USB Mass Storage devices > Vendor: Lexar Model: Jumpshot USB CF Rev: 0001 > Type: Direct-Access ANSI SCSI revision: 02 Thank you for sending this. Greg, here's the patch. [PATCH] USB Storage: update unusual_devs.h comments On Tue, 24 Feb 2004, Matthew Dharm wrote: > We should also put a comment into the unusual_devs.h file to make sure > nobody tries to remove the protocol override in the future. How about this? [PATCH] USB: Fix a bug in the UHCI dequeueing code On Mon, 23 Feb 2004, Stephen Hemminger wrote: > Great, the kernel with this patch ran successfully all weekend. Looks like no > more races in the unlink path. Wonderful. Thanks a lot for all your SMP testing, it's been a big help. This patch corrects an error in the dequeueing code for UHCI. Improper locking caused it to hang in the oddball case where an URB was unlinked even before it had been queued. [PATCH] USB: Enable interrupts in UHCI after PM resume On Mon, 23 Feb 2004, Chip Salzenberg wrote: > It works ... perfectly! I can now suspend and resume my A30 with > impunity, and the USB keyboard works fine after each resume. > > Thanks much, Alan. > > (Now if I could just get the alsa guys to fix snd-intel8x0...) This patch re-initializes the UHCI Interrupt Enable register following a PM resume. Apparently some systems clear the register during suspend, which causes obvious problems later on. [PATCH] USB: Return better result codes in UHCI This patch changes the result code returned by the UHCI driver for a certain class of errors. Under a number of circumstances a USB device is obliged to send a response packet within a fairly short turn-around time, typically 1 - 10 microseconds depending on the bus speed. Failure to do so is a protocol error and should be reported as such, not as a timeout, which is really a higher-level concept. I believe the EHCI driver already does this. I trust nobody will object to the update this patch adds to Documentation/usb/error-codes.txt, making this more explicit. In a vaguely related change, the patch corrects the terminology in a few comments. The parts of a control transfer are called "stages", not "phases". [PATCH] USB: Remove name obfuscation in UHCI On Mon, 23 Feb 2004, Stephen Hemminger wrote: > Bulk and interrupt urb's share common irq processing, why does the > code try to obfuscate it? Quite right; this is needless complexity. (But note you left in a couple of lines that should have been deleted.) [PATCH] USB: Use list_splice instead of looping over list elements This patch is from Stephen Hemminger. I modified it slightly to place the new elements at the end of the complete_list instead of at the front. On Tue, 24 Feb 2004, Stephen Hemminger wrote: > Since the remove_list and complete_list now use the same element for > linking, it is possible to use the list_splice inline to avoid > having to loop over all the urb's [PATCH] USB Storage: DSC-T1 unusual_devs.h entry Our friends at sony are at it again. The DSC-T1 needs a new entry. Note that it's the same VID & PID as the last entry, but different version. [PATCH] USB Storage: Fix for Fuji Finepix 1400 This patch changes some error checking so that some bogus devices (like the Fuji Finepix 1400) will work. This is basically relaxing a test on a field that the spec says "should always be zero" [PATCH] USB Storage: Remove unneeded macro This one-liner removes an unneeded macro. [PATCH] USB Storage: tighten sense-clearing code This patch tightens up the conditions under which an auto-sense will be cleared. It also fixes the comment associated with the code. [PATCH] USB Storage: remove unneeded debug message Nothing in life is assured... [PATCH] I2C: add w83627hf driver The following patch against kernel 2.6.3 adds the w83627hf driver, I have ported from the 2.4 version. Jean Delvare has asked me to send this patch to you for applying. I have tested it on w83627thf. Mark Hoffman has reviewed the code and has also tested it on w83627thf. [PATCH] USB: add IRTrans support to ftdi_sio driver [PATCH] USB: Fix for kl5kusb105 driver I tried using the kl5kusb105 driver for a 3Com PalmConnect USB device I had lying around. It oopses during device detection. There is a nested loop using the same loop counter as the outer loop - causing the code after the nested loop is first executed to have an invalid counter. The counter is then used as an array index, causing a NULL deref. Fix attached. [PATCH] USB Storage: Remove Minolta Dimage 7i from unusual_devs.h On Fri, 27 Feb 2004, Lenar Lõhmus wrote: > Hi, > > Got this: > > usb 3-1: new full speed USB device using address 3 > usb-storage: This device (0686,400b,0001 S 06 P 50) has an unneeded SubClass entry in unusual_devs.h > Please send a copy of this message to Well, Martin Pool notwithstanding (see http://marc.theaimsgroup.com/?l=linux-usb-devel&m=107642806303815&w=2 ), it sure looks like this doesn't need an unusual_devs.h entry. Greg, please apply this patch. [PATCH] USB: usbnet learns about Zaurus C-860 New Zaurus ID, from Sven Trampel [PATCH] USB Gadget: gadget config buffer utilities Adds two new gadget-side utility functions, to support a declarative style of managing usb configuration descriptors. The functions fill buffers from null-terminated vectors of usb descriptors, which are simple to build or update. The "ethernet" gadget driver currently has the most interesting config descriptors. This uses those functions to replace some complex code with simpler static declarations; result, it's cleaner. (And it'll be easier to add RNDIS configurations later, too.) Memory savings (or cost, depending on config) was less than 50 bytes; nothing worth worrying about. [PATCH] USB: EHCI and full-speed ISO-OUT This is a minor update to the patch I sent out about a week ago. The key change is to use the I/O watchdog while doing ISO streaming. Bernd Porr reports that a VT8235 system needs that; it seems like IDE activity can interfere with the delivery of USB IRQs. EHCI periodic scheduling updates. - Initial version of full speed ISO transaction support. This should handle OUT transactions, such as those for usb speakers. For now, it's controlled using an EXPERIMENTAL config option: * I've run into interesting differences in how different USB 2.0 hub silicon (the transaction translators) handle some older audio devices. Needs more investigation. * Interrupt transfer scheduling doesn't yet cope well with schedules where every slot already has activity. For now, don't plug in devices like hubs, mice, or keyboards while EHCI is streaming. - Protect freelist for highspeed ITDs, using spinlock. Could be an issue for some drivers. - Kick in the I/O watchdog timer (5 msec) for periodic transfers. In this case, IDE activity on a VT8235 lost the IRQs which should have kept the ISO stream active. Queues shorter than 5 msec are not going to work on all USB hosts. - Simplified the ISO scheduler: doesn't attempt to re-schedule after lossage, or to short-circuit scanning. (Rescheduling will probably come back later ... for now, the "hard" error here is highlighting problems that need attention.) USB: delete unneeded scanner documentation. [PATCH] USB: add driver for ATI USB/RF remotes I've taken the old GATOS version of the ati_remote driver and done some cleanup/rework of it while porting to 2.6 kernels. [PATCH] USB: kbtab.c (Jamstudio Tablet) with optional pressure I have altered kbtab.c a bit in anticipation of an XFree86 4.3 driver that can accept the pressure data (as a third axis) by listening on the event interface. I have set it so that if the option kb_pressure_click is -1 it reports pressure rather than clicks. [PATCH] USB: add new USB Touchscreen Driver I have attached a patch which contains a driver and documentation for the MicroTouch (14-206) USB Capacitive Touchscreen controller. It based on some older code that I have been using for quite some time now (since 2.4.17). This new version has been completely re-written, and now uses Linux Input. Greg, It would be great to possibly get it into 2.6.4. Please let me know if I have it all wrong... Unfortunately, the X11 mouse driver only seems capable of handling relative data rather than absolute. Hopefully some one will create a suitable X11 driver capable of accepting absolute data from Linux Input. If anyone is aware of one, please let me know. Otherwise, I will most likely begin some work on a patch for GPM. Calibration support will be on the way soon, but I'm not sure of the best way to implement. Perhaps some abstract functions could come available in evdev which can call vendor specific commands for the calibration within this driver (and perhaps others). [PATCH] USB: fix build for older versions of gcc and the mtouchusb driver. [PATCH] USB: fix up the input Makefile after these last few drivers were added. [PATCH] USB: update driver for ATI USB/RF remotes ia64: minor 2.6 sba_iommu update This is a minor update to sba_iommu initialization code. I moved the relaxed ordering to the zx1 specific init routine, those registers don't do anything on sx1000. The iommu page size setup is more generalized on ACPI ID, so the sx1000 specific init routine goes away. And the virtual dma_mask on zx1 was tweaked a little to better reflect the memory address space. ALSA CVS update - Takashi Iwai PPC Tumbler driver fixed the resume of bass/treble volumes on snapper. ALSA CVS update - Jaroslav Kysela ALSA Core Fixed snd_info_set_text_ops() wwhen CONFIG_PROC_FS is not defined ALSA CVS update - Jaroslav Kysela Sound Core PDAudioCF driver Fixed pcm->name settings ALSA CVS update - Jaroslav Kysela AK4531 codec Aux Input Route -> Aux Capture Route renaming ALSA CVS update - Jaroslav Kysela PCI drivers Select CONFIG_VIDEO_DEV when CONFIG_SND_FM801_TEA575X is wanted ALSA CVS update - Jaroslav Kysela OPL3,OPL4,Synth Fixed sequencer dependency for opl3, opl4 and emux objects. ALSA CVS update - Jaroslav Kysela PCI drivers fix Kconfig thinko ALSA - 1.0.3 [PATCH] USB ati_remote.c: don't be a namespace hog `debug', indeed. [PATCH] I2C: it87 reset option I wrote a patch which adds reset option to the it87 driver talking with Jean Delvare. * Do not reset the registers unless users want to do because resetting registers makes all fans go to full power and we can usually rely on values set by BIOS * Remove all limit initializations as they should be done from user-space * Better register mask for start of monitoring [PATCH] ia64: add zx1_defconfig Here's my attempt at a zx1_defconfig. I haven't checked it on many of the zx1 boxes (only zx2000 and rx2600) but I've set some options I know are needed on the other boxes. [PATCH] ia64: SAL cleanup This patch reorganises sal.c and adds a small amount of new functionality. - Introduce sal_revision to report what revision of the SAL spec is supported by the system. - Introduce sal_version to report what version of the vendor's SAL implementation is present. - Introduce SAL_VERSION_CODE to allow for easy comparisons. - Print the version at boot, and remove the 'oem=' and 'vendor=' strings. - Refactor ia64_sal_init() into several smaller functions. - Delete the dead variables 'max' and 'min'. - Stop printing the pal_proc and sal_proc entry addresses. - Print "None" if there are no SAL platform features. [PATCH] ia64: Add support for extended PCI config space Support for extended config space on ia64. - Add the new parameter 'type' to ia64_sal_pci_config_{read,write} - Change callers to match. - Don't check `value' for NULL -- drivers/pci/access.c guarantees it isn't. - Make pci_sal_ops static. - Add pci_sal_ext_ops. - Introduce pci_set_sal_ops() as an arch_initcall to ensure the raw_pci_ops get set before we walk the ACPI namespace to discover PCI root bridges ia64: Move irq_enter()/irq_exit() from hardirq.h to irq_ia64.c. The work done by these routines is very special and needs to be done at exactly the right time. Removing it from the header-file reduces the risk of accidental misuse. Other arch maintainers agree that this is the Right Thing to do. [PATCH] USB: C99 initializers for drivers/usb/serial/keyspan.h Here's a small patch changing the GNU-style initializers to C99 initializers. The patch is against the current BK. [PATCH] USB Storage: unusual devs fix for Pentax cameras. Please apply the attached patches instead. People have tried it on several different Pentax cameras (including 330 GS) [PATCH] USB Storage: unusual_devs.h entry submission here is an unusual_devs.h entry which makes two different USB MP3 players work with Linux' USB storage driver. They share a core chip, the t33520 USB flash card controller by Trumpion microelectronics. They also share the same ID 0x090a:0x1001, which is a "generic" ID for t33520 devices using bulk-only protocol (0x1002 is for CB). About the MP3 players: - I own an apparently unbranded one (sold in masses on ebay.de) which needs US_FL_MODE_XLATE (and used to need US_FL_START_STOP before its removal). - Theodore Kilgore (who created the 0x090a:0x1001 record in the Linux-USB device overwiew) has a "Trumpion Digital Research MYMP3" which needs US_FL_MODE_XLATE and an explicit US_PR_BULK. Of course the different players report the same firmware rev. 1.00, despite their obviously different behaviour. Ugh. There are more players with this ID, the "Kaser Yofun 100 MP-3" (also rev. 1.00) being one. The proposed entry may or may not help them, but it shouldn't break working ones in any case. It is not unlikely they too will need US_FL_MODE_XLATE. Below you'll find my /proc/bus/usb/devices with mounted MP3 player and a patch against 2.4.25-rc3. Please apply. ----------------8<-------------------------8<-------------------- T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 0.00 S: Product=USB UHCI Root Hub S: SerialNumber=e400 C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=090a ProdID=1001 Rev= 1.00 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 60mA I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=255ms ----------------8<-------------------------8<-------------------- [PATCH] ia64: simserial module refcounting update [PATCH] USB: visor patch for Samsung SPH-i500 Hi... here is a patch for the vendor/device codes for the Samsung SPH-i500 Palm phone. PPC32: Kill off arch/ppc/boot/prep and rearrange some files. [PATCH] USB Storage: Revision of as202, Genesys quirk patch In the slave_configure routine it's already too late for the host's max_sector value to affect the scsi_device. It's necessary to set the queue value directly. This revised patch takes care of that. [PATCH] ini9100u build fix From: Christoph Hellwig - Remove dead forward declarations - Fix compilation of the interrupt handler. [PATCH] SCSI sysfs host name support OK, let's export the proc_name then. It's some name that can be used to identify the driver, works for code both compiled statically or as module, is reasonably short and very often resembles the module name. For the module_name, let's wait for a generic sysfs solution. input: Add serio entries for LK keyboards. PPC32: Update the TODC code from 2.4. PPC32: Add and make use of ppc_md.rtc_{read,write}_val. We can then fix IBM PReP machines and their RTCs. PPC32: Fix 'make znetboot' on CONFIG_PPC_MULTIPLATFORM. PPC32: Fix an old thinko in arch/ppc/boot/simple/relocate.S ia64: Rename ia64_invoke_kernel_thread_helper() to start_kernel_thread() for symmetry with start_kernel() and to make it obvious when the end of the call-chain has been reached. ia64: More SAL cleanups/fixes. Based on patch by Matthew Wilcox: make kernel work with old (broken) firmware again and fix UP build problems. [PATCH] SCSI tape sysfs name fixes - The sysfs directory names are changed from stxmy[n] to the names in devices.txt. Below is an example for the first tape drive: /sys/class/scsi_tape/ |-- nst0 |-- nst0a |-- nst0l |-- nst0m |-- st0 |-- st0a |-- st0l `-- st0m - Name generation for non-default number of modes fixed so that same minors get same names even with different number of modes. - devfs minor generation fixed to work with non-default number of modes - The alignment requirement is printed in the line logged when a tape is attached. Atkbd: whitespace fixes Atkbd: Clean up unclean merge (remove old MODULE_PARMs) Input: Switch between strict/relaxed synaptics protocol checks based on data in the first full data packet. Having strict checks helps getting rid of bad data after losing sync, but not all harware implements strict protocol. Psmouse: whitespace fixes Psmouse: some hardware does not ACK "disable streaming mode" command. Since we already have an idea that it's a mouse device that is present (from its response to GET ID command), instead of aborting, issue a warning and continue. Introduce module_param_array_named to allow for module options with name different form corresponding array variable. Allows using short (but descriptive) option names without hurting code readability. Modeled after module_param_named. Input: Convert joystick modules to the new way of handling parameters and document them in kernel-parameters.txt The new names are: amijoy.map=, analog.map=,,... db9.dev[2|3]=, gamecon.map[2|3]=,,,... turbografx.map[2|3]=,,,... Also there is a tiny change to mousedev and tsdev descriptions in kernel-parameters, but no name changes. Setup: introduce __obsolete_setup macro to denote truly obsolete parameters. Whenever such parameter is specified kernel will complain that "Parameter %s is obsolete, ignored" Input: use __obsolete_setup to document removed (renamed) options so users will have a clue why the options do not work anymore ia64: fix missing include in include/asm-ia64/sn/router.h input: Workaround i8042 chips with broken MUX mode. input: Only do hotplug on PS/2 HW when the HW sends 0xaa. This avoids problems with broken USB->PS/2 legacy emulation in certain BIOSes. input: Add DEC LK201/LK401 keyboard support input: Add driver for DEC VSXXX mice. [PATCH] USB Gadget: make usb gadget strings talk utf-8 Teach gadget/usbstring to expect UTF-8 strings, not ISO-8859/1 ones. This just gets rid of an API issue: no hacks needed for non-Western languages, and multi-language support will be lots easier. Current drivers won't notice the API change, they use US-ASCII (which is a strict superset of both encodings). Future drivers may want to teach utf8_to_utf16le() about the four-byte encodings, so they can emit surrogate pairs for those Unicode characters. [PATCH] I2C: IOP3xx i2c driver update Here's a small patch update to the i2c-iop3xx.c in drivers/i2c/busses/. It fixes some functions' return value and updated the irq handler to be compatible with kernel 2.6. Thanks! [PATCH] I2C: show adapter name in i2c-dev class directory to make it easier for userspace tools. [PATCH] USB: USB OSS audio driver workaround for buggy descriptors [PATCH] USB: Don't add/del interfaces, register/unregister them On Fri, 27 Feb 2004, Greg KH wrote: > On Wed, Feb 25, 2004 at 10:05:37AM -0500, Alan Stern wrote: > > > Why would anyone want to do this, you ask? Well the USB subsystem does it > > already. Each USB device can have several configurations, only one of > > which is active at any time. Corresponding to each configuration is a set > > of struct devices, and they (together with their embedded kobjects) are > > allocated and initialized when the USB device is first detected. The > > struct devices are add()'ed and del()'ed as configurations are activated > > and deactivated, leading to just the sort of call sequence shown above. > > Then we need to fix this. The driver model does not support repeated device_add(), device_del(), device_add(), device_del(), ... calls for the same device. But that's what happens to an interface's embedded struct device when we change configurations. Accordingly, this patch changes the device_add()/device_del() calls for interfaces to device_register()/device_unregister(). When the interface is unregistered the new code waits for the release method to run, so that it will be safe to re-register the interface should the former configuration be reinstated. Greg, please check this out to make sure I haven't made some dumb mistake. It works on my system and it fixes a memory leak in the USB system. [PATCH] USB: Improve handling of altsettings On Sat, 21 Feb 2004, Greg KH wrote: > > One thing that would be good, whether this change gets made or not, is to > > remove all assumptions from drivers about the order in which interfaces > > are stored (use usb_ifnum_to_if()) and the order in which altsettings are > > stored (replace intf.act_altsetting with a pointer and create > > usb_altnum_to_alt() analogous to usb_ifnum_to_if()). There are plenty of > > drivers that will need to be fixed up. > > I'd be glad to take patches to fix up any drivers that still have this > problem right now. Here's a start. This patch begins the conversion process by adding usbcore support for cur_altsetting and deprecating act_altsetting. So long as we assumed that altsetting numbers range from 0 to num_altsetting-1 and that the number matches its index in the altsetting array, there was no harm in using act_altsetting. But without that assumption act_altsetting is merely an invitation to errors. Although the kerneldoc says that act_altsetting is the _index_ of the active altsetting, it's all too easy to confuse it with the _number_ of the active altsetting. Using cur_altsetting instead (a pointer rather than a number) will prevent that confusion. Until all the drivers have been converted to use cur_altsetting, the core will have to maintain act_altsetting in parallel with it. Eventually we will be able to remove act_altsetting, but fixing all the drivers will take a while. Included in this patch: Add cur_altsetting to struct usb_interface and deprecate act_altsetting. Add comments and kerneldoc explaining the changes. Also remove the comments in front of struct usb_host_config (they seem to have been left behind when usb_ch9.h was split out) and add kerneldoc for that structure. Add usb_altnum_to_altsetting() to help look up altsettings based on their number. Convert the usb_set_interface(), usb_set_configuration(), and usb_reset_configuration() routines to support cur_altsetting and act_altsetting in parallel. Convert a few others to use cur_altsetting rather than act_altsetting. Rename a few local variables to make their meaning a little clearer. It would be nice to change struct usb_host_interface to something like usb_host_altsetting, but that's a patch for another time. [PATCH] USB: Convert usbcore to use cur_altsetting This patch continues the work of as209 by converting the rest of usbcore to use cur_altsetting in place of act_altsetting. The changes required are fairly small, just in the sysfs attributes and hub configuration. [PATCH] USB: Small improvements for devio.c devio.c doesn't need to be changed to support the new altsetting mechanism, but while looking through it I noticed a couple of places that could be improved slightly. Here they are, just removal of some redundant tests (all altsettings for the same interface are guaranteed to have the same bInterfaceNumber) and function calls. [PATCH] USB: Convert usb-storage to use cur_altsetting I'm beginning the process of converting device drivers to use cur_altsetting with usb-storage, the one I know best. Only a few changes are needed (and the first one isn't even really necessary). [PATCH] USB: Convert usbtest to the new altsetting regime This patch converts the usbtest driver to the new way altsettings work. The largest change is to remove the assumptions that altsetting numbers lie in the correct range (a debugging message is logged if they don't but execution doesn't stop) and that the array is sorted by number. [PATCH] USB: remove act_altsetting usages in the remaining drivers/usb/ drivers [PATCH] USB: remove act_altsetting usages in more USB drivers [PATCH] USB: remove intf->act_altsetting altogether from the USB core and usb.h [PATCH] ia64: Don't assume iosapic interrupt controllers Some ia64 machines don't use an iosapic interrupt controller (a flagrant violation of the DIG64 spec), so don't assume it's there in mca.c. Platforms that provide a ACPI_INTERRUPT_CPEI vector are responsible for registering its interrupt controller type in platform specific code, iosapic.c:iosapic_register_platform_intr() does this for platforms with an iosapic where the CPEI vector is listed in the ACPI namespace, and on sn2, all external interrupts are assigned the irq_type_sn type, so this change of assumption should be safe. [PATCH] I2C: keep i2c-dev numbers in sync with i2c adapter numbers This makes userspace tools easier to figure out which i2c-dev device is assigned to which i2c adapter. Yes, we can overflow the i2c dev array right now, but that would take a lot of i2c adapter modprobe/rmmod cycles. That will be fixed up soon. [PATCH] USB: HCD names, for better troubleshooting See the attached patch -- which restores the behavior of usbcore to what it had before "struct device.name" went away, in the (typical) case of PCI devices. It makes the root hubs say what hardware they're actually using, in the reasonably typical case that PCI names are in use, rather than being just generic (and hence almost useless) strings. This sort of information can really help when troubleshooting. asmlinkage acpi_enter_sleep_state_s4bios() - from Pavel Machek input: Add a NEC USB gamepad to badpad blacklist. input: HID needs to distinguish between two types of A4Tech two-wheel mice. ALSA CVS update - Jaroslav Kysela FM801 driver tea575x can be module, too ALSA CVS update - Jaroslav Kysela Big DMA cleanup originated by Russell King * Russel - introduced 'struct device' support for 2.6 dma_alloc_coherent() * Jaroslav - removed all bus-specific allocation functions - extended snd_dma_alloc_pages/snd_dma_free_pages to handle all bus types - recoded all (or almost all) device drivers - sgbuf functions are bus independent now ALSA CVS update - Jaroslav Kysela CMI8330 driver,ES18xx driver,AD1816A driver,AD1848 driver,CS4231 driver ES1688 driver,GUS Library,Opti9xx drivers,SB16/AWE driver,SB8 driver Fixed old function name (snd_pcm_isa_flags -> snd_pcm_dma_flags) ALSA CVS update - Jaroslav Kysela ALSA Core Russell King This is part of a patch series to clean up sound/core/Makefile in Linux 2.6.4-rc1. - Add SND_TIMER, SND_PCM, SND_HWDEP and SND_RAWMIDI configuration symbols. These symbols select which modules in sound/core get built, building snd-timer, snd-pcm, snd-hwdep and snd-rawmidi respectively. - Add reverse dependencies (select) to select these symbols for core components where necessary. - Hide SND_OSSEMUL - we can select this when SND_MIXER_OSS, SND_PCM_OSS or SND_SEQUENCER_OSS are selected automatically. - Tweak Makefile to use these new symbols to build these modules. - Since we now build appropriate modules for core components according to the new configuration symbols, (eg, snd-timer if SND_SEQUENCER is selected) we can delete these duplications. ALSA CVS update - Clemens Ladisch USB generic driver Fix for Creamware Noah: search class-specific endpoint descriptor in the extra descriptors of the sync ep, too ALSA CVS update - Takashi Iwai Memalloc module,ALSA Core - fixed the lock up with SG-buffer handler. - removed non-existing export symbol. - clean up ifdefs. ALSA CVS update - Takashi Iwai ES1968 driver - fixed the handling of DMA buffer with the recent API change. ALSA CVS update - Takashi Iwai Intel8x0 driver - fixed the allocation/release of buffer descriptor table. Add SCSI lots of disk support From: Kurt Garloff Based on earlier patches from Badari Pulavarty , Matthew Wilcox [PATCH] add missing free sgtable in scsi_init_io error path I was testing different errors while running multipath, and becuase of a bug in dm-multiapth I hit the "Incorrect number of segments after building list" error. The attached patch just adds a missing scsi_release_buffers() at the bottom of the scsi_init_io where the table was allocated successfully, but you can return BLKPREP_KILL when someone messes up segment counts. ALSA CVS update - Takashi Iwai Memalloc module - added back the output of PCI dma buffers in proc file. ALSA CVS update - Jaroslav Kysela Intel8x0 driver Converted to new DMA allocation API ALSA CVS update - Jaroslav Kysela ARM,ALSA Core,Generic drivers,ISA,PARISC,PCI drivers,PCMCIA Kconfig,PPC SPARC,USB This is part of a patch series to clean up sound/core/Makefile in Linux 2.6.4-rc1. - Add 'select SND_PCM' statements to appropriate Kconfig entries for drivers whose configuration symbol is used to build snd-pcm, snd-timer, and snd-page-alloc. - Remove snd-pcm, snd-timer and snd-page-alloc from these in sound/core/Makefile. - Remove snd from these entries as well - all SND_xxx configuration symbols depend on CONFIG_SND, so we won't even consider building any of these drivers unless SND is already set to 'y' or 'm'. ALSA CVS update - Jaroslav Kysela ALSA Core,Generic drivers,ISA,PCI drivers,USB Russell King This is part of a patch series to clean up sound/core/Makefile in Linux 2.6.4-rc1. - Add SND_RAWMIDI for drivers which use the snd-rawmidi module. - Remove snd-rawmidi from these drivers entries in sound/core/Makefile - Remove any sound/core/Makefile entries which are left empty. ALSA CVS update - Jaroslav Kysela ALSA Core,ISA,PCI drivers,PCMCIA Kconfig Russell King This is part of a patch series to clean up sound/core/Makefile in Linux 2.6.4-rc1. - Add SND_HWDEP for drivers which use the snd-hwdep module. - Remove snd-hwdep from these drivers entries in sound/core/Makefile, removing any sound/core/Makefile entries which are left empty. ALSA CVS update - Jaroslav Kysela ALSA Core,Generic drivers Russell King This is part of a patch series to clean up sound/core/Makefile in Linux 2.6.4-rc1. - Add SND_TIMER for drivers which use the snd-timer module. - Remove snd-timer from these drivers entries in sound/core/Makefile, removing any sound/core/Makefile entries which are left empty. - Since the 'top level module dependency' lists are now gone, remove the comment. - Also, since we only mention objects once, remove the sorting of obj-m ALSA CVS update - Jaroslav Kysela Generic drivers,MPU401 UART,OPL3,OPL4,ISA,PCI drivers More Kconfig and Makefile cleanups following Russell's direction: - added SND_MP401_UART tristate - added SND_OPL3_LIB tristate - added SND_OPL4_LIB tristate ALSA CVS update - Jaroslav Kysela Generic drivers,Digigram VX core,PCI drivers,PCMCIA Kconfig More Kconfig and Makefile cleanups following Russell's direction: - added SND_VX_LIB tristate ALSA CVS update - Clemens Ladisch USB generic driver - fix non-working control port on Roland U-8 - more port names - new MIDI quirks for Roland MMP-2, V-SYNTH, VariOS, FP-*, GI-20, BOSS GS-10, Edirol UR-80, PCR-A, PCR-1 ALSA CVS update - Takashi Iwai Memalloc module fixed the missing inclusion. ALSA CVS update - Takashi Iwai PCI drivers,AC97 Codec Core - added CONFIG_SND_AC97_CODEC and simplify Kconfig and Makefiles. ALSA CVS update - Takashi Iwai Memalloc module - suppress allocation failure warnings with large buffers. ALSA CVS update - Clemens Ladisch USB generic driver fixes for broken SB Audigy 2 NX descriptors ALSA - fixed compilation [PATCH] SCSI Midlayer initiated START_UNIT The ipr driver that is currently out for review talks to disk array devices that require a START_UNIT prior to media ops, similar to normal scsi devices. However, any time the adapter gets reset, these devices end up needing another START_UNIT. This causes problems with the current error handling and these devices get taken offline when this occurs. Attached is a patch which will better handle these devices and issue a START_UNIT from the error handler when appropriate. Add SCSI transport attributes From: Martin Hicks Transport attributes are classes which can be attached to by a scsi driver to export (and later control) transport based properties. ia64: Fix staircase effect on Altix serial console Serial console output on Altix didn't convert NL to CRNL. [ACPI] comments [ACPI] global lock macro fixes (Paul Menage, Luming Yu) http://bugzilla.kernel.org/show_bug.cgi?id=1669 input: Fix i8042 PS/2 mouse on ARM. [PATCH] sort SCSI blacklist No changes whatsoever, just moves entries around to sort on vendor. I kept the multiple sections, and just sorted per section. [PATCH] USB 6-in-1 card reader blacklist addition Yes, someone really was stupid enough to make a device with such a dumb vendor name. In combination with the device name and rev number though, it shouldn't cause any false positives. Device in question is some no-name 6-in-1 usb card reader, whose slots all appear on different LUNs, requiring you fiddle with scis_mod's max_luns argument unless you have this patch. [PATCH] Add full complement of SPI transport attributes This patch does two things: 1. Add all the other ppr type transport attributes to the spi class 2. make period settable as the ppr/sdtr period, but display in ns for the user. [PATCH] gcc-3.5: acpi build fix Current gcc requires that both the declaration and the definition of functions describe the same register conventions. ALSA CVS update - Takashi Iwai ALSA Core - show the error message when the given card index is not available. ALSA CVS update - Takashi Iwai PPC Tumbler driver - fixed the mic input on snapper. ALSA CVS update - Jaroslav Kysela ICE1724 driver,ICE1712 driver Dirk Kalis Added num_total_adcs. Separated analog input / s/pdif input controls ALSA CVS update - Jaroslav Kysela ALSA<-OSS sequencer mpkelly - fixed channel settings for input events ALSA CVS update - Takashi Iwai Opti9xx drivers fixed the code with obsolete check_region(). ALSA CVS update - Takashi Iwai AC97 Codec Core,Intel8x0 driver,VIA82xx driver,CS46xx driver - fixed ALC100/P Master/PCM volume handling (h/w bug) - added ALC65x JACK quirk - disabled IC5 PERL mobo quirk - fixed Mic/Center sharing switch on ALC65x. - fixed Mic BIAS on ALC650. - added extra delay in the resume if needed. - renamed 'External Amplifier Power Down' to 'External Amplifier' - added a workaround for the reversed EAPD of cs46xx voyetra. ALSA CVS update - Takashi Iwai Intel8x0 driver fixed the interrupt problem with NForce(2). ALSA CVS update - Jaroslav Kysela PCM Midlevel Fix in playback_silence routine - don't silence whole buffer at start if samples are filled ALSA CVS update - Jaroslav Kysela ALSA Core PCM API is 2.0.6 ALSA CVS update - Takashi Iwai Memalloc module,PCM Midlevel,ALSA Core,CMI8330 driver,ES18xx driver Sound Scape driver,AD1816A driver,AD1848 driver,CS4231 driver ES1688 driver,GUS Library,Opti9xx drivers,SB16/AWE driver,SB8 driver ALS4000 driver,AZT3328 driver,BT87x driver,CMIPCI driver,CS4281 driver ENS1370/1+ driver,ES1938 driver,ES1968 driver,FM801 driver Intel8x0 driver,Maestro3 driver,RME32 driver,RME96 driver SonicVibes driver,VIA82xx driver,ALI5451 driver,CS46xx driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,RME HDSP driver,RME9652 driver,Trident driver YMFPCI driver,Sound Core PDAudioCF driver,USB generic driver - clean up the DMA code again. now only struct device pointer is handled for every BUS type. the pointer must be given via the corresponding macro snd_dma_xxx_data(). - added the hack for dma_alloc_coherent() to accept dev = NULL for ISA buffers. - added the missing include files. ALSA CVS update - Takashi Iwai PARISC Harmony driver,SPARC AMD7930 driver,SPARC cs4231 driver fixed for the new DMA buffer handler. ALSA - fix compilation (header files) SCSI: Make SPI transport attributes mutable This adds the final missing piece to the transport attributes: A published API by which they can be set and retrieved (SPI attributes only). The sysfs field only appears writeable if the driver supplied a set method in the attribute template, so unsettable attributes show up as read only. The consequence now is that the spi transport attribute class is no longer a simple exported structure: the driver has to attach to the spi transport class at module initialisation. SCSI: implement transport attributes for 53c700 his patch moves the internal storage of the offset and period to the transport class and adds methods to set them (there's no need for a get method since the value in the transport class is exactly what the driver believes the transport agreement to be). You can see how this type of use of the transport class is supposed to work: the driver now has init and exit routines attaching and releasing the transport class (that's the reason for the Makefile perturbation because it has to init before its users). The correct attributes are set up in slave_configure() for negotiation and we now export the period and offset setting functions. input: Update the Wacom driver to latest version from Ping Cheng from Wacom. input: Add support for devices which need some padding at the end of a HID report. input: Fix a memory leak in ns558.c input: Add a Chic gamepad into badpad quirk list. input: Don't define DEBUG in hid-ff by default. It spews messgaes even when no FF device is present. input: Restore LED state in atkbd.c after resume. input: Fix oops (NULL pointer dereference) on resume in psmouse.c, when the mouse goes away while sleeping. ia64: Reserve 3 syscall numbers for Andi Kleen's NUMA interface. merge fixups with irda usb code USB: fix the pcwd_usb driver due to act_altsetting going away. USB: fix usb-serial core to look at the proper interface descriptor [PATCH] ia64: fix SN2 console driver to use console_initcall() [PATCH] USB: Update USB class drivers This patch makes the necessary updates to the bluetty, cdc-acm, and usblp class drivers for the new interface/altsetting paradigm. The changes are quite small. Unfortunately, the audio and usb-midi drivers are in much worse shape. They will require more in-depth hacking, to come later... [PATCH] USB: Remove interface/altsettings assumption from audio driver This patch updates the USB audio class driver to use the usb_ifnum_to_if() and usb_altnum_to_altsetting() routines, thereby removing assumptions about which interface or altsetting is stored in which array entry. It also simplifies the driver's probe() routine by using the raw configuration descriptor already loaded into memory instead of reading the descriptor from the device. Now, either the current driver has a bug and never deallocates the buffer used to hold the descriptor, or else I've introduced a double-free error. There's no obvious place where the buffer gets freed, but it's hard to be certain. It would be good if someone could try out this patch. I can't test it, not having any USB audio devices handy. If the double-free error is present, it will show up when the device is disconnected and the configuration data is released. [PATCH] USB UHCI: restore more state following PM resume Some systems don't save the internal state of the UHCI registers across a PM suspend/resume cycle very well. This patch saves & restores the Frame Number and the Framelist Base Address registers (in addition to the Interrupt Enable register, which was added separately in a recent patch.) fix Kconfig select problem with SCSI_SPI_ATTRS spotted by akpm (the select was misspelled in the SCSI_SIM710 Kconfig option) CONFIG_SCSI_AIC7XXX Kconfig bug From: Randy.Dunlap ,olh@suse.de make Adaptec AIC7xyx drivers depend on SCSI tristate (without this you can compile aic7xxx into the kernel when SCSI is only modular) [libata] Split up shared IO register locations into individual components Most ATA host controllers follow a standard layout for the ATA shadow registers, where command/status, error/feature, and devctl/altstatus share a single bus I/O address, because one register of each pair is read-only, and the other is write-only. On the Vitesse/Intel chip, all registers are given distinction bus I/O addresses, which necessitates changing the libata data structures to cope with this. This simply involves storing a few more bus addresses. [libata] misc fixes, and an export * export ata_host_intr * fix debugging printk * the write of Device Control register, which occurs between SATA phy reset and the read of device signature, apparently clobbers some of the register values (namely Error register) that are needed to determine whether or not the device passed diagnostics. Make this write follow the device diag checking and classification, instead. [libata] Add new driver for Vitesse VSC-7174. [PATCH] USB: Interface/altsetting update for ISDN hisax driver On Mon, 8 Mar 2004, Greg KH wrote: > Oh, could you look at drivers/isdn/hisax/hfc_usb.c if you get a chance? > I tried to figure out the mess there with regards to act_altsetting, but > gave up :( You're right, it is a mess. Beats me why they didn't use a plain old "for" statement to do that altsetting loop. Probably the most confusing part is where the code needlessly resets intf->act_altsetting. Anyway, this patch sets things right. I haven't tried to compile it, but any errors ought to be pretty small, obvious, and easy to fix. My intention was to go through the files under driver/usb (in alphabetical order!) and then do the ones outside that subtree -- I've got a little list. But it's no problem to take care of this one first. [PATCH] USB: fix compiler warning in hfc_usb.c driver. [PATCH] USB brlvger: Driver obsoleted by rewrite using usbfs We have rewritten the brlvger (Tieman Voyager USB Braille display) driver so that it works from user-space through usbfs. It appears to work just as well as the in-kernel driver. The brlvger driver in the 2.6.x kernel is now obsolete and should be removed. The attached patch against 2.6.3 does this. Please apply. NB: The following files are completely deleted: Documentation/usb/brlvger.txt drivers/usb/misc/brlvger.c include/linux/brlvger.h The new Voyager driver is available (stil under GPL) as part of BRLTTY, starting with version 3.5pre1 (http://mielke.cc/brltty). Thanks to Dave Mielke who implemented BRLTTY's usbfs functionality, among lots of other stuff. [PATCH] USB: 2.6 pegasus.h updates a few more IDs added, could you please apply it? Driver core: make CONFIG_DEBUG_DRIVER implementation a whole lot cleaner [PATCH] I2C: Prevent i2c-dev oops with debug Looks like i2c-dev suffers the same problem with dev_dbg as i2c-core did twice. Here is a patch that fixed a oops I and another user were experiencing when running sensors-detect. [PATCH] I2C: Fix i2c_use_client() i2c_use_client() contains a bogosity. If i2c_inc_use_client() returns success, i2c_use_client() returns an error. If i2c_inc_use_client() fails, i2c_use_client() might succeed. Fix it so that (a) we get the correct sense between these two functions, and (b) propagate the error code from i2c_inc_use_client(), rather than making our own one up. [PATCH] I2C: sysfs interface update for w83627hf This patch updates the sysfs names of the w83627hf driver to match the new standard. The patch applies on top of one recently applied to your tree [1]. I have tested it using a w83627thf & the latest lm_sensors CVS. Please apply. [1] http://archives.andrew.net.au/lm-sensors/msg06746.html [PATCH] I2C: fix i2c-prosavage.c section usage prosavage_remove() is called during init, so it shouldn't be marked as exit code. (It matters when CONFIG_HOTPLUG=n.) [PATCH] I2C: fix i2c adapters class for now Please accept this temporary fix for the class issue. I'd like users of the i2c-ali1535, i2c-sis5595 and i2c-via driver to be able to use sensors as soon as possible, even if we have not yet determined what our policy WRT classes should be. Thanks. BTW, don't you think I2C_ADAP_CLASS_SMBUS is a misnomer? It's about hardware monitoring, not the SMBus protocol. I'd say I2C_ADAP_CLASS_HWMON or I2C_ADAP_CLASS_SENSORS would have been more appropriate (although it may be a bit late for a change...) [PATCH] I2c: Kconfig for non-sensors i2c chip drivers Quoting myself: > I think that it would make sense to have a specific menu entry for > these, separate from the sensors stuff. Looks like an easy thing to > do. Here is a proposed patch that does this. Comments welcome. [PATCH] USB: usbnet and ALI M5632 Some of the 480 Mbit/sec USB host-to-host links have ALI chips in them. They seem to work with no problem, given this patch, even when the ends talk different speed. [PATCH] USB: gadget config buf utilities Somehow I sent you a version of this code with a misplaced semicolon ... it makes for awkward failures! Please merge. Bad semicolon! [PATCH] USB: clarify CONFIG_USB_GADGET Marc-Christian Petersen wrote: > > I think the attached patch is needed to stop showing us USB Gadget support if > Support for USB is disabled. No it isn't. But maybe the attached patch would clarify what's really going on: CONFIG_USB is the host side, and CONFIG_USB_GADGET is the peripheral side. input: Avoid an endless loop in hid-core.c, if a device has some empty reports. input: When reading input reports from a device via the ctrl pipe, set idle time of the device. This makes buggy devices which take the idle time into account for the ctrl pipe work. Make the SCSI mempool allocations variable We still retain the default MAX_PHYS_SEGMENTS (which is currently 128). However, a mechanism for raising the limit correctly is added for people who wish to benchmark with larger sglists. A decision on how we present this to the user will be taken at a later time when more information about the usefulness of a higher limit is available MPT Fusion driver 3.01.00 update From: Moore, Eric Dean [PATCH] USB: fix stack usage in pl2303 driver Arghh - while trying to follow this I just realized the pl2303 is DMA'ing to the stack - not good! Could you please just try with the patch below. I'm not sure if this might cause the MA620 trouble but it's definedly a bug and maybe it improves things for you... [PATCH] dc395x [1/5] - formatting cleanups Formatting cleanups. - Remove lots of comments that were out-of-date, wrong, or now described things that had been simplified that much that the comments were no longer needed. - Move the "static" definition from a line before functions onto the same line as the function itself. - Remove "return;" from the end of void functions. - Remove braces from around single instructions. - Merge the declaration and assignment to variables in places where the followed each other. - Remove braces from around single statement that obviously didn't need them. - Remove unused code and variables. - Fix debug statement in disconnect to not deref potentially null ptr. - Change a lot of short comments that take up three lines down to one line. [PATCH] dc395x [2/5] - sg list handling cleanups Cleanup a lot of the sg list handling to make it easier to follow in preparation for making this work on sparc64 (big-endian & 64bit). [PATCH] dc395x [3/5] - remove old debugging stuff Remove the special versions of kmalloc and kfree and remove the trace related stuff from the code. None of this is really needed and it is not really a nice implementation. This also removes all non 7-bit clean characters to help with David Eger's work to remove and/or convert them all to UTF8. [PATCH] dc395x [4/5] - debugging cleanup Clean up debugging statements. Work on making output consistent - use the same format each time the same bit of information is output and output the same bits of information in the same order each time it's output. Update a lot of the actual messages to include useful information and to explain better what some things are. Remove some old comments and commented out code. Remove some of the debugging states. Find few instance of spaces that should have been tabs and trailing white space and remove them. [PATCH] dc395x [5/5] - version update Move version information from .h to .c so that it's more likely to get updated as changes are made (the .h file is rarely modified). Update the version from 2.04 to 2.05 [PATCH] ia64: minor cleanups for SN2 console driver [PATCH] New SCSI host_byte status code. At present there is no way to retry, if allowed, a scsi command without decrementing the scsi command's retry count. Please find a patch attached, which is submitted, for adding a new host_byte status code called "DID_IMM_RETRY". This enables the Low Level SCSI drivers to initiate retry of a scsi command without decrementing the scsi commad's retry count. [PATCH] qlogicfas: use a static string as name [PATCH] qlogic_cs: don't release region [PATCH] qlogic_cs: use a static string as name [PATCH] USB: locking fix for pid.c you forgot to drop a spinlock before you report an error. A deadlock will occur. [PATCH] qlogic_cs: use scsi_host_put [PATCH] USB: Remove interface/altsetting assumptions from usb-midi This patch makes the usb-midi driver use usb_ifnum_to_if(), thereby removing assumptions about which interface is stored in which array entry. Similarly, it stores the bAlternateSetting value rather than the array index for an altsetting entry. Like the earlier patch for the audio driver, this also changes the driver to use the in-memory rawdescriptor buffer rather than reading a configuration descriptor from the device. Unlike that earlier patch, this time there's no question that the deallocation of the buffer is done correctly. (I suspect the audio driver just left out a call to kfree.) [PATCH] USB: fixes for aiptek driver - don't pass buffers allocated on stack to the sync helpers - check errors in probe - fix count in open - proper macros [PATCH] qlogicfas: force can_queue [PATCH] USB: bug in error code path of kbtab driver this fixes - a leak in the error code path of open() - removes SLAB_ATOMIC where it isn't needed - uses le16_to_cpu (yes Pete, unaligned access is taken care of) [PATCH] qlogic_cs: use own detect and release functions [PATCH] USB: wacom driver fixes the same error code path as in the other drivers. In addition I added the endianness macros. They save cycles in interrupt. -use endian macros -use GFP_KERNEL where SLAB_ATOMIC is not needed -fix count bug in open() error path [PATCH] qlogic_cs: don't call qlogic_release on fail [PATCH] USB_STORAGE: remove a comment In 2.6, USB_STORAGE selects SCSI, so there's no longer a need for this comment. [PATCH] USB: remove USB_SCANNER MAINTAINERS entry When sending the patch to remove USB_SCANNER, I forgot to remove the MAINTAINERS entry. [PATCH] qlogicfas: kill QL_USE_IRQ [PATCH] qlogicfas: use qlogicfas_name instead qinfo [PATCH] qlogicfas: begin to convert qlogicfas to new driver [PATCH] qlogicfas: disable irqs on exit [PATCH] qlogicfas: support multiple cards [PATCH] qlogicfas: move common definitions to qlogicfas.h [PATCH] qlogicfas: finish to convert to new scsi driver [PATCH] USB: fix net2280 section usage net2280_remove() is called by net2280_probe() so it shouldn't be marked as __exit; [PATCH] USB: usbcore doc update Some doc updates, mostly from Alan Stern, clarifying quetions folk have asked recently about unlinking and about iso transfers. [PATCH] qlogic_cs: use own MODULE_ macros [PATCH] SCSI: megaraid /proc dir fix I know that LSI are working on an updated driver for 2.6, but would really like to see this bug fix placed in the main tree before then, whenever then happens to be. This patch fixes the problem of the /proc entries for this driver being created in the wrong location. [PATCH] buslogic init. section fix V: linux-264-rc2 D: BusLogic_AnnounceDriver() can be called after init; diffstat:= drivers/scsi/BusLogic.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) [PATCH] ia64: fix preempt bug in IA32 subsystem Without this patch, IA32 programs will stall when CONFIG_PREEMPT is enabled. [PATCH] ia64: Altix affinity fix [PATCH] USB gadget: dualspeed {run,compile}-time flags This is the first several autoconfig patches; please merge. This particular one abstracts dual-speed (high and full) support. Support some more autoconfiguration for gadget drivers. Run-time: * Add gadget->is_dualspeed flag for controllers to set. * Tested by "ethernet" gadget, to decide whether certain operations are errors or not. * Turned on by net2280. Compile-time * Generic CONFIG_USB_GADGET_DUALSPEED, not net2280-specific. * Used by "ethernet" gadget, to decide whether to include extra code and data for dual-speed support. * Turned on by net2280. The basic idea behind this, and other autoconfig patches yet to come, is minimizing the controller-specific compile-time configuration needed by gadget drivers. [PATCH] USB: usb_unlink_urb() has distinct "not linked" fault This gets rid of an often-bogus diagnostic, and lets at least the unlink test code recover reasonably when it hits that brief window while another CPU has gotten the complete() callback but hasn't yet resubmitted. Return distinct code when unlinking an urb that's not linked. This lets drivers handle this fault sanely, when they need to. Gets rid of annoying non-error messages about drivers that unlink in disconnect() even when the urb isn't linked. [PATCH] USB: usbtest updates (new firmware) This includes some small updates to "usbtest", mostly from Martin Diehl. Please merge. usbtest updates, supporting new firmware - Support the new usbtest_fw-20040305 EZ-USB firmware, which renumerates and handles full speed ISO transfers. (From Martin Diehl.) - Minor cleanups: use dev_dbg(), let some slightly-off devices work in the control queueing test. - Be pickier about unlink tests: insist that async and sync unlinks give the appropriate fault code. [PATCH] USB: usb buffer allocation shouldn't require DMA Deepak's recent dma_pool changes accidentally assumed that all HCDs use DMA. The fix is simple: use kmalloc/kfree when there's no DMA. [PATCH] USB gadget: gadget zero, simplified controller-specific configuration This removes several controller-specific #define, and converts to using the config_buf utilities. Depends on the patch I submitted yesterday. Looking simpler! Simplify "gadget zero" compile-time configuration. This removes several controller-specific compile-time config options; the others are about to be autoconfigured. - HIGHSPEED replaced by CONFIG_USB_GADGET_DUALSPEED - Default to self-powered operation - There's no UI for remote wakeup It also uses the new config_buf utilities, so it's a bit easier to see what's really going on (this driver implements four configurations). [PATCH] USB: unusual_devs.h update *** linux-2.6.3/drivers/usb/storage/unusual_devs.h 2004-02-18 04:59:06.000000000 +0100 [PATCH] USB: Altsetting/interface update for USB image drivers This patch contains minute updates for the hpusbscsi, mdc800, and microtek drivers. Only two things are worth noting. In the mdc800 driver I removed some unnecessary calls to usb_driver_claim_interface(), usb_driver_release_interface(), and usb_set_interface(). Likewise, in the microtek driver I removed an unnecessary call to usb_set_interface(). [CRYPTO]: Fix arc4 test vector. [PATCH] PCI Hotplug: Fix PCIE and SHPC hotplug drivers for ia64 This patch fixes the PCIE and SHPC hotplug driver for ia64. The function pcibios_set_irq_routing only exists on x86, and acpi_bridges_head may be NULL, so don't crash. Andreas. [PATCH] PCI Hotlug: fix acpiphp unable to power off slots Attached patch includes the I/O space fix and applies to 2.6.3. This should also solve the problem Maeda-san reported in January (sorry for replying so late!) Here are changes in the patch: - fix the acpiphp driver not powering down a PCI card (from Gary Hade) - fix I/O space size calculation and ISA aliasing (from Gary Hade) - fix some debug messages - only execute ACPI methods on the first existing function [PATCH] PCI Hotplug: rpaphp/rpadlpar latest (support for vio and multifunction devices ) [PATCH] PCI Hotplug: fix compiler warning in acpiphp driver [IPVS]: Fix typo in Config.in [PATCH] I2C: Cleanup fan_div in w83781d Here is a proposed patch that cleanups the fan_div code from w83781d. The original code was obviously taken from the 2.4 driver, but the way things were done in 2.4 do not make any sense anymore (because we now have a single value per interface file). Since fan divisor bits are spread over three different regs with various bitmask manipulations, I don't think it makes much sense to have a single function as we do in most other cases. Having three different functions makes more sense, although they are of course similar. The size increment is only 581 bytes, I don't think its a problem since it also makes the code much more efficient and readable too IMHO. I agree that the original code was working - it was simply doing far too much work each time one would want to change a fan divisor. Originally, I took a look at the code because I wanted to fix the fact that changing fan divisors breaks fan mins. But it looked like a good cleanup before doing that was required. Once this patch will have been accepted, I'll work on the other one. I've tested my patch successfully on a W83781D and an AS99127F rev.1. Note that this means that one part of the code wasn't tested, because these are the two chips of the family that do not support divisors greater than 8. If anyone can test it, please do. [IPV4]: Do not leak cork.opt in ip_push_pending_frames(). [PATCH] USB: usblp.c (Was: usblp_write spins forever after an error) Paulo Marques wrote: > David Woodhouse wrote: > >> On Thu, 2004-03-04 at 12:33 +0000, Paulo Marques wrote: >> >>> Yes, unfortunately it did went into 2.6.4-rc1. However it is already >>> corrected in 2.6.4-rc2. Luckily it didn't went into any "non-rc" >>> official release. >>> >>> Please try 2.6.4-rc2, and check to see if the bug went away... >>> >> >> Seems to work; thanks. Does this need backporting to 2.4 too? >> > > > Unfortunately this isn't over yet. > > I got suspicious about this bug fix, because I *did* test my patch > before submitting it and the kernel that didn't work before, worked fine > with my patch. > > But now it seems that it is the other way around. After a few digging I > found out the problem: > > The application that I was testing with uses the usblp handle with > non-blocking I/O . > > So my patch does work for non-blocking I/O uses of the port, but wrecks > the normal blocking mode. > > I've already produced a version that works for both cases. I'll just > clean it up a bit and submit it to 2.4 and 2.6 kernels. Here it is. The patch is only one line for 2.6.4-rc2. (I also did a little formatting adjustment to better comply with CodingStyle) For the 2.4.26-pre1 kernel, I also backported the return codes correction patch from Oliver Neukum. The problem with the write function was that, in non-blocking mode, after submitting the first urb, the function would return with -EAGAIN, not reporting to the application that in fact it had already sent "transfer_length" bytes. This way the application would have to send the data *again* causing lots of errors. It did return the correct amount with my first patch, because the writecount was being updated on the end of the loop. However this was wrong for blocking I/O. The "transfer_length" local variable is still needed because if we used the transfer_buffer_length field from the urb, then on a second call to write, if the urb was still pending (in non-blocking mode), the write would return an incorrect amount of data written. Anyway, this time I tested it using blocking and non-blocking I/O and it works for both cases. Even better, this patch only changes the behaviour for non-blocking I/O, and keeps the same behaviour for the more usual blocking I/O (at least on kernel 2.6). [PATCH] Patch to hook up PPP to simple class sysfs support * Hanna Linder (hannal@us.ibm.com) wrote: > + ppp_class = class_simple_create(THIS_MODULE, "ppp"); > + class_simple_device_add(ppp_class, MKDEV(PPP_MAJOR, 0), NULL, "ppp"); What happens if that class_simple_create() fails? Actually, class_simple_device_add could fail too, but doesn't seem anybody is checking for that. > err = devfs_mk_cdev(MKDEV(PPP_MAJOR, 0), > S_IFCHR|S_IRUSR|S_IWUSR, "ppp"); > - if (err) > + if (err) { > unregister_chrdev(PPP_MAJOR, "ppp"); > + class_simple_device_remove(MKDEV(PPP_MAJOR,0)); > + } need to destroy the class on error path to avoid leak. > @@ -2540,6 +2547,7 @@ static void __exit ppp_cleanup(void) > if (unregister_chrdev(PPP_MAJOR, "ppp") != 0) > printk(KERN_ERR "PPP: failed to unregister PPP device\n"); > devfs_remove("ppp"); > + class_simple_device_remove(MKDEV(PPP_MAJOR, 0)); ditto. this will leak and would cause oops on reload of module. something like below. [PATCH] class_simple clean up in lp Error condition isn't caught on class_simple_create, and parport_register_driver failure doesn't do proper cleanup. [PATCH] class_simple cleanup in input Doesn't catch error on class_simple_add, and existing error return paths forget to class_simple_destroy. [PATCH] class_simple cleanup in misc Error path doesn't class_simple_destroy. [PATCH] class_simple cleanup in sg The only spot that seems to care about class_simple_device_add possibly failing, but it gets the wrong error test. [IPV6]: Kill unused warnings in addrconf.c [PATCH] Add sysfs simple class support for netlink Patch adds sysfs simple class support for netlink character device (Major 36). Feedback appreciated. Thanks, [libata] make set_{pio,udma}mode hooks optional Only one driver actually uses them. [PATCH] G5 temperature control update This makes the temperature control code more robust, putting less pressure on i2c, and work around occasional misconfiguration of the ADC chips leading to incorrect temperature readings. Delete (void)func() casts considered cruft in Linux style. GCC's inability to warn when return values are ignored has conditioned Linux programmers into thinking that this is actually normal. delete some #define's -- suggested by Matt Wilcox [ACPI] fix printk and build warning from previous csets [PATCH] x86-64 merge for 2.6.4 The biggest new feature is fixed 32bit vsyscall (SYSCALL+SYSENTER) support, mostly from Jakub Jelinek. This increases 32bit syscall performance greatly (latency halved and better). The SYSENTER for Intel support required some infrastructure changes, but seems to work now too. The 64bit vsyscall vtime() just references xtime.tv_sec now. This should make it a lot faster too. A fix for some Intel IA32e systems. Also a few long standing bugs in NMI like exception handlers were fixed. And a lot of other bug fixes. Full changeLog: - Clean up 32bit address room limit handling, fix 3gb personality - Move memcpy_{from,to}io export to ksyms.c file. This seems to work around a toolchain bug (Andreas Gruenbacher) - Update defconfig - ACPI merges from i386 (SBF should work now, acpi=strict) - Implement mmconfig support based on i386 code (untested) - Fix i386/x86-64 pci source file sharing - Implement ptrace access for 32bit vsyscall page - Always initialize all 32bit SYSENTER/SYSCALL MSRs. - Export run time cache line size to generic kernel - Remove explicit CPUID in ia32 syscall code - Fill in most of boot_cpu_data early - Remove unused PER_LINUX32 setup - Fix syscall trace in fast 32bit calls (Suresh B. Siddha) - Tighten first line of the oops again. - Set up ptrace registers correctly for debug,ss,double fault exceptions - Fix 64bit bug in sys_time64 - Optimize time syscall/vsyscall to only read xtime - Fix csum_partial_copy_nocheck - Remove last traces of FPU emulation - Check properly for rescheduling in exceptions with own stack - Harden exception stack entries (#SS,#NMI,#MC,#DF,#DB) against bogus GS - Use an exception stack for machine checks - Handle TIF_SINGLESTEP properly in kernel exit - Add exception stack for debug handler - Disable X86_HT for Opteron optimized builds because it pulls in ACPI_BOOT - Fix CONFIG_ACPI_BOOT compilation without CONFIG_ACPI - Fix eflags handling in SYSENTER path (Jakub Jelinek) - Use atomic counter for enable/disable_hlt - Support 32bit SYSENTER vsyscall too (Jakub Jelinek) - Don't redefine Dprintk - Change some cpu/apic id arrays to char - Support arbitary cpu<->apicid in hard_smp_processor_id (Surresh B Sidda) - Move K8 erratum #100 workaround into slow path of page fault handler. - Fix 32bit cdrom direct access ioctls (Jens Axboe) - Enable 32bit vsyscalls by default - Fix 32bit vsyscalls (Jakub Jelinek) [PATCH] Fix a 64bit bug in kobject module request From Takashi Iwai kobj_lookup had a 64bit bug, which caused the request of a unknown character device to burn CPU instead of failing quickly. Input: when disconnecting PS/2 mouse give protocol's disconnect handler chance to run before starting ignoring mouse data. Otherwise interrupt handler will discard all ACKs and the very first command in cleanup sequence will fail (Synaptics was failing to return to relative mode on module unload). Input: do a full reset of Synaptics touchpad if extended protocol probes failed, otherwise trackpoint on the pass-through port may stop working (reset-disable isn't enough to revive it) ia64: don't unmask iosapic interrupts by default In ia64 kernel, IOSAPIC's RTEs for PCI interrupts are unmasked at the boot time before installing device drivers. I think it is very dangerous. If some PCI devices without device driver generate interrupts, interrupts are generated repeatedly because these interrupt requests are never cleared. I think RTEs for PCI interrupts should be unmasked by device driver. This patch fixes the problem. Input: if Synaptics' absolute mode is disabled make sure that touchpad is reset back to relative mode and gestures (taps) are enabled [PATCH] Fix class_register() always returns 0 I noticed that the class_register() function in drivers/base/class.c always returns 0 and thus will never fail. Patch below inserts simple error checking to return any errors if they occur. Feedback welcome. Thanks, PPC32: Update the Motorola PowerPlus family support. From Randy Vinson Kobject: add decl_subsys_name() macro for users who want to set the subsystem name PCI Hotplug: use the new decl_subsys_name() macro instead of rolling our own. [PATCH] add sysfs simple class support for DRI char device Patch adds sysfs simple class support for DRI character device (Major 226). Also, adds some error checking. [PATCH] USB Gadget: add "gadget_chips.h" This adds standard gadget_is_*() calls. Gadget drivers using those calls can get rid of some inlined #ifdefs, and will also be able to do more "late binding" to their hardware. Define gadget_is_*() calls, to help do late binding to USB controllers. Current gadget drivers expect to know at compile time what hardware they'll bind to. That's not very friendly to a generic PDA distro, which might prefer to defer such choices to run time. These macros let drivers change that code from inlined #ifdefs (ugh) to normal C statements (looks much nicer), so making those "what hardware" policy choices at run time gets easier. [PATCH] I2C: sensor chip driver refactoring This patch is a refactoring of some common code among all sensors chip drivers (except asb100, which was written this way to begin with.) It saves a handful of lines and ~100-300 bytes per module. It compiles ok. I've only tested it against one of the drivers, but the changes are similar across the board and quite mechanical. Please apply. [PATCH] ia64: Convert to use the generic drivers/Kconfig mechanism. [PATCH] ia64: fix misc. sn2 warnings This patch fixes a few warnings that have cropped up in the sn2 code: - hwgfs function prototype mismatch - pconn uninitialized in pciio.c - printk formatting fixes in pcibr_dvr.c - kill volatile qualifier in pcibr_intr.c input: fixes in wacom.c -use GFP_KERNEL where SLAB_ATOMIC is not needed -fix count bug in open() error path [PATCH] fix PPC64 iSeries virtual console devices While playing with udev, I discovered that the virtual console devices on iSeries had there minor numbers off by one i.e. /dev/tty1 was minor 2! This fixes it. [PATCH] user data -> request mapping This patch allows you to map a request with user data for io, similarly to what you can do with bio_map_user() already to a bio. However, this goes one step further and populates the request so the user only has to fill in the cdb (almost) and put it on the queue for execution. Patch converts sg_io() to use it, next patch I'll send adapts cdrom layer to use it for zero copy cdda dma extraction. [PATCH] CDROMREADAUDIO dma support This small patch builds on top of the blk_rq_map_user() patch just sent, and enables us to easily support DMA for CDROMREADAUDIO cdda extraction. It's quite amazing how much cool stuff you can with the new block layer :-) Patch has intelligent fall back from multi frame dma to single frame dma, and further to old-style pio ripping in case of hardware problems. [PATCH] fix ppc64 in kernel syscalls Thanks to some great debugging work by Olaf Hering and Marcus Meissner it has been noticed that the current ppc64 syscall code is corrupting 4 bytes past errno. Why we even bothered to set errno beats me, its unusable in the kernel. Since we had to reinstate the inline syscall code we can go back to using it for those few syscalls that we call. Especially now with Randy's syscall prototype cleanup we should be calling them directly but we can do that sometime later. [PATCH] ppc32: Fix G5 config space access lockup Fix a typo in the code that prevents lockup on config space access to sleeping devices on ppc32/G5. Please apply. [PATCH] print kernel version in oops messages From: Arjan van de Ven Unfortunatly a large portion of the oops reports lack the basic information about what kernel version the oops is for; it's trivial to just print this in the oops as well to improve the usefulness of bugreports... [PATCH] ppc64: fix initialisation of NUMA arrays From: Anton Blanchard We were hitting problems on machines with cpu_possible != cpu_online when NUMA was enabled. The debug checks would trip during scheduler init because we iterate through all possible cpus whereas we only set up NUMA information for online cpus. Longer term we should have a cpu_up hook which sets up its NUMA information but for now we initalise all possible cpus and memory to node 0. [PATCH] Clean up sys_ioperm stubs From: Brian Gerst Remove stubs for sys_ioperm for non-x86 arches, using sys_ni_syscall instead where applicable. Support for sys_ioperm is unconditionally no for non-x86 arches. [PATCH] readdir() cleanups From: cramfs and freevxfs explicitly mark themselves readonly (as other r/o fs do). afs marked noatime (ACKed by maintainer) filesystems that do not do update_atime() in their ->readdir() had been explicitly marked nodiratime. NOTE: cifs, coda and ncpfs almost certainly need full noatime as we currently have in nfs and afs. update_atime() call shifted to callers of ->readdir() and out of ->readdir() instances. Bugs caught: dcache_readdir() updated atime only if it reached EOF. bfs_readdir() - ditto. qnx4_readdir() - ditto. [PATCH] adaptive lazy readahead From: Suparna Bhattacharya From: Ram Pai Pipelined readahead behaviour is suitable for sequential reads, but not for large random reads (typical of database workloads), where lazy readahead provides a big performance boost. One option (suggested by Andrew Morton) would be to have the application pass hints to turn off readahead by setting the readahead window to zero using posix_fadvise64(POSIX_FADV_RANDOM), and to special-case that in do_generic_mapping_read to completely bypass the readahead logic and instead read in all the pages needed directly. This was the idea I started with. But then I thought, we can do a still better job ? How about adapting the readahead algorithm to lazy-read or non-lazy-read based on the past i/o patterns ? The overall idea is to keep track of average number of contiguous pages accessed in a file. If the average at any given time is above ra->pages the pattern is sequential. If not the pattern is random. If pattern is sequential do non-lazy-readahead( read as soon as the first page in the active window is touched) else do lazy-readahead. I have studied the behaviour of this patch using my user-level simulator. It adapts pretty well. Note from Suparna: This appears to bring streaming AIO read performance for large (64KB) random AIO reads back to sane values (since the lazy readahead backout in the mainline). [PATCH] read-only support for UFS2 From: Niraj Kumar This patch adds read-only support for ufs2 (used in FreeBSD 5.x) variant of ufs filesystem. For filesystem specific tools, see http://ufs-linux.sourceforge.com . [PATCH] fb_console_init fix From: James Simmons This patch fixes fb_console_init from being called twice. I still need to fix set_con2fb but this helps but this is still important to get in. [PATCH] time interpolator fix From: john stultz In developing the ia64-cyclone patch, which implements a cyclone based time interpolator, I found the following bug which could cause time inconsistencies. In update_wall_time_one_tick(), which is called each timer interrupt, we call time_interpolator_update(delta_nsec) where delta_nsec is approximately NSEC_PER_SEC/HZ. This directly correlates with the changes to xtime which occurs in update_wall_time_one_tick(). However in update_wall_time(), on a second overflow, we again call time_interpolator_update(NSEC_PER_SEC). However while the components of xtime are being changed, the overall value of xtime does not (nsec is decremented NSEC_PER_SEC and sec is incremented). Thus this call to time_interpolator_update is incorrect. This patch removes the incorrect call to time_interpolator_update and was found to resolve the time inconsistencies I had seen while developing the ia64-cyclone patch. [PATCH] teach /proc/kmsg about O_NONBLOCK If there's nothing available and the file is O_NONBLOCK, return -EAGAIN. This is a bit grubby - really we should push the file* down into do_syslog() and handle it inside the spinlock. [PATCH] remove __io_virt_debug From: Brian Gerst Drivers should all be converted to use ioremap() or isa_*() by now. [PATCH] genrtc: cleanups From: "Randy.Dunlap" From: Luiz Fernando Capitulino remove ifdef/endif in rtc_generic_init(). use returned error code; [PATCH] i386 very early memory detection cleanup patch From: "H. Peter Anvin" This patch cleans up the very early memory setup on the i386 platform. In particular, it removes the hard-coded 8 MB limit completely by dynamically creating the early-boot pagetables rather than having them hard coded. While I was at it, I changed head.S so that it always sets up a local GDT; this means among other things that SMP and VISWS are no longer special cases, and is conceptually cleaner to boot. The VISWS people have confirmed it works on VISWS. It also uses a separate entrypoint for non-boot processors since this is completely kernel-internal anyway. This eliminates the need to set %bx on boot. (If you think this is a bad idea I can eliminate this change; it just seemed cleaner to me to do it this way.) Additionally, zero bss with rep;stosl rather that rep;stosb. [PATCH] Allow X86_MCE_NONFATAL to be a module From: Herbert Xu By allowing X86_MCE_NONFATAL to be a module, it can be included in distribution kernels without upsetting those with strange hardware. [PATCH] dm: endio method From: Joe Thornber Add an endio method to targets. This method is allowed to request another shot at failed ios (think multipath). Context can be passed between the map method and the endio method. [PATCH] dm: list_for_each_entry audit From: Joe Thornber Audit for list_for_each_*entry* [PATCH] dm: default queue limits From: Joe Thornber Fill in missing queue limitations when table is complete instead of enforcing the "default" limits on every dm device. Problem noticed by Mike Christie. [Christophe Saout] [PATCH] dm: list targets cmd From: Joe Thornber List targets ioctl. [Patrick Caulfield] [PATCH] dm: stripe width fix dm-stripe.c: The stripe width must be at least the page size. [PATCH] selinux: clean up binary mount data From: James Morris selinux is currently inspecting the filesystem name ("nfs" vs "coda" vs watever) to work out whether it needs to hanbdle binary mount data. Eliminate all that by adding a flag to file_system_type.fs_flags. [PATCH] UDF filesystem update From: Ben Fennema - added udf 2.5 #defines - fixed prealloc discard race - fixed several bugs in inode_getblk - added S_IFSOCK support - fix unicode encoding bug - change partition allocation from kmalloc to vmalloc for large allocations [PATCH] kbuild: Remove CFLAGS assignment in i386/mach-*/Makefile From: Sam Ravnborg The EXTRA_CFLAGS assignments in the following files are a left-over from the early 2.5 days where the source was not compiled from the root of the source tree. Removing these wrong assignments fixes http://bugme.osdl.org/show_bug.cgi?id=2210 A script named 'kernel' in the .. directory no longer halt compilation. [PATCH] NUMA-aware zonelist builder From: The attached patch is NUMA-aware zonelist builder patch, which sorts zonelist in the order that near-node first, far-node last. In lse-tech and linux-ia64, where most of NUMA people resides, no objections are raised so far. The patch adds NUMA-specific version of build_zonelists which calls find_next_best_node to select the next-nearest node to add to zonelist. The patch has no effect on flat NUMA platform. [PATCH] Redundant unplug_timer deletion From: "Chen, Kenneth W" The only path to get to del_timer call in __generic_unplug_device() is when blk_remove_plug() returns 1, and in that case it already removed the unplug_timer. Patch to remove this redundant call. [PATCH] compiler.h scoping fixes From: Ville Nuorvala There are a few kernel-only things in compiler.h which should have been placed inside __KERNEL__. [PATCH] Fix elf mapping of the zero page From: William Lee Irwin III Using PAGE_SIZE rather than 4096 so that mmap() granularity is honored by whatever non-i386 architectures use MMAP_PAGE_ZERO. [PATCH] kbuild: Cause `make clean' to remove more files From: Sam Ravnborg Make the difference between 'make clean' and 'make distclean/mrproper' more explicit. make clean now removes all generated files except .config* and .version. The result is much easier to understand now. make clean deletes all generated files (except .config* and .version). make mrproper deletes configuration and all temporary files left by patch, editors and the like. Example output: > make mrproper CLEAN init CLEAN usr CLEAN scripts/kconfig CLEAN scripts CLEAN .tmp_versions include/config CLEAN include/asm-i386/asm_offsets.h include/linux/autoconf.h include/linux/version.h include/asm .tmp_versions CLEAN .version .config Form the list of files/directories deleted during make clean, removed all references that is no longer relevant for the current kernel. [PATCH] LOOP_CHANGE_FD ioctl From: Arjan van de Ven The patch below (written by Al Viro) solves a nasty chicken-and-egg issue for operating system installers (well at least anaconda but the problem domain is not exclusive to that) The basic problem is this: - The small first stage installer locates the image file of the second stage installer (which has X and all the graphical stuff); this image can be on the same CD, but it can come via NFS, http or ftp or ... as well. - The first stage installer loop-back mounts this image and gives control to the second stage installer by calling some binary there. - The graphical installer then asks the user all those questions and starts installing packages. Again the packages can come from the CD but also from NFS or http or ... Now in case of a CD install, once all requested packages from the first CD are installed, the installer wants to unmount and eject the CD and prompt the user to put CD 2 in....... EXCEPT that the unmount can't work since the installer is actually running from a loopback mount of this cd. The solution is a "LOOP_CHANGE_FD" ioctl, where basically the installer copies the image to the harddisk (which can only be done late since only late the target harddisk is mkfs'd) and then magically switches the backing store FD from underneath the loop device to the one on the target harddisk (and thus unbusying the CD mount). This is obviously only allowed if the size of the new image is identical and if the loop image is read-only in the first place. It's the responsibility of root to make sure the contents is the same (but that's of the give-root-enough-rope kind) [PATCH] loop setup race fix From: Chris Mason There's a race in loopback setup, it's easiest to trigger with one or more procs doing loopback mounts at the same time. The problem is that fs/block_dev.c:do_open() only calls bdev_set_size on the first open. Picture two procs: proc1: mount -o loop file1 mnt1 proc2: mount -o loop file2 mnt2 proc1 proc2 open /dev/loop0 # bd_openers now 1 do_open bd_set_size(bdev, 0) # loop unbound, so bdev size is 0 open /dev/loop0 # bd_openers now 2 loop_set_fd # disk capacity now correct, but # bdev not updated mount /dev/loop0 /mnt do_open Because bd_openers != 0 for the last do_open, bd_set_size is not called again and a size of 0 is used. This eventually leads to an oops when the loop device is unmounted, because fsync_bdev calls block_write_full_page who decides every page on the block device is outside i_size and unmaps them. When ext2 or reiserfs try to sync a metadata buffer, we get an oops on because the buffers are no longer mapped. The patch below changes loop_set_fd and loop_clr_fd to also manipulate the size of the block device, which fixes things for me. [PATCH] kbuild: fix usage with directories containing '.o' From: Sam Ravnborg From: Daniel Mack , me modpost unconditionally searched for ".o" assuming this is always the suffix of the module. This fails in two cases: a) when building external modules where any directory include ".o" in the name. One example is a directory named: .../cvs.alsa.org/... b) when someone names a kernel directory so it contains ".o". One example is drivers/scsi/aic.ok/... case b) was triggered by renaming the directory for aic7xxx, and modifying Makefile and Kconfig. This caused make modules to fail. [PATCH] Remove unneeded unlock in ipc/sem.c From: Manfred Spraul sem_revalidate checks that a semaphore array didn't disappear while the code was running without the semaphore array spinlock. If the array disappeared, then it will return without holding a lock. find_undo calls sem_revalidate and then sem_unlock, even if sem_revalidate failed. The sem_unlock call must be removed. Mingming Cao reported a spinlock deadlock with sysv semaphores. A superflous unlock doesn't explain the deadlock, but it's obviously a bug. [PATCH] /proc data corruption check From: Arjan van de Ven If someone removes a /proc directory which still has subdirectories it will lead to very nasty things (dentries remaining on hash chains etc etc etc). The BUG_ON in the patch below will catch this nasty situation. [PATCH] Enable i810 fb on x86-64 From: Andi Kleen i810fb most likely is needed on x86-64 too because there are Intel chipsets for it now. So far it only linked on i386, fix this. [PATCH] Remove arbitrary #acl entries limits on ext[23] when reading From: Andreas Gruenbacher Remove the arbitrary limit of 32 ACL entries on ext[23] when reading from disk. This change is backward compatible; we need to have this change in to be able to also allow writing big ACLs. The second patch that removes the ACL entry limit for writes is not included. I don't want to push that patch now, because large ACLs would cause 2.4 and current 2.6 kernels to fail. My plan is to remove the second limit later, in a half-year or year or so. [PATCH] watchdog: moduleparam-patches From: Wim Van Sebroeck Convert last set of watchdog drivers to new moduleparam system. [PATCH] AMD ELAN Kconfig fix From: Adrian Bunk - remove an MELAN entry that was forgotten in the i386 processor selection menu - s/CONFIG_MELAN/CONFIG_X86_ELAN/ was missing in module.h [PATCH] fadvise(POSIX_FADV_DONTNEED) fixups From: WU Fengguang - In sys_fadvise64_64(): if the start and/or end offsets do not fall on page boundaries, preserve the partial pages. The thinking here is that it is better to preserve needed memory than to not shoot down unneeded memory. - In invalidate_mapping_pages(): we were invalidating an entire pagevec's worth of pages each time around, even if that went beyond the part of the file which the caller asked to be invalidated. Fix that up. [PATCH] Fix and harden validate_mm From: Andi Kleen I was debugging some code that corrupted the vma rb lists and for that I fixed validate_mm to not be recursive and do some more checks. It's slower now, but that shouldn't be a problem. Also make it non static to allow easier checks elsewhere. [PATCH] current_is_keventd() speedup From: Srivatsa Vaddagiri current_is_keventd() doesn't need to search across all the CPUs to identify itself. [PATCH] Fix rootfs on ramdisk From: vda Add a missing test for the "root=/dev/ram" kernel boot option. It's just an alias for /dev/ram0, but it worked in 2.4... [PATCH] Fix reading the last block on a bdev From: Chris Mason This patch fixes a problem we're hitting on ia64 with page sizes > 4k. When the page size is greater than the block size, and parts of the page fall past the end of the device, readpage will fail because blkdev_get_block returns -EIO for blocks past i_size. The attached patch changes blkdev_get_block to return holes when reading past the end of the device, which allows us to read that last valid 4k block and then fill the rest of the page with zeros. Writes will still fail with -EIO. [PATCH] wavfront.c needs syscalls.h sound/oss/wavfront.c: In function `wavefront_download_firmware': sound/oss/wavfront.c:2524: warning: implicit declaration of function `sys_open' sound/oss/wavfront.c:2533: warning: implicit declaration of function `sys_read' sound/oss/wavfront.c:2582: warning: implicit declaration of function `sys_close [PATCH] EDD: Get Legacy Parameters From: Matt Domsch Patch below from Patrick J. LoPresti and myself. Patrick describes: Why this patch? The problem is that the legacy BIOS interface (INT13/AH=3D08) for querying the disk geometry returns different values than the extended INT13 interface which the EDD code currently uses. This is because the legacy interface only provides a 10-bit cylinder field, so modern BIOSes "lie" about the head/sector counts in order to make more of the disk visible within the first 1024 cylinders. Many non-Linux applications, including the stock Windows boot loader, DOS fdisk, etc., rely upon the legacy interface and geometry. So it is useful to be able to obtain the legacy values from a running Linux kernel. What this patch does is to add new entries under /sys/firmware/edd/int13_devXX named "legacy_cylinders", "legacy_heads", and "legacy_sectors". These provide the geometry given by the legacy INT13/AH=3D08 BIOS interface, just like the current "default_cylinders" etc. provide the the geometry given by the INT13/AH=3D48 interface. Without this patch, I cannot use Linux to partition a drive and install Windows, which happens to be my application. - Pat http://unattended.sourceforge.net/ In addition, this adds two buggy BIOS workarounds in the EDD int13 calls as suggested by Ralf Brown's interrupt list. I'm also interested in moving this code out of arch/i386/kernel/edd.c and include/asm-i386/edd.h, as I believe it is applicable on x86-64 as well. However, there's no good place under drivers/ to put edd.c when it's not tied to a bus, but to several CPU architectures and their firmwares... Maybe a new directory drivers/firmware? [PATCH] cciss: init section fix From: "Randy.Dunlap" cciss_scsi_detect() can be called after init (for TAPE support). [PATCH] add nowarn to a few pte chain allocators From: Arjan van de Ven Several of the pte_chain_alloc() allocators that use GFP_ATOMIC have a fallback for failure that sleeps; they thus need to not warn on failure.. Seen during a big fork on a busy system. [PATCH] Disable Macintosh device drivers for all but PPC || MAC From: Marc-Christian Petersen The attached patch is needed to stop showing us "Macintosh device drivers" for all architectures via menuconfig || xconfig || gconfig. It's only necessary for PPC and/or MAC. ACKed by benh. [PATCH] Applicom warning From: Geert Uytterhoeven Add missing include (needed for struct inode) [PATCH] Fix CONFIG_NVRAM dependencies From: Geert Uytterhoeven Make CONFIG_NVRAM depend on the prerequisites that are explicitly checked for in drivers/char/nvram.c, or on CONFIG_GENERIC_NVRAM (for PPC). [PATCH] fix raid0 readahead size From: Arjan van de Ven Readahead of raid0 was suboptimal; it read only 1 stride ahead. The problem with this is that while it will keep all spindles busy, it will not actually manage to make larger IO's, eg each disk would just do the chunk size IO. Doing at least 2 chunks is more than appropriate so that each spindle will get a chance to merge IO's. (Neil fixed raid6 and raid6 too) [PATCH] Fix NULL pointer dereference in blkmtd.c From: Michel Marti The blkmtd driver oopses in add_device(). The following trivial patch fixes this. [PATCH] fbdev: monitor detection fixes From: James Simmons , Kronos Various fixes and enhancements to the monitor hardware detection code. The only driver that uses it is the radeon driver. Old EDID parsing code was very verbose, half of the patch address this (ie. print lots of stuff iff DEBUG). The other big change is the FB_MODE_IS_* stuff: we really need a way to know the origin of a video mode. In this way we can select video mode that comes from EDID instead of VESA or GTF. Drivers other than radeonfb won't be affected because they cannot (yet) get EDID from the monitor and don't use EDID related code. [PATCH] m68k: __test_and_set_bit() From: Geert Uytterhoeven Add missing implementation for non-atomic __test_and_set_bit() [PATCH] m68k: Amiga Framemaster II fb sysfsification From: Geert Uytterhoeven Amiga Framemaster II fb: Add sysfs support (from James Simmons) [PATCH] Apollo fb sysfsification From: Geert Uytterhoeven Apollo fb: Add sysfs support (from James Simmons) [PATCH] m68k: Macintosh IDE fixes From: Geert Uytterhoeven Mac IDE: Make sure the core IDE driver doesn't try to request the MMIO ports a second time, since this will fail. [PATCH] m68k: interrupt management cleanups From: Geert Uytterhoeven M68k interrupt management: rename routines to not confuse them with syscalls - sys_{request,free}_irq() -> cpu_{request,free}_irq() - q40_sys_default_handler[] -> q40_default_handler - sys_default_handler() -> default_handler() [PATCH] Add barriers to avoid race in mempool_alloc/free From: Chris Mason mempool_alloc() and mempool_free() check pool->curr_nr without any locks held. This can lead to skipping a wakeup when there are people waiting, and sleeping when there are free elements in the pool. I can't trigger this reliably, but sooner or later someone on ppc is probably going to hit it. [PATCH] synclinkmp.c update From: Paul Fulghum Patch for synclinkmp.c * Track driver API changes * Remove cast (kernel janitor) * Replace page_free call with kfree (to match kmalloc allocation) [PATCH] synclink_cs.c update From: Paul Fulghum * Track driver API changes * Remove cast (kernel janitor) [PATCH] synclink.c update From: Paul Fulghum * track driver API changes * remove cast (kernel janitor) [PATCH] vm: per-zone vmscan instrumentation To check on zone balancing, split the /proc/vmstat:pgsteal, pgreclaim pgalloc and pgscan stats into per-zone counters. Additionally, split the pgscan stats into pgscan_direct and pgscan_kswapd to see who's doing how much scanning. And add a metric for the number of slab objects which were scanned. [PATCH] return remaining jiffies from blk_congestion_wait() Teach blk_congestion_wait() to return the number of jiffies remaining. This is for debug, but it is also nicely consistent. [PATCH] Narrow blk_congestion_wait races From: Nick Piggin The addition of the smp_mb and the other change is to try to close the window for races a bit. Obviously they can still happen, it's a racy interface and it doesn't matter much. [PATCH] mm/vmscan.c: remove unused priority argument. From: Nikita Danilov Now that decision to reclaim mapped memory is taken on the basis of zone->prev_priority, priority argument is no longer needed. [PATCH] kswapd throttling fixes The logic in balance_pgdat() is all bollixed up. - the incoming arg `nr_pages' should be used to determine if we're being asked to free a specific number of pages, not `to_free'. - local variable `to_free' is not appropriate for the determination of whether we failed to bring all zones to appropriate free pages levels. Fix this by correctly calculating `all_zones_ok' and then use all_zones_ok to determine whether we need to throttle kswapd. So the logic now is: for (increasing priority) { all_zones_ok = 1; for (all zones) { to_reclaim = number of pages to try to reclaim from this zone; max_scan = number of pages to scan in this pass (gets larger as `priority' decreases) /* * set `reclaimed' to the number of pages which were * actually freed up */ reclaimed = scan(max_scan pages); reclaimed += shrink_slab(); to_free -= reclaimed; /* for the `nr_pages>0' case */ /* * If this scan failed to reclaim `to_reclaim' or more * pages, we're getting into trouble. Need to scan * some more, and throttle kswapd. Note that this * zone may now have sufficient free pages due to * freeing activity by some other process. That's * OK - we'll pick that info up on the next pass * through the loop. */ if (reclaimed < to_reclaim) all_zones_ok = 0; } if (to_free > 0) continue; /* swsusp: need to do more work */ if (all_zones_ok) break; /* kswapd is done */ /* * OK, kswapd is getting into trouble. Take a nap, then take * another pass across the zones. */ blk_congestion_wait(); } [PATCH] vmscan: preserve page referenced info in refill_inactive() From: Nick Piggin If refill_inactive_zone() is running in its dont-reclaim-mapped-memory mode we are tossing away the referenced infomation on active mapped pages. So put that info back if we're not going to deactivate the page. [PATCH] shrink_slab: math precision fix From: Nick Piggin In shrink_slab(), do the multiply before the divide to avoid losing precision. [PATCH] vm: shrink slab evenly in try_to_free_pages() From: Nick Piggin In try_to_free_pages(), put even pressure on the slab even if we have reclaimed enough pages from the LRU. [PATCH] vmscan: fix calculation of number of pages scanned From: Nick Piggin The logic which calculates the numberof pages which were scanned is mucked up. Fix. [PATCH] vm: scan slab in response to highmem scanning The patch which went in six months or so back which said "only reclaim slab if we're scanning lowmem pagecache" was wrong. I must have been asleep at the time. We do need to scan slab in response to highmem page reclaim as well. Because all the math is based around the total amount of memory in the machine, and we know that if we're performing highmem page reclaim then the lower zones have no free memory. [PATCH] vmscan: zone balancing fix We currently have a problem with the balancing of reclaim between zones: much more reclaim happens against highmem than against lowmem. This patch partially fixes this by changing the direct reclaim path so it does not bale out of the zone walk after having reclaimed sufficient pages from highmem: go on to reclaim from lowmem regardless of how many pages we reclaimed from lowmem. [PATCH] vmscan: drive everything via nr_to_scan Page reclaim is currently a bit schitzo: sometimes we say "go and scan this many pages and tell me how many pages were freed" and at other times we say "go and scan this many pages, but stop if you freed this many". It makes the logic harder to control and to understand. This patch coverts everything into the "go and scan this many pages and tell me how many pages were freed" model. It doesn't seem to affect performance much either way. [PATCH] Balance inter-zone scan rates When page reclaim is working out how many pages to san in a zone (max-scan) it presently rounds that number up if it looks too small - for work batching. Problem is, this can result in excessive scanning against small zones which have few inactive pages. So remove it. Not that it is possible for max_scan to be zero. That's OK - it'll become non-zero as the priority increases. [PATCH] vmscan: avoid bogus throttling - If max_scan evaluates to zero due to a very small inactive list and high `priority' numbers, we don't want to thrlttle yet. - In balance_pgdat(), we may end up not scanning any pages because all zones happened to be above pages_high. Avoid throttling in this case too. [PATCH] kswapd: avoid unnecessary reclaiming from higher zones Currently kswapd walks across all zones in dma->normal->highmem order, performing proportional scanning until all zones are OK. This means that pressure against ZONE_NORMAL causes unnecessary reclaim of ZONE_HIGHMEM. To fix that up we change kswapd so that it walks the zones in the high->normal->dma direction, skipping zones which are OK. Once it encounters a zone which needs some reclaim kswapd will perform proportional scanning against that zone as well as all the succeeding lower zones. We scan the lower zones even if they have sufficient free pages. This is because a) the lower zone may be above pages_high, but because of the incremental min, the lower zone may still not be eligible for allocations. That's bad because cache in that lower zone will then not be scanned at the correct rate. b) pages in this lower zone are usable for allocations against the higher zone. So we do want to san all the relevant zones at an equal rate. [PATCH] kswapd: fix lumpy page reclaim As kswapd is now scanning zones in the highmem->normal->dma direction it can get into competition with the page allocator: kswapd keep on trying to free pages from highmem, then kswapd moves onto lowmem. By the time kswapd has done proportional scanning in lowmem, someone has come in and allocated a few pages from highmem. So kswapd goes back and frees some highmem, then some lowmem again. But nobody has allocated any lowmem yet. So we keep on and on scanning lowmem in response to highmem page allocations. With a simple `dd' on a 1G box we get: r b swpd free buff cache si so bi bo in cs us sy wa id 0 3 0 59340 4628 922348 0 0 4 28188 1072 808 0 10 46 44 0 3 0 29932 4660 951760 0 0 0 30752 1078 441 1 6 30 64 0 3 0 57568 4556 924052 0 0 0 30748 1075 478 0 8 43 49 0 3 0 29664 4584 952176 0 0 0 30752 1075 472 0 6 34 60 0 3 0 5304 4620 976280 0 0 4 40484 1073 456 1 7 52 41 0 3 0 104856 4508 877112 0 0 0 18452 1074 97 0 7 67 26 0 3 0 70768 4540 911488 0 0 0 35876 1078 746 0 7 34 59 1 2 0 42544 4568 939680 0 0 0 21524 1073 556 0 5 43 51 0 3 0 5520 4608 976428 0 0 4 37924 1076 836 0 7 41 51 0 2 0 4848 4632 976812 0 0 32 12308 1092 94 0 1 33 66 Simple fix: go back to scanning the zones in the dma->normal->highmem direction so we meet the page allocator in the middle somewhere. r b swpd free buff cache si so bi bo in cs us sy wa id 1 3 0 5152 3468 976548 0 0 4 37924 1071 650 0 8 64 28 1 2 0 4888 3496 976588 0 0 0 23576 1075 726 0 6 66 27 0 3 0 5336 3532 976348 0 0 0 31264 1072 708 0 8 60 32 0 3 0 6168 3560 975504 0 0 0 40992 1072 683 0 6 63 31 0 3 0 4560 3580 976844 0 0 0 18448 1073 233 0 4 59 37 0 3 0 5840 3624 975712 0 0 4 26660 1072 800 1 8 46 45 0 3 0 4816 3648 976640 0 0 0 40992 1073 526 0 6 47 47 0 3 0 5456 3672 976072 0 0 0 19984 1070 320 0 5 60 35 [PATCH] fix the kswapd zone scanning algorithm This removes a vestige of the old algorithm. We don't want to skip zones if all_zones_ok is true: we've already precalculated which zones need scanning and this just stops us from ever performing kswapd reclaim from the DMA zone. [PATCH] vmscan: less throttling of page allocators and kswapd This is just a random unsubstantiated tuning tweak: don't immediately throttle page allocators and kwapd when the going is getting heavier: scan a bit more of the LRU before throttling. [PATCH] vmscan: batch up inactive list scanning work From: Nick Piggin Use a "refill_counter" for inactive list scanning, similar to the one used for active list scanning. This batches up scanning now that we precisely balance ratios, and don't round up the amount to be done. No observed benefits, but I imagine it would lower the acquisition frequency of the lru locks in some cases, and make codepaths more efficient in general due to cache niceness. [PATCH] fix vm-batch-inactive-scanning.patch - prevent nr_scan_inactive from going negative - compare `count' with SWAP_CLUSTER_MAX, not `max_scan' - Use ">= SWAP_CLUSTER_MAX", not "> SWAP_CLUSTER_MAX". [PATCH] vm: balance inactive zone refill rates The current refill logic in refill_inactive_zone() takes an arbitrarily large number of pages and chops it down to SWAP_CLUSTER_MAX*4, regardless of the size of the zone. This has the effect of reducing the amount of refilling of large zones proportionately much more than of small zones. We made this change in may 2003 and I'm damned if I remember why. let's put it back so we don't truncate the refill count and see what happens. [PATCH] vmscan: add lru_to_page() helper From: Nick Piggin Add a little helper macro for a common list extraction operation in vmscan.c [PATCH] slab: avoid higher-order allocations From: Manfred Spraul At present slab is using 2-order allocations for the size-2048 cache. Of course, this can affect networking quite seriously. The patch ensures that slab will never use more than a 1-order allocation for objects which have a size of less than 2*PAGE_SIZE. Revert attribute_used changes in module.h. They were wrong. Cset exclude: akpm@osdl.org|ChangeSet|20040312161945|47751 [wireless] Add new Prism54 wireless driver. [wireless prism54] remove WIRELESS_EXT ifdefs [PATCH] drivers_net_wireless_airo.c '< 0' comparison make sense From: The sense of the comparison was signed, but the code was testing an unsigned variable for less-than-zero. [PATCH] forcedeth update Andrew de Quincey added wol support to forcedeth. The patch also renames additional function, to help analyzing backtraces. [PATCH] eepro init section usage eepro_print_info() can be __init. [PATCH] smctr: fix init section usage smctr_chk_mca() can be __init. [PATCH] pcnet32 correct names for changes This patch corrects the names of contributors of changes to the pcnet32 driver. [PATCH] netdevice.h add netif_msg_init helper This patch adds a helper function to initialize the debug bit mask for use with netif_msg_*. When the debug_value is out of range it returns the default_msg_enable_bits. Tested IA32. [PATCH] xirc2ps ethtool fix patch below adds bus_info for xirc2ps_cs; anaconda depends on this info to be there. [PATCH] use netdev_priv() in appletalk & fc [PATCH] use netdev_priv() in /hamradio/ [PATCH] use netdev_priv() in 3com net drivers [PATCH] use netdev_priv() in net/ lance drivers [PATCH] use netdev_priv() in net/arm drivers [PATCH] use netdev_priv() in net/ intel drivers [PATCH] use netdev_priv() in net/pcmcia/ drivers [PATCH] use netdev_priv() in net/tulip drivers [PATCH] use netdev_priv() in net/tokenring/ drivers [PATCH] use netdev_priv() in net/wireless/ drivers [PATCH] use netdev_priv() in tap/tun/plip/loop/skel [PATCH] use netdev_priv() in fusion/mptlan [PATCH] use netdev_priv() in net/wan drivers [PATCH] use netdev_priv() in drivers/net/ (others) [PATCH] 8139too assertions Add Promise SX8 (carmel) block driver. PPC32: Fix include/asm-ppc/dma-mapping.h for the !CONFIG_PCI case. PPC32: consistent_free only takes one arguement. MPT Fusion driver 3.01.01 update From: Moore, Eric Dean This is an update for the MPT Fusion drivers 2.6 kernel. Version 3.01.01. This is a fix for poor performance in RAID Volumes. The dvStatus was being cleared for hidden physical disks when mptscsih_slave_destroy is called. Also, I have fixed the warning comming from mptscsih_reset_timeouts. [PATCH] aacraid driver patch I submitted a patch last month for the aacraid driver's reset handler. I left out setting function pointers in the adapter_ops structure for the adapter_check_health element. [PATCH] sym2 2.1.18i - Correct a typo "mvram" -> "nvram". - Re-do the PQS/PDS support which I'd #if 0 out. Should even work on multiple-domain boxes now ;-) - Move all the nvram definitions to sym_nvram.h (from Gerard's 2.1.19-pre3) - hcb_p -> struct sym_hcb * - sdev_p -> struct sym_device * - Delete a lot of unused macros from sym_misc.h - Move READ_BARRIER and WRITE_BARRIER definitions to sym_glue.h - SYM_CONF_NVRAM_WRITE_SUPPORT (from Gerard's 2.1.19-pre3). Not enabled yet. - Fix some -W warnings (some courtesy of Adrian Bunk). [PATCH] add adapter support to aacraid driver (update) Mark S. said that there was another adapter added, and that they changed the names of some boards. Here is the updated version. [PATCH] add device quiescing to the SCSI API This patch adds the ability to quiesce a SCSI device. The idea is that user issued commands (including filesystem ones) would get blocked, while mid-layer and device issued ones would be allowed to proceed. This is for things like Domain Validation which like to operate on an otherwise quiet device. There is one big change: to get all of this to happen correctly, scsi_do_req() has to queue on the *head* of the request queue, not the tail as it was doing previously. The reason is that deferred requests block the queue, so anything needing executing after a deferred request has to go in front of it. I don't think there are any untoward consequences of this. [PATCH] more SPI transport attribute updates This does three things - Fix the signedness of the bit attributes (otherwise they show up as -1 when on, not 1) - Make the period adjust to the closest value rather than ignoring values it doesn't understand. - Add a visibility field to attributes, so drivers can get rid of attributes they're never going to care about [PATCH] update the 53c700 use of transport attributes This patch just brings it up to date with the previous transport attribute patch, moving it to the model where it sets the min/max of the attribute if asked for something outside its range. It also only makes period and offset visible (it doesn't care about any of the others). [PATCH] ia64: clean up ACPI GSI/IRQ conversions (ia64 part) Add "acpi_gsi_to_irq()" as a generic replacement for "acpi_irq_to_vector()". This converts from an ACPI global system interrupt number to a Linux IRQ. Also, convert ia64-specific terminology to use GSI when appropriate. [PATCH] cdev 1/2: Eliminate /sys/cdev This is the first of two patches designed to make life easier for authors of device driver books - and, with luck, driver authors too. /sys/cdev is, according to Al, a mistake which was never really meant to exist. I believe nothing uses it currently - there isn't a whole lot there to use. Its existence takes up system resources, and also requires drivers to deal with the cdev's embedded kobject in their failure paths. The following patch (against 2.6.4) makes it all go away. OK, almost all. We have to keep (but not register) cdev_subsys because it's rwsem is needed to control access to cdev_map. [PATCH] cdev 2/2: hide cdev->kobj The existing cdev interface requires users to deal with the embedded kobject in two places: - The kobject name field must be set before adding the cdev, and - Should cdev_add() fail, a call to kobject_put() is required. IMO, this exposure of the embedded kobject makes the interface more brittle and harder to understand. It's also unnecessary. With the removal of /sys/cdev, a call to cdev_del() will nicely replace kobject_put(), and the name setting is easily wrapped. This is against 2.6.4, but depends on the /sys/cdev removal patch. remove cdev_set_name completely as it is not needed. [PATCH] update for sata_vsc Hch reviewed my sata_vsc driver and had a few comments. If you could please apply these changes, I'd appreciate it. The copyright is probably the most important for me (apparently I goofed with the OSL. thanks jeremy [libata] clean up module_init() hook of sata_{promise,sil,svw} drivers The more verbose form existed for decreased differences with the 2.4 backport. But differences in this area existed anyway, so why not clean up the 2.6 versions even more. [netdrvr e100] fix stray skb pointer * Not setting cb->skb = NULL after releasing skb to OS or during initialization of cbs. Reported by Deepak Saxena [dsaxena@plexity.net]. [ACPI] SMP poweroff (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=1141 [ACPI] ACPICA 20040311 from Bob Moore Fixed a problem where errors occurring during the parse phase of control method execution did not abort cleanly. For example, objects created and installed in the namespace were not deleted. This caused all subsequent invocations of the method to return the AE_ALREADY_EXISTS exception. Implemented a mechanism to force a control method to "Serialized" execution if the method attempts to create namespace objects. (The root of the AE_ALREADY_EXISTS problem.) Implemented support for the predefined _OSI "internal" control method. Initial supported strings are "Linux", "Windows 2000", "Windows 2001", and "Windows 2001.1", and can be easily upgraded for new strings as necessary. This feature allows Linux to execute the fully tested, "Windows" code path through the ASL code Global Lock Support: Now allows multiple acquires and releases with any internal thread. Removed concept of "owning thread" for this special mutex. Fixed two functions that were inappropriately declaring large objects on the CPU stack: ps_parse_loop() and ns_evaluate_relative(). Reduces the stack usage during method execution considerably. Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where the S4Bios_f field was incorrectly defined as UINT32 instead of UINT32_BIT. Fixed a problem where acpi_ev_gpe_detect() would fault if there were no GPEs defined on the machine. Implemented two runtime options: One to force all control method execution to "Serialized" to mimic Windows behavior, another to disable _OSI support if it causes problems on a given machine. [blk carmel] fix bug, minor cleanups * the scan-channels message seemed to always give invalid output. Look at the constant, and discover we are sending another message entirely. Fix the constant (CARM_MSG_IOCTL). * s/MISC_SYNC_TIME/MISC_SET_TIME/ * list some additional messages * bump version number [ACPI] add boot parameters "acpi_osi=" and "acpi_serialize" acpi_osi= will disable the _OSI method -- which by default tells the BIOS to behave as if Windows is the OS. acpi_serialize is for debugging AE_ALREADY_EXISTS failures [PATCH] Add Domain Validation to the SPI transport class Domain Validation is a fairly essential element to the SCSI Parallel Interface (although if you look very few drivers actually do it). The premise is that the Parallel Bus, being a transmission line, might not be correctly tuned to the transfers you want do perform. DV probes the parameters of the transport until it finds a setting that works (for the interested, see http://www.t10.org/ftp/t10/drafts/sdv/sdv-r08b.pdf) The current code employs rather simplistic DV heuristics, although those can be improved over time. The change in scsi_scan.c is so that DV may be done easily from the slave_configure routine, which is the most natural place to begin. ALSA CVS update - Clemens Ladisch ALSA sequencer remove superfluous call to snd_seq_event_port_detach ALSA CVS update - Clemens Ladisch ALSA sequencer,ALSA<-OSS sequencer use wrapper function for DELETE_PORT ioctl calls ALSA CVS update - Clemens Ladisch USB generic driver use MIN_PACKS_URB as lower bound for nrpacks parameter ALSA CVS update - Clemens Ladisch USB generic driver show one decimal place of momentary frequency in proc file ALSA CVS update - Clemens Ladisch USB generic driver prevent twenty-seconds wait when unplugging USB MIDI device with a port subscription ALSA CVS update - Takashi Iwai VIA82xx driver restrict the PCM sample rates to 32, 44.1 and 48kHz when the SPDIF switch is on. ALSA CVS update - Jaroslav Kysela DT019x driver Fixed warnings ALSA CVS update - Takashi Iwai VIA82xx driver patch was applied wrongly. fixed the rate restriction of spdif output again. ALSA CVS update - Takashi Iwai Documentation,PCI drivers,au88x0 driver added the au88x0 drivers for Aureal soundcards by Manuel Jander ALSA CVS update - Takashi Iwai PPC Tumbler driver added input source switch to select mic/line-in. ALSA CVS update - Takashi Iwai Documentation changed the description of the buffer allocation routines for the new designed functions. ALSA CVS update - Takashi Iwai Documentation fixed the files to include. ALSA CVS update - Takashi Iwai USB generic driver added fix and workaround for the mixer problem on SB Extigy. ALSA CVS update - Takashi Iwai PPC Tumbler driver fixed the info callback of mixer input source (for enum type). ALSA CVS update - Takashi Iwai au88x0 driver removed EXPORT_NO_SYMBOLS. ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver disabled Dell OEM Emu10k1x from the pci id list. the board isn't compatible with the normal emu10k1. ALSA CVS update - Takashi Iwai MIXART driver fixed the compile warning. ALSA CVS update - Takashi Iwai Documentation,PCI drivers,ATIIXP driver added snd-atiixp driver for the ATI IXP150/200/250 AC97 controllers. ALSA CVS update - Takashi Iwai Documentation,PCI drivers,Intel8x0-modem driver added Intel-compatible onboard MC97 modem driver by Sasha Khapyorsky ALSA CVS update - Takashi Iwai ALSA Core added the new magic numbers for atiixp and au88x0 drivers. ALSA CVS update - Takashi Iwai ALSA Core fixed the wrong release of id proc file. [PATCH] Fix removable USB drive oops The actual problem reported was because there wasn't a corresponding check on transport_classdev.class in the unregister. However, on closer inspection I also turned up a nasty thinko in the reference counting. For reasons best known to the class code authors, class devices have to obtain their own references to the devices they're attached to which they release again in their .release routines, so you have to remember to do a get_device() in the correct place after the class_device_add(). I put comments in the code so that, hopefully, we can avoid the problem in future. [WATCHDOG] v2.6.4 pcwd_pci-v1.00_20040313-patch Two small fixes: * Make cards_found a global variable so that if we remove the pci device we can count down. * If we can't find a correct I/O address for the card, then we should disable the card again. WATCHDOG] v2.6.4 wdt977-v0.03-patch Version 0.03 of wdt977.c - Changes that were made are: * Extract the stop code in a seperate function (wdt977_stop) * Extract the start code in a seperate function (wdt977_start) * Rename kick_wdog to wdt977_keepalive for consistency * Extract the watchdog's status code to a seperate function (wdt977_get_status) * Change the way we deal with the watchdog timeout: Up till now we used timeoutM (in minutes) as the correct value and then calculated timeout as being timeoutM*60 or *timeoutM*120 (depending on wether or not we have the netwinder hardware bug). From now on timeout is the correct value and we calculate timeoutM out of it. Because of this we start with checking wether or not we have a correct timeout value (if not we reset it to the default value) and we automatically calculate timeoutM. Each time we change timeout with a correct timeout value, we recalculate timeoutM. * Extended ioctl code with WDIOC_SETOPTIONS and updated the watchdog_info structure * Added notifier support Code has been tested by Woody [WATCHDOG] v2.6.4 notifier_block-patches Remove unnecessary initialization in notifier_block NFSv2/v3/v4: New attribute revalidation code that no longer relies on ctime for correctness in avoiding update races. VFS: allow filesystems to disable inode_update_time() on a per-inode basis. NFSv2/v3/v4: New file writeout strategy. Defer writes until a flush is requested by the application (or memory pressure). Configuration: simplify configuration options. Automatically select RPCSEC_GSS if NFSv4 is selected. Remove need for user to select SUNRPC_GSS, and the crypto options. Make NFSv3 a recommended option. NFSv2/v3: Ensure that we only use GETATTR+STATFS (NFSv2) and FSINFO (NFSv3) when mounting. This should allow us to use AUTH_SYS credentials when mounting, (even when the user requests RPCSEC_GSS authentication) due to the hack described in RFC2623. Remove the broken NFS_INO_FAKE_ROOT hack. NFSv2/v3/v4: Ensure that fsync() flushes all writebacks to disk rather than just the ones labelled as belonging to our file. This fixes a bug in which msync(MS_SYNC) will fail to flush the pages to disk. NFSv2/v3/v4: A patch by Greg Banks that fixes the "VFS: Busy inodes after unmount." problem. RPC: Make XIDs unique on a per-transport basis rather than globally unique. Gets rid of an unnecessary global spinlock. RPC: Sync rpc_set_timeo() up to the 2.4.x version. In particular, this will ensure that the timeout shift is clamped to a maximum value of 8. RPC: Fix by Olaf Kirch to the rpc scheduler to ensure sync tasks respect the "intr" mount flag. RPC: Ensure that we have the correct capabilities when binding a socket to a reserved port. Fixes a privilege bug when CONFIG_SECURITY is set. RPC: When trying to reconnect to a TCP port, try to bind() to the last used port number in order to ensure that the servers NFS replay cache recognizes this as being the same mount as before. RPC,NFSv2/v3/v4: Ensure that xprt_create_proto() and rpc_create_client() return full error codes. Should allow the "mount" program to print more useful error diagnostics. NFSv2/v3/v4: Parenthesize #defines in nfs?xdr.c. Fix an off-by-one error on the value of compound_decode_hdr_maxsz. NFSv4: fix a printk() typo (spotted by Linda Dunaphant). NFSv4: Ensure that nfs4_open_reclaim() copies the value of the new stateid back into the shared nfsv4 state structure. NFSv4: Don't leak NFS4ERR_WRONGSEC errors back into nfs_lookup(). RPC,NFS,Lockd: Mark the debugging code as "unlikely" so that gcc moves it out of the mainline code paths. NFSv2/v3 locking: Patch by Patrice Dumas to implement nlmsvc_proc_granted_res. When a server receives that callback it should deallocate the corresponding blocked lock using the nlmsvc_grant_reply function. NFSv2/v3 locking: Patch by Patrice Dumas that adds a check to ensure we really were requesting a blocking lock when we get a reply from the server asking us to block. NFSv2/v3 locking: Patch by Patrice Dumas to ensure that the server index blocks uniquely by using the client address in addition to the value of the NLM cookie field. NFSv2/v3 locking: A patch to ensure that blocks which are not going to time out are placed last on the ordered list nlm_block (problem reported by Olaf Kirch). RPC,NFSv3: remove the redundant "memset()" in call_encode(). Fix up the only places where this causes a padding error: xdr_encode_fhandle() and unx_marshal() RPC: patch by Chuck Lever to make the number of RPC slots a tunable parameter. This is wanted in order to allow the NFS client to send more requests before is has to block and wait for replies. This is mainly useful if you have a WAN and want to ensure that the bandwidth is being used efficiently. NFSv2: Fix up NFSv2 reads so that they report when the server returned a short read due to EOF. NFSv4: Fix a list corruption in the NFSv4 state engine. NFS: From the suse kenrel RPM: handle ENOMEM from nfs_fhget(). From: Forward-port from 2.4: The following patch pulls an NFS server IP address off root_server_path (handed out via the DHCP root-path option), if it is present. For example, you can do this sort of thing in dhcpd.conf: root-path = 192.168.1.33:/tftpboot/yip.zImage This lets you mount your root filesystem off a different machine than you booted from, without needing to use kernel command-line parameters. The patch appears to be backwards compatible. RFC2132 says this about the root-path option: This option specifies the path-name that contains the client's root disk. The path is formatted as a character string consisting of characters from the NVT ASCII character set. This is sufficiently vague to allow the path-name to include an IP-address. Also, I found some documentation for FreeBSD saying it does this too, so it must be right, because those FreeBSD guys are really smart... :-) The only downside of the patch is that the summary that ipconfig prints can be a little odd when the kernel command line overrides whatever ipconfig gets from (say) DHCP. The address from the kernel command line seems to get stripped off early, so ipconfig reports it, but it doesn't report the kernel command line NFS path, since that's handled a bit later... This small cosmetic problem looks difficult to "fix" without rewriting quite a bit of stuff... akpm@odsl.org: For complex reasons it is not possible to hold i_sem in nfs_update_inode(). Hence the i_size_write() in there is deadlocky. Go back to the old way. [PATCH] ppc64: fix NUMA compile with large cpumasks From: Anton Blanchard The recent NUMA changes fail to compile with large cpumasks, we need to use a temporary to get around the type checking. [PATCH] Use 64-bit counters for scheduler stats From: Kingsley Cheung A number of scheduler counters wrap around after 47 days. The context-switch counter can wrap around after considerably less time. Convert them to 64-bit values. [PATCH] Manfred's patch to distribute boot allocations across nodes From: Anton Blanchard Distribute boot time memory allocations across all nodes, from Manfred Spraul. We want to spread memory across nodes to avoid all allocations ending up on node 0. Spreading boot time allocations around also helps us to avoid node 0 becoming the hot node. I took it for a spin: buddyinfo before: Node 7, 0 2 1 1 0 2 1 2 1 2 1 2 741 Node 6, 0 0 0 2 0 2 1 1 2 2 2 2 1002 Node 5, 0 0 0 2 0 2 1 2 1 2 2 2 2006 Node 4, 0 0 0 2 0 2 1 2 1 2 2 2 2006 Node 3, 0 0 0 2 0 2 1 2 1 2 2 2 2006 Node 2, 0 0 0 2 0 2 1 2 1 2 2 2 2006 Node 1, 0 0 0 2 0 2 1 1 2 2 2 2 1002 Node 0, 0 0 38 7 0 1 1 1 0 0 0 0 1998 buddyinfo after: Node 7, 0 1 0 1 1 1 1 0 0 0 1 2 738 Node 6, 0 1 0 1 1 1 0 1 0 0 2 2 1002 Node 5, 0 0 0 1 1 1 1 0 0 0 2 2 2006 Node 4, 0 1 0 1 0 1 1 0 0 0 2 2 2006 Node 3, 0 0 0 1 0 1 1 0 0 0 2 2 2005 Node 2, 0 1 0 0 0 0 0 1 0 0 2 2 2006 Node 1, 0 2 1 1 0 1 1 1 0 0 2 2 1002 Node 0, 0 20 45 8 3 0 1 1 1 1 0 1 2004 Change in free memory due to patch: Node 7 -54.08 MB Node 6 -6.33 MB Node 5 -6.09 MB Node 4 -6.14 MB Node 3 -22.15 MB Node 2 -6.05 MB Node 1 -6.12 MB Node 0 107.35 MB As you can see we gained over 100MB on node 0. [PATCH] further __KERNEL_SYSCALLS__ removal From: Arnd Bergmann Dave Jones already removed some of the useless __KERNEL_SYSCALLS__ defines in various files, this gets rid of almost all the others. Replacing execve() is nontrivial, so I left those in for now. For all the other system calls that are currently used from inside the kernel, calling the sys_* function directly should always have an identical effect. [PATCH] use wait_task_inactive() in kthread_bind() From: Rusty Russell Make it clear that the reason we do wait_task_inactive is because kthread_bind frobs with k->thread_info->cpu, which is only legal because the task is definitely not running. We can't use the normal migration thread code here, because it doesn't let us bind to cpus which are offline yet, and also because we use this to start the migration threads themselves. [PATCH] md: use "shedule_timeout()" instead of yield() From: NeilBrown Use "shedule_timeout()" instead of yield() as it seems to wait for less time. [PATCH] md: allow assembling of partitioned arrays at boot time. From: NeilBrown kernel parameters: raid=partitionable will make all auto-detected md arrays partitionable md=d.... will assemble an array as a partitionable array. [PATCH] Work around an AMD768MPX erratum From: Andi Kleen This patch has been in the SuSE 2.4 kernel forever, but for some reason never made it mainline. It works around the infamous "only works stable when a mouse is plugged in" problem some AMD 768MPX Dual Athlon chipsets have. The problem happens because the chipset can hang when PCI prefetch strides from a RAM page into the VGA text buffer. When a PS2 mouse is plugged in the BIOS reserves a page before the VGA text buffer, which stops the prefetch early. This patch always reserves this page when the chipset could be AMD768MPX. This can be only done early in bootmem setup. Because it's difficult to scan the PCI bus that early it just always reserves this page when the CPU is an Athlon. Normally it should not make a difference because the BIOS will have reserved that page anyways when a PS/2 mouse is plugged in. [PATCH] Add Domain Validation to 53c700 driver This simply throws out the 53c700 driver's optimistic setting of the best possible transport parameters and replaces it with DV determination. It also adds a missing report_bus_reset() callback and finally does a delayed DV on device errors. [PATCH] DMA: Fill gaping hole in DMA API interfaces. From: "David S. Miller" Currently, for an existing DMA mapping, there is a way to transfer buffer ownership back to the cpu, yet there is no way to give it back to the device again explicitly. The latter really is needed on platforms where the PCI subsystem does not snoop the cpu caches, MIPS is one example. Many drivers were expecting the existing DMA sync interface to handle both directions, which was wrong. Now, with this change, we have explicit interfaces for DMA syncing to/from the device and the cpu. [PATCH] module unload deadlock fix From: Rusty Russell From: Andrea Arcangeli We should drop module sem before calling mod->exit, for practical reasons: too many module exit functions oops or hang, resulting in a permenantly held module sem, which blocks all module ops including lsmod. [PATCH] gcc-3.5 libata build fix drivers/scsi/sata_vsc.c: In function `vsc_sata_interrupt': include/linux/libata.h:414: sorry, unimplemented: inlining failed in call to 'ata_host_intr': function body not available drivers/scsi/sata_vsc.c:187: sorry, unimplemented: called from here [Bluetooth] Make use of the MODULE_VERSION macro Each module contains a version number and this patch uses MODULE_VERSION to make it visible through modinfo. [PATCH] PA-RISC update Updates for 2.6.4 for PARISC: - defconfigs (Randolph Chung) - copyright updates (Grant Grundler) - Fix DOS hole in sys_clone (James Bottomley) - missing hardware ID (Andy Walker) - disable interrupts during cache-flushes (LaMont Jones) - Fix crash on machines with <256MB ram (Randolph Chung) - Make SuckyIO IDE work better (Randolph Chung) - Align data_start so the extable is writable (Randolph Chung) - Extensive rewrite of virtual merging code (James Bottomley) - Fix EISA, non-PCI module builds (Matthew Wilcox) - Fix Elroy PCI config space byte & word writes (Grant Grundler) - Eliminate a warning in parport_gsc (Helge Deller) - Fix endian problem with ide mmio macros (Randolph Chung) - Delete asm/keyboard.h (Matthew Wilcox) - Delete asm/md.h (Grant Grundler) - Eliminate a warning in ALSA harmony (Matthew Wilcox) [PCMCIA] Add, fix, update PCMCIA debugging. The PCMCIA core debugging assumes that "pc_debug" is a global. If pc_debug were to be a global, it would pollute the kernel's global name space, potentially clashing with PCMCIA drivers and even ds.c. We also get rid of PCMCIA using the "DEBUG" macro, which is the standard macro to enable debugging in the kernel. Instead, we introduce cs_dbg() for core PCMCIA debugging, ds_dbg() for driver services debugging, and similar macros in the socket drivers. [PCMCIA] Clean up socket state handling around shutdown There is no need for shutdown_socket() to touch s->state directly - this can be all done in skt_shutdown(). [PCMCIA] Rename driver services constants. Driver services constants clash with similar constants defined by Card services. Prefix them all with DS_. This patch started out as Dominik Brodowski's 2.6.0-test9 ds_includes_cs_internal patch, which only changed one constant and attempted to fix PCMCIA debugging. [PCMCIA] move_pcmcia_bind_device Patch from Dominik Brodowski, updated by Russell King. pcmcia_bind_device was only used by ds.c, and it is only used for 16-bit PCMCIA devices. So, move it to ds.c. [PCMCIA] move_pcmcia_bind_mtd Patch from Dominik Brodowski, updated by Russell King. pcmcia_bind_mtd was only used by ds.c, and it is only used for 16-bit PCMCIA devices. So, move it to ds.c. [PCMCIA] move pcmcia_report_error and cs_error Patch from Dominik Brodowski, updated by Russell King. cs_error and pcmcia_report_error are only used by 16-bit PCMCIA devices, so move them to ds.c. [PCMCIA] socket user operations should take pcmcia_socket Patch from Dominik Brodowski, updated by Russell King. The pcmcia_{suspend,resume,eject,insert}_card calls are only issued by the userspace cardctl tool via ds.c. There's no need to verify the caller (ds) has a valid "handle", as long as it knows the proper struct pcmcia_socket. [PATCH] move consistent_dma_mask to the generic device From: James Bottomley pci_dev.consistent_dma_mask was introduced to get around problems in the IA64 Altix machine. Now, we have a use for it in x86: the aacraid needs coherent memory in a 31 bit address range (2GB). Unfortunately, x86 is converted to the dma model, so it can't see the pci_dev by the time coherent memory is allocated. The solution to all of this is to move pci_dev.consistent_dma_mask to dev.coherent_dma_mask and make x86 use it in the dma_alloc_coherent() calls. This should allow me to make the aacraid set the coherent mask instead of using it's current dma_mask juggling. [PATCH] s390: update for altered page_state structure From: Olaf Hering This patch is needed on s390. [PATCH] __kill_pg_info() return value fix Fix a bug which was spotted by Alex Lyashkov The fairly unobvious coding in __kill_pg_info() will cause a zero value to be incorrectly returned if the second or succeeding call to group_send_sig_info() returns an error. [PATCH] Fix voyager to boot again The very early memory detection patch broke voyager. This fixes it again. [Bluetooth] Fix compile errors with enabled debugging This patch fixes some stupid compile errors when debugging is enabled. Noticed by Christian Hesse [SPARC32]: Rework the CPU enumeration and probing code The low 2 bits of the MID are now used exclusively as the software CPU ID on 4m. This eliminates entirely the need for mid_xlate. We also eliminate linux_num_cpus and linux_cpus; since the hardware-based id is now used everywhere we don't need indexed CPU tables. The device probe is almost identical to sparc64's version. The one exception is that 4m only uses the bottom 2 bits of the MID, so we also have a separate function to get the true hardware MID for the rare times it's actually needed. Per-cpu data is now used the same way as in sparc64. As a side benefit we now display the same format Bogo and Clock values in /proc/cpuinfo. [SPARC32]: Also remove num_cpus_possible as was done on sparc64 [libata sata_sil] remove incorrect limit on drive quirk The original submittor of the quirk code noted that the errata of a lockup creating when the condition "sector % 15 == 1" is true only on chip revisions <= 1. This is limitation on chip revision is apparently not correct, therefore we apply to all affected drives in the quirk list. This is a sledgehammer fix, limiting max-sectors to 15. A much better fix would split the hardware request into two taskfiles, issuing an additional command, thereby avoiding "sectors % 15 == 1" Given the errata is limited to "sil 311x + ", it is hoped that some janitor cares enough to do a real fix. [SPARC32]: Fix build; we don't need KERNEL_SYSCALLS but asm/unistd.h is necessary [SBUS]: Fix sound build if CONFIG_SBUS is set [SPARC32]: Add per-cpu data header [SOUND]: Fix typo in SBUS memalloc changes. [NETDEV]: pcnet32, eepro100, and 8139too need asm/irq.h ALSA CVS update - Jaroslav Kysela Intel8x0 driver Added slot definitions for s/pdif pcm - ICH4 ALSA CVS update - Jaroslav Kysela AC97 Codec Core Kevin Mack Here's a quick and dirty patch that's given me basic sound from my Gateway M675 notebook (Sigmatel 9758 AC97 codec). ALSA CVS update - Clemens Ladisch Documentation,MPU401 UART integrate MPU-401 ACPI PnP from alsa-driver ALSA CVS update - Clemens Ladisch au88x0 driver fix compilation on gcc 2.95.x ALSA CVS update - Clemens Ladisch Intel8x0 driver add Intel ICH6 and ESB ALSA CVS update - Jaroslav Kysela au88x0 driver Make mchannels and rampchs static ALSA CVS update - Jaroslav Kysela au88x0 driver Fixed gameport dependency and solid kernel build [ARM PATCH] 1772/1: ARM README changes Patch from Marc Singer Updates to the ARM architecture README file. Mostly, this is done for clarity. [ARM] Update ARM README Provide more detailed information on machine types and machine classes. [ARM PATCH] 1753/1: Devfs support for the 21285 serial driver - try 2 Patch from Jonas Larsson This patch adds devfs_name member to struct uart_driver. No devfs entries are created for the serial port without this patch. [PATCH] update for pdc202xx_new driver Many thanks to Promise for their support. Expect more updates/fixes for Promise PATA support soon. - fix PIO (auto-)tuning - use pdcnew_new_tune_chipset() and always tune PIO mode even if (U)DMA is used - cleanup cable verification code a bit - remove leftovers from driver split-up - remove duplicate DISPLAY_PDC202XX_TIMINGS define [PATCH] ide-disk.c: cleanup get_command() [PATCH] remove ide_cmd_type_parser() logic Set ide_task_t fields (command_type, handler and prehandler) directly. Remove unused ide_task_t->posthandler and all ide_cmd_type_parser() logic. ide_cmd_type_parser() was meant to be used for ioctls but ended up checking validity of kernel generated requests (doh!). Rationale for removal: - it can't be used for existing ioctls (changes the way they work) - kernel shouldn't check validity of (root only) user-space requests (it can and should be done in user-space) - it wastes CPU cycles on going through parsers - it makes code harder to understand/follow (now info about request is localized) [PATCH] remove IDE_*_OFFSET_HOB and IDE_*_REG_HOB defines They are identical to non _HOB versions (except IDE_CONTROL_OFFSET_HOB). [PATCH] remove ide_init_drive_taskfile() From: Frederik Deweerdt [PATCH] piix_ide_init() can be __init From: "Randy.Dunlap" From: Luiz Fernando Capitulino The missing __init was found by reference_init26.pl. [PATCH] H8/300: Interrupt handling cleanup - merge common routine - runtime vector setup update [PATCH] H8/300: fix build error - add asm/dma-mapping.h - add CONFIG_PCI [PATCH] H8/300: fix waring - fix gcc-3.4.0 warnings [PATCH] H8/300: makefile cleanup [libata] disable clustering by default, whitespace cleanups Disable SCSI's clustering of S/G entries, typically reducing overall S/G list size. Although ATA S/G tables are getting smarter (64-bit address, 32-bit length, no DMA boundary besides 4G itself), working harder to generate large byte sizes for each S/G size is not necessarily in our best interest: * SATA consists of frames, much like ethernet, called "FIS". A Data FIS consists of up to 2048 dwords (8K) of data. We don't want generate large byte sizes in S/G entries, just to have the host controller break them up again into smaller chunks. * Reduces the possibility that ata_fill_sg (libata-core.c) must split an S/G into two pieces, because it straddles a 64K boundary. * Reduces the possibility that FIS-related errata workarounds must be enabled. One such exists in the Silicon Image driver (sata_sil), which is currently worked around by limiting the max-sectors-per-request to 15. [libata] kill the warning everybody grumbles about [ARM] Update mach-types file. [ARM] Provide userspace method for controlling LEDs in ARM machines. [ARM] Move consistent_xxx exports to arch/arm/mm/consistent.c [ARM] Remove export of kd_mksound. This symbol is no longer used in modules. [Bluetooth] Declare more functions static This patch declares all possible functions static. [PATCH] I2C: fix up CONFIG_I2C_DEBUG_BUS logic to be simpler on the .c files. [PATCH] I2C: fix up CONFIG_I2C_DEBUG_CORE logic to be simpler on the .c files. [PATCH] I2C: add CONFIG_I2C_DEBUG_ALGO to be consistant. [PATCH] I2C: fix up CONFIG_I2C_DEBUG_CHIP logic to be simpler on the .c files. [ARM] Allow run-time selection of user debugging messages. [ARM] Add asm/irq.h include - required for NR_IRQS ALSA CVS update - Jaroslav Kysela I2C cs8427 Don't reset chip when PCM rate was not changed ALSA CVS update - Jaroslav Kysela Generic drivers Clean the 'AUTO' checking ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver,Trident driver fixed the mapping of silent pages on emu10k1 and trident SG buffers. ALSA CVS update - Takashi Iwai Memalloc module fixed the compilation with sparc sbus support. ALSA CVS update - Jaroslav Kysela GUS Extreme driver Whilst chasing an oops, I shortened some error paths. ALSA CVS update - Jaroslav Kysela ALSA Core Try modprobing a driver that the hardware doesn't exist for. In a few situations, you'll hit an oops due to proc_id not being filled out that early. ALSA CVS update - Jaroslav Kysela ES18xx driver,ES1688 driver,GUS Classic driver,GUS Extreme driver GUS MAX driver,AMD InterWave driver,SB16/AWE driver,SB8 driver This is a *really* silly one. The various probing routines in these drivers can return -ENODEV, -ENOMEM etc.. so when we do something like cards += probe_routine() In some situations we can end up with -13 sound cards, and other such nonsense. Result : lots of fun oopses. ALSA CVS update - Jaroslav Kysela ES968 driver This oopses on rmmod, as we do pnp_unregister_card_driver twice. ALSA CVS update - Jaroslav Kysela DT019x driver,ES968 driver Miscellaneous junk, indentation fixes and the like. ALSA CVS update - Jaroslav Kysela DT019x driver Added missing pnp_unregister_card_driver call ALSA CVS update - Jaroslav Kysela GUS Extreme driver Fixed typo ALSA CVS update - Jaroslav Kysela ES968 driver Fix against Dave's fix: put back the behaviour common to all ISA PnP modules [SPARC]: Include linux/linkage.h in asm/unistd.h [TUN]: Name fix. This fixes both the devfs name and the /sys name issues. It ends up as /dev/net/tun and /sys/class/misc/tun looks correct. [TUN]: Do not obscure error return from misc_register in tun_init. [TUN]: Fix user buffer verification. When Tun initialization fails it shouldn't obscure the error return, There are several reasons it could fail, and when diagnosing user problems the error code might provide more info. [ATM]: [suni] dev_data should really be phy_data. [TCP]: Kill westwood bw_sample, set but never used. [PATCH] I2C: fix forced i2c chip drivers have no name I just noticed that I am doing something wrong in the i2c chip drivers I ported to Linux 2.6. If these drivers are forced to a specific chip type ("kind" as we call it internally), then the device doesn't have its name set (and defaults to an empty string). Affected drivers: gl518sm, lm83, lm90, w83l785ts. I could verify the problem on my ADM1032 chip (lm90 driver). I also verified that the proposed patch fixes the issue. You may notice that I fix the problem differently for gl518sm and w83l785ts on the one hand, and lm83 and lm90 on the other hand. This is because the first two drivers are not expected to support more a single chip in the future, while lm90 already does and lm83 could someday (for example, support for the LM82 could be added on request). [PATCH] I2C: Don't handle kind errors that cannot happen A number of chip drivers in 2.6.4-mm1 try to handle an error case that cannot happen when setting the chip name. The following patch changes that. Affected drivers: adm1021, it87, lm75, lm78, lm85, w83627hf, w83781d. Note that in any case, the worst that could happen (but then again, it cannot happen) is that the chip name would be set to an empty string, which doesn't hurt much. The patch also cleans up a few things in it87, w83627hf and w83781d, which are tightly related to the rest of the changes and necessary for them to be safe. it87: There is only really one "kind" in this driver, so I removed all references to other kinds. w83627hf: The driver did not handle unknown chips. w83781d: The user shouldn't be allowed to force a kind that doesn't match the chip's bus type (I2C or ISA). The code was not meant to handle that case, although no check was done so far. Tested on my AS99127F, works as intended. [PATCH] I2C: Setting w83781d fan_div preserves fan_min This patch makes the w83781d driver preserve fan_min settings when the user changes fan_divs. This isn't done "by default" because the actual fan min value (in RPMs) depends on both the fan_min register and the fan_div register. Only two drivers handle it properly at the moment as far as I know (lm78 and asb100). Several other drivers would need to be fixed the same way, but well, once at a time ;) Tested on my AS99127F rev.1. Credits go to Philip Pokorny, since I think I remember he is the one who introduced the method in the lm78 driver in the first place. This tends to increase the size of the three set_store_regs_fan_div functions, and I am considering refactoring them at some point. Later though. [PATCH] I2C: New chip driver: ds1621 The following patch against kernel 2.6.4-mm1 adds the ds1621 driver (an I2C sensor). I have ported it from the 2.4 version. It has been reviewed by Jean Delvare, partly on IRC, and it is "compliant" with Mark Hoffman's refactoring. [NET]: Make netdevice.h more non-kernel friendly. [VLAN]: Use array for static const char 'fmt' [NET_SCHED]: Use time_after, fixes htb on 64-bit arch. [PATCH] I2C: delete the i2c-elv.c driver as it is obsoleted by the i2c-parport.c driver. [PATCH] I2C: delete the i2c_philips-par.c and i2c-veleman.c drivers They are obsolted by the i2c-parport.c driver. [SERIAL] Add alias for TTY_MAJOR character device. Patch from Steve Youngs [PATCH] cdev: warning fix Against Jon's cdev stuff kref: add kref structure to kernel tree. Based on the kobject structure, but much smaller and simpler to use. [SERIAL] fix PCI interrupt setting for ia64 Patch from Bjorn Helgaas ACPI and HCDP tell us what IRQ the serial port uses, so there's no need to have the driver probe for the IRQ. [SERIAL] serialP.h: remove a kernel 2.2 #ifdef Patch from Adrian Bunk [TCP]: Clean up some westwood comments. [PATCH] generic 32 bit emulation for System-V IPC From: Arnd Bergmann Adds a generic implementation of 32 bit emulation for IPC system calls. The code is based on the existing implementations for sparc64, ia64, mips, s390, ppc and x86_64, which can subsequently be converted to use this. [PATCH] Remove unneeded cast. [PATCH] Whitespace fixes. No code changes, but lots of trivial whitespace cleaning, and removal of a bogus set of 'defaults' at the bottom of the file. [PATCH] Fix sysfs leak. If the driver fails to load, we leave a 3c509 eisa directory in sysfs. [PATCH] Set module owner in megaraid driver This bug was discussed on linux-scsi a few weeks back, but it appears to have slipped through the cracks. This fix was originally proposed by Christoph Hellwig, but I am reposting it, since I have the hardware :-) Anyway, the problem that this fixes is that megaraid doesn't set the moduler owner for the host_template, this means that the module can be removed, even when it is in use. [PATCH] sys_swapon bad arg causing slab corruption There's an error in sys_swapon() that can cause slab corruption if you pass in a bad specialfile pointer. getname() then returns ERR_PTR(-EFAULT), but sys_swapon() doesn't clear name before calling putname() on it (thus freeing 0xfffffff2, corrupting slab). An ltp test case repeatedly crashed in later tests due to thus, irk. [PATCH] Fix CONFIG_DEBUG build on x86-64 & small cleanup This fixes the CONFIG_DEBUG_INFO build on x86-64 (there were missing .cfi_endprocs) Also some minor cleanup in the exception stack handling. Linux 2.6.5-rc1 yia64: Fix show_mem() panic [PATCH] ia64: Update SN2 defconfig [PATCH] ia64: fix missing braces in SN2 console code The last mod to fix the staircase printing - missed some bracing... [PATCH] ia64: move consistent_dma_mask to the generic device The patch that moved and renamed consistent_dma_mask neglected to fix up arch/ia64/hp/common/sba_iommu.c. [PATCH] ia64: kill CONFIG_IA64_MCA The MCA code is now slim enough that there isn't much point in keeping CONFIG_IA64_MCA anymore. ia64: Forward-port hp-agp.c fix from 2.4 See this ChangeSet: http://lia64.bkbits.net:8080/linux-ia64-2.4/cset@40524248tkgE0RDYQL0IyiAdFxo_Ew [PATCH] ia64: update ia64/Kconfig This Kconfig patch basically just makes ia64 look a little more like i386: - moves system type above processor type - moves PM & ACPI to a new top-level menu - moves PCI/PCMCIA to a new top-level menu [PATCH] ia64: update simscsi to 2.6 scsi APIs Use the proper (and cleaner) probing API instead of the old scsi_module.c hack, don't use the typedefs I plan to kill in 2.7 and mark everything static ia64: Based on patch by Keith Owens: put stop bit to work around GCC problem. Apparently GCC sometimes fails to insert a stop-bit when re-using p14 after the spinlock directives, even though the register is clearly marked as "clobbered". [PATCH] ia64: Decode salinfo oemdata for SN2 via PROM SN2 platforms provide oemdata in salinfo records. The decode of that oemdata is done via prom routines. This patch provides the interface from user space through the kernel into the prom to do the oem decode. [libata] bump libata and sata_sil driver versions ia64: Update defconfig [SPARC32]: Down with our cpu_offset. Use regular per_cpu instead. The only users of this were udelay/ndelay. These now look more like sparc64, except ours are too weird and too big to inline. [PATCH] g5: Fix iommu vs. pci_device_to_OF_node The g5 iommu code would fill the "iommu_table" member of whatever device node was pointed to by pcidev->sysdata during boot. However, the ppc64 kernel fills that with a pointer to the PHB node which is later replaced "lazily" with a pointer to the real node when calling pci_device_to_OF_node(). In this case, we were thus "losign" the iommu_table pointer. Typical symptom: loss of the SATA when looking at it's /proc entry. This fixes it by forcing the update to the final sysdata pointer when filling up the iommu_table pointers. The "lazy" thing is useless on pmac anyway. [PATCH] Fix early parallel make failures From: Sam Ravnborg Ingo said: Starting at around 2.6.4-rc2-mm1, I keep seeing 'scripts/fixdep: Text file busy' messages when doing a -j10 bzImage build - which seems to suggest that by the time fixdep is used by the build system it's not built yet. Sam said: I was pretty sure it was something I had caused, so I gave it a spin. What actually happened was that we tried to build the target 'silentoldconfig' in parrallel with 'scripts'. Since 'silentoldconfig' started a new make and then the config target needed 'scripts' we saw two parallel runs. The way I decided to fix it was to split scripts/ in two parts. The first part is now the very basic stuff - moved to scripts/basic/. The second part is dependent on kernel config etc. and kept in scripts/ In the 2.7 timeframe i will redo this initial stuff - it's becoming too messy for anyone to understand today. Description: Fix dependencies in early phases of kernel build. This solves a few problems nively: modpost is no longer rebuild twicewhen reaching the 'target' state 'make -j10' now works nicely again The patch is rather large due to the following file moves: mkdir scripts/basic mv scripts/fixdep.c scripts/basic mv scripts/split-include.c scripts/basic mv scripts/docproc.c scripts/basic [PATCH] Save some memory in mem_map on x86-64 From: Andi Kleen This patch saves 2MB of memory on a 1GB x86-64 machine, 20MB on a 10GB machine. It does this by eliminating 8 bytes of useless padding in struct page. This resurrects an older patch in a hopefully cleaner form. [PATCH] ppc32 compile fix From: Tom Rini The problem is that on PPC32 (and probably sparc64) 'asmlinkage' is a useless keyword, and should just be removed from include/asm-ppc/unistd.h. [PATCH] s390: update for altered page_state structure From: Gerald Schaefer Update s390 to track the new fields in struct page_state. [PATCH] selinux: Conditional policy extension and MLS detection support From: Stephen Smalley This patch extends the SELinux policy engine to support conditional policy logic based on a set of policy booleans, allowing well-formed changes to the policy to be defined within and mediated by the policy itself. The conditional policy extensions were implemented and contributed by Tresys Technology. Userland packages that support these extensions are already available from nsa.gov/selinux, and backward compatibility is provided for the prior policy version. The patch also includes a small change to enable detection of the optional MLS policy model on a SELinux system and fixes to the conditional policy extensions to allow the MLS policy to work correctly with them that were implemented and contributed by Trusted Computer Solutions. [PATCH] ide-scsi error handling fixes From: Willem Riede The patch revises the error handling in ide-scsi, fixing the scheduling while locked issues, and make it work properly, at least for me... Specific changes in this patch: - introduce idescsi_expiry, a timeout routine for the ide subsystem, which simply flags the fact that the command timed out, but postpones any other action until either the command still finishes on its own (unlikely?) or the scsi error handler kicks in; - introduce idescsi_atapi_error and idescsi_atapi_abort, error routines for the ide subsystem, which are modeled after those of ide-cd, but take only minimal effort to recover, leaving the heavy lifting for the scsi error handler; - rewrite (and rename for clarity) idescsi_eh_abort and idescsi_eh_error, the abort/error routines to be called by the scsi error handler -- this redesign should not have the scheduling while atomic problems of the old implementation. - move ide_cdrom_dump_status() from ide-cd.c to ide-lib.c as ide_dump_atapi_status() and both ide-cd and ide-scsi call it. - replaces BUG() by WARN_ON()/printk in the error handling code. - sets TASK_UNINTERRUPTIBLE before schedule_timeout() and moves the host unlock/lock around the while loop inside the loop in idescsi_eh_reset(). [PATCH] drivers_cdrom_cm206.c check_region() fix From: Trivial Patch Monkey From: Omkhar Arasaratnam check_region() fix [PATCH] ACPI: document acpi_sleep option From: Trivial Patch Monkey From: Pavel Machek acpi_sleep option should be documented. [PATCH] Document tricks to get S3_swsusp working From: Trivial Patch Monkey From: Pavel Machek I was sending this to users that had problems with swsusp, then lost it. It would be nice to have it directly in the tree. [PATCH] drivers_cdrom_sjcd.c check_region() fix From: Trivial Patch Monkey From: Omkhar Arasaratnam [PATCH] rename one of the acpi_disable() instances From: Trivial Patch Monkey From: Pavel Machek There's acpi_disable somewhere in the acpi interpreter (it disables interrupts, iirc). Thus blacklisting function needs better name. [PATCH] filemap.c comment fix From: Trivial Patch Monkey From: Carl Spalletta [PATCH] fix for kallsyms module symbol resolution problem From: Rusty Russell Fix a problem with kallsyms being unable to look up symbols which are in modules. add_kallsyms should be above module_finalize, which means you can just use the mod->symtab and mod->strtab members. [PATCH] Fix scripts/ver_linux From: Trivial Patch Monkey From: Thomas Molina ver_linux hasn't displayed binutils version right for some time. This patch corrects that and preserves the old behaviour as well, as suggested by Rusty. [PATCH] chardev module aliases From: Trivial Patch Monkey From: Steve Youngs Add module aliases for 21285, amba, anakin, clps711x, mux, and sa1100 serial drivers. [PATCH] minor credits updates From: Trivial Patch Monkey From: andersen@codepoet.org I've moved... This patch updates my contact info. [PATCH] Fix comment in drivers/block/genhd.c From: Trivial Patch Monkey From: a.othieno@bluewin.ch (Arthur Othieno) add_gendisk() was replaced with add_disk(), but the comment suggests otherwise. Breaks `make *docs'. [PATCH] add warning to DocBook/Makefile From: Trivial Patch Monkey From: maximilian attems Print something friendlier than: /bin/sh: fig2dev: command not found make[1]: *** [Documentation/DocBook/parport-share.eps] Error 127 make: *** [pdfdocs] Error 2 [PATCH] drivers_cdrom_cdu31c.c check_region() fix From: check_region() fixes. [PATCH] move PCIBIOS access help text From: "Randy.Dunlap" Moves PCI BIOS Access Mode help text to its top level instead of under PCI_GOBIOS (which is only 1 of 4 possible choices). [PATCH] fix modular fb drivers From: Arnd Bergmann The recent "fbdev: monitor detection fixes" patch broke modular frame buffer drivers. [PATCH] kbuild: fix modpost when used with O= From: Sam Ravnborg modpost or to be more specific sumversion.c was not behaving correct when used with O= and MODULE_VERSION was used. Previously it failed to use local .h when calculation the md-sum in case of a O= build. The following patch introduces the following: - A generic get_next_line() - Check that the topmost part of the directory matches - Using strrch when checking for file with suffix .o - Use NOFAIL for allocations in sumversion - Avoid memory leak in new_module The generic get_next_line will pay off when Andreas implmentation of storing symbol addresses in a seperate file is introduced. [PATCH] selinux: fix compute_av bug From: Stephen Smalley This patch fixes a bug in the SELinux compute_av code; the current code yields the right access computation but can cause unnecessary (but harmless) processing to occur when transition permission wasn't granted in the first place by the TE configuration. Thanks to Chad Hanson of TCS for reporting the bug. [PATCH] flush_scheduled_work() deadlock fix Because keventd is a resource which is shared between unrelated parts of the kernel it is possible for one person's workqueue handler to accidentally call another person's flush_scheduled_work(). thockin managed it by calling mntput() from a workqueue handler. It deadlocks. It's simple enough to fix: teach flush_scheduled_work() to go direct when it discovers that the calling thread is the one which should be running the work. Note that this can cause recursion. The depth of that recursion is equal to the number of currently-queued works which themselves want to call flush_scheduled_work(). If this ever exceeds three I'll eat my hat. [PATCH] flush_workqueue(): detect excessive nesting Add a debug check for workqueues nested more than three deep via the direct-run-workqueue() path. [PATCH] page_referenced() simplification There's no point in calling mark_page_accessed() here. The page is never on the LRU so all mark_page_accessed() will do is to set PG_referenced, which we immediately clear again. [PATCH] fbdev: character drawing enhancement. From: James Simmons This patch merges two of the drawing functions. The patch uses aligned transfers when possible even on displays where the characters are not byte align. Tested on my my laptop for 12 bit width fonts and 8 bit wide fonts. It works very nicely. [PATCH] kernel-doc build fix From: Michael Still This is needed to get any of the SGML documentation to build with 2.6.4. [PATCH] reiserfs: fix null pointer deref From: Chris Mason From: Jeff Mahoney fsstress manages to setup a sequence of events that allow an attempt to perform direct-io on a tail. bh_result->b_page == NULL, which causes the PageLocked and PageWriteback checks to perform a NULL deref, causing the oops. [PATCH] resierfs: scheduling latency improvements From: Chris Mason Add conditional schedules to reiserfs to help lower latencies. Bits of this orginated long ago in code akpm sent me. [PATCH] reiserfs: search_by_key fix From: Chris Mason Fix a bug in reiserfs search_by_key call, where it might not properly detect a change in tree height during a schedule. Originally from vs@namesys.com [PATCH] reiserfs: fix transaction sizes From: Chris Mason Make sure reiserfs uses a reasonable number when restarting long unbounded transactions (creating holes or deleting files). Without this patch, the number of blocks requested grows with each transaction restart, until it hits MAX_BATCH_COUNT and starts forcing commits with every new transaction. Oleg Drokin tracked this bug down [PATCH] reiserfs: atomicity fix From: Chris Mason reiserfs_file_write() can use stale metadata after a schedule. Two reiserfs_file_write bugs, where items can change during a schedule. [PATCH] resierfs: AIO support From: Chris Mason reiserfs can safely use the generic fs aio functions. [PATCH] do_write_mem() return value check From: BlaisorBlade , and me - remove unused `file *' arg from do_write_mem() - Add checking for copy_from_user() failures in do_write_mem() - Return correct value from kmem writes() when a fault is encountered. A write()-style syscall's return values are: 0 when nothing was written and there was no error (someone tried to write zero bytes) >0: the number of bytes copied, whether or not there was an error. Userspace detects errors by noting that the write() return value is less than was requested. <0: there was an error and no bytes were copied [PATCH] document unchecked do_munmaps in ipc/shm.c From: Manfred Spraul There are a few unchecked do_munmap()s in the shm code. Manfred's comment explains why they are OK. [PATCH] slab: fix display of object length in corruption detector From: Manfred Spraul print_objinfo() dumps the first few characters of an interesting object for debugging. It used the wrong object len (including debug padding, instead of just the data area), which could cause an oops if DEBUG_PAGEALLOC is enabled. [PATCH] kthreads hold files open keventd and friends are currently holding /dev/console open three times. It's all inherited from init. Steal the relevant parts of daemonize() to fix that up. [PATCH] kill INIT_THREAD_SIZE From: Matt Mackall This piece of the THREAD_SIZE cleanup got dropped. If you make THREAD_SIZE > 8k, the init thread overlaps the .init section and gets smashed. I've gone ahead and killed INIT_THREAD_SIZE throughout as it wasn't doing much. This also saves 4k when we use 4k stacks. Please apply. Couple more minor pieces remaining. [PATCH] blk: statically initialise the congestion waitqueue_heads On a really small memory machine (or one with a monstrous kernel memory leak) we can end up calling blk_congestion_wait() before the waitqueue_heads are set up. [PATCH] iostats averaging fix From: Rick Lindsley Fix bug #2230. I've corresponded with the submitter and he did find a real bug -- when we were merging I/O requests we didn't always take the oldest request start time, which would cause a couple of the calculations like wait time and average queue size to be too small. He found it mathematically but having done so, I think logic and inspection makes it easy to verify. [PATCH] Reduce stack overflow check to 4096 bytes From: Anton Blanchard Reduce stack overflow check to 4096 bytes free, we were tripping it too much at 8192. [PATCH] Remove bogus sys_oldumount sign extension code From: Anton Blanchard Remove bogus sys_oldumount sign extension code. We were sign extending the flags argument which doesnt make sense. [PATCH] Remove some unused ppc64 variables From: Anton Blanchard Remove some unused ppc64 variables [PATCH] Make dma API handle PCI and VIO From: Stephen Rothwell Make dma API handle PCI and VIO [PATCH] Add hypervisor busy return codes From: Dave Boutcher Add hypervisor busy return codes [PATCH] Handle longbusy return codes in IBM VETH driver From: Santiago Leon Handle longbusy return codes in IBM VETH driver [PATCH] Add some missing EXPORT_SYMBOLs From: Anton Blanchard Add some missing EXPORT_SYMBOLs [PATCH] Fix for hotplug of multifunction cards. From: Linda Xie The changes in this patch are for multifunction cards insertions/removals and bug fixes: 1. fix up new nodes' linux_phandle field. 2. new nodes' phb, devfn(and so on) need to be fixed even the nodes don't have "interrupts". 3. change of_remove_node to non-recurisve func. The recursions will be done by the caller. 4. add a new function -- of_finish_dynamic_node_interrupts() [PATCH] Fix multiple EEH-related bugs From: Linas Vepstas This patch fixes multiple EEH-related bugs: - Fixes the eeh_check_failure() usage in an interrupt context. This routine is now safe to use in an interrupt. The fix was to build a cache of IO addresses and check that, instead of using the pci routines. - Merges in Olof Johansson's sizeof patch when checking for failure - Adds EEH tests to array/string reads - Fixes bugs with address resolution (some i/o addresses were handled incorrectly, resulting in EEH errors slipping by undetected.) - Adds EEH support to the PCI Hotplug system (so that devices that get added/removed get properly registered with the EEH subsystem.) - Fixes improper use of /proc filesystem. - Adds some misc statistics. While merging Linas' patch I also converted the proc usage to seq_single, used per cpu variables for the stats and removed the eeh-force-off option. [PATCH] Fix xics IRQ affinity From: Anton Blanchard - Merge some whitespace differences with the ameslab tree - We check for CPU_MASK_ALL in xics to send irqs to all cpus. In some cases CPU_MASK_ALL is smaller than the cpumask (eg NR_CPUS == 32 and cpumask is a long), so we mask it here to be consistent. [PATCH] Add some functions to make vio.h consistant with pci_dma.h and dma_mapping.h From: Dave Boutcher Add some functions to make vio.h consistant with pci_dma.h and dma_mapping.h [PATCH] Move iSeries specific EXPORT_SYMBOLs out of ppc_ksyms.c From: Stephen Rothwell After this the only iSeries specific EXPORT_SYMBOLS in ppc_ksyms.c are the assembler ones ... [PATCH] update iseries default target From: Anton Blanchard update iseries default target [PATCH] Export find_next_bit From: Anton Blanchard - export find_next_bit and move the other exports here - fix a few minor style issues [PATCH] Add slow path lookup in xics_get_irq From: Jake Moilanen In xics_get_irq(), for a real-to-virt irq lookup, go down the slowpath by looking through the entire virt_irq_to_real_map array if take a miss on the radix tree. This is possible, when an interrupt is taken before the driver has called request_irq() (eg IDE). [PATCH] Dont enable interrupts during interrupt processing on iseries From: Stephen Rothwell Dont enable interrupts during interrupt processing on iseries [PATCH] Remove pci DMA exports From: Anton Blanchard Remove pci DMA exports we now access them via inline functions that operate on pci_dma_ops. [PATCH] Added rtas_set_power_level() From: John Rose Added rtas_set_power_level() [PATCH] Fixed NULL ptr deref in RTAS syscall ppc_rtas() From: John Rose Fixed NULL ptr deref in RTAS syscall ppc_rtas() [PATCH] Add kernel version to oops. From: Anton Blanchard Add kernel version to oops. [PATCH] Cleanup ppc64 procfs code From: Anton Blanchard Cleanup ppc64 procfs code: - Use initcalls everywhere. This allowed us to remove the iseries proc callback interface. - Kill proc_pmc.c. Most of it wasnt used (and we are planning to export the PMCs via sysfs). The few things left were iseries specific so they got moved into iSeries_proc.c. - Kill pmc.c. We dont use those statistics and the ones that are left can be gained via PMCs. - Create /proc/iSeries and /proc/ppc64 very early. This means we no longer have to call proc_ppc64_init in all the drivers, we can assume its there. - Fix some error return cases in rtas-proc.c and rtas-flash - Dont even try some pseries specific drivers on pmac. [PATCH] Clean up xmon backtrace code. From: Anton Blanchard Clean up xmon backtrace code, it was doing all manner of scary things. [PATCH] Fix hvc console sleep in spinlock bug From: Jeremy Kerr This patch fixes the sleep in spinlock hvc bug in hvc_write(). The code is a little longer, but protects against large amounts of memory being kmalloc()ed by userspace, and minimises calls to copy_from_user(). [PATCH] ppc64 defconfig update From: Anton Blanchard ppc64 defconfig update [PATCH] ppc64: fix for massive OF properties From: Anton Blanchard We have some versions of firmware out there that have huge OF properties. So huge that we end up overwriting our initrd. Place a 1MB limit and warn bitterly if its over this. Also fix a use of package-to-path where the variable was 64bytes but we would pass in a length of 255. [PATCH] allow random write to cdrom devices with profile 2 (removable disk) This patch is from Iomega, and it allows random write opens of CDROM's that support the feature. [blk carmel] add copyright statement and license mention [PATCH] ia64: fix up DMA API breakage in generic build We also need the following patch to build the generic_defconfig after the DMA API change: http://linux.bkbits.net:8080/linux-2.5/cset@405490e15inT3T0H2x887j9SaMkYRQ [PATCH] USB: replace kobject with kref in usb-serial core. This saves some memory and is easier to understand what is happening. [IPVS]: Add C99 initializers to ip_vs_ctl.c [IPVS]: Add C99 initializers to net/ipv4/ipvs/ip_vs_lblc.c [IPVS]: Add C99 initializers to net/ipv4/ipvs/ip_vs_lblcr.c JFS: zero new log pages, etc. [netdrvr natsemi] Fix RX DMA mapping RX skbs are always considered maximally sized, until actual reception of the RX frame occurs. So, update this driver to always map and unmap a maximally sized skb. This fixes this driver on several non-x86 platforms. [PATCH] update e100.txt * e100.txt needs to refer to the v3 driver and its settings. Spotted by Calum Mackay [calum.mackay@cdmnet.org] [PATCH] fix netpoll warning in tulip On Tue, Mar 16, 2004 at 12:36:02PM +0200, Meelis Roos wrote: > FYI: with netpoll configured out, I get > > CC [M] drivers/net/tulip/tulip_core.o > drivers/net/tulip/tulip_core.c:256: warning: `poll_tulip' declared `static' but never defined Remove bogus linux/irq.h include that fails build on ARM. Verified to not break anything on x86 either. [blk carmel] call del_gendisk(), if disk is 'up', at cleanup time [hamradio 6pack] cleanup [PATCH] Fix blkpg ioctl32 handling Simple obvious patch so that all calls to blkpg from the non-native environment don't get -EINVAL [PATCH] wait_task_inactive should not return on preempt wait_task_inactive is now only used in two non-time-critical places: the ptrace code to guarantee a schedule and kthread_bind so we can change the thread CPU. Unfortunately with preempt, the code as stands has a race: we might return because the thread is preempted, not because it actually reached schedule(). The ptrace code (probably) doesn't care, but the kthread code does. This patch simplifies the (now over-optimized) code, and does a yield() for the preemption case. [PATCH] ide-scsi.c: fix ATAPI multi-lun support ATAPI multi-lun support has been broken for a long time. It used to be that "(drive->id->last_id & 0x7) + 1" was used as shost->max_lun and the "hdXlun=" kernel parameter could be used to override this value. However it was far from optimal: - people played with "hdXlun=" and then complained about multiple instances of the same device (most ATAPI drives respond to each LUN) - probably some devices return 7 not 0 in id->last_id (=> 7 x same device) This patch from Willem Riede fixes it w/o need for "hdXlun=" option. It was tested by Willem on ATAPI PD/CD drive. [PATCH] remove dead "hdXlun=" kernel parameter [PATCH] ATI IXP IDE support It was tested by a few people and has been in -mm since 2.6.4-rc2-mm1. [PATCH] hpt366.c: DMA timeout fix for HPT374 From: Andre Hedrick Tested on Epox 8K9A3+ and 4PCA3+ by Tomi Orava . [PATCH] fix ppc rtas compile The proc_rtas_init call in procfs was removed (replaced with an initcall) but the prototype was still hiding. Kill it. [libata sata_vsc] minor cleanup Add ULL prefix to args in pci_*_set_dma_mask() calls. [PATCH] Make intermezzo work again - Chen Yang's fix to work with NGROUPS - Chen Yang's fix to handle file deletion - Remove TCGETS handling and return -ENOTTY for unknown ioctl code. - Removed InterMezzo from BROKEN state [PATCH] Fix memory corruption on hyperthreaded x86-64 machines Fix memory corruption in the HT init on x86-64 recently introduced by me. Fix from from Suresh B. Siddha. [ACPI] check "maxcpus=N" early -- same as NR_CPUS check. http://bugzilla.kernel.org/show_bug.cgi?id=2317 When the BIOS enumerates physical processors before logical, maxcpus=N/2 will now effectively disable HT. This can be verified by boot messages warning that HT is off: eg. "maxcpus=2" on a 2xHT system: Total of 2 processors activated (11141.12 BogoMIPS). WARNING: No sibling found for CPU 0. WARNING: No sibling found for CPU 1. [libata] Several updates to via driver * remove unneeded linux/config.h include * reset and test for device presence using SATA phy registers (SCRs) * add code to make sure that channels and interrupts we are interested in, are enabled * rewrite PCI probe routine (svia_init_one) [wireless prism54] use netdev_priv() helper [wireless prism54] several minor updates Here is the ChangeLog: * wireless/Kconfig: fix typos, add SMC2835W-V2 * islpci_hotplug.c: new version 1.1, authors list, and module description updated appropriately * isl_ioctl.c, islpci_dev.c, islpci_eth.c, islpci_hotplug.c, islpci_mgt.c: s/ndev->priv/netdev_priv(ndev)/g * islpci_hotplug.c: Add PCI ID values for SMC2835W-V2 cardbus card Patch by Manuel Lauss * isl_38xx.[ch]: include firmware.h in header, remove declaration of headers in c file. Fix compiler warnings. * islpci_dev.c (islpci_alloc_memory), * islpci_eth.c (islpci_eth_cleanup_transmit, islpci_eth_transmit, islpci_eth_receive): deal with skb stray pointer, declare NULL. * isl_38xx.c: remove unecessary __KERNEL_SYSCALLS__ and re-ordered headers per vger.kernel.org - liking. * isl_ioctl.c, islpci_mgt.c: move from MODULE_PARAM to the new module_param, which is type-safe. Includes the new . * isl_ioctl.c (prism54_[s|g]et_[maxframeburst|profile]): added. Not adding ioctls as ajfa is working on moving current private ioctls to subioctls. * isl_oid.h (dot11_[maxframeburst|preamblesettings| slotsettings|nonerpstatus|nonerpprotection]_t): added. Note: more ioctls can be added here, I believe problems with mixed modes can be pinpointed here, with these values. [PATCH] ppc32: Fix c&p error in arch/ppc/syslib/indirect_pci.c From: Tom Rini Fix a cut & paste error in forward porting from 2.4, we don't reference dev->bus or dev->devfn, both are passed as arguments. [PATCH] ppc32: Fix PCI DMA API changes From: Tom Rini When Dave Miller updated for the _for_device and _for_cpu portions of the PCI DMA API, he assumed that on PPC32 consistent_sync* would also need to be changed for device or cpu. This is not the case, so what this does is the pci_*_for_{cpu,device} calls call consistent_sync{,page} again. [PATCH] ppc32: Update From: Tom Rini include/asm-ppc/dma-mapping.h was made to be a 'real' header recently and therefore missed out on the updates that davem did to all of the other versions. This updates to match what's expected now. [PATCH] ppc32: Fix thinko in PCI_DMA_FOO to DMA_FOO conversion From: Tom Rini When I converted the use of PCI_DMA_foo constants to DMA_foo constants, I forgot that it's PCI_DMA_FROMDEVICE and DMA_FROM_DEVICE. The following fixes that. [PATCH] ppc64: run bitops.c through Lindent From: Anton Blanchard bitops.c was a bit of a mess wrt formatting so run it through Lindent. No code changes. [PATCH] s390: core From: Martin Schwidefsky s390 core changes: - Merge 31 and 64 bit NR_CPUS config option. Default to 32 cpus. - Remove unused system calls from compat_linux.c. - Add statfs64 and fstatfs64. Reserve system call number for remap_file_pages. - Merge do_signal32 into do_signal. - Don't remove the per bit and the program mask from the user psw due to a signal. - Fix a problem with gdb and interrupted system calls. - Fix single stepping of interrupted system calls. - Fix compiler warnings in bitops.h. [PATCH] s390: common i/o layer. From: Martin Schwidefsky Common i/o layer fixes: - Improve blacklist argument parsing. - Fix device recognition for devices where SenseID fails. - Don't try to set a device online that has no driver. - Chain a release ccw to the unconditional reserve ccw for forced online. - Fix irb accumulation for pure status pending with eswf set. - Fix rc handling in qdio_shutdown. - Improve retry behavious for busy conditions on qdio. - Fix activity check in ccw_device_start/read_dev_chars and read_conf_data. [PATCH] s390: sclp fix. From: Martin Schwidefsky sclp console fixes: - Replace irq_enter/irq_exit pair with Add local_bh_enable/local_bh_disable. [PATCH] s390: network driver fixes. From: Martin Schwidefsky network driver fixes: - Use SET_NETDEV_DEV to create the link from the network device to the physical device. Remove link from physical to network device. - Remove some unnecessary casts in netiucv. - Add missing strings to dev_stat_names & dev_event_names. - Add missing preempt_disable/preempt_enable pairs in iucv. - Allow to change the peer username in netiucv. [PATCH] s390: dasd driver fixes. From: Martin Schwidefsky dasd driver fixes: - Remove additional dasd attributes for a ccw-device if the discipline (=driver) gets unloaded. - Fix race of dasd_generic_offline against dasd_open. - Remove irq_exit calls from diag interrupt handler. The irq_enter/ irq_exit is done in the external interrupt handler. [PATCH] s390: z/VM monitor stream. From: Martin Schwidefsky Fix for z/VM monitor stream: - Add try_module_get and module_put to the [un]register functions. - Some code beautification. [PATCH] s390: tape driver fixes. From: Martin Schwidefsky tape driver fixes: - Link from ccw device to class device in sysfs. - Cosmetic changes. - Add copyright statements. [PATCH] x86 vsyscall alignment fix From: Andy Whitcroft The vsyscall implementation for ia32 provides two different vsyscall pages; one to use int80 and the other to use sysenter. Each includes a common signal trailer. The kernel requires the alignment of routines in this trailer be consistent in both copies. However this is not enforced at compile time. Failure to maintain this alignment typically leads to an obscure SIGSEGV in init during boot. This critical alignment requirement is not well documented. Below is a patch to better document the alignment requirements and to enforce the requirement. [PATCH] make config_max_raw_devices work From: "Kenneth Chen" Even though there is a CONFIG_MAX_RAW_DEVS option, it doesn't actually increase the number of raw devices beyond 256 because during the char registration, it uses the standard register_chrdev() interface which has hard coded 256 minor in it. Here is a patch that fix this problem by using register_chrdev_region() and cdev_(init/add/del) functions. [PATCH] hugetlb_zero_setup() race fix Make the handling of the hugetlb-backed shm file's name counter SMP-safe. (What stops hugetlb_zero_setup() racing with umount?) [PATCH] clean up devices.txt From: "Cagle, John (ISS-Houston)" Patch 1 cleans up the format by making devices.txt easily parsable. Mainly this involved adding the word "block" after all the block major numbers since the previous format didn't include it. [PATCH] devices.txt: typos and removal of dead devices From: "Cagle, John (ISS-Houston)" Patch 2 fixes some typos in devices.txt and removes ancient devices never used. Pretty obvious stuff. [PATCH] devices.txt: add more devices From: "Cagle, John (ISS-Houston)" Patch 3 adds all the new official device registrations that weren't already there. This brings devices.txt up-to-date with LANANA. [PATCH] cpqarray: increment version number From: The following patch bumps the driver version to 2.6.0. Please apply in order. [PATCH] cpqarray: rmmod oops fix From: * Fix for segmentation fault when calling rmmod [PATCH] cpqarray: I/O address fixes From: * cpqarray in kernel 2.6.1 seems to be based from 2.4.18 kernel with specific 2.6.x stuff added. * Defines io_mem_addr and io_mem_length to replace ioaddr (change from 2.4.18 to 2.4.19) [PATCH] cpqarray: use PCI APIs From: - Change to use pci APIs (change from 2.4.18 to 2.4.19) This also includes eisa detection fix during initialization which was missing from 2.4.19 but fixed in 2.4.25 [PATCH] cpqarray: check pci_register_driver() return value From: * Examines rc of pci_register_driver and returns [PATCH] SHMLBA compat task alignment fix From: Arun Sharma The current Linux implementation of shmat() insists on SHMLBA alignment even when shmflg & SHM_RND == 0. This is not consistent with the man pages and the single UNIX spec, which require only a page-aligned address. However, some architectures require a SHMLBA alignment for correctness in all cases. Such architectures use __ARCH_FORCE_SHMLBA. [PATCH] Remove old config options from defconfigs. From: Dave Jones These options are only ever referenced in the defconfigs of various archs now. [PATCH] Fix x86_64 compile warning in bad_page() On x84_64, page->flags is no longer unsigned long. [PATCH] drivers/cdrom/cdu31a - wrong tmp_irq declaration cdu31a.c needs tmp_irq outside of the block it is declared in. Move it to the outer block. [PATCH] hpt366.c: PLL fix needed for some HPT374 From: Boehm Olaf From: Jindrich Makovicka Wider range for 33MHz timing and PLL setup for HPT374 (using the HPT370A timing table, as it is the same as used in the "opensource" driver by HighPoint). fixes bugzilla bugs #2209 and #2271 [PATCH] remove ide_hwif_t->initializing It's write-only these days. [PATCH] remove AMIGA/MAC hacks from IDE resource handling code Nowadays buddha.c, gayle.c and macide.c handle resources themselves (hwif->mmio == 2). Acked by Geert. [PATCH] ide-dma.c: remove unused/obsoleted code for hwif->mmio == 1 All users of hwif->mmio correctly handle resources themselves (hwif->mmio == 2) so remove ide_mmio_dma() and ide_release_mmio_dma(). [netdrvr de2104x] fix ifup/down and promise mode The attached patch fixes the problem: de->macmode variable, meant to shadow MacMode (CSR6) register, was used inconsistently, causing some updates to this register to be dropped. 2.4 kernel doesn't shadow this register at all, so I removed shadowing from 2.6 as well. ia64: Prevent GCC from clobbering r13. Found by Luming You. Without this change, GCC thinks it's OK to clobber r13. It doesn't do it very often, but it's enough if it does it once and it turns out acpi_bus_receive_event() had code that would trigger this issue. Fix by declaring r13 as a global register variable. [netdrvr de2104x] initialize bus mode properly [PATCH] ia64: init IO port space, IO accessors earlier This is a minor patch to get things setup so consoles can work earlier. (No change to consoles here, I just split this out to make the diff easier to read.) (io_port_init): New function, same old code to setup ia64_iobase and legacy IO port space. (setup_arch): Call io_port_init() and machvec_init() as early as possible so consoles can work earlier. [PATCH] ia64: kill unused ACPI configgery The config ACPI helptext isn't used because the option is never presented to the user. ACPI_KERNEL_CONFIG is unused. ACPI_INTERPRETER is now set in drivers/acpi/Kconfig. [PATCH] ia64: force all kernel sections into one and the same segment Older versions of the linker do not handle cross-segment segment-relative relocations properly. This becomes a real problem when the linker decides to put .text and .text.init into different segments (for whatever reasons) because in that case, broken linkers will produce a broken unwind section, which can cause nasty Heisenbugs, where, for example, unwinding may or may not work depending on the exact value of the IP in a function. [ALPHA] Fix build in alpha_ksyms.c. [TRIVIAL] Miata url update. From: "Petri T. Koistinen" [PATCH] back out netdev_priv() for loopback Please apply this fix to backout an erroneous change in loopback.c The statistics structure is allocated separately from the loopback_dev structure, and the current code overwrites something other than the statistics. In my case the scsi_cmd_pool structure. [TRIVIAL] Remove x86 instructions on alpha. From . [PATCH] ppc32: fix SMP build From: Olaf Hering Current Linus tree adds an extra space and dot to the mkprep options. `make all' with an smp config doesnt work. This patch fixes it. [PATCH] ppc32: Fix booting some IBM PRePs From: Tom Rini The following patch comes from Paul Mackerras. Earlier on in 2.6, arch/ppc/boot/utils/mkprep.c was changed slightly so that it would build and work on Solaris. Doing this required changing from filling out pointers to an area to filling out a local copy of the struct. However, a memcpy was left out, and the info is only needed on some machines to boot. The following adds in the missing memcpy and allows for IBM PRePs to boot from a raw floppy again. [PATCH] ppc64: wrap some stuff in __KERNEL__ From: Anton Blanchard - remove now unused kernel syscalls. - wrap recently added defines in #ifdef __KERNEL__, fixes glibc compile issue - some of our extra syscalls used asmlinkage, some did not. Make them consistent [PATCH] ppc64: xmon oops-the-kernel option From: Anton Blanchard Sometimes we just want to pass the error up to the kernel and let it oops. X it is. [PATCH] ppc64: CONFIG_PREEMPT Kconfig help fix From: Anton Blanchard From: Robert Love arch/ppc64/Kconfig's entry for CONFIG_PREEMPT is missing the description after the "bool" statement, so the entry does not show up. Also, the help description mentions a restriction that is not [any longer] true. [PATCH] JBD: avoid panic on corrupted journal superblock Don't panic if the journal superblock is wrecked: just fail the mount. [PATCH] exportfs - Remove unnecessary locking from find_exported_dentry() From: "Jose R. Santos" After discussing it with Neil, he fell that the original justification for taking the kernel_lock on find_exported_dentry() is not longer valid and should be safe to remove. This patch fixes an issue while running SpecSFS where under memory pressure, shrinking dcache cause find_exported_dentry() to allocate disconnected dentries that later needed to be properly connected. The connecting part of the code was done with BKL taken which cause a sharp drop in performance during iterations and profiles showing 75% time spent on find_exported_dentry(). After applying the patch, time spent on the function is reduce to <1%. I have tested this on an 8-way machine with 56 filesystems for several days now with no problems using ext2, ext3, xfs and jfs. [PATCH] ISDN kernelcapi debug message enable From: Armin Schindler Show debug messages if debug is enabled only. [PATCH] ISDN kernelcapi notifier workqueue re-structured From: Armin Schindler Use the notifier workqueue in a cleaner way. [PATCH] ISDN kernelcapi notifier NULL pointer fix From: Armin Schindler Fixed NULL pointer reference in recv_handler() ia64: GCC v3.5 fixes. GCC v3.5 doesn't like it when a function gets cast to a function-pointer with a different signature. In fact, it exterts extreme prejudice in this case and replaces the call-site with a call to __builtin_trap()! Fix this by providing appropriately typed dummy-functions for the macvec operations as needed. While at it, also clean up some machvec handlers which weren't used anywhere. [libata] update dma start/stop path to only set/clear the bits we care about Legacy IDE software has traditionally unconditionally cleared the bits in the IDE BMDMA control register, but at least one controller has important bits in the 'reserved' area that we don't want to touch. So now, we only set/clear the data-direction and dma-start bits, and leave the rest alone. ALSA CVS update - Clemens Ladisch MPU401 UART don't use acpi_disabled because it isn't exported in all archs ALSA CVS update - Clemens Ladisch MPU401 UART don't use negative return value as card count ALSA CVS update - Clemens Ladisch MPU401 UART use global variable to count cards ALSA CVS update - Takashi Iwai SPARC cs4231 driver fixed the dma allocation type. ALSA CVS update - Takashi Iwai SPARC cs4231 driver fixed the compilation error (missing comma). ALSA CVS update - Takashi Iwai au88x0 driver Manuel Jander : clean up and small bugfixes, the routing code fix for multiple streams. ALSA CVS update - Clemens Ladisch USB generic driver don't resubmit unlinked urbs; move interface releasing after urb unlinking ALSA CVS update - Jaroslav Kysela PPC PMAC driver Fix against the new DMA API ALSA CVS update - Takashi Iwai AC97 Codec Core added the quirk for Compaq Evo D510C. ALSA CVS update - Clemens Ladisch USB generic driver fix get_iface_desc macro ALSA CVS update - Clemens Ladisch USB generic driver replace usage of interface index with calls to usb_ifnum_to_if ALSA CVS update - Clemens Ladisch USB generic driver add comments in USB MIDI vendor-specific detection functions [libata sata_sil] port init cleanup, mask SATA phy interrupts * don't define a constant for each of four sets of register block offsets, use a table instead. * mask all SATA phy interrupt events, for each port [libata] API cleanup Remove ->phy_config hook, everybody used pata_phy_config. Rename function to ata_set_mode, and directly call internally. ALSA CVS update - Jaroslav Kysela USB generic driver Returned back get_iface() macro for quirks Removed extra variable to avoid warning [libata sata_sil] add post-set-mode hook to libata, use it Silicon Image has a register that indicates the data transfer mode (pio-old, pio-new, mdma or udma) that must be initialized after the SET FEATURES - XFER command has been issued. This requires a hook in libata core to set the register at the right time. Also, limit to UDMA5 due to scary comments in FreeBSD about chip errata. ia64: Small cleanup in __kernel_sigtramp(). [libata] remove unneeded linux/config.h includes [PATCH] hpfs: namei.c failure case cleanups Failure exits in hpfs/namei.c merged and cleaned up. [PATCH] hpfs: clean up lock ordering hpfs_{lock,unlock}_{2,3}inodes() killed; all places that take more than one lock have ->i_sem held by VFS on all inodes involved and all hpfs per-inode locks are of the same type. IOW, we can replace these guys with multiple hpfs_lock_inode() - order doesn't matter here. [PATCH] hpfs: new/read/write_inode() cleanups 1) common initialization for all paths in hpfs_read_inode() taken into a separate helper (hpfs_init_inode()) 2) hpfs mkdir(),create(),mknod() and symlink() do not bother with iget() anymore - they call new_inode(), do initializations and insert new inode into icache. Handling of OOM failures cleaned up - if we can't allocate in-core inode, bail instead of corrupting the filesystem. Allocating in-core inode early also avoids one of the deadlocks here (hpfs_write_inode() from memory pressure by kmem_cache_alloc() could deadlock on attempt to lock our directory). 3) hpfs_write_inode() marks the inode dirty again in case if it fails to iget() its parent directory. Again, OOM could trigger fs corruption here. [PATCH] hpfs: hpfs iget locking cleanup preparation Preparation to hpfs iget locking cleanup - remaining iget() callers replaced with explicit iget_locked() + call hpfs_read_inode()/unlock_new_inode() if inode is new. [PATCH] hpfs: hpfs iget locking cleanup Killed the nightmares in hpfs iget handling. Since in some (fairly frequent) cases hpfs_read_inode() could avoid any IO (basically, lookup hitting a native HPFS regular file can get all data from directory entry) hpfs had a flag passed to that sucker. Said flag had been protected by a semaphore lookalike made out of spit and duct-tape and callers of iget looked like hpfs_lock_iget(sb, flag); result = iget(sb, ino); hpfs_unlock_iget(sb); Since now we are calling hpfs_read_inode() directly (note that calling it without hpfs_lock_iget() would simply break) we can forget all that crap and get rid of the flag - caller knows what it wants to call. BTW, that had killed one of the last sleep_on() users in fs/*/*. [PATCH] hpfs: deadlock fixes We used to have GFP_KERNEL kmalloc() done by the code that held hpfs lock on directory. That could trigger a call of hpfs_write_inode() and deadlock; fixed by switch to GFP_NOFS. Same for hpfs inodes themselves - hpfs_write_inode() calls iget() and that could trigger both the deadlocks (avoidable with very baroque locking scheme) and stack overflows (unavoidable unless we kill potential recursion here). [PATCH] hpfs: fix locking scheme Fixed the locking scheme. The need of extra locking was caused by the fact that hpfs_write_inode() must update directory entry; since HPFS directories are implemented as b-trees, we must provide protection both against rename() (to make sure that we update the entry in right directory) and against rebalancing of the parent. Old scheme had both deadlocks and races - to start with, we had no protection against rename()/unlink()/rmdir(), since (a) locking parent was done without any warranties that it will remain our parent and (b) check that we still have a directory entry (== have positive nlink) was done before we tried to lock the parent. Moreover, iget serialization killed two steps ago gave immediate deadlocks if iget() of parent had triggered another hpfs_write_inode(). New scheme introduces another per-inode semaphore (hpfs-only, obviously) protecting the reference to parent. It's taken on rename/rmdir/unlink victims and inode being moved by rename. Old semaphores are taken only on parent(s) and only after we grab one(s) of the new kind. hpfs_write_inode() gets the new semaphore on our inode, checks nlink and if it's non-zero grabs parent and takes the old semaphore on it. Order among the semaphores of the same kind is arbitrary - the only function that might take more than one of the same kind is hpfs_rename() and it's serialized by VFS. We might get away with only one semaphore, but then the ordering issues would bite us big way - we would have to make sure that child is always locked before parent (hpfs_write_inode() leaves no other choice) and while that's easy to do for almost all operations, rename() is a bitch - as always. And per-superblock rwsem giving rename() vs. write_inode() exclusion on hpfs would make the entire thing too baroque for my taste. ->readdir() takes no locks at all (protection against directory modifications is provided by VFS exclusion), ditto for ->lookup(). ->llseek() on directories switched to use of (VFS) ->i_sem, so it's safe from directory modifications and ->readdir() is safe from it - no hpfs locks are needed here. [PATCH] hpfs: general cleanup include files moved to fs/hpfs/, gratitious #include removed, stuff that doesn't have to be global made static, misindented chunk of hpfs_readdir() put in place, etc. [PATCH] Export cpu notifiers and do locking. The registration and unregistration of CPU notifiers should be done under the cpucontrol sem. They should also be exported. [PATCH] Implement migrate_all_tasks Implement migrate_all_tasks() which moves tasks off cpu while machine is stopped. cpu.c needs for symbol exports [PATCH] add missing MODULE_DEVICE_TABLE() to IDE PCI drivers Original patch from Hannes Reinecke . This is required to have modular IDE drivers announce themselves properly in modules.pcimap. Make ppc64 __FD_ISSET() return a proper boolean return value. (The broken macro only triggers for non-gcc compiles, but still..) [PATCH] FD_CLOEXEC fcntl cleanup This fixes a minor problem with fcntl. get_close_on_exec() uses FD_ISSET() to determine the fd state, but this is not guaranteed to be either 0 of FD_CLOEXEC. Make that explicit. Also, the argument of set_close_on_exec() is being AND'ed with the literal constant 1. Make it use an explicit FD_CLOEXEC test. [blk carmel] use statically allocated majors for first two hosts Also: * fix FL_DAC bit definition (value chosen was already in use) * improve info printk'd when adapter is registered * call pci_set_drvdata(pdev, NULL) [PATCH] revert some netdev_priv() changes These drivers don't use the usual/normal/typical netdevice->priv storage, so converting them to use netdev_priv() was not the right thing to do. Back to using dev->priv for them. [PATCH] Fw: [PATCH 2.6] netpoll for pcnet_cs From: Stelian Pop Subject: [PATCH 2.6] netpoll for pcnet_cs This patch adds netpoll support to pcnet_cs. Tested with the netconsole facility. [wireless prism54] add two final missing bits One a fairly important one, ensuring an skb slot is noted to be NULL. [libata] explicitly set consistent DMA mask to 0xffffffff Do not rely on the default being 0xffffffff. [CS4231]: Fix build error, use SNDRV_DMA_TYPE_DEV and missing comma. [SPARC]: NR_SYSCALLS in entry.S needs to be 273. [PATCH] ia64: make level sensitive interrupt emulation default on SN2 SN2 doesn't fully support level triggered interrupts. As a workaround, we need this patch to force another interrupt if the line is still high after a handler completes. [ACPI] numa.c build fix (Luming Yu) http://bugzilla.kernel.org/show_bug.cgi?id=2131 [NET]: Give struct flowi explicit alignment, with help from yoshfuji. [ALPHA] Streamline opDEC_check and the actual fixup bits in do_entIF. [AF_KEY]: More accurate error codes. [PKT_SCHED]: Fix broken indentation in HFSC scheduler. [NET_SCHED]: Fix requeueing in HFSC scheduler. Requeued packets are kept in a high-priority queue which is always dequeued first. [NET_SCHED]: Add packet delay scheduler. [PATCH] missing check in do_add_mount() Make sure that we don't end up with symlink mounted over something (mount --bind is safe since we use LOOKUP_FOLLOW in pathname resolution there). [PATCH] add file_accessed() helper New inlined helper - file_accessed(file) (wrapper for update_atime()) [PATCH] add touch_atime() helper Preparation for per-mountpoint noatime, nodiratime and later - per-mountpoint r/o. Depends on file_accessed() patch, should go after it. New helper - touch_atime(mnt, dentry). It's a wrapper for update_atime() and that's where all future per-mountpoint checks will go. [libata] increase max from UDMA/100 to UDMA/133 for some drivers ServerWorks and Vitesse driver transfer mode maximums were incorrectly too low. [PATCH] ppc64: iSeries virtual tape driver From: Stephen Rothwell This patch adds the driver for the PPC64 iSeries virtual tape. [PATCH] ppc64: remove IO_DEBUG From: Anton Blanchard Remove the old __IO_DEBUG stuff and add some nice comments courtesy of x86. [PATCH] ppc64: Add numa=off command line option From: Anton Blanchard Add numa=off command line option to disable NUMA support at runtime. Useful if there are issues with our parsing of the NUMA toplogy or for testing NUMA gains. [PATCH] ppc64: Fix SLB reload bug From: Paul Mackerras Recently we found a particularly nasty bug in the segment handling in the ppc64 kernel. It would only happen rarely under heavy load, but when it did the machine would lock up with the whole of memory filled with exception stack frames. The primary cause was that we were losing the translation for the kernel stack from the SLB, but we still had it in the ERAT for a while longer. Now, there is a critical region in various exception exit paths where we have loaded the SRR0 and SRR1 registers from GPRs and we are loading those GPRs and the stack pointer from the exception frame on the kernel stack. If we lose the ERAT entry for the kernel stack in that region, we take an SLB miss on the next access to the kernel stack. Taking the exception overwrites the values we have put into SRR0 and SRR1, which means we lose state. In fact we ended up repeating that last section of the exception exit path, but using the user stack pointer this time. That caused another exception (or if it didn't, we loaded a new value from the user stack and then went around and tried to use that). And it spiralled downwards from there. The patch below fixes the primary problem by making sure that we really never cast out the SLB entry for the kernel stack. It also improves debuggability in case anything like this happens again by: - In our exception exit paths, we now check whether the RI bit in the SRR1 value is 0. We already set the RI bit to 0 before starting the critical region, but we never checked it. Now, if we do ever get an exception in one of the critical regions, we will detect it before returning to the critical region, and instead we will print a nasty message and oops. - In the exception entry code, we now check that the kernel stack pointer value we're about to use isn't a userspace address. If it is, we print a nasty message and oops. This has been tested on G5 and pSeries (both with and without hypervisor) and compile-tested on iSeries. [PATCH] ppc64: Fix POWER3 TCE allocation From: Anton Blanchard - Fix for machines with 3GB IO holes (eg nighthawk). - Increase the maximum number of PHBs and warn if we exceed this (we used to walk off the end of the array) - Only allocate an 8MB TCE table on POWER4 [PATCH] Add dma_error() and pci_dma_error() From: Anton Blanchard Introduce dma_error() and pci_dma_error() which are used to detect failures in pci_map_single. [PATCH] sysfs_remove_dir-vs-dcache_readdir race fix From: Maneesh Soni I have re-done the patch fixing the race between sysfs_remove_dir() and dcache_readdir(). If you recall, sysfs_remove_dir(kobj) manipulates the ->d_subdirs list for the dentry corresponding to the sysfs directory being removed. It can end up deleting the cursor dentry which is added to the ->d_subdirs list during a concurrent dcache_dir_open() ==> dcache_readdir() for the same directory. And as a result dcache_readdir() can loop for ever holding dcache_lock. The earlier patch which was included in -mm1 created problems which resulted in list_del() BUG hits in prune_dcache(). The reason I think is that in the main loop in sysfs_remove_dir(), dcache_lock is dropped and re-acquired, and this could result in inconsistent ->d_subdirs list and prune_dcache() may try to delete an already deleted dentry. I have corrected this in the new patch as below. I could do sysfs_remove_dir() more neatly on sysfs backing store patch set as there I don't use the ->d_subdirs list. Instead the list of children sysfs_dirent works out well. But untill sysfs backing store patch is picked up the existing code suffer from this race. This can be easily tested by running following two loops on a SMP box # while true; do insmod drivers/net/dummy.ko; rmmod dummy; done # while true; do find /sys/class/net > /dev/null; done o This patch fixes sysfs_remove_dir race with dcache_readdir. There is no need for sysfs_remove_dir to modify the d_subdirs list for the directory being deleted as it is taken care in the final dput. Modifying this list results in inconsistent d_subdirs list and causes infinite loop in concurrently occurring dcache_readdir. o The main loop is restarted every time, dcache_lock is re-acquired in order to maintain consistency. [PATCH] Fix dentry refcounting in sysfs_remove_group() From: Maneesh Soni The following patch fixes the dentry refcounting, during sysfs_remove_group() and also adds the missing dput() for the "extra" ref taken during sysfs_create() for the sub-directory dentry corresponding to attribute group. [PATCH] sysfs: pin kobjects to fix use-after-free crashes From: Maneesh Soni Fix a sysfs use-after-free crash. The problem we have is of the kobject going away while we have a live dentry (the corresponding sysfs directory) still pointing to it throuh d_fsdata pointer. The patch makes sure to keep the kobject alive by taking a reference to it during the life-time of corresponding dentry. o The following pins the kobject when sysfs assigns dentry and inode to the kobject. This ensures that kobject is alive during the life time of the dentry and inode, and people holding ref. to the dentry can access the kobject without any problems. o The ref. taken for the kobject is released through dentry->d_op->d_iput() call when the dentry ref. count drops to zero and it is being freed. For this sysfs_dentry_operations is introduced. For testing one has to run the following test on a SMP box: 1) Do insmod/rmmod "dummy.o" network driver in a forever loop. 2) Parallely do "find /sys/class/net | xargs cat" also in a forever loop. [PATCH] proper alignment of init task in kernel image From: Matt Mackall This keeps the alignment of the init task matched with the stack size. [PATCH] don't abuse empty_zero_page (x86) From: Brian Gerst Don't abuse empty_zero_page as temporary storage for boot parameters and command line. This is a holdover from the days before discardable init sections. [PATCH] kconfig: fix xconfig on /lib64 properly From: Roman Zippel The correct link path is needed at config time to find the correct library, so let's ask gcc for the real path. [PATCH] kconfig: don't rename target dir when saving config From: Roman Zippel conf_write() now checks the target path whether it's a directory, so it saves the config in the directory instead of renaming it. [PATCH] config: disable debug prints From: Roman Zippel This disables some debug prints, which are more confusing than helpful for normal users. [PATCH] config: persistent qconf configuration From: Roman Zippel This patch is by Andreas Fester and saves and restores various runtime options of qconf. [PATCH] config: choice fix From: Roman Zippel When a boolean choice value has a dependency of 'm' it can be shortly treated as a tristate symbol. This fixes this and also add a small optimization to precompute the value of the module symbol instead of checking it all the time. [PATCH] 8250_pnp: probe and remove can be __devinit/__devexit From: "Randy.Dunlap" From: Luiz Fernando Capitulino [PATCH] slab: start_cpu_timer() can be __init From: "Randy.Dunlap" From: Luiz Fernando Capitulino [PATCH] doc. updates/typos From: "Randy.Dunlap" Remove the rest of references to smp.tex Documentation/cpufreq => Documentation/cpu-freq DocBook/tulip.{pdf,ps,html} => DocBook/tulip-user.{pdf,ps,html} Bunch of other typos. [PATCH] ip2: fix double operator From: "Randy.Dunlap" This trivial patch fixes the bug #320: http://bugme.osdl.org/show_bug.cgi?id=320 The additional comment: http://bugme.osdl.org/show_bug.cgi?id=320#c1 Is wrong, because it will send the command twice. We only want to see if the command got success, thus is not necessary to test against < 0 (if the return value is not 1, we got a error). Note that I'm using the function (bad) style. [PATCH] procfs: use kernel min/max From: "Randy.Dunlap" From: Michael Veeck Patch (against 2.6.3) removes unnecessary min/max macros and changes calls to use kernel.h macros instead. [PATCH] reiserfs: use kernel min/max From: "Randy.Dunlap" From: Michael Veeck Remove unnecessary min/max macros and changes calls to use kernel.h macros instead. [PATCH] sound: use kernel min/max From: "Randy.Dunlap" From: Michael Veeck Remove unnecessary min/max macros and changes calls to use kernel.h macros instead. [PATCH] zlib: use kernel min/max From: "Randy.Dunlap" From: Michael Veeck Remove unnecessary min/max macros and changes calls to use kernel.h macros instead. [PATCH] fix HZ leaking to userspace in BSD accounting From: Tim Schmielau BSD accounting was missed in the conversion from HZ to USER_HZ. I thought nobody cared, but apparently there are still users to it. [PATCH] Fix uninlined memcmp on i386 From: DHollenbeck This patch was needed against a pristine 2.6.4 kernel when compiling with "gcc 3.4 _very recent_" using the -Os option. Without this patch, modules would use a non-inline memcmp() and then not find it in the kernel, causing depmod to complain and some modules not to load. [PATCH] EDD: move code from i386-specific locations to generic From: Matt Domsch Three patches to move the BIOS Enhanced Disk Drive code from i386-specific locations into more generic locations, which will allow it to be used on x86-64 as well. move edd.h from include/asm-i386 to include/linux [PATCH] EDD: move code from i386-specific locations to generic From: Matt Domsch move edd.c from arch/i386/kernel to new dir drivers/firmware. Fix up makefiles and Kconfigs. [PATCH] EDD: split assembly code From: Matt Domsch Split EDD assembly code from setup.S into edd.S. This will enable it to be #included into x86-64 too. [PATCH] pte_chain comment fix From: Carl Spalletta Fix a comment bug. [PATCH] add note about "Copyright" to SubmittingDrivers From: Grant Grundler This patch adds a comment to "Documentation/SubmittingDrivers" about the importance of adding a Copyright notice in submitted code. The parisc-linux port has neglected this in the past and I've been slowly trying to correct that (along with proper GPL header). While I make it sound like GPL is the "only" acceptable license, I'll leave it up to lawyers to determine what other appropriate license could be used for a new driver. [PATCH] sonypi devinit section usage From: Stelian Pop This patch removes the usage of __devinit in the srs methods of the sonypi driver, because those functions are also called from sonypi_pm_callback(). Patch originally from Randy Dunlap. [PATCH] VM overcommit documentation fixes From: Andy Whitcroft Whilst looking at the memory overcommit logic I noticed that the pointer to the documentation from the *_vm_enough_memory calls is incorrect. Also that in one instance the routine does not have the expected pointers. [PATCH] meye driver update From: Stelian Pop This patchlet is just a resync with my tree, it only increments the meye driver version number and makes some small comment changes as suggested by Randy Dunlap. [PATCH] remove_suid() should return error code From: Nikita Danilov remove_suid() ignores return value of notify_change()->i_op->setattr(). This mean, that even if file system fails to clear suid bit, generic_file_aio_write_nolock() proceeds with write, which is unsafe. Actually, even ext2's ->setattr() can fail, when trying to update ACL, for example. Attached patch modifies remove_suid() to return result of ->setattr(), and updates in-tree callers. [PATCH] Hotplug CPUs: cpu_down() Implement cpu_down(): uses stop_machine to freeze the machine, then uses (arch-specific) __cpu_disable() and migrate_all_tasks(). Whole thing under CONFIG_HOTPLUG_CPU, so doesn't break archs which don't define that. [PATCH] Hotplug CPUs: Sysfs Online Attribute Add "online" sysfs attribute to cpus to bring them up and down. Again, only under CONFIG_HOTPLUG_CPU. [PATCH] Hotplug CPUs: don't pull onto offline CPUs Don't move tasks onto offline cpus in load_balance and wake_task (the latter is caused by a completion run from stop_machine). Note that cpu_is_offline() is a noop when CONFIG_HOTPLUG_CPU=n. [PATCH] Hotplug CPUs: Take cpu Lock Around Migration Grab cpu lock around sched_migrate_task() and sys_sched_setaffinity(). This is a noop without CONFIG_HOTPLUG_CPU. The sched_migrate_task may have a performance penalty on NUMA if lots of exec rebalancing is happening, however this only applies to CONFIG_NUMA and CONFIG_HOTPLUG_CPU, which noone does at the moment anyway. Also, the scheduler in -mm solves the race another way, so this will vanish then. [PATCH] Hotplug CPUs: Keep IRQs off in Migration Thread Calling Currently the migration thread re-enables irqs, then calls move_task_away which disables IRQs again and actually does the move. This means there is a race where the migration thread gets preempted, and the target CPU can go down. Hold irqs disabled in migration thread across move_task_away(), which now doesn't need to save flags (the other caller is the hotplug CPU code, where irqs are also disabled). [PATCH] Hotplug CPUs: Set prio of migration thread before CPU We need the migration thread to be RT as soon as the CPU comes online: for example, stop_machine() (another RT task) expects to yield to it. Extract the core of setscheduler() and do that when the migration thread is created. rq lock is a precaution against the (theoretical) possibility of someone else doing setscheduer on this thread at the same time. [PATCH] Hotplug CPUs: Make Migration Thread Handle CPUs Going Change the migration thread to directly use its cpu arg, rather than smp_processor_id(): if a cpu goes up then down rapidly, it can be on the wrong cpu just before it is stopped. Add code to stop the migration thread on CPU_DEAD and CPU_UP_CANCELED. Remove the (bogus) priority of the notifier. [PATCH] Hotplug CPUs: Read Copy Update Changes Add hook for RCU to handle jobs on dead cpu. Requires new tasklet_kill_immediate for RCU to clean up its tasklet (which might have been about to run, so tasklet_kill won't work). [PATCH] Hotplug CPUs: Make ksoftirqd Handle CPU Going Down Change ksoftirqd not to assume it's on the CPU: when a cpu goes down, it will be rudely dragged off. Since do_softirq() uses smp_processor_id(), it's easiest to disable preemption, check that the cpu is still up, then call do_softirq(). If the cpu is actually offline, wait for the notifier, which kills us. Take over tasklets from dead cpu in the notifier. Clean up redundant double assignment in CPU_UP callback. [PATCH] Hotplug CPUs: Workqueue Changes Workqueues need to bring up/destroy the per-cpu thread on cpu up/down. 1) Add a global list of workqueues, and keep the name in the structure (to name the newly created thread). 2) Remove BUG_ON in run_workqueue, since thread is dragged off CPU when it goes down. 3) Lock out cpu up/down in flush_workqueue, create_workqueue and destroy_workqueue. 4) Add notifier to add/destroy workqueue threads, and take over work. [PATCH] Hotplug CPUs: Kswapd Changes Keep track of kswapds: it's OK that they get moved off a node when the last CPU goes down, but when a CPU comes back, we should try to move the kswapd back onto its node. [PATCH] Hotplug CPUs: Other CPU_DEAD Notifiers Various files keep per-cpu caches which need to be freed/moved when a CPU goes down. All under CONFIG_HOTPLUG_CPU ifdefs. scsi.c: drain dead cpu's scsi_done_q onto this cpu. buffer.c: brelse the bh_lrus queue for dead cpu. timer.c: migrate timers from dead cpu, being careful of lock order vs __mod_timer. radix_tree.c: free dead cpu's radix_tree_preloads page_alloc.c: empty dead cpu's nr_pagecache_local into nr_pagecache, and free pages on cpu's local cache. slab.c: stop reap_timer for dead cpu, adjust each cache's free limit, and free each slab cache's per-cpu block. swap.c: drain dead cpu's lru_add_pvecs into ours, and empty its committed_space counter into global counter. dev.c: drain device queues from dead cpu into this one. flow.c: drain dead cpu's flow cache. [PATCH] Hotplug CPUs: Remove CPU_OFFLINE Notifier We no longer have a CPU_OFFLINE notifier: we freeze the machine and kill the CPU atomically. Remove it. [PATCH] Fix 3c509 This rolls up Marc Zyngier's EISA correction (first two) and adds a missed netdev_priv() conversion that was causing an oops on module removal. [AGPGART] Fix URL. [AGPGART] Silence serverworks CNB20HE printks. These chipsets don't seem to have a full AGP GART, (and in at least two reports I've had, are used in systems that don't even have an AGP slot). Print something more informative than.. agpgart: unable to determine aperture size. agpgart: agp_backend_initialize() failed. agpgart-serverworks: probe of 0000:00:00.0 failed with error -22 agpgart: Maximum main memory to use for agp memory: 941M agpgart: unable to determine aperture size. agpgart: agp_backend_initialize() failed. agpgart-serverworks: probe of 0000:00:00.1 failed with error -22 agpgart: Unsupported Serverworks chipset (device id: 0006) agpgart: Unsupported Serverworks chipset (device id: 0006) [AGPGART] Recognise B3 stepping 8151 in amd64 GART driver. [AGPGART] Add SIS 648/746 work around. These chipsets hang for no apparent reason unless we pause for a while after changing mode. No explanation from SiS, so this ugly hack is the best we can hope for. [AGPGART] Give IA32E its own GART driver. This way we can lose all the legacy junk that comes along with intel-agp Start by just getting a bare bones driver supporting the more recent AGP chipsets. [AGPGART] Move HP ZX1 registers out of agp.h [AGPGART] Move other chipset vendors registers into vendor specific files. Cleaning up agp.h [AGPGART] More agp.h cleanups Grouping stuff, and bumping copyright date. [AGPGART] agp.h indentation fixes. [AGPGART] AGPv3 generic support. If a chipset doesn't need anything funky, then it can use these routines. [TRIVIAL] Tighten sanity in time_init to 250 ppm. From: "Bailey, Scott" [AGPGART] Clean up SiS648 workaround by giving it its own driver. This uses the generic agp v3 support routines previously added. It confines the 'pause after switching mode' hack to the sis driver. Fixes http://bugme.osdl.org/show_bug.cgi?id=2327 [PATCH] fix "optimize && ?" This prevents the "optimize && ?" message appearing when the kernel configuration tool is run. The message could be eliminated from the tool, but I'd rather fix the needlessly over-complicated expression: [SPARC64]: Implement pci_dma_error(). [PM2FB]: Fix build on big-endian. [SPARC64]: Update defconfig. [SPARC64]: Export sbus_dma_sync_X_for_device routines too. [PATCH] PCI: insert_resource can succeed and return an error If we start again, we can return an error even if we were successful. Reset the result to 0 before beginning again. Why don't we use a tailcall here? [PATCH] PCI: Use insert_resource in pci_claim_resource On ia64, the parent resources are not necessarily PCI resources and so won't get found by pci_find_parent_resource. Use the shiny new insert_resource() function instead, which I think we would have used here had it been available at the time. [PATCH] PCI: claim PCI resources on ia64 Call pci_claim_resources() so we can see what PCI resources are being used. [NET]: Preemption disabling is superfluous in net_rx_action(). Noticed by Jan Glauber, confirmed by Stephen Hemminger. [PATCH] ia64: Interim pal_halt_light patch While the sysctl variable is being worked out in the general kernel, here is an interim patch which allows boot-time/dynamic control over the use of PAL_HALT_LIGHT in the idle-loop. Add FBIOBLANK to list of compatible ioctls. Linux 2.6.5-rc2 [PNP] Resource Conflict Cleanup This patch simplifies the ranged resource checking logic. [PARPORT] Update PC Parport Detection Code This patch updates the parport_pc driver's probing code to better detect PnP devices. It also removes an extra MODULE_AUTHOR. [ISAPNP] Fix Device Detection Issue Some isapnp devices were not getting detected as a result of a bug in the isapnp driver. It was not following the specifications and calculating a checksum when it was not reliable. This problem was originally discovered by Paul L. Rogers . He made an initial patch. This release has some small modifications, including a check to see if we run out of CSNs. [XFRM] remove duplicated lines; fl->fl4_{src,dst} is already filled in xfrm_lookup(). [XFRM] remove unused argument for (*find_bundle)(). [Bluetooth] Add missing compat ioctl's for CMTP This patch adds the missing compat ioctl's for the CAPI Message Transport Protocol. [Bluetooth] Add support for AVM BlueFRITZ! USB v2.0 This patch adds the vendor and product id for the AVM BlueFRITZ! USB v2.0 dongle which don't uses the USB Bluetooth class id. [Bluetooth] Fix display for class of device The class of device is displayed in wrong byte order. This patch swaps it and now the inquiry_cache attribute shows the same as the userspace tools. [PATCH] Fix SCSI + st regressions problem remove dependency on kobj.name. [PATCH] SCSI: Fix Oops in sg with lots of SG_IO activity Attached is a patch to fix an oops in sg_cmd_done. Please apply. [ISAPNP] MEM Config Fix This patch fixes a bug in the resource configuration function. If there are more than one memory ranges, the isapnp driver will write into the incorrect configuration register. [PNP] remove __init from system.c // Linux 2.6.4-rc2 // These 2 functions shouldn't be __init for general PNP use [ISAPNP] Remove uneeded MOD_INC/DEC_USE_COUNT isapnp_cfg_begin and isapnp_cfg_end are exported symbols, so if any module using them is loaded isapnp.o can't be unloaded anyway [PATCH] therm_adt7467 update From: "Colin Leroy" The fan driver I wrote for adt746x looks like it only handles the adt7467 chip found in iBooks G4; but it also handles the adt7460 chip found in the Powerbook G4 Alu. Here's a patch that updates therm_adt7467.c, Kconfig and Makefile. Rename therm_adt7467.c to match the new reality. [PATCH] critical x86-64 merge There were some nasty bugs in the x86-64 code, including one race that could cause random reboots, especially on Intel machines, with the NMI watchdog. This patch fixes them and also includes some harmless cleanups. Main fixes were for some buglets in the IOMMU code and the plugging of a race in the exception stack handling. Also disables an broken MCE on K8 explicitely. Also finally the preempt compile issues are fixed. - Declare hpet interrupt separately in drivers/char/rtc.c - Fix rtc.h/hpet.h to not depend on interrupt.h - Finally include smp_lock.h in hardirq.h - Update defconfig - Export bad_dma_address - Merge with 2.6.5rc2 - Never schedule on interrupt stacks. - Add option to force software iotlb (iommu=soft) - Add ifdefs to gsi patch to match i386 (Bjorn Helgaas) - Fix K8 GART TLB MCE workaround to actually work - Fix dwarf2 unwind table in SAVE_ARGS (Jim Houston) - Disable APIC on VIA/NVidia even with acpi=off (Gwenole Beauchesne) - Fix parsing bug in "apic" option (Gwenole Beauchesne) - Fix dma mask handling in pci_alloc_consistent - Make pci_alloc_consistent more robust in low memory situations. - Print version number in oopses (from i386) - ACPI GSI cleanup (Bjorn Helgaas) - Disable K8 GART TLB walk error MCE explicitely - Add support to disable individual MCEs in the various banks. [PATCH] fix console oops/race Finally nailed this sucker. con_close() checks the tty->count and then sleeps in acquire_console_sem(). But another process can come in and grab a ref against the tty while con_close() dropped the BKL. But con_close() then proceeds to deallocate the tty->driver_data anyway, even though the tty now has ->count == 2. Fix that by moving the check for ->tty_count inside console_sem. [PNP] Add some more modem IDs This patch allows the serial driver to bind to three additional modems. [PATCH] fix scsi_transport_spi.c compile with gcc 2.95 Fix token pasting to work with older gcc versions. We need a space before the "," that may get pasted away. [ISAPNP] Unmark experimental status ISAPnP support has been stable with the new pnp layer for a while. This patch removes the experimental dependency. [ALPHA] Update defconfig. [PATCH] Fix missing part of x86-64 update Three quarters of the update from Andi was uncommitted due to a bad patch date and a bug in "bk import -temail".. Here are the missing parts.. [PATCH] Fix missing part of x86-64 update, part 2 One more missing doc-file update [PATCH] keywest bugfix This fixes a deadlock in I2C probing. - keywest holds the pmac_low_i2c_lock while registering the i2c adapter. - i2c_add_adapter() notifies registered drivers by calling driver->attach_adapter(). - a driver might access the i2c bus from attach_adapter() which deadlocks since all xfer routines take the lock. [PATCH] pmac: Improved G4 "windtunnel" fan controller This is an improved version of the G4 "windtunnel" fan controller. It depends on the keywest bugfix... [ACPI] create disable_acpi() [PATCH] clean up ACPI GSI/IRQ conversions (i386 part) Add "acpi_gsi_to_irq()" as a generic replacement for "acpi_irq_to_vector()". This converts from an ACPI global system interrupt number to a Linux IRQ. Also, convert i386-specific terminology to use GSI when appropriate. [WATCHDOG] v2.6.5-rc2 wdt.c-patch Version 0.10 of wdt.c - Changes that were made are: * Extract the start code in a seperate function (wdt_start) * Extract the stop code in a seperate function (wdt_stop) * Convert wdt_ping so that it return an int value (0=succes). * Extract the get_temperature code in a seperate function (wdt_get_temperature) * Make /dev/watchdog and /dev/temperature to different misc devices with their own fops. * Reorganize init and exit functions * Make heartbeat (the emulated heartbeat) a module parameter * Rewrite status flag code so that we could add a new tachometer module parameter * Small clean-up's [WATCHDOG] v2.6.5-rc2 wdt_pci.c-patch Version 0.10 of wdt_pci.c - Changes that were made are: * Extract the start code in a seperate function (wdtpci_start) * Extract the stop code in a seperate function (wdtpci_stop) * Convert wdtpci_ping so that it return an int value (0=succes). * Extract the get_temperature code in a seperate function (wdtpci_get_temperature) * Make /dev/watchdog and /dev/temperature to different misc devices with their own fops. * Reorganize init and exit functions * Make heartbeat (the emulated heartbeat) a module parameter * Rewrite status flag code so that we could add a new tachometer module parameter + make clear distinction between PCI-WDT500 and PCI-WDT501. * Small clean-up's [WATCHDOG] v2.6.5-rc2 wd501p.h-patch Cleanup header file after changes to wdt.c and wdt_pci.c [WATCHDOG] v2.6.5-rc2 softdog.c-patch Version 0.07 of softdog.c - Changes that were made are: * Extract the start/keepalive code in a seperate function (softdog_keepalive) * Extract the stop code in a seperate function (softdog_stop) * Add notifier support * Extract softdog_set_heartbeat code to seperate subroutine * Small clean-up's [AGPGART] Make some more Intel/ia32e functions static to fix build when both compiled in. [PATCH] Hack mptfusion to work on >4GB machines fusion needs several separately allocated coherent regions and requires that they all be in the same 4GB segment. Obviously this may fail. The hack is to force the coherent_dma_mask to 0xffffffff thus ensuring that all the allocations occur within the first 4GB. This hack breaks Altix entirely. [PATCH] start_cpu_timer() cannot be __init It's now called from the CPU hot-add notifier. [PATCH] kbuild ordering fix From: Sam Ravnborg In the i386 case we need to generate asm-offset.h, before starting building the kernel tree. Building asm-offset.h causes us to use one of the shorthands in the top-level makefile, namely the one for .s files. The one that allows us to do: make some/dir/file.s And this shorthand happens to have a dependency to scripts, therefore I did not see this problem on i386. But David hit it with sparc64, because there is no asm-offset.h file. No parallel stuff involved here, just an ordinary error. [PATCH] Fix error value for opening block devices From: Ulrich Drepper Opening a non-existing block device currently yields an ENXIO error. Doing the same for char devices produces the correct error ENODEV. [PATCH] Add missing uacccess checks for sysctl.c From: Marc-Christian Petersen Kernel 2.6 lacks two -EFAULT returns in get_user() in kernel/sysctl.c. [PATCH] make inflate use less stack space with gcc3.5 From: Matt Mackall Quick fix to work around gcc3.5's automatic inline and broken stack requirements calculation. Without this, I see stack overflows at boot with 4k stacks. [PATCH] mprotect return value fix From: Marc-Christian Petersen 2.4 patch from Adrian Bunk. ERRORS The mprotect() function shall fail if: ... [ENOMEM] Addresses in the range [addr,addr+len) are invalid for the address space of a process, or specify one or more pages which are not mapped. [PATCH] ISDN Eicon driver: restructured capi list and lock handling Restructered the CAPI code of list handling and lock. Removed obsolete code. [PATCH] ISDN Eicon driver: move workqueue to tasklet for divas dpc Use tasklet instead of workqueue for the divas main dpc. [WATCHDOG] v2.6.5-rc2 pcwd.c-patch1 Version 1.14 of pcwd.c - Changes that were made are: * Extract the start code in a seperate function (pcwd_start) * Extract the stop code in a seperate function (pcwd_stop) * Extract the get_temperature code in a seperate function (pcwd_get_temperature) * Make /dev/watchdog and /dev/temperature to different misc devices with their own fops * Small clean-up's Tested on pcwd card with temperature option. Set PCI DMA masks in old-OSS via82cxxx audio driver. [SPARC32]: Support memory starting at physical address other than 0 From: Stefan Holst Allow physical memory to start at almost arbitrary addresses. LEON needs it, so do SPARCstation 10/20 without slot 0 populated. Although Sun do not support this configuration, at least some such systems can boot with this patch. Physical memory starting at or above 0xF4000000 is not supported. [SPARC32]: Restore a.out binary format capability This depended on CONFIG_SPARC, which is obsolete. Use SPARC32 instead. [PATCH] Revert UDF inode semaphore locking For some reason I don't understand, the last UDF filesystem update makes the UDF deadlock when I write a bunch of mp3 files to a CDRW using the packet writing patch. Both "cp" and pdflush get stuck in __down. Reverting the semaphore changes makes the problem go away. Use the kernel lock again, until whatever recursive offender gets fixed. (The offensive recursion seems to be: write() takes the inode semaphore, causes memory pressure, and then trying to write back the inode or dirty data to disk tries to get the semaphore again and deadlocks.) [SPARC32]: Clean up secondary System.map From: Stefan Holst The clean target is never called, so instead add this to CLEAN_FILES. [ACPI] fix interrupts behind yenta cardbus bridge (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=1564 [PATCH] Two more x86-64 fixes - Fix CONFIG_DEBUG_INFO build again - Fix user exploitable oops in ia32 ioctl emulation [PATCH] Fix missing "noinline" on x86-64 The gcc-3.5 patch broke building on x86_64 and possibly others, because inflate.c does not pull in the definition for noinline. Remove stale legacy ISDN files. From Armin Schindler : "These files were added in the first place for the compat driver to the legacy isdn4linux module. Since the Eicon driver now uses CAPI only, these files are obsolete." [CRYPTO]: Add setkey operation for digests. From Jouni Malinen Added support for using keyed digest with an optional dit_setkey handler. This does not change the behavior of the existing digest algorithms, but allows new ones to add setkey handler that can be used to initialize the algorithm with a key or seed. setkey is to be called after init, but before any of the update call(s). [CRYPTO]: Add Michael MIC algorithm. From Jouni Malinen Added Michael MIC keyed digest for TKIP (IEEE 802.11i/WPA). This algorithm is quite weak due to the requirements for compatibility with old legacy wireless LAN hardware that does not have much CPU power. Consequently, this should not really be used with anything else than TKIP. Michael MIC is calculated over the payload of the IEEE 802.11 header which makes it easier to add TKIP support for old wireless LAN cards. An additional authenticated data area is used (but not send separately) to authenticate source and destination addresses. [CRYPTO]: Remove confusing TODO comment in arc4.c [NET_SCHED]: HTB scheduler updates. Fixes: * Fix to htb_requeue routine. * Debug mode related oops fixes. [WATCHDOG] v2.6.5-rc2 Kconfig-patch Update Kconfig info to reflect the changes in wdt.c and wdt_pci.c [ACPI] ACPI SCI shall be level/low unless explicit over-ride http://bugzilla.kernel.org/show_bug.cgi?id=1622 add "acpi_sci=edge" and "acpi_sci=high" manual over-ride kbuild: Preset locale variables From: Jasper Spaans Presetting locale to 'C' gives slight improved compilation speed, when for example using "LANG=nl_NL.UTF-8@euro". Error message still appear with correct locale. kbuild: Less modules printed when warned about SUBDIRS usage From: Rusty Russell Now kbuild prints out a line telling only what modules there are added, not all modules. kbuild: Trivial spelling / rephrasing From: Ingo Molnar [ACPI] delete POWER_OF_TWO array (Pavel Machek) [NETFILTER]: ipv4 Kconfig URL updates. [NETFILTER]: Fix typo in ip_fw_compat_masq.c [NETFILTER]: Add MODULE_AUTHOR to ipchains_core.c [PATCH] ISDN Eicon driver: linked-list handling by kernel api list.h Removed own implementations for linked-list handling, use Linus kernel API of list.h instead. [PATCH] ISDN Eicon driver: fix compilation with non __exit function Function divacapi_remove_cards() is now used for __init as well, so it may not be marked __exit. Revert the input layer change that assumes the i8042 controller is always in XLATE mode. That's not true on at least some ppc64 boxes, and we shouldn't break those just because apparently some IBM PS/2 model 70 has something strange here. Cset exclude: vojtech@suse.cz|ChangeSet|20040303141401|00802 [PATCH] PPC64 iSeries kernel messages cleanup This patch cleans up and makes more consistent the messages produced by some of the iSeries virtual device drivers. It also make them less verbose. [PATCH] ppc64: remove duplicate FBIOBLANK ioctl translation From: Anton Blanchard Linus just added it to the generic compat layer, we can remove this (commented out) version. [PATCH] ppc64: Add eeh calls to hotplug driver From: Anton Blanchard The ppc64 hotplug code must register and deregister devices with the extended error handling (EEH) subsystem. [PATCH] ppc64: Fix log_rtas_error From: Anton Blanchard From: Santiago Leon Fix log_rtas_error bug where the results from the call that resulted in an error where lost due the attempt to log the error. [PATCH] ppc64: Remove some stale iseries code From: Anton Blanchard While scanning for the last few users of udbg, I found this. Its old code that we dont use, so remove it. [PATCH] ppc64: fix timebase bugs From: Anton Blanchard - Consolidate printing of timebase and cpuinfo in /proc/cpuinfo, there were many trivial differences between pseries/iseries/pmac. - Remove ppc_md.setup_residual, no longer needed - Fix for processors over 2.147GHz, from Jake Moilanen. We were using a signed int to parse the OF property. - Set some sane defaults for timebase and processor frequency if we fail to get the correct values from OF. [PATCH] ppc64: implement iommu=off for pseries From: Anton Blanchard Implement iommu=off for pseries. We limit memory to 2GB as pmac does, however the default for < 2GB remains iommu=on unlike pmac. [PATCH] pmac_zilog: sleep fix From: Benjamin Herrenschmidt This patch fix a problem with semaphore usage on wakeup from sleep in pmac_zilog (crashing some laptops on wakeup). [PATCH] ppc64: clean up boot messaegs From: Anton Blanchard Clean up early boot messages. [PATCH] ppc64: implement pci_dma_error From: Anton Blanchard Implement pci_dma_error. Create PCI_DMA_ERROR_CODE like sparc64, it will allow us to find and fix out of tree drivers using NO_TCE directly. ibmveth needs some surgery, fix it temporarily until the guys come up with a decent fix. [PATCH] fix device open return values The recent conversion of the open-of-a-nonexistent-blockdev return value from ENXO to ENODEV was wrong. We should have converted the chardev code to return -ENXIO too. [IPVS] Fix connection rehashing with new cport Update ppc64 G5-config to something more uptodate. (And more sane. Turn off ECN by default, add netfilter, and make sure we always support msdos partitions for external drives). [B44]: Restore PCI state in b44_resume(). [ACPI] toshiba_acpi 0.18 from John Belmonte add missing copyin [ACPI] share i386/kernel/acpi/boot.c with x86_64 [PATCH] ppc32: fix build with CONFIG_MODVERSIONS From: Paul Mackerras Olaf Hering This adds __kcrctab to the discard list for the link script for the boot wrapper, and is needed if you compile with CONFIG_MODVERSIONS. With this patch applied, we need to update makefile dependencies. Otherwise the bootfiles will remain untouched because they do not depend on the changed linker script. [PATCH] ppc64: iSeries virtual cd fix From: Stephen Rothwell This patch stops an oops caused by certain ioctls being performed on the virtual cdrom. In particular, the eject and tray close operations were affected. [PATCH] ppc64: iSeries virtual console cleanup (part 1) From: Stephen Rothwell This patch starts cleaing up (and paring down) the virtual console driver. It does: - viocons is NOT a serial driver - remove unneeded empty methods - change the console name [PATCH] sh: update defconfigs From: Paul Mundt This patch updates the sh defconfigs to use the board_defconfig format instead of the defconfig-board format that sh was using before. Since Sam Ravnborg already added the automated archhelp stuff that sh was using to the top-level Makefile, the sh version can be killed off. [PATCH] sh: port sh-sci driver to the new API From: Paul Mundt This ports the sh-sci driver to the new API. sh and h8 both use this. The intention is to leave the drivers/char sh-sci in place for a short period of time until all the h8 people are on the new driver (sh no longer uses the drivers/char version). [PATCH] sh: DAC ODD driver From: Paul Mundt SuperH DAC OSS driver. [PATCH] sh: DMA Mapping API From: Paul Mundt This implements the DMA mapping API for sh, as well as cleaning up some sh-specific DMA drivers. [PATCH] sh: hugetlb support From: Paul Mundt This implements hugetlb support for SH-4. SH-4 supports 1k/4k/64k/1MB pages, since we're only interested in the 64k/1MB sizes, this is what we support. The sh hugetlbpage code borrows heavily off of the sparc64 port, which works fine for these cases at this point in time. [PATCH] sh: sh-specific framebuffer updates From: Paul Mundt This includes sh-specific framebuffer updates, including updates to hitfb and pvr2fb, as well as adding sh to the pgprot_writecombine() users in fb_mmap(). [PATCH] sh: various fixes From: Paul Mundt This is the rest of the sh update, which includes everything else sh-specific, general cleanups, bugfixes, etc. Nothing really eventful. [PATCH] Work around compiler error in proc_misc.c From: Alan Stern A change which was recently applied to fs/proc/proc_misc.c included a comment about splitting a seq_printf into two pieces to work around a bug in gcc-2.95.3. Unfortunately gcc-2.96 still chokes on the statements. The patch below makes it work better and tidies the code up a bit. [PATCH] fbcon font cloning fix From: Petr Baudis This patch fixes a bug which I hit when migrating from 2.4. Basically, when I do setfont during the system boot, the then-spawned ttys do not retain the new font but fall back to the default one. I've tracked that down to a clearly bogus test in fbcon_set_display(), because vc->vc_font.width is not set at that time yet (no font has been loaded for the new vc). But even if it would (or this was meant to test against tmp->vc_font.width), it would mean only *HUGE* fonts would be retained. And even if there were *two* bugs there and it was supposed to be less-than there, I couldn't make a sense of the test. [PATCH] i386 Kconfig typo fix From: Armin Schindler just a small patch to fix a typo. [PATCH] tgafb: missing include This is a temporary fix, pending fuller TGA updates. From: Christian Vogel: drivers/video/tgafb.c is missing a include, complaining about color_table[] and others not being defined. [PATCH] rename dma_error() We're getting namespace collisions from the new dma_error(), and it wasn't a well-chosen identifier. Rename it to dma_mapping_error(). [SCTP] Don't do any ppid byte-order conversions as it is opaque to SCTP. [SCTP] Avoid the use of hackish CONFIG_IPV6_SCTP__ option. [PATCH] ia64: add dma_mapping_error() support ia64: Manual merge of Andrew/Alex/Bjorn's dma_mapping_error() changes. [PATCH] ia64: SN2 salinfo oemdata race fix sn_oemdata_* variables must only be used under the sn_oemdata_mutex. [PATCH] ia64: quiet sn_serial driver Bjorn pointed out that the sn console driver will spew printks if compiled in even if no hardware is present. In addition to fixing that, I took the opportunity to cleanup/correct a few other printks in that driver. [PATCH] ia64: lost sx1000 naming in sba_iommu Mainly cosmetic, but Bjorn noticed I got a little over zealous in cleaning out the sx1000 specific init routines in sba_iommu. This adds back in the ID->name mapping so it doesn't show up as "Unknown". [PATCH] ia64: deprecate SN2 linkstatd This patch against 2.6.5-rc2 affects the SGI/SN platform only. It deprecates a kernel daemon for our interconnect traffic statistics which has been replaced by a userland tool. [PATCH] More pmac-zilog sleep fix In the long story of "BenH can't get a simple fix right the first time", please add this one to pmac_zilog, and now people should enjoy really working sleep again on pmac laptops ... If the serial port was closed, we could use an uninitialized "pwr_delay" and pass that to schedule_timeout(). [PATCH] Cosmetic fix of BMAC boot messages This fixes the display of the boot messages on the BMAC driver (pmac only). It used to be messed up in 2.6 [PATCH] ia64: Fix SAL 3.2 detection This important fix checks the SAl *revision* rather than the *version*. I carefully documented which was which, then used the wrong one. [SPARC64]: Handle NULL type arg properly in sys32_mount(). [PATCH] Threaded core dumps for PPC32 At the moment, ppc32 kernels will oops if a threaded program tries to dump core. We call dump_fpu with a NULL regs pointer, which it tries to dereference. This fixes the issue by implementing the hooks used in doing threaded core dumps properly. [PATCH] fix ppc32 sys_swapcontext This fixes a bug in the swapcontext system call on ppc32. On ppc32, the system call entry only saves the volatile registers, except in the case of a few system calls (e.g. fork) which need all the registers saved. Swapcontext needs all the registers but we weren't saving them all. So fixes that. [AGPGART] Mass ia32e renaming. Andi pointed out that Intel changed their nomenclature for this monster to EM64T instead. Updated the text to mention the actual AGP chipset this driver supports rather than the CPU architecture, which is irrelevant. Change various function names accordingly. [AGPGART] Remove more unneeded routines from the new Intel driver. JFS: Prevent hang in __lock_metapage Remove the hold_metapage call from txLog to prevent a hang. While investigating this one, I audited all functions that held metapage locks and found several error paths that did not release them correctly. These are fixed as well. [SPARC64]: Provide d_type in sys32_getdents(). [SPARC64]: Do not use cast exprs as lvalues. JFS: don't use global lock in lmLogSync when local lock is sufficient I stupidly used the global jfs_log_sem to protect log->sb_list when implementing the shared journal stuff. Since we already hold LOG_LOCK, it makes more sense to use that to protect log->sb_list. This caused horrible serialization when running on lots of jfs volumes. [IPV4]: Zap CONFIG_INET_ECN, just always off by default. [IPVS]: Fix to hold the lock before updating a service Brett E. noticed the missing service lock for editing dest. Julian Anastasov provided the patch. [NET_SCHED]: Fix class reporting in TBF qdisc. The patch below fixes issue with 'tc class show dev ' not showing any classes when TBF qdisc is present in the chain. PLease consider for inclusion. [NET_SCHED]: Trailing whitespace cleanup in TBF qdisc. [PATCH] ia64: fix name conflict with handle_exception() I tried to build usb/gadget/file_storage.c (CONFIG_USB_FILE_STORAGE=y), but it uses "handle_exception()" for its own purposes, which conflicts with the ia64 definition. ia64 only uses handle_exception() within arch code, so it seems like we ought to rename it to be ia64-specific. done_with_exception() looks similar, so I renamed it as well, although there's no actual conflict. [IPV6]: Error is option length increases amidst corking. [IPSEC]: Missing family settings in af_key and xfrm_user. [PATCH] ppc64: fix mount compat translation bug From Dave Miller: We weren't handling a NULL 'type' argument to mount() properly, f.e. this happens legitimately when changing the options of an existing mount. [ARM] arch_arm_mach-sa1100_Kconfig URL update Patch from: Rusty Russell From: Petri Koistinen URL updates. [ARM] arch/arm/boot/Makefile: s/quite_cmd_mknote/quiet_cmd_mknote/ Patch from: Arthur Othieno This fixes a typo in arch/arm/boot/Makefile. [PCMCIA] attack of the clones Patch from: Daniel Ritz This patch adds the TI clones from ENE to the override list in yenta_socket.c. [PATCH] ppc64: getdents patch for 32 -> 64 converter From: Anton Blanchard From: Marcus Meissner With 2.6.4 we now have the glorious hidden d_type passing in getdents. glibc CVS expects this to be passed if we have a kernel version after 2.6.4, so we have to also handle it in the 32bit syscall converter. [PATCH] ppc64: SMT snooze fix in idle loop From: Olof Johansson A smt_snooze_delay of 0 is supposed to mean "disabled", but current idle loop logic doesn't take that into account and snoozes immediately instead. Below patch fixes the logic in the idle loop, as well as cleans up the test a bit. An idling processor might no longer see a snooze change immediately, but that's not needed anyway. [PATCH] null-terminate sb->s_id strncpy() may not null-terminate the destination. [PATCH] ext2&3: use the right i_flags in find_group_orlov() Spotted by Jorn Engel : both the generic and fs-specific parts of the inode have an i_flags. find_group_orlov() is using the wrong one. [PATCH] Broken CDROMs default to writeable From: Jens Axboe If the drive doesn't support GPCMD_READ_DISC_INFO at all, permit writeable opens. [PATCH] don't show cdroms in /proc/partitions From: Jens Axboe Currently SCSI cdroms show up in /proc/partitions in 2.6, they didn't in 2.4. And ATAPI cdroms don't show up either. Mark both as genhd removable for now, when they are partionable this can be updated. [PATCH] ia64: don't prompt for the floppy driver From: David Mosberger From: Bjorn Helgaas We can't build floppy.o on ia64, so why bother asking? [SPARC32]: Use correct atomic initializer for semaphore counters Semaphores use 24-bit atomics, not 32. Using the wrong initializer causes immediate deadlock under SMP, and incorrect results under UP. [PATCH] forgotten pci_dma_mapping_error on x86-64 x86-64 needs this (obvious) patch, due to the rename. [ARM] Add support for dev->coherent_dma_mask This adds AMBA and SA11xx support for dev->coherent_dma_mask. [ARM] Remove Anakin machine support. Anakin has not been maintained since it was (partially) merged, and the maintainers appear to ignore mail about it. No one appears willing to maintain it either. However, some unrelated kernel maintainers have been updating various files while they've been working in the area - which is wasted work for something which isn't maintained. Therefore, this cset removes Anakin completely from the kernel. [PATCH] con_close() deadlock fix I'd assumed that vcs_remove_devfs() could not possibly take console_sem(). Seems I was wrong. [PATCH] SATA: fix and enable sata-sil sata_sil: it's a widely deployed chipset. Now that we've fixed it, let users use it. sata_via: Disk detection via SATA phy registers appear problematic. Until that problem is identified and fixed, used the old PATA detection code -- that was used in 2.6.4 -- instead. [ARM] Add dma_mapping_error() definition. ia64: Improve layout of cpuinfo_ia64 Stephane made some measurements on the access-pattern of the cpuinfo_ia64 members and based on those results, this patch reorganizes the structure for better cache-line sharing. ia64: Minor formatting fix for two earlier patches. ia64: Correct value for PREFETCH_STRIDE. [SPARC64]: Update defconfig. [ACPI] PCI interrupt link routing (Luming Yu) use _PRS to determine resource type for _SRS fixes HP Proliant servers http://bugzilla.kernel.org/show_bug.cgi?id=1590 [ATM]: [lec] lec_push() races with vcc->proto_data [ATM]: [nicstar] use kernel min/max (by Randy.Dunlap ) [IGMP]: Do nothing in ip_mc_down() if ip_mc_up() was not called previously. ia64: Fix typo in unwinder which could cause NULL-pointer dereferences. [PATCH] ia64: update sn2_defconfig [PATCH] ia64: fix kernel NULL-pointer message Add missing newline to kernel version of NULL-pointer message and also print the address while we're at it. [PATCH] ppc32: Fix racy access to TI_FLAGS The ppc32 syscall entry code could access the thread info flags in a racy way, thus potentially losing bits sets there at interrupt time or by another CPU, like NEED_RESCHED or SIGPENDING (ouch !). This fixes it by moving the potentially racy bit to a different field (I preferred that rather than turning the access into an atomic operation for performances reasons). [PATCH] adbhid preempt/smp races This fixes a few races in the LED code of the adbhid driver that would affect SMP or preempt. [PATCH] powerbook via-pmu races This fixes some racy code in the management of asynchronous brightness and battery requests in the via-pmu driver used on powerbooks. This should fix some preempt related problems (there is no SMP powerbook yet :) [PATCH] dmasound close timeout The dmasound driver occasionally hangs a process on exit. Apparently there is a possible case where the sound HW stops draining output samples and the driver waits forever in its release() callback. It should check for signals(), but it seems signal_pending() never returns 1 when the process is beeing killed (implicit release() of files on exit). This patch adds a safety timeout to the release() function to make sure we can at least close the driver. I'll try to find the reason we aren't driving samples later, but it is better to have a safety just incase the sound clock goes berserk for some reason. [PATCH] ppc32: arch code preempt fixes I figured the best way to stop beeing bothered by users trying to run preempt was to fix it ;) Here's a first batch that close some races we had when testing regs->msr for altivec or FPU enable, then doing the giveup_* function. A preempt in between those would have caused us to save a stale altivec or FPU context. [SPARC32]: gcc 3.4+ compile fixes From: Art Haas Fix casts-as-lvalues and labels left at the end of blocks. [PATCH] ide-cd capacity fix Only allow get_last_written() to override get_capacity(), if it is bigger. [WATCHDOG] v2.6.5-rc2 pcwd.c-patch2 * Extracted the get_status code to a seperate function (pcwd_get_status) * Re-used the pcwd_get_status code for the initial/boot status Tested on pcwd card with temperature option [SPARC64]: Do not lvalue cast in pgd/pmd macros. [SPARC64]: Fix lvalue casting in signal32.c [SPARC64]: Fix lvalue casting in sys_sunos32.c [SPARC64]: Fix svr4_stack_t typing in svr4.h [ACPI] proposed fix for non-identity-mapped SCI override http://bugme.osdl.org/show_bug.cgi?id=2366 [SPARC64]: Fix lvalue casting in sys_sparc32.c [ACPI] ACPICA 20040326 from Bob Moore Implemented support for "wake" GPEs via interaction between GPEs and the _PRW methods. Every GPE that is pointed to by one or more _PRWs is identified as a WAKE GPE and by default will no longer be enabled at runtime. Previously, we were blindly enabling all GPEs with a corresponding _Lxx or _Exx method - but most of these turn out to be WAKE GPEs anyway. We believe this has been the cause of thousands of "spurious" GPEs on some systems. This new GPE behavior is can be reverted to the original behavior (enable ALL GPEs at runtime) via a runtime flag. Fixed a problem where aliased control methods could not access objects properly. The proper scope within the namespace was not initialized (transferred to the target of the aliased method) before executing the target method. Fixed a potential race condition on internal object deletion on the return object in AcpiEvaluateObject. Integrated a fix for resource descriptors where both _MEM and _MTP were being extracted instead of just _MEM. (i.e. bitmask was incorrectly too wide, 0x0F instead of 0x03.) Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName, preventing a fault in some cases. Updated Notify() values for debug statements in evmisc.c Return proper status from AcpiUtMutexInitialize, not just simply AE_OK. [ACPI] Linux specific updates from ACPICA 20040326 "acpi_wake_gpes_always_on" boot flag for old GPE behaviour [ARM] Don't conditionally include the sound configuration [WATCHDOG] v2.6.5-rc2 pcwd.c-patch3 Version 0.15 of pcwd.c - Changes that were made are: * Rewrote code for exchanging commands with the ISA-PC Watchdog card * Restructured + rewrote the init and exit code * Added option_switches info * Use the option_switches info to find out what the cards heartbeat is * Added notifier support Tested on pcwd card with temperature option [WATCHDOG] v2.6.5-rc2 pcwd.c-patch4 Version 0.16 of pcwd.c - Changes that were made are: * Changed the driver so that it uses an internal timer to do the actual watchdog pinging. This way the watchdog's emulated 'heartbeat' is usuable as a module parameter. The watchdog's heartbeat can now vary from 2 till 7200 seconds Tested on pcwd card with temperature option [PATCH] Fix x86-64 32bit getdents for new glibc The newest CVS glibc assumes that Linux >=2.6.4 always passes d_type. This patch adds this to the 32bit getdents on x86-64 too Patch originally from Marcus Meissner [PATCH] Don't register disabled nodes Don't register disabled nodes. Hits on x86-64 when there is a node with no memory. X86-64 shares this code with i386. [PATCH] Emulate deviceless bridge ioctls This helps vmware users running vmware on x86-64 - vmnet tries to set up a bridge. Emulate these ioctls. The bridge has more ioctls on its bridge device, but these don't seem to be needed here. [PATCH] Fix cyclades async driver timeout miscalculation This fixes a problem where cy_wait_until_sent() miscalculates (calculate -1 on a unsigned long) the "char_time" parameter passed to schedule_timeout(). Fix that by making it a signed long, and checking for negative value. [PATCH] write_kmem() fix copy_from_user() returns non-zero on faults.. [PATCH] ipc locking fix From: badari I ran into an ipc hang while trying to shutdown a database. The problem is due to missing sem_unlock() in find_undo(). [PATCH] s390: core fixes. From: Martin Schwidefsky s390 core changes: - Fix return type of some system call functions (long vs. int). - Fix prototypes for compat system call handlers. - Correct some bugs in the compat system call wrappers. - Fix broken pointer arithmetic which causes problems with gcc 3.4 and -march=z990 - Remove unnecessary #ifndef & optimize inline assemblies in spinlock.h. - Improve handling of deferred condition code 1. - New default configuration. [PATCH] s390: dasd driver. From: Martin Schwidefsky dasd device driver changes: - After a state change interrupt restart all running i/o on queue and reset device timer. - Improve some debug messages. - Lower timeout of reserve/release/steal_lock to 2 seconds. - Fix BIODASDPSRD ioctl. - Replace ro_flag, use_diag_flag and disconnect_error_flag words by bits. - Use BLKPG_DEL_PARTITION ioctl instead of a call to delete_partition because delete_partition is not an exported function. Since dasd_destroy_partitions can't do blkdev_get because dasd_open would fail, keep the block device open as long as partitions exist. This in turn requires a different approach to the open vs. offline race. [PATCH] s390: z/VM monitor stream. From: Martin Schwidefsky z/VM monitor stream changes: - Correct sysctl vs. module ref-counting. [PATCH] s390: network driver. From: Martin Schwidefsky s390 network driver changes: - ctc/lcs/qeth: prevent a ccw-device to be grouped multiple times. - icuv: clear correct field in iucv_register_program if no userid is specified. - lcs: fix online/offline cycle again. - lcs: fix ungrouping of lcs group device. The channels of the lcs card should be offline afterwards. - lcs: don't do netif_stop_queue if no tx buffer is available, just return -EBUSY and drop the packets. [PATCH] s390: tape driver. From: Martin Schwidefsky s390 tape driver changes: - Prevent offline while device is in use. - Do not use bus_id string in debug feature messages. - Check for IS_ERR(irb) error conditions in interrupt handler. - Fix removing tape discipline modules. [PATCH] s390: system call speedup part 1. From: Martin Schwidefsky The purpose of this is to speed up system calls on s390. I managed to squeeze about 65 cycles from each system call. This improved e.g. getpid() from 232 to 157 cycles. As a nice side-effect it simplified the uaccess functions considerably. [PATCH] s390: system call speedup part 2. From: Martin Schwidefsky System call speedup part 2. [PATCH] adjuct cpu_khz in response to cpufreq changes From: john stultz This patch ensures that cpu_khz is adjusted on cpufreq notifications even when the tsc timesource is not in use. It fixes the mostly cosmetic issue when using the ACPI PM timesource of /proc/cpuinfo not being properly updated when cpu frequency was lowered. [PATCH] selinux: check return value for receive node permission From: James Morris This patch fixes a bug where the return value for a permission call is not checked. The bug was introduced when I added some code in the following changeset: Code was added after this line: err = avc_has_perm(isec->sid, node_sid, SECCLASS_NODE, node_perm, NULL, &ad); without adding an explicit check of 'err', which was previously returned from the function rather than being checked. i.e. it would drop through to: out: return err; } With the new code added, err can (and typically would) be overwritten with a successful value, causing the permission check to not deny permission if needed. The intended denial would have been logged. The patch below fixes this problem. [PATCH] Fix uninitialized data in EFI RTC /proc interface From: Bjorn Helgaas The problem is that we don't clear out the efi_time_t buffer before asking EFI to fill it in. EFI doesn't always write the entire buffer (in particular, the alarm time only supports one second resolution, so the nanosecond field is often untouched). The effect is that 'cat /proc/driver/efirtc' shows garbage in the nanoseconds part of the alarm time, and sometimes artifacts like bogus alarm date and junk after the actual end of the text. [PATCH] Remove from cmdlinepart.c From: Bjorn Helgaas Remove include of from cmdlinepart.c. This is not be needed for i386 (it builds fine with this patch), and ia64 doesn't supply a setup.h. asm/setup.h contains a hodge-podge of stuff with no real consistency between architectures. It appears to be included mainly by arch-specific drivers: acsi (Atari disks) amiflop (Amiga floppy) z2ram (ZorroII ram disk) amiserial (Amiga serial) ... and under arch-specific #ifdefs: fbcon (under __mc68000__ or CONFIG_APUS) fonts (ditto) logo (CONFIG_M68K) ... [PATCH] consolidate compat_sys_mount This replaces six duplicated implementations of various quality of sys32_mount with a shiny new compat_sys_mount(). It's been tested on parisc64 and sparc64 and fixes a bug exposed by the latest revision of Debian's initscripts. Thanks to Arnd Bergmann and Dave Miller for their suggestions, fixes and testing. Please apply. [SPARC32]: Correct init_thread_union section and alignment for gcc 3.3+ Recent tools are disregarding both the __asm__(".text") in init_task.c and the alignment at the end of .text in head.S. Use attributes instead. [SPARC32]: Allow debugging locks to compile again [PATCH] [PPC64] make compat filldir/getdents check for errors filldir and getdents should check return values of put_user etc. The generic code has been fixed but the ppc64 compat versions have not. [PATCH] ide.c: remove unused code for hwif->mmio == 1 [PATCH] remove unused CONFIG_BLK_DEV_TIVO TiVo IDE support was never merged only this option was (in 2.4.0-test2), sigh. [PATCH] remove unused CONFIG_DMA_NONPCI It has been dead since kernel 2.5.18. [PATCH] remove unused ide_hwif_t->pnp_dev [SPARC32]: Replace deprecated EXPORT_SYMBOL_NOVERS [SPARC32]: Use model-specific cpuid calls in model-specific code There are no longer any callers of GET_PROCESSOR_MID and GET_PROCESSOR_ID, so both are removed. [SPARC32]: Optimize SMP IPI handling Since smp_stop_cpu is not used, we don't need to test for it. This saves several instructions in the IPI handler and simplifies the code. [SPARC32]: Rename cpuid functions smp_processor_id is to be used when current_thread_info()->cpu is valid; i.e. almost always. Early on or when setting that field, hard_smp_processor_id is used. Clarify the distinction and only export to modules what's really needed. smp_processor_id is not model-specific, so we no longer need btfixups for it. [SPARC64]: Fix one last cast-as-lvalue, present in uniprocessor builds. [AF_PACKET]: Fix packet_set_ring memleak and remove num frame limit. [IPV6]: Link some packet walker helpers always statically. Put the extension header helper funcs always statically into the kernel even if ipv6 is built as a module, this is needed for things like SELinux. [PATCH] USB: Eliminate wait following interface unregistration This patch from Alan Stern fixes a bug in the current USB code that causes khubd to hang when a device is removed from the system, thereby preventing any future USB device changes (like adding or removing other devices) from happening. Both Andrew and I can easily duplicate this bug against the current -bk tree. It's not a perfect fix, but it works for now, and I will spend the next week working on restructuring the code so this is handled properly. [PATCH] ppc64: Fix thinko in iommu allocator This fixes a bug in the iommu allocator that causes it to behave strangely when a fair size of the table is allocated. Thanks to Andrew Gallatin for finding this. [PATCH] ppc64: Use full DART table on G5 This increases the DART table to use the full size. We allocate a full 16MB page anyway, so there's no difference in memory consumption. Thanks to Ben for spotting this, it was left over from debugging... [SOC]: Fix cast-as-lvalue warnings in soc fc4 driver. [CARMEL]: Fix 64-bit platform warning. [INTERMEZZO]: Fix 64-bit platform warnings. [PATCH] Fix bugs introduced by recent improvements to readdir_plus - make sure cd->buffer is always inside a page - previously if an entry fit perfectly in the remainder of a page, cd->buffer would end up pointing past the end of that page. - make sure num_entry_words is always correct, even on the error path. [TCP]: Use tcp_tw_put on time-wait sockets. [ARM] Remove vm_region_dump() debugging. [ARM] Move kmalloc() and spinlocks into vm_region_alloc() [ARM] Extend DMA API on ARM for DMA-able writecombining memory. This is mainly for ARM framebuffer drivers, some of which are presently either open-coding this functionality, or using some internal ARM architecture function to get what they want. ALSA CVS update - Clemens Ladisch USB generic driver remove calls to usb_driver_release_interface (not needed when disconnect is called) ALSA CVS update - Clemens Ladisch USB generic driver replace usage of interface index with calls to usb_ifnum_to_if (forgot this in 1.88) ALSA CVS update - Clemens Ladisch USB generic driver clean up get_iface again :) ALSA CVS update - Clemens Ladisch USB generic driver high speed support ALSA CVS update - Takashi Iwai Intel8x0 driver added the quirk for Compaq Evo D510C. ALSA CVS update - Takashi Iwai PCM Midlevel - suppress the xrun debug output unless xrun_debug proc is set. - show stack trace when xrun_debug > 1. ALSA CVS update - Takashi Iwai Documentation The description about ALSA proc files, including debug information. ALSA CVS update - Takashi Iwai Intel8x0 driver Removed the unprocessed IRQ detection, it seems bogus. ALSA CVS update - Jaroslav Kysela I2C cs8427,ALSA Version,ICE1712 driver Added cs8427_timeout parameter to the ICE1712 driver ALSA CVS update - Jaroslav Kysela Documentation Added cs8427_timeout to the snd-ice1712 module description ALSA CVS update - Jaroslav Kysela Sound Core PDAudioCF driver Adrian Bunk Fix warnings (SNDRV_GET_ID is not required since these files don't use get_id). ALSA CVS update - Clemens Ladisch USB generic driver fix deadlock on register_mutex and other bugs in initialization error paths ALSA CVS update - Jaroslav Kysela PCM Midlevel Fix in snd_pcm_timer_resolution_change() - it no longer oops when 32-bit value overflows. ALSA CVS update - Clemens Ladisch USB generic driver adjust usb_set_interface() calls for 2.6.5-rc2 ALSA CVS update - Jaroslav Kysela Documentation Corrected cs8427_timeout ALSA CVS update - Takashi Iwai Documentation,I2C cs8427,ICE1712 driver fixed cs8427_timeout option to use the correct value in msec. ALSA CVS update - Takashi Iwai Intel8x0 driver disable the legacy midi/joystick properly as default. ALSA CVS update - Jaroslav Kysela ICE1712 driver From: Arjan van de Ven ice1712.c: move 2 same structs to the top of the function; gcc won't share the stackslots anyway ALSA CVS update - Jaroslav Kysela ALSA Version release: 1.0.4rc1 ALSA CVS update - Jaroslav Kysela PPC PowerMac driver Remove global enable variable ALSA CVS update - Jaroslav Kysela CS46xx driver Added parsing of mmap_valid,external_amp and thinkpad parameters at boot time ALSA CVS update - Jaroslav Kysela CS46xx driver mmap_valid is 1 by default ALSA CVS update - Jaroslav Kysela ICE1712 driver Fixed Delta410 cs8427 i/o ALSA CVS update - Takashi Iwai IOCTL32 emulation disabled the entries conflifting with TIOC* ioctls. ALSA CVS update - Clemens Ladisch AC97 Codec Core fix detection of 2.3 codecs ALSA CVS update - Clemens Ladisch AC97 Codec Core fix superfluous rate register assignments ALSA CVS update - Clemens Ladisch AC97 Codec Core fix hang because of uninitialized ad18xx.mutex with AD1985 ALSA CVS update - Clemens Ladisch AC97 Codec Core don't clobber other bits in SERIAL_CFG register with AD codecs when changing codec selection bits ALSA - fixed date in version.h [AGPGART] Minor CodingStyle fixups. [PATCH] add missing A few asm/types.h test a config variable without including first, which can e.g. cause different sector_t definitions. HFS fell victim to that and broke on ppc with CONFIG_LBD enabled. I scanned all asm/types.h and added as necessary. [PATCH] ppc32: More preempt fixes This patch fixes more cases of possible preempt issue when testing MSR for FP or VEC bits and then doing giveup_fpu or giveup_altivec that I missed in my previous round of fixes (bk get helps before grepping ;) I also change the single step and program check exceptions to not re-enable interrupts right away on C code entry, it was useless and would cause interesting issues with preempt & xmon [PATCH] Add BINFMT_MISC docs for Mono .NET-based binaries Just as there is documentation for BINFMT_MISC and Java bytecodes support, I thought it could be interesting to add documentation on how to add BINFMT_MISC support for directly running .NET ".exe" binaries using the Mono CLR. [PATCH] ppc64: syscall error test incorrect for 64 bits results The syscall return path on ppc64 checks if the error is between -LAST_ERRNO and 0, if it is, does the usual inversion along with setting a CR bit indicating to glibc that an error occured. However, we had an interesting bug where we used a 32 bits logica (unsigned) comparison, thus possibly doing false positives for valid 64 bits unsigned values whose low 32 bits happen to be in the error range. Fix that. [PATCH] ISDN CAPI: fix capiminor_alloc() to assign lowest free minor From: Frank A. Uepping This fixes capiminor_alloc() to assign the lowest free minor for a new capi_tty. Thanks to Frank A. Uepping and Tim Woods. [PATCH] fix oops at pmac_zilog rmmod'ing From: Colin Leroy rmmod'ing pmac_zilog currently oopses because uart_unregister_driver(), which nullifies drv->tty_driver, is called before uart_remove_one_port(), which uses said drv->tty_driver. The comment at top of uart_unregister_driver() specifically says we have to have removed all our ports via uart_remove_one_port() before. [PATCH] email address update [ARM] Convert ARM video drivers to use (ARM extended) DMA API. [ARM] Remove consistent_alloc/consistent_free Since we've eliminated users of these functions, we can unexport them. Instead, drivers should use the DMA API interfaces. [ARM] Clean up coherent DMA allocator from previous changes. - Since the coherent DMA allocator is not currently compatible with HUGETLB, ensure that we fail at compile time should this option be selected. - Move struct device/dma mask handling into consistent_alloc(). - Complain if someone tries to allocate coherent memory larger than their DMA mask will permit. - Rename consistent_alloc() to __dma_alloc() to ensure that there is no confusion that consistent_alloc() has gone. - Ensure warnings and errors report the correct function name. kbuild: Add cscope to make help From: Bjorn Helgas kbuild: Avoid "expr length" in Makefile From: Martin Schaffner [ARM] Fix Acorn RTC year handling. Acorn decided to use an esoteric method for handling the year. Update RTC implementation to follow this method. [PATCH] arch/x86_64/ia32/sys_ia32.c needs vmalloc.h [PATCH] md: Convert a number or "unsigned long"s to "sector_t"s From: NeilBrown This helps raid5 work on at least 1 very large array.. Thanks to Evan Felix [PATCH] Fix posix scheduling violation for !SCHED_OTHER From: Joe Korty The following fixes a problem where a SCHED_FIFO task would on occasion be moved to the end of its runqueue when returned to from a preemption. Cause was due to some SCHED_OTHER code in schedule() which was being run for tasks of every policy. [PATCH] Fix slab creation/destruction vs. CPU Hotplug From: Rusty Russell From: Srivatsa Vaddagiri Hit a couple of (cpu hotplug) races in slab allocator during my tests. Mostly it was because of continuous loading/unloading fs/minix/minix.ko while simultaneously doing offline/online of CPUs. As part of its init and exit routines, minix.ko create/destroys caches, which lead to several oopses. 1. kmem_cache_create In brief, kmem_cache_create does: a) calls enable_cpucache to create per-cpu cache for all online CPUs. b) adds the cache to the global list of caches These two are not done atomically and thats what causes problems. For ex: lets say that at the time of step a) CPU1 is not online. Hence no per-cpu cache is created for CPU1 (cachep->array[1] is NULL). However CPU1 is not completely dead in the sense that CPU_DEAD processing for it is not yet over. By the time CPU_DEAD processing starts for CPU1, step b) is complete. So cpuup_callback finds this cache and tries freeing it's per-cpu cache associated with CPU1. In the process it dereferences a NULL pointer and dies. 2. kmem_cache_destroy In brief, kmem_cache_destroy does: a) deletes the cache from the global list of caches b) Drain per-cpu cache (drain_cpu_caches), which basically uses smp_call_function to run do_drain on all online CPUs. One possible race is let's say that CPU1 is coming up. By the time CPU_UP_PREPARE is processed for CPU1, step a) is complete. Hence cpuup_callback does not allocate any per-cpu cache for the cache that is being destroyed. However by the time step b) is run, CPU1 is completely online (taking interrupts). It receives the IPI and tries draining it per-cpu cache (which is NULL) and dies there. I think we need to serialize kmem_cache_create/destroy against CPU hotplug to prevent these problems. Patch below does that by taking CPU Hotplug sem (which is OK since kmem_cache_create/destroy are not very frequently used?). [PATCH] cmpci warning fixes From: Luiz Fernando Capitulino sound/oss/cmpci.c: In function `cm_release_mixdev': sound/oss/cmpci.c:1465: warning: unused variable `s' [PATCH] Pass correct task to get_user_pages in ptrace From: Andi Kleen ptrace/access_process_vm was passing current to get_user_pages as task, but it should have been clearly the child task instead. This fixes the fault accounting in ptrace and the vsyscall debugging on x86-64 (it needs the correct task_struct to map the vsyscall pages) [PATCH] fix a warning in sound/oss/opl3sa2.c. From: Luiz Fernando Capitulino sound/oss/opl3sa2.c:163: warning: `opl3sa2_lock' defined but not used [PATCH] cciss: support MSA30 storage enclosures From: This change is required to support the new MSA30 storage enclosure. If you do a SCSI inquiry to a SATA disk bad things happen. This patch prevents the inquiry from going to SATA disks. [PATCH] cciss: return -ENXIO on no-device-present From: mike.miller@hp.com If no device is attached we now return -ENXIO instead of some bogus numbers. Prevents applications from trying to access non-existent disks. Also adds HDIO_GETGEO_BIG IOCTL that fdisk uses. [PATCH] Kill IDE debug messages during suspend From: Pavel Machek Suspend/resume support in ide seems to work okay these days, so this should be applied. [PATCH] update i386 defconfig From: Jeff Garzik I pretty much said 'no' to everything "(NEW)", so any "=y" you see are the result of Kconfig rules, not me. [PATCH] Fix /proc/swaps output alignment From: Hugh Dickins There's an irritating extra space upsetting alignment in the 2.6 /proc/swaps, which already arranges a space to separate the fields. [PATCH] don't display viocd partitions in /proc/paritions From: Olaf Hering Further to the recent removal of CDROMs from /proc/partitions. [PATCH] Disable debugging in parport daisy From: Andi Kleen We are in production now. No more debugging needed. [PATCH] inode dirtying timestamp fix It's a bit late in 2.6.5-rc for this, but it does fix a significant bug: for the first five minutes after boot, prior to the jiffy wrap, /bin/sync doesn't write all of the dirty data. We currently record an inode's time-of-first-dirtying in the address_space. This causes a few problems with dirty block special inodes: when the device node for /dev/hda1 needs to be written back we bogusly inspect the timestamp for the address_space, which belongs to a different inode. So move the inode's dirtying time up into the inode itself. This means that for block-special inodes, inode->dirtied_when represents the time at which the inode itself was dirtied. For regular files it represents the time at which the inode or its pages were dirtied. For blockdevs, the time-of-first-dirtying is recorded in the kernel-internal blockdev inode. Only I_DIRTY_PAGES makes sense on these inodes. The reason all this works is that when dirtying a page we always run __mark_inode_dirty(page->mapping->host); which refers to the kernel-internal blockdev inode. [PATCH] fix SATA simulation of 6-byte read/write Here's one for -rc... either this bit is assumed on most modern drives, or nobody uses the 6-byte commands for read/write (which is very likely). Either way it definitely wants fixing. Since we use the modern "LBA" method of addressing sectors, this bit must be present in the Device register when issuing a read or write. There are three code paths that need this bit, and only two of them actually set it. This patch fixes the third (and apparently never used) code path. [PATCH] asm-sparc{64}/ide.h cleanup (there are no standard ports) Acked by David Miller. [PATCH] asm-parisc/ide.h cleanup (there are no standard ports) Acked by Grant Grundler and Matthew Wilcox. Linux 2.6.5-rc3 [AF_PACKET]: Add PACKET_MMAP documentation. [NETFILTER]: Fix DEBUG compile in ipt_MASQUERADE. [NETFILTER]: Fix DELETE_LIST oopses. We've now narrowed down the issue of kernel oopses in combination with 'LIST_DELETE' syslog messages happening in certain setups. Apparently people who do not enable CONFIG_IP_NF_NAT_LOCAL and do DNAT/REDIRECT and want to connect locally from the gateway via DNAT to the DNAT'ed address experience the bug ;) Patch courtesy of KOVACS Krisztian and Henrik Nordstrom [SPARC32]: Update module linking for symbols starting with "." Rusty did not like the __dot_sym approach and suggested instead: 1) make rem, urem, mul, umul, div and udiv aliases to .rem, .urem etc: extern int rem(int, int) __attribute__((weak,alias(".rem"))); 2) EXPORT_SYMBOL(rem) etc. 3) Check genksyms recognises that prototype (it should). 4) Copy "dedotify" from ppc64 to handle them on load. The only real downside is the risk that someone else will export those names, but I think that's pretty unlikely. ALSA CVS update - Clemens Ladisch USB generic driver add usb_device->speed wrapper for compiling with 2.2.x kernels ALSA CVS update - Jaroslav Kysela au88x0 driver Cleanups - removed duplicate PCI IDs ALSA - 1.0.4rc2 [PATCH] Fix BLKPREP_KILL From: Jens Axboe Samuel Rydh wrote: If a MODE_SENSE(6) command is sent to an IDE cd using the CDROM_SEND_PACKET ioctl, then the kernel freezes solidly. To reproduce this, one can take the SCSI cmd [1a 08 31 00 10 00] and a 16 byte data buffer. After some bug hunting, I found out that the following is what happens: - ide-cd recognizes that MODE_SENSE(6) isn't supported and tries to abort the request from ide_cdrom_prep_pc by returning BLKPREP_KILL. - in elv_next_request(), the kill request is handled by the following code: while (end_that_request_first(rq, 0, rq->nr_sectors)) ; end_that_request_last(rq); The while loop never exits. The end_that_request_first() doesn't do anything since rq->nr_sectors is 0; it just returns "not-done" after handling those 0 bytes (rq->bio->bi_size is 16). [PATCH] catch errors when completing bio pairs From: Mike Christie A couple of drivers can sometimes fail the first segments in a bio then requeue the rest of the request. In this situation, if the last part of the bio completes successfully bio_pair_end_* will miss that the beginging of the bio had failed becuase they just return one when bi_size is not yet zero. The attached patch moves the error value test before the bi_size to catch the above case. [PATCH] Make pdflush run at nice 0 Since pdflush was converted to be launched by the kthread infrastructure it has inherited keventd's `nice -10' setting. That hurts interactivity when pdflush is doing lots of work writing back through the dm-crypt layer. So set pdflush back to `nice 0'. [PATCH] ISDN Eicon driver: NULL pointer check inside spinlock Check for valid application pointer inside api spinlock in diva_send_message(). [PATCH] pc300 driver misplaced ; From Dave Jones. Oops. [PATCH] Fix obvious stupid race in do_stop We don't set the task state to TASK_INTERRUPTIBLE _before_ checking for kthread_should_stop in do_stop. [PATCH] ppc32: Even more preempt fixes Add a warning if enable_kernel_{fp,altivec} is called with preempt enabled since this is always an error, and make sure the alignement exception handler properly disables preempt when doing FP operations. [PATCH] ppc32: Remove duplicate export enable_kernel_fp is exported both in ppc_ksyms and near it's definition in process.c, remove the former. [PATCH] ppc32: context switch fixes This fixes a few issues with context switch on ppc32: - Makes sure we properly flush out all stores to the coherency domain when switching out, since the same thread could be switched back in on another CPU right away, those stores must be visible to all other CPUs. - Remove dssall in the assembly calls and do it now once in switch_mm (stop vmx streams). Assume the G5 doesn't need a sync after dssall. - Remove bogus isync in the loop setting the userland segment registers - Do not switch the userland segments when the mm stays the same [PATCH] ppc32: Allow PREEMPT with SMP in KConfig On ppc32, CONFIG_PREEMPT wasn't settable along with CONFIG_SMP for historical reasons (smp_processor_id() races). Those races have been fixes since then (well, should have been at least) so it's now safe to allow both options. [PATCH] ppc32: PCI mmap update This updates the ppc32 PCI mmap facility to allow mmap'ing of space outside of the actual devices, using the host bridge resources instead. This allow userland to map things like legacy IO space by either using the bridge device itself, or simply any PCI device on the same bus domain [PATCH] ppc64: Add a sync in context switch on SMP For the same reason as ppc32, we need to ensure that all stores done on a CPU has reached the coherency domain and are visible to loads done by another CPU when context switching as the same thread may be rescheduled almost right away there. [PATCH] ppc64: More incorrect syscall error test Oops, there was two different code path affected by this bug (strace and normal) and I fixed only one. Here's the other one: [ACPI] allow building ACPI w/ CMPXCHG when CONFIG_M386=y http://bugzilla.kernel.org/show_bug.cgi?id=2391 [SPARC64]: Export prom_palette. [PATCH] Alpha: UP1500 pci_mem fix From: Ivan Kokshaysky The memory reserved for PCI probe is not freed properly in some cases, for instance with a 3.5Gb of RAM. Forward port from 2.4. [PATCH] back out sysfs reference count change This backs out Maneesh's sysfs patch that was recently added to the kernel. In its defense, the original patch did solve some fixes that could be duplicated on SMP machines, but the side affect of the patch caused lots of problems. Basically it caused kobjects to get their references incremented when files that are not present in the kobject are asked for (udev can easily trigger this when it looks for files call "dev" in directories that do not have that file). This can cause easy oopses when the VFS later ages out those old dentries and the kobject has its reference finally released (usually after the module that the kobject lived in was removed.) I will continue to work with Maneesh to try to solve the original bug, but for now, this patch needs to be applied. Fix serious naming problem. People were getting quite excited about this. [ATM]: mpoa_proc warning cleanup (from Willy TARREAU ) [IPV4]: Fix IGMPv3 timer initialization when device not upped. [SPARC32]: Display useful information in the event of a bad trap [SPARC32]: Fix cast-as-lvalue [SPARC32]: Regenerate defconfig JFS: initialize log->bp before calling lmNextPage [PATCH] ppc64: make iSeries boot mostly From: Anton Blanchard Stephen Rothwell This patch just ensures that the RI bit is set really early as it seems it is not on iSeries Power4 machines (or maybe OS400 v5r3 does this). [PATCH] ppc64: clean up virtual <-> absolute code From: Anton Blanchard Rusty Russell The iSeries has an arch-specific mapping from physical <-> absolute addresses. Fortunately this is only used in a few places. However, the following arch-specific macros/functions are provided in addition to the standard macros: __a2p() __a2v() __p2a() __p2v() __v2a() __v2p() absolute_to_phys() phys_to_absolute() virt_to_absolute() absolute_to_virt() Reduce them to these, with slightly shorter names, and taking either pointers or unsigned long (as per __va and __pa) rather than making the caller cast: abs_to_phys() phys_to_abs() And helper macros: virt_to_abs() abs_to_virt() As is standard, virtual addresses are returned as void *, physical and absolute as unsigned long. Note that the change the iSeries_setup is a little subtle: ea is set to __va(pa) above, so "phys_to_abs(pa)" is the same as "virt_to_abs(ea)". Also, REALADDR is renamed to ISERIES_HV_ADDR and used in a couple of places where appropriate. [PATCH] double semicolon cleanup This cleans up a larger amount of superfluos ";;" statements in current Linux kernel sources by converting them to the regular single ";" statments. It seems to be a common problem that at the end of a line the semicolon key is producing an echo. Add __user pointer annotations Every pointer in had better be a user pointer. Also add some others that a quick sanity check picked up on. [PATCH] Fix oopses in fealnx driver TX path In both uniprocessor and SMP, the fealnx driver's TX-submit path can race against the interrupt handler, with disastrous results. Add the lock that needed to be there all along, to fix this. There's another problem in the RX path, that will be sent as a separate patch, as soon as we get that patch 100% nailed down, and acceptable for a Release Candidate. [PATCH] fix VIA SATA device detection The last fix apparently only worked for device 0, since the driver screwed up the port offsets (due to a wonky VIA hardware layout, really). This patch fixes device 1 detection for the users still seeing problems in -rc3. [PATCH] fix ALSA au88x0 compilation In the ALSA cleanup for duplicate PCI ID's, they weren't exactly duplicated, resulting in problems in the au8810.c driver. This fixes the problem [NETFILTER]: Do not require ip_forwarding for reset on a bridge. Currently, to be able to send a reset in the FORWARD chain of iptables for bridged traffic, ip forwarding must be enabled. This causes confusion and in some situations people really don't want to enable ip forwarding. The patch below lets the user send reset packets for bridged frames in the FORWARD chain, with ip forwarding disabled (as long as there is a route). [PATCH] io_getevents leak fix Spotted by Suparna: if the first range check fails, we leak a ref on the io context. [NETFILTER]: Fix circular conntrack header file dependency. [XFS] Fix up mrlock debug code, and ensure its only built under DEBUG. SGI Modid: xfs-linux:xfs-kern:167944a [XFS] Remove dup fdatasync/fdatawait call on fsync. Means we no longer take the iolock here, and readers no longer conflict with concurrent fsync activity. Kudos to Steve! SGI Modid: xfs-linux:xfs-kern:167949a [XFS] Use PFLAGS_RESTORE_FSTRANS in place of PFLAGS_RESTORE, only restore previously saved FSTRANS state. Otherwise we can lose process flags. SGI Modid: xfs-linux:xfs-kern:168082a [XFS] use ssize_t to store VOP_READ/VOP_WRITE return value. SGI Modid: xfs-linux:xfs-kern:168167a [XFS] Add space for inode and allocation btrees to ITRUNCATE log reservation. Add XFS_ALLOCFREE_LOG_RES to IFREE log reservation. SGI Modid: xfs-linux:xfs-kern:168597a [XFS] Define a new superblock field for more feature bits. Take the last feature bit in sb_versionnum to use to indicate that the new feature bit field is to be used. SGI Modid: xfs-linux:xfs-kern:168665a [XFS] Fix debug builds - need sb_features2 details in endian translation code. SGI Modid: xfs-linux:xfs-kern:168693a [XFS] Use unsigned long long for end_offset so we don't overflow it. SGI Modid: xfs-linux:xfs-kern:168809a [XFS] Reenable non-block flag for DMAPI. SGI Modid: xfs-linux:xfs-kern:169038a [XFS] Reinstate some accidentally dropped log IO error injection code. SGI Modid: xfs-linux:xfs-kern:169048a [XFS] Fix r/o check in xfs_ioc_space, fix checks on xfs_swapext validity. SGI Modid: xfs-linux:xfs-kern:169135a [XFS] Fix shortform attr flags botch affecting listxattr - from Andreas Gruenbacher. SGI Modid: xfs-linux:xfs-kern:169199a [XFS] Disallow logbufs=0 unless the correct compilation flags used, else we panic. SGI Modid: xfs-linux:xfs-kern:169200a [XFS] Ensure sb not flushed async on a SYNC_WAIT sync. Fixed by Bart Samwel. SGI Modid: xfs-linux:xfs-kern:169208a [XFS] Make the XFS access checks like the other Linux filesystems for DAC. SGI Modid: xfs-linux:xfs-kern:169300a acpi: enable global wake events by default People need the global wake events even when not sleeping: they are used for lid open events at least on some laptops. As such, they should be enabled by default. You can disable them with "acpi_leave_gpes_disabled" if your machine doesn't need them, and you want to get a few less GPE's. [XFS] Be explicit in adding in the non-transactional data to the reservation estimate. We must add in for the worst case of a log stripe taking us the full distance for a log stripe boundary. SGI Modid: xfs-linux:xfs-kern:169304a [CREDITS]: Update my affiliation. [TCP]: IPV6, do not use sock_put() on timewait sockets. [ACPI] delete extraneous IRQ->pin mappings below IRQ 16 http://bugzilla.kernel.org/show_bug.cgi?id=2408 [ACPI] PCI bridge interrupt fix (David Shaohua Li) http://bugzilla.kernel.org/show_bug.cgi?id=2409 [ACPI] Restore PIC-mode SCI default to Level Trigger (David Shaohua Li) http://bugme.osdl.org/show_bug.cgi?id=2382 [ARM] Add ARM virtual memory layout documentation. [PATCH] PPC32 build fix From: Matt Porter This fixes the build on non cache coherent PPC32 platforms. [PATCH] ppc64: create dma_mapping_error From: Anton Blanchard From: Stephen Rothwell This creates DMA_ERROR_CODE and uses it everywhere instead of PCI_DMA_ERROR_CODE as we really want the three DMA mapping API's to return a single error code. Also we now have dma_mapping_error and vio_dma_mapping_error - and this latter and pci_dma_mapping_error both just call the former. Also a small fix in the vscsi - dma_map_sg returns 0 to indicate an error. [PATCH] ppc64: bugfix for hugepage support From: David Gibson Due to a misunderstanding of pmd_offset() the PPC64 hugepage code could end up looking at bogus pages as if they were PMD pages. [PATCH] ppc64: allow MAP_FIXED hugepage mappings From: David Gibson On PowerPC64 the "low" hugepage range (at 2-3G for use by 32-bit processes) needs to be activated before it can be used. hugetlb_get_unmapped_area() automatically activates the range for hugepage mappings in 32-bit processes which are not MAP_FIXED. However for MAP_FIXED mmap()s, even at a suitable address will fail if the region is not already activated, because there is no suitable callback from the generic MAP_FIXED code path into the arch code. This patch corrects this problem and allows PPC64 to do MAP_FIXED hugepage mappings in the low hugepage range. [PATCH] ppc64: add useful warning message in hugepage code From: David Gibson This patch adds a debugging message to the ppc64 hugepage code when we attempt to open the "low" (32-bit) hugepage window on PPC64, but can't because a (non-hugepage) mapping already exists in the region. [PATCH] siginfo.si_band is long From: Marcus Meissner After discussion on the glibc list the result was that=20 si_band is "long int" according to POSIX: http://www.opengroup.org/onlinepubs/007904975/basedefs/signal.h.html Ulrich Drepper refused a patch to fix glibc due to this reason: http://sources.redhat.com/ml/libc-alpha/2004-03/msg00254.html so here is the patch to fix it in the kernel. ppc64 and s390x were broken before and are fixed by this patch too. [PATCH] Fix hugetlb-vs-memory overcommit From: Andy Whitcroft Two problems: a) The memory overcommit code fails oto take into account all the pages which are pinned by being reserved for the hugetlbpage pool b) We're performing overcommit accounting and checking on behalf of hugetlbpage vmas. The main thrust is to ensure that VM_ACCOUNT actually only gets set on vma's which are indeed accountable. With that ensured much of the rest comes out in the wash. It also removes the hugetlb memory for the overcommit_memory=2 case. [PATCH] remove __ARCH_SI_BAND_T All architectures now make this `long', so we can remove the arch override. [PATCH] ksoftirqd: missing barrier Spotted by Andrea: we need the barriers in there to prevent reads passing ahead of the setting of current->state. [PATCH] Replace MAX_MAP_COUNT with /proc/sys/vm/max_map_count From: David Mosberger Below is a warmed up version of a patch originally done by Werner Almesberger (see http://tinyurl.com/25zra) to replace the MAX_MAP_COUNT limit with a sysctl variable. I thought this had gone into the tree a long time ago but alas it has not and as luck would have it, the hard limit bit someone today once again with a large app on a large machine. Here is a small test app: [PATCH] loop setup calling bd_set_size too soon From: Chris Mason I think Andrew and I managed to mismerge the loop setup race fix. loop_set_fd is using get_capacity() to read the size of the disk and sending that to bd_set_size. But, it is doing this before calling set_capacity, so the size being used is wrong. This should clean things up. [PATCH] run page_address_init() earlier If someone runs page_address() before page_address_init(), the kernel locks up over uninitialised spinlocks. This only happens with the 4:4 patch, but it is more robust to run page_address_init() before setup_arch(). page_address_init() simply initialises statically allocated storage. [PATCH] Show more stats in the sysrq-M output Display number of slab, mapped and pagetable pages in the sysrq-M output. [PATCH] uninline signal_wake_up Seven callsites and an out-of-line copy is a bit excessive. 562 bytes saved. [PATCH] uninline __group_send_sig_info Three callsites, 1104 bytes saved. [PATCH] uninline sig_ignored Four callsites, 104 bytes saved [PATCH] uninline __group_complete_signal Two callsites, 456 bytes saved [PATCH] uninline __wake_up_parent Two callsites, 48 bytes saved [PATCH] Fix swp_entry_t encoding From: Martin Schwidefsky This fixes a problem in sys_swapon that can cause the creation of invalid swap ptes. This has its cause in the arch-independent swap entries vs. the pte coded swap entries. The swp_entry_t uses 27 bits for the offset and 5 bits for the type. In sys_swapon this definition is used to find how many swap devices and how many pages on each device there can be. But the swap entries encoded in a pte can be subject to additional restrictions due to the hardware besides the 27/5 division of the bits in the swp_entry_t type. This is solved by adding pte_to_swp_entry and swp_entry_to_pte calls to the calculations for maximum type and offset. In addition the s390 swap pte division for offset/type is changed from 19/6 bits to 20/5 bits. [PATCH] kbuild: $LANG fix From: Sam Ravnborg Fix this: Building modules, stage 2. MODPOST LANG := en_US.UTF-8 make: LANG: Command not found make: *** [all] Error 127 by removing the tab in front of the LANG assignment. [ARM] Update ARM makefiles - Use -march=armv6 where available. - CFLAGS_BOOT isn't needed - the decompressor uses CFLAGS, remove it. - PROCESSOR is never used, remove it. - LDFLAGS_BLOB is never used, remove it. - Remove MACHINE macro. - Correct comments for include/asm-arm/.arch target. - Copy format of include/asm symlink rule. - Arrange for configuration to be split before making include/asm-arm/arch symlink. - This means that asm-offsets.s no longer depends on include/config/MARKER. [PATCH] PowerMac: cleanup of some scsi drivers This patch from Christoph Hellwig does much welcomes cleanup of the old mac53c94 and mesh SCSI drivers, removing sillycaps etc... [PATCH] fix the subarch build again after ACPI breakage The patch to check "maxcpus=N" early broke by putting maxcpus (a variable which is only exported by mpparse.c) into parse_cmdline_early(). The fix is to make it depend on the correct CONFIG_ option. In the subarchitectures: CONFIG_X86_SMP is the one that means "I want standard x86 smp code" and that's what this should depend on. [PATCH] ISDN Eicon driver: tasklet_kill removal diva_os_cancel_soft_isr() may not call tasklet_kill(), because it is interrupt context. This will be done correctly in the cleanup function anyway. [PATCH] export hugetlb_total_pages The commoncap module calls this. [PATCH] PPC32: Fix thinko in arch/ppc/boot/simple/relocate.S From: Tom Rini When I was updating ppc/boot/simple/relocate.S to work on PPC_PREP systems, I in advertantly broke 4xx systems. On classic PPC, the first three instructions are nops, of which the first two can be overwritten. This is not true of 4xx (or 8xx, but that's not working right now anyhow). The following is needed to fix this. [PATCH] PPC32: PPC40x build fix From: Matt Porter Patch fixes the build for PPC40x platforms. [PATCH] PPC32: Add missing PPC44x PVRs From: Matt Porter IDs new PPC44x silicon. [PATCH] PPC32: Fix some 4xx defconfigs From: Matt Porter Make a couple 4xx defconfigs functional again. [PATCH] PPC32: Fix latent PPC44x tlb bug From: Matt Porter Patch fixes a latent bug in the PPC44x tlb management code. [ALPHA] Use __attribute_used__. [ALPHA] Detect and export cache shapes to userland. [ALPHA] Use progbits for got section. [ALPHA] Add pci_dma_mapping_error. [ALPHA] Use raw asm instead of attributes for cond_syscall. [ALPHA] DISCONTIGMEM fix From Ivan Kokshaysky . Re-instate __ARCH_SI_BAND_T, to allow architecture overrides. We default to "long" (which is what POSIX says), but since a number of architectures have used "int" for historical reasons, we need to allow overrides. At least sparc64 needs this. Possibly others, but so far architecture maintainers haven't spoken up. ppc64 and x86-64 are known to be ok with the default "long". Linux 2.6.5