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 p