Summary of changes from v2.6.7-rc1 to v2.6.7-rc2 ============================================ Fixed ALSA aureal driver compilation - wrong and missing PCI IDs [PATCH] kill acient compat cruft from acenic Kills lots of really old cruft and adds a little cruft to actually make the driver work with recent 2.4 again. [PATCH] convert acenic to pci_driver API ALSA CVS update - Jaroslav Kysela CS4281 driver Added retry_count ALSA CVS update - Jaroslav Kysela PCMCIA Kconfig SND_PDAUDIOCF depends on SND_PCM ALSA CVS update - Jaroslav Kysela ALSA Version release: 1.0.4 ALSA CVS update - Takashi Iwai VIA82xx driver added dxs_support and ac97_quirk entries for Amira notebook. ALSA CVS update - Takashi Iwai ATIIXP driver - fixed SPDIF support. restricted only 48k sample rate. - fixed the address assignment for bigendian (not existing, though) ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the possibl ac97 register cache mismatch. - added the detection of spdif sample rates. ALSA CVS update - Clemens Ladisch AC97 Codec Core fix access to wrong register when clearing powerdown bits ALSA CVS update - Clemens Ladisch Intel8x0 driver 20-bit sample format support ALSA CVS update - Clemens Ladisch USB generic driver remove superfluous address operator from literal arrays ALSA CVS update - Clemens Ladisch USB generic driver allow specification of rate_table in AUDIO_FIXED_ENDPOINT quirks ALSA CVS update - Jaroslav Kysela Timer Midlevel,ALSA Core Added early event flag and code to the timer interface. ALSA CVS update - Clemens Ladisch AC97 Codec Core show AC'97 2.3 information in proc file ALSA CVS update - Clemens Ladisch AC97 Codec Core fix AC'97 revision bits on AD1985 ALSA CVS update - Takashi Iwai Documentation,SA11xx UDA1341 driver,Memalloc module,PCM Midlevel RawMidi Midlevel,RTC timer driver,ALSA Core,Timer Midlevel ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer,Generic drivers MPU401 UART,OPL3,OPL4,ALS100 driver,AZT2320 driver,CMI8330 driver DT019x driver,ES18xx driver,OPL3SA2 driver,Sound Galaxy driver Sound Scape driver,AD1816A driver,AD1848 driver,CS4231 driver CS4236+ driver,PC98(CS423x) driver,ES1688 driver,GUS Classic driver GUS Extreme driver,GUS MAX driver,AMD InterWave driver,Opti9xx drivers EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver Wavefront drivers,PARISC Harmony driver,ALS4000 driver,ATIIXP driver AZT3328 driver,BT87x driver,CMIPCI driver,CS4281 driver ENS1370/1+ driver,ES1938 driver,ES1968 driver,FM801 driver Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver,RME32 driver RME96 driver,SonicVibes driver,VIA82xx driver,AC97 Codec Core ALI5451 driver,au88x0 driver,CS46xx driver,EMU10K1/EMU10K2 driver ICE1712 driver,ICE1724 driver,KORG1212 driver,MIXART driver NM256 driver,RME HDSP driver,RME9652 driver,Trident driver Digigram VX222 driver,YMFPCI driver,Sound Core PDAudioCF driver Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver SPARC cs4231 driver,USB generic driver use the new module_param*() functions. ALSA CVS update - Takashi Iwai Documentation,Control Midlevel,ALSA Core,AD1848 driver,CS4231 driver CS46xx driver,Trident driver,YMFPCI driver,ES18xx driver,OPL3SA2 driver ATIIXP driver,CS4281 driver,ES1968 driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,ALI5451 driver,NM256 driver Sound Core PDAudioCF driver Clean up of power-management codes. - moved commonly used codes to the core layer. - using the unified suspend/resume callbacks for PCI and ISA - added snd_card_set_pm_callbacks() and snd_card_set_isa_pm_callbacks() as the registration functions. ALSA CVS update - Takashi Iwai ALI5451 driver Clean up of power-management codes. - moved commonly used codes to the core layer. - using the unified suspend/resume callbacks for PCI and ISA - added snd_card_set_pm_callbacks() and snd_card_set_isa_pm_callbacks() as the registration functions. ALSA CVS update - Jaroslav Kysela Trident driver,CS4231 driver,PARISC Harmony driver Remove all old SNDRV_DMA_TYPE_PCI references ALSA CVS update - Clemens Ladisch ALSA sequencer load snd-seq-dummy automatically, as documented in seq_dummy.c ALSA CVS update - Clemens Ladisch USB generic driver use wrapper function for usb_control_msg() to prevent DMA'ing from/to the stack ALSA CVS update - Takashi Iwai Documentation,ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver CMIPCI driver,CS4281 driver,ENS1370/1+ driver,ES1938 driver ES1968 driver,FM801 driver,Intel8x0 driver,Intel8x0-modem driver Maestro3 driver,RME32 driver,RME96 driver,SonicVibes driver VIA82xx driver,ALI5451 driver,au88x0 driver,CS46xx driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver Trident driver,Digigram VX222 driver,YMFPCI driver - removed superfluous warning messages after pci_module_init(). (2.6 kernel doesn't return the error anyway...) - store card pointer in pci_drvdata instead of chip pointer. this would make easier to add PM support. ALSA CVS update - Takashi Iwai PCI drivers,au88x0 driver bugfixes and VIA/AMD chipset automatic workaround by Manuel Jander ALSA CVS update - Takashi Iwai ICE1712 driver added Event Electronics EZ8 support by Doug McLain ALSA CVS update - Takashi Iwai Intel8x0 driver fixed MX440 workaround in suspend/resume. ALSA CVS update - Takashi Iwai Memalloc module fixed the allocation of coherent DMA pages under 32bit mask. ALSA CVS update - Clemens Ladisch USB generic driver Edirol UA-700 advanced modes support ALSA CVS update - Takashi Iwai Intel8x0 driver,Intel8x0-modem driver - probe only audio (intel8x0) or modem (intel8x0m) codecs. - call snd_ac97_suspend() in the suspend callback. ALSA CVS update - Takashi Iwai AC97 Codec Core - export snd_ac97_suspend(). - mute MASTER and HEADPHONE volumes in suspend to avoid possible clicks. ALSA CVS update - Takashi Iwai CS4281 driver,ES1968 driver,Maestro3 driver,ALI5451 driver CS46xx driver,NM256 driver,Trident driver,YMFPCI driver - call snd_ac97_suspend() in the suspend callback. - suspend/resume secondary codecs, too. ALSA CVS update - Takashi Iwai PCM Midlevel fixed the deadlock of power_lock in suspend (by Terry Loftin) ALSA CVS update - Takashi Iwai PPC PMAC driver fixed the suspend/resume with the new ALSA common callbacks. ALSA CVS update - Takashi Iwai Memalloc module removed the obsolete hack for dev_alloc_coherent() with dev = 0. ALSA CVS update - Takashi Iwai PPC PMAC driver another fix for the new suspend/resume. ALSA CVS update - Jaroslav Kysela ICE1712 driver added a control for default rate in the ice1712 driver ALSA CVS update - Takashi Iwai PPC PMAC driver fixed the missing function declarations. ALSA CVS update - Takashi Iwai ATIIXP driver - added the PCI id entry for SB300. - added the missing terminator to the PCI id list. ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the center/mic share switch on ALC65x. - created AC97_SINGLE_VALUME() macro. ALSA CVS update - Takashi Iwai Control Midlevel - fixed the compilation without CONFIG_PM. - fixed the return value of POWER ioctl. ALSA CVS update - Takashi Iwai AC97 Codec Core added the mic/center sharing switch of cm9739 codec again. ALSA CVS update - Takashi Iwai Documentation,AC97 Codec Core added the write support to ac97#x-x+regs proc file. this is for debugging purpose, and enabled only when CONFIG_SND_DEBUG is set. it allows the user to modify AC97 register bits without compiling the sources. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Fixed AD18xx PCM bit handling ALSA CVS update - Jaroslav Kysela Opti9xx drivers Fixed irq&dma initialization for <93x chips ALSA CVS update - Jaroslav Kysela Intel8x0 driver From: Giridhar Pemmasani It seems that pci config space is messed up after resume for Intel ICH4 audio controller (on Dell Latitude D600, but I notice that others also complain about this problem). Consequently resume from S3 causes oops with snd_intel8x0 module. If the module is removed before suspend and loaded afterwards, I still get oops. The following simple patch fixes the problem. With this, I can leave alsa untouched during suspend/resume. ALSA CVS update - Jaroslav Kysela AC97 Codec Core patch_sigmatel_stac9758 - initialize with default values from datasheet - apply old initialization only for Gateway M675 notebook ALSA CVS update - Jaroslav Kysela AC97 Codec Core ac97->pci might be null ALSA CVS update - Takashi Iwai PPC Keywest driver,PPC PMAC driver,PPC PowerMac driver PPC Tumbler driver fixed the oops on resume and the initialization of chip. ALSA CVS update - Takashi Iwai AC97 Codec Core fixed the compilation without CONFIG_SND_DEBUG. ALSA CVS update - Takashi Iwai PCI drivers,ATIIXP driver - added IXP 300 to descriptions and comments. - fixed the codec probing without the proper interrupts. - added the experimental PM support. ALSA CVS update - Takashi Iwai VIA82xx driver - added the experimental PM support. ALSA CVS update - Jaroslav Kysela OPL3SA2 driver Added YMH0801 ISA PnP ID - OPL3-SA2 [netdrvr tg3] netdev_priv [PATCH] PATCH: Do something about aacraid This is a fairly minimal fix for aacraid. It removes the happy cast pointers to u32 garbage in the 2.6 code and replaces it with the working 2.4 equivalents. I've not backported any of the other changes from 2.4 to 2.6 yet, and some things have gone which are good to be gone (eg the proc/scsi horror). There is a certain amount of white space noise caused by realigning with the 2.4 code so I could see what was going on. Tested on a dual opteron Make st support the scsi_device timeout From: Brian King Fix SCSI device state model Following a prior patch, we made cancel the sole route into deleted, but forgot to update the state model checks to reflect this. offline and created also go to cancel [PATCH] st.c for GET_IDLUN A little more testing of st's SG_IO ioctl turned up a small problem. This is the corresponding patch that was applied to the sd driver when it received the block layer SG_IO ioctl. For least surprise of lk 2.4 utilities that use the SCSI_IOCTL_GET_IDLUN and SCSI_IOCTL_GET_BUS_NUMBER ioctls (e.g. sg_map) it is better to return the correct values rather than 0. gdth driver update to 3.04 From: Leubner, Achim - Support for drives > 2 TB implemented - 64-bit DMA support depending on the controller firmware version implemented - Some important bug fixes made [PATCH] Fix dpt_i2o From: Go Taniguchi Make it build (and work) again. scsi sg: fix smp_call_function() with intrs disabled From: Matthew Wilcox , Douglas Gilbert - Fix vmalloc,vfree with intrs disabled - bump version number - introduce MODULE_VERSION - increase over allocation of sg_dev_arr from 6 to 32 ALSA CVS update - Takashi Iwai PARISC Harmony driver fixed compilation - using struct parisc_device for DMA allocation. ALSA CVS update - Clemens Ladisch ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer,OPL4 make some module parameters sysfs-writable, where appropriate ALSA CVS update - Clemens Ladisch Intel8x0 driver check that period interrupt really has occured; clear only those interrupts that have been handled ALSA CVS update - Takashi Iwai CS4231 driver checks the PCM substream pointers to fix oops/panic in the interrupt handler. ALSA CVS update - Takashi Iwai VIA82xx driver added DXS whitelist for (eMachines) m680x. ALSA CVS update - Jaroslav Kysela Documentation,EMU10K1/EMU10K2 driver Initial attempt to add support for SB Live 5.1 (c) 2003 ALSA CVS update - Jaroslav Kysela RME HDSP driver HDSP9632 has also firmware version 0x97 ALSA CVS update - Clemens Ladisch CS4231 driver add missing closing brace ALSA CVS update - Takashi Iwai AC97 Codec Core try to mute and power down in the destructor (to shut up noises). ALSA CVS update - Takashi Iwai ES1968 driver - set ACPI D3 at suspend. - fixed the interrupt disabling at shutdown. - enabled PM for compaq Armada. ALSA CVS update - Takashi Iwai ALSA Core - added the generic PM callback registration. - rewritten ISA callbacks to use the new one. ALSA CVS update - Takashi Iwai SA11xx UDA1341 driver,UDA1341 - clean up PM codes using the new PM callback functions. ALSA CVS update - Takashi Iwai Documentation - fixed some obsolete descriptions and typos. - a bit more detailed description about addition of the new driver. ALSA CVS update - Clemens Ladisch ICE1712 driver fix Hoontech DSP* box configuration ALSA CVS update - Clemens Ladisch ALSA<-OSS emulation don't return negative byte count from GET[IO]PTR ioctl ALSA CVS update - Takashi Iwai VIA82xx driver fixed again the DXS entry for m680x to 48k-fixed rate. ALSA CVS update - Takashi Iwai PCM Midlevel fixed the bit width of IEC958_SUBFRAME_* formats from 24 to 32. ALSA CVS update - Takashi Iwai Documentation,NM256 driver - added a blacklist to avoid the possible hang-up at module loading. - added notes about the hang-up problem to ALSA-Configuration.txt. ALSA CVS update - Takashi Iwai Documentation,CMIPCI driver dropped the software encoding of AC3 stream in the driver. this is done now in alsa-lib. soft_ac3 module option is kept for backward compatibility but not referred at all. ALSA CVS update - Takashi Iwai ATIIXP driver - fixed the direct SPDIF playback mode. (still experimental) - use the different driver id name for the direct spdif mode, so that alsa-lib can read another corresponding configuration. ALSA CVS update - Takashi Iwai Documentation added the document about Audigy mixer implementation by Peter Zubaj. it is not target to users, rather to developers. ALSA CVS update - Clemens Ladisch USB generic driver (Alan Stern) use altsetting number instead of index in messages ALSA CVS update - Jaroslav Kysela EMU10K1/EMU10K2 driver Credits for SB Live (c) 2003 ALSA CVS update - Jaroslav Kysela Sound Core PDAudioCF driver Updated interrupt function to 2.6 irq API ALSA CVS update - Takashi Iwai Documentation,CMIPCI driver make soft_ac3 option conditional again. this will make it possible for old chips to feed the IEC958 data without conversion (sometimes useful, e.g. for apps using mmap). ALSA CVS update - Takashi Iwai VIA82xx driver renamed the elements of 'input source select' control to avoid confusion. formerly used words 'Line' and 'Mic', which have nothing to do with the actual connections. ALSA CVS update - Takashi Iwai Sound Core PDAudioCF driver - fixed the changed function decleration. - fixed the return value from cast check. ALSA CVS update - Takashi Iwai Documentation,ICE1724 driver,ICE1712 driver - added model module option to specify board model to snd-ice1712 and snd-ice1724 drivers. - removed ez8 option from ice1724. this can be specified as 'model=ez8' option. - rewritten some struct init in C99 style. - function for accessing i2c of ice1724 (for future use). ALSA CVS update - Takashi Iwai PARISC Harmony driver - fixed the buffer allocation with the new API. - optimized the rate and format setting. - removed redundant call of buffer release. - removed invalid __devinit prefix. ALSA CVS update - Clemens Ladisch AC97 Codec Core STAC9758: stereo mutes, jack configuration ALSA CVS update - Clemens Ladisch USB generic driver Roland UA-1000 support ALSA CVS update - Clemens Ladisch USB generic driver fix typo ALSA CVS update - Takashi Iwai PCM Midlevel fixed the buffer id confliction in the case of CONTINUOUS or ISA buffers. ALSA CVS update - Takashi Iwai PPC PMAC driver,PPC Tumbler driver Giuliano Pochini : fixed the return value of interrupt handlers. ALSA CVS update - Takashi Iwai ATIIXP driver - probe only audio codecs. - use enums instead of embedded numbers. - added KERN_ERR prefix to the error messages. ALSA CVS update - Takashi Iwai CS4236+ driver Added the new pnp id for an Intel mobo. ALSA CVS update - Takashi Iwai RME HDSP driver,RME9652 driver fixed invalid spin_lock/unlock_irq() in the prepare callback. ALSA CVS update - Takashi Iwai ICE1712 driver added headphone amplifier switch. initial patch by Radoslaw 'AstralStorm' Szkodzinski. ALSA CVS update - Takashi Iwai ICE1712 driver Added the support of Aureon 7.1-Universe. ALSA CVS update - Takashi Iwai ICE1712 driver fixes by Christoph Haderer : - added the support of DAC/ADC mute switches - fixed the capture route enum. ALSA CVS update - Jaroslav Kysela ICE1712 driver ice1712 patch for dsp24 value cards Without this patch in envy24control no controls for DAC and ADC available because no number of dacs and adcs is given. ALSA CVS update - Jaroslav Kysela PCM Midlevel,ALSA Core Added SYNC_PTR ioctl for the PCM interface. ALSA CVS update - Jaroslav Kysela PCM Midlevel Call hwsync at the start of SYNC_PTR ioctl [PATCH] fix-sysfs-symlinks.patch - Rediffed the patch for 2.6.6-mm3 to fix rejects in the latest changes in sysfs code. o The symlinks code in sysfs doesnot point to the correct target kobject whenever target kobject is renamed and suffers from dangling symlinks if target kobject is removed. o The following patch implements ->readlink and ->follow_link operations for sysfs instead of using the page_symlink_inode_operations. The pointer to target kobject is saved in the link dentry's d_fsdata field. The target path is generated everytime we do ->readlink and ->follow_link. This results in generating the correct target path during readlink and follow_link operations inspite of renamed target kobject. o This also pins the target kobject during link creation and the ref. is released when the link is removed. o Apart from being correct this patch also saves some memory by not pinning a whole page for saving the target information. o Used a rw_semaphor sysfs_rename_sem to avoid clashing with renaming of ancestors while the target path is generated. o Used dcache_lock in fs/sysfs/sysfs.h:sysfs_get_kobject() because of using d_drop() while removing dentries. [PATCH] missing closing \n in printk ALSA CVS sync [PCMCIA] Fix a couple of resource bugs. Fix resource database bug where base + num wraps to zero. Also, ensure that we always take the resource semaphore whenever we allocate a resource. [PCMCIA] Convert IO resource allocation to use struct resource. This causes PCMCIA to use struct resource internally for IO resources. This means that we can keep track of the resource pointer, expand this resource if necessary, and use release_resource() on it when we're done. This eventually means that we can change these to normal resources which aren't marked busy. [PATCH] PCI: Add InfiniBand HCA IDs to pci_ids.h Add InfiniBand HCA IDs to pci_ids.h. [PATCH] I2C: use idr_get_new to allocate a bus id in drivers/i2c/i2c-core.c [PATCH] I2C: Incomplete AT24RF08 corruption prevention in i2c eeprom The AT24RF08 corruption prevention trick that is found in the i2c eeprom driver is not correct. The prevention is activated only conditionally, while it should be done all the time. [PATCH] I2C PPC4xx IIC driver: upgrade to new OCP infrastructre this patch changes IBM PPC4xx IIC driver to support new PPC OCP infrastructure recently added to 2.6 kernel. [PATCH] I2C PPC4xx IIC driver: Kconfig cleanup this patch renames Kconfig entry for PPC4xx IIC driver making it more clear and also adds a help text. [PATCH] I2C PPC4xx IIC driver: fix debug build with gcc3 this patch fixes PPC4xx IIC driver debug mode build with gcc 3.x compiler. Noticed by Evgenij Polyakov. [PATCH] I2C PPC4xx IIC driver: 0-length transaction temporary fix this patch adds temporary fix for 0-length requests (e.g. SMBUS_QUICK) to PPC4xx IIC driver. This i2c controller doesn't support such transactions and this patch just restores previous driver version behavior making SMBUS_QUICK-based bus scan at least partially usable. This is temporary kludge until correct bit-banging emulation is implemented. SCSI: fix Stack overflow when lldd returns SCSI_MLQUEUE_DEVICE_BUSY From: Heiko Carstens This happened when sending out the inquiry command and the LLDD was in recovery for the specific LUN and returned SCSI_MLQUEUE_DEVICE_BUSY. Problem is that max_device_blocked gets set _after_ the inquiry command finished. In this specific case max_device_blocked was 0 and thus the device was never blocked resulting in the observed stack overflow. I moved the initializazion of max_device_blocked from scsi_add_lun to sdev_alloc_sdev and the problem is gone. Reversed pci.ids changes, as Linus already fixed them in his tree [netdrvr sis900] fix ISA bridge detection [netdrvr sis900] cosmetic header cleanups [netdrvr sis900] fix missing netif_device_detach in suspend Fix an incorrect email address in XFS maintainers section. Remove a bk ignored XFS cvs directory, accidentally added. [TG3]: Count rx_discards in rx_errors. [TG3]: Add more ethtool -S stats. [TG3]: Fix ethtool -S. POSIX protocol extensions part 1 [Bluetooth] Kill duplicate includes This patch removes the duplicate inclusion of linux/config.h in the hci_uart driver. Patch from Arthur Othieno [XFS] Prep for using dmapi code outside of xfs tree SGI Modid: xfs-linux:xfs-kern:170510a [XFS] Remove extraneous vmtruncate call, missed in earlier merge. SGI Modid: xfs-linux:xfs-kern:170858a [XFS] Remove xfs_iaccess checks on security namespace, needs to be done outside XFS. SGI Modid: xfs-linux:xfs-kern:170861a [XFS] Remove some recent dmapi changes SGI Modid: xfs-linux:xfs-kern:171032a [XFS] Dmapi preunmount event references null pointer SGI Modid: xfs-linux:xfs-kern:171047a [XFS] Remove unused transaction pointer from bulkstat. SGI Modid: xfs-linux:xfs-kern:171081a [XFS] Bump the kmalloc/vmalloc cutoff up to 128k. SGI Modid: xfs-linux:xfs-kern:171083a [XFS] Properly account for clustered pages in the writeout path SGI Modid: xfs-linux:xfs-kern:171157a [XFS] xfs_iomap_write_delay() was doing speculative allocations without checking if there were any real blocks already in the speculative allocation area. This could result in an allocation that overlaps pre-allocated space. This would result in an ASSERT failure in debug kernels, or invalid output from xfs_bmap. The code will now only do speculative allocation if we are writing beyond the current allocation eof. SGI Modid: xfs-linux:xfs-kern:171163a [XFS] fix direct user memory dereference in bulkstat SGI Modid: xfs-linux:xfs-kern:171167a [XFS] Remove the 128K limitation on pagebuf_get_no_daddr() and allow the kmem_alloc() to fail. SGI Modid: xfs-linux:xfs-kern:171201a [XFS] Make uses of extended inode flags consistent, remove duplicated code. SGI Modid: xfs-linux:xfs-kern:171450a [XFS] Fix some compiler warnings, mark cmn_err as printflike. SGI Modid: xfs-linux:xfs-kern:171451a [XFS] Fixup a couple of incorrect xfs_trans_commit calls (bad flags/casts). SGI Modid: xfs-linux:xfs-kern:171452a [XFS] Merge final laptop mode patch (xfssyncd) from Bart Samwel. SGI Modid: xfs-linux:xfs-kern:171591a [XFS] Remove speculative preallocation from linvfs_get_block_core. All speculative preallocations should be done from xfs_iomap_write_delay. SGI Modid: xfs-linux:xfs-kern:171620a [XFS] Add support for allocating additional file space in stripe width sized chunks. A new fstab/mount option, "swalloc" has been defined. If specified when mounting a striped file system, allocation requests will be rounded up to a stripe width if the file size is >= stripe width, and the data is being appended to eof. The 'swalloc' option is "off" by default. SGI Modid: xfs-linux:xfs-kern:171710a [XFS] Export/import tunable time intervals as centisecs not jiffies. SGI Modid: xfs-linux:xfs-kern:171825a [XFS] Switch all XFSDEBUG to DEBUG SGI Modid: xfs-linux:xfs-kern:171990a [XFS] Fix a use-after-free during transaction commit when the log is in error state. SGI Modid: xfs-linux:xfs-kern:172041a [XFS] Use set_current_state instead of direct current->state assignment. SGI Modid: xfs-linux:xfs-kern:172042a [XFS] Fix sendfile return code to be ssize_t in all places. SGI Modid: xfs-linux:xfs-kern:172110a [XFS] Change xfs_contig_bits to work on 32/64 and both endian styles. Fix from nboullis@debian.org. SGI Modid: xfs-linux:xfs-kern:172115a [XFS] Use macros instead of inlines for spinlock wrappers to aid debugging. SGI Modid: xfs-linux:xfs-kern:172120a [XFS] guard against unused var in new mutex_spinunlock #define SGI Modid: xfs-linux:xfs-kern:172198a [XFS] Remove xfs_swappable code, its not useful on Linux. SGI Modid: xfs-linux:xfs-kern:172224a [XFS] Remove no-longer-used variable in log write code, and a dated comment. SGI Modid: xfs-linux:xfs-kern:172225a [XFS] Remove unused xfs_trans_bhold_until_committed and related macros. SGI Modid: xfs-linux:xfs-kern:172237a [PATCH] tmscsim: 64-bit cleanup Ok, here comes the first one. I chose this one because it fixes an actual bug in the driver. This bug was (partially) introduced by myself when porting to 2.6. Partly the reason was that I disliked using function-like macros as lvalues: sg_dma_address(x) = ... sg_dma_len(x) = ... [OT] wouldn't it be better to introduce some macros like set_sg_dma_{address|len}(x, y)? A part of the original patch has already been merged (s/UINT/ULONG/), so, the actual version is re-diffed against 2.6.6-bk6 and re-tested (on a plain Pentium). Also updates the driver-version, printed on startup. [PATCH] fix assorted wd7000 warnings - needs linux/delay.h for udelay - C doesn't allow taking addresses of register variables and gcc even complains these days [PATCH] tmscsim: no internal queue Here comes the 2nd one. I wanted to get Christoph's patches now in, but already the first his patch comes on the top of this one: remove internal command queuing in the driver. And, in fact, it fixes some bugs in it. So, they should go in together. Here's the original comment from Christoph's email of 1 Feb 2004: Patch looks mostly good for me. But there's some fishyness in queuecommand, mostly from before you patch: - many failure cases return one with the new EH code although we wouldn't want to requeue the midlayer in that case. I removed the ifdef and added a failed goto to handle them. - we need to set cmd->result onlyh if we have an error instead of always an overriding it - else it will leak to the midlayer in the return 1 case. - the check for ids out of range are superflous (this was one of the errors above, I decided to remove it instead of fixing it). - you don't do DC390_UNLOCK_ACB when failing. While it's a noop I think it's bad to have locking macros in place and don't balance them. You should probably remove it completly in one of the next patches. - the pDCB->pWaitingSRB looks a bit strange. By unifying the the codepathes it becomes much more readable. [PATCH] qlogicfas408.c warning fix drivers/scsi/qlogicfas.c:190: warning: initialization from incompatible pointer type tmscsim: remove procfs write support from tmscsim From: Christoph Hellwig When looking at the driver after reviewing the changes I stubled over that code. Almost all of the funcitonality (except DUMP) should go through the midlayer and will at least cause some confusion if it doesn't. Also the implementation isn't exactly nice, like kmalloced scsi commands and the tytpical 'parsing' macros cut & pasted over all historic scsi drivers. I think we're better of removing it completly and maybe readd dump as a sysfs attribute if needed. 500 lines of code gone. [PATCH] tmscsim: remove legacy and void code This one is purely cosmetic - it removes legacy (pre 2.4) and some void (e.g. #defined as nothing locks) code. So, it doesn't affect the resulting object file. [PATCH] [TRIVIAL 2.6] drivers_scsi_nsp32.c: kill duplicate From: a.othieno@bluewin.ch (Arthur Othieno) SCSI: logging optimisation From: garloff@suse.de Optimization. Tell the compiler that the SCSI LOG will not likely happen. SCSI: deprecate BLIST_FORCELUN From: garloff@suse.de Cleanup Mark BLIST_FORCELUN as deprecated, as we don't want to collect a list of perfectly working multi-LUN devices with BLIST_FORCELUN. Instead document max_luns boot/module parameter. SCSI: make SCSI REPORT LUNS the default From: garloff@suse.de Cleanup/Feature Remove CONFIG_SCSI_REPORT_LUNS config option. Instead provide BLIST_NOREPORTLUN that can be passed as default_dev_flags (but also per device if needed). Provide BLIST_REPORTLUN2 that allows trying to use REPORT_LUNS for SCSI-2 devices, if they are connected to a host adapter supporting more than 8 LUNs (and thus avoiding the usual USB crap to render this feature useless when used with default_dev_flags). drivers/scsi/Kconfig | 11 ----------- drivers/scsi/scsi_scan.c | 19 +++++++++---------- include/scsi/scsi_devinfo.h | 3 +++ 3 files changed, 12 insertions(+), 21 deletions(-) SCSI: make inquiry timeout tuneable From: garloff@suse.de Feature Make the timeout for INQUIRY during SCSI scan adjustable via boot parameter. Note that the second INQUIRY does use a shorter timeout, as the long timeout is for recovery from the initial reset, not because existing devices would take so long to answer INQUIRY. SPC3 says that INQUIRY should be available right away, but real life is different unfortunately. Check for kmalloc failure on building full path [PATCH] tmscsim: trivial updates Here comes the next (trivial) patch. I just want to get it out of the way to make the next (scary) patch smaller and simpler. This one doesn't modify the object code either. Actually, well, it does - it makes a few objects, that were previously declared extern static. And removes a couple more defines. [PATCH] remove an unused function from NC53c406a and here's a variant using #if 0 fix oops in heavy stress test caused by lack of check for bad dentry being passed in on reconnect ALSA CVS update - Takashi Iwai PCI drivers,ICE1712 driver,ICE1724 driver - improved the description of ice1724 driver on Kconfig. - better support of VT1720 with snd-ice1724 driver. - check PCI subsystem IDs when no EEPROM is available (ice1724 only) - change the driver name string if given in the board list. - merged prodigy 7.1 support into aureon.c. they are almost identical. - allow to use PDMA4 and RMDA1 for non-SPDIF purpose if specified (ice1724 only). ALSA CVS update - Takashi Iwai ALSA Core added reverse selections of components to CONFIG_SND_BIT32_EMUL. ALSA CVS update - Takashi Iwai VIA82xx driver - added the DXS entry for ECS K7VTA3 v8.0 - fixed the DXS entry for ASUS A7V8X to NO_VRA. ALSA CVS update - Jaroslav Kysela PCM Midlevel,ALSA Core Added SNDRV_PCM_SYNC_PTR_APPL and SNDRV_PCM_SYNC_PTR_AVAIL_MIN extensions to SYNC_PTR ioctl for PCM API. [Bluetooth] Use try_module_get() for RFCOMM sessions It is not possible to use __module_get() when adding a new RFCOMM session, because there is a case where no reference count is hold. This happens when the module is not in use right now and an incoming connection occurs. [Bluetooth] Define .kobj.k_name for the fake device The PCMCIA devices are not devices for the kernel and the bt3c_cs driver uses a fake device for calling request_firmware(). The fake device initialization must also set .kobj.k_name to prevent an oops until PCMCIA devices are fully integrated into the driver model. initial 2.6 fixup for ATP870U scsi From: Alan Cox Pretty minimal. queue_command is now called locked, this requires propogating some small locking changes for send_s870 [PATCH] ipr gcc attributes fixes This patch fixes an issue where ipr was including a kernel data structure, list_head, in a packed structure, which causes compile issues on some architectures, and is just a bad thing to do. [PATCH] ipr add error logs to abort and reset paths This patch adds additional error logging to abort, device reset, and bus reset paths to help in diagnosing scsi problems on ipr. [PATCH] ipr fix for ioa reset timeout oops This patch fixes an oops discovered in test which can occur on bad hardware if the ipr adapter times out coming operational. [PATCH] ipr remove anonymous unions for gcc 2.95 This patch removes all usage of anonymous unions from the ipr driver since gcc 2.95 does not support anonymous unions. [PATCH] ipr driver version 2.0.7 Bump driver version [PATCH] ncpfs compat ioctls This takes ncpfs ioctl handling into fs/compat_ioctl.c, removing it from ppc64 and sparc64 code. Code sanitized, switched to compat_alloc_user_space(), bunch of {k,v}malloc() killed. [ARM] Fix oops in dma_unmap_single() Fix an oops caused by a missing failure return value for devices which do not require DMA bouncing. [ARM] Provide coherent_dma_mask for PXA MCI device. [ARM] Add lubbock_set_misc_wr() This provides an atomic method to update the Lubbock board specific register from various drivers. [ARM] Add LCD display parameters for Lubbock board. [ARM] Update PXA serial driver. - Move CKEN manipulation into power management handling (so we don't shut down the clock to the console port.) - .iotype should be using UPIO_xxx not SERIAL_IO_xxx - Remove each port when module is unloaded. - Remove needless #include. - Remove ASYNC_SKIP_TEST - we don't have any tests to skip. [ARM] Remove SA1111 PS/2 IRQ_HANDLED handling. Some SA1111 devices are unable to clear the PS/2 receive IRQ before it has been serviced, so we always re-enter the handler one more time than is strictly necessary. We can't clear the IRQ after servicing because that causes race conditions with other SA1111 devices, so we take the easy option and always return IRQ_HANDLED. [ARM] PXAFB bug fixes - There are only 16 entries in the pseudo palette - For dual-panel displays, we need to halve the display height - When disabling the LCD controller, use LCCR0_DIS (aka slow disable) rather than quick disable. - Clean up compiler warnings. [NET]: Save some space with sysfs strings. [ARM] Remove old static GPIO port definitions for SA1111. Using these old definitions on PXA will result in randomly scribbling over memory. Remove them. [XFS] Rename a subdirectory to make life easier for people (esp. distributors) picking up changes directly from the XFS CVS tree. [ARM] Fix sorting of machine class symbols. These are supposed to be ordered by option name. [ARM] Enable IRQs over context switches Disabling IRQs over context switches causes unreasonable IRQ latency on VIVT cached machines, so provide our own prepare_arch_switch(), finish_arch_switch() and task_running() implementations. We provide an optimised UP version so we don't end up needlessly incrementing and decrementing the preempt count. [PATCH] pa-risc: kernel/fork.c broken by the new rmap Any architecture (like pa-risc) that makes use of the helper function flush_dcache_mmap_lock() won't compile with the new rmap due to use of the wrong "mapping". Trivial fix. [ARM] Remove needless include of asm/mach-types.h [ARM PATCH] 1893/1: define __ARCH_WANT_SYS_PAUSE for ARM Patch from Ian Campbell The recent changeset "Sanitise handling of unneeded syscall stubs" missed __ARCH_WANT_SYS_PAUSE from include/asm-arm/unistd.h. [ARM] Don't reference __machine_arch_type directly. [SPARC64]: Make 32 CPUs the default. [IPSEC]: Fix OOPS when deleting an ip address. Looks like I was too hasty in blaming myself :) Although my patch does fix a real bug, it cannot have been responsible for the crash that the OP reported. The reason is that the state timer always keeps a reference to the state so even if it is incorrectly re-added the reference will prevent the crash. Hence the problem is still a bug in the ref counting. I think I've found the real culprit now. __xfrm?_find_acq() is missing an xfrm_state_hold on the create path. This also explains why I never see it myself since Openswan never creates states through that code-path. [IPSEC]: Use add_timer in find_acq. [ARM] Fix lubbock PCMCIA driver. - access SA1111 GPIO using sa1111_set_io functions. - access Lubbock misc register using lubbock_set_misc_wr - fix CF voltage selection. - don't fiddle with PCMCIA voltage selection when selecting CF voltage. - wait for the voltage switches to stabilise before reading the new card state. [ARM] pxa2xx_udc needs asm/mach-types.h [PATCH] USB: usblp printer GET_DEVICE_ID fix There is a problem in the usblp GET_DEVICE_ID ioctl() implementation. The patch below (against 2.6 current) fixes the code to be according to the official usb printer spec. Most printers are not affected by this fix, as they use interface 0 and alternate 0. For those, nothing changes. But my printer/scanner uses interface 1 for the printer. [PATCH] USB: clean delays for ehci Here's one you overlooked. - safe sleep helper [PATCH] USB: yet another place for msleep this is in kobil_sct. It uses msleep() and replaces needless GFP_ATOMICs with GFP_NOIO as this function can sleep. - no need for GFP_ATOMIC - use msleep() [PATCH] USB: waitqueue related problem in kaweth this was buggy for the same reason that the old msleep was buggy. - safe waiting in case we are left on other wait queues [PATCH] USB: fix fix to kaweth.c the previous patch was buggy. The state must be set _before_ the condition is checked, or there's a window missing a wakeup. This incremental change set fixes that. - fix race condition with current->state [PATCH] USB: /usb/gadget/serial.c warning fix. that code is generating the fallowing warning: drivers/usb/gadget/serial.c:162: warning: `debug' defined but not used When G_SERIAL_DEBUG is not defined, `debug' is not used, because the gs_debug() function is compiled only when G_SERIAL_DEBUG is defined. Thus, a solution is to define `debug' only when G_SERIAL_DEBUG is defined. That includes the use of `debug' as a module parameter (this last part I'm not sure). The patch bellow does that (compiles ok, not tested because I don't have that hardware): [PATCH] USB: PXA 2xx UDC and RNDIS g_ether I noticed some problems with the PXA 2xx UDC and the RNDIS version of the ethernet-over-usb link: - Static linking needs more than just two endpoints now - The endpoint autoconfig misbehaves (sounds like what Stefan reported a couple weeks ago) This patch fixes those two problems, though there are a couple others lurking too. [PATCH] USB: add support for MS adapter to usb pegasus net driver I took the relevant parts from the patch (not some PHY stuff that was irrelevant). Attached is the patch against stock 2.6.6. [PATCH] USB: Fix kobil_sct with uhci the kobil_sct didn't work with uhci hcds. It used usb_fill_bulk_urb instead of usb_fill_int_urb. The attached patch fixes this. It starts reading in open now - this gives apps (CT-API) the chance to detect the p'n'p string correctly. [PATCH] ppc64: better stack traces This improves the stack traces we get on PPC64 by putting a marker in those stack frames that are created as a result of an interrupt or exception. The marker is "regshere" (0x7265677368657265). With this, stack traces show where exceptions have occurred, which can be very useful. This also improves the accuracy of the trace because the relevant return address can be in the link register at the time of the exception rather than on the stack. We now print the PC and exception type for each exception frame, and then the link register if appropriate as the next item in the trace. Fix incorrect file size on handle based setattr (for big endian hardware) check for close pending and invalid file struct on writing out page Retry build_path_from_dentry if parent path changes in flight [PATCH] Make early_cpu_detect() set x86_cache_alignment on pre-cpuid CPU's too From: Zdenek Pavlas On any x86 without cpuid, early_cpu_detect() left x86_cache_alignment as zero, so kmem_cache_init() calls cache_estimate() with align == 0, and it loops forever. I've tried this trivial fix, and it works for me. Andi Kleen looked over this, and ok'd it. [PATCH] ppc64: fix inline spinlocks From: Anton Blanchard In _raw_spin_lock_flags we were branching to the wrong spot and would restore random stuff to the MSR. [PATCH] ppc64: NUMA fixes From: Anton Blanchard From: Anton Blanchard, Dave Hansen and Olof Johansson: Fix multiple bugs in the ppc64 NUMA topology probe code. - We were using HW cpu numbers instead of logical ones. 615, 630, 650, some 670 and some 690 SMP will all fail to boot without this patch. - The old code would BUG() when it got confused (more NUMA zones than the kernel is configured for etc). - The common depth calculation was incorrect. Dave found an OF property that gives us exactly what we want. - Things were broken on SMT machines. The new code should work on those broken systems and should no longer BUG() but fall back to a flat topology when it gets confused. [PATCH] ppc64: fix to viopath.c From: Anton Blanchard From: Olaf Hering and Nathan Lynch: Fix a couple of nasty lurking bugs in viopath.c and add information required to know if the iseries_veth module should be loaded on legacy iSeries systems. [PATCH] dynamic addition of virtual disks on PPC64 iSeries From: Stephen Rothwell This patch allows us to dynamically add virtual disks to an iSeries partition. It works like this: after you have created the virtual disk file on OS/400 and attached it to the Linux partition, you need to write to /sys/bus/vio/drivers/viodasd/probe (it doesn't matter what you write). This will do the probe. It calls add_disk() for each new disk, so we get hotplug events as a side effect. This was the nicest way I could think of doing this as the interface to the hypervisor is polled ... [PATCH] ppc64: small enter_rtas fix From: Anton Blanchard enter_rtas now takes an unsigned long. [PATCH] ppc64: bump IOMMU_MAX_ORDER Signed-off-by: Anton Blanchard We have cards that want over 2MB of PCI consistent memory. The IOMAP_MAX_ORDER limit is just to catch bad drivers early, so we can bump this a bit. We want some room to grow but our maximum get_free_pages allocation on ppc64 is currently 16MB, so it doesnt make sense to go above that. [PATCH] ppc64: avoid bogus real IRQ numbers Signed-off-by: Paul Mackerras Early in the boot process on pSeries machines, we look in the Open Firmware device tree for information about the interrupt assignments, and assign virtual IRQ numbers for each physical IRQ. There is currently a couple of bugs in this code which result in us assigning virtual IRQs for nonexistent physical IRQs. This causes problems when we call the firmware to enable or disable those nonexistent physical IRQs. Some versions at least of the firmware will hit an assertion failure and crash the machine when this happens. This patch fixes the bugs and ensures that we don't try and use nonexistent physical IRQ numbers. One bug was that we were mapping ISA interrupts, which is unnecessary since virtual IRQ numbers 0 - 15 are reserved for them. The other was that when we had a PCI interrupt (which is always in the range 1 to 4, corresponding to INTA to INTD) which didn't have a mapping in the PCI host bridge above it, we were just using the original number (usually 1) rather than ignoring it. [PATCH] use SLAB_PANIC in ll_rw_blk.c [PATCH] Fix userspace include of linux/fs.h From: Mans Rullgard There are a few include which should have been under __KERNEL__. [PATCH] Prevent scary warnings from knfsd From: "J. Bruce Fields" The kernel currently prints: nfsd: nobody listening for auth.unix.ip upcall; has some daemon not been started? on every bootup, during initscripts. Neil Brown says: It was part of the recent set of idmapper patches. Bruce wanted the admin to get a warning when the idmapper daemon wasn't running. I thought the same warning should apply to any daemon that responded to upcalls. In the case of auth.unix.ip it isn't strictly necessary for a daemon to be running (for comparability with 2.4). You can get rid of the warning by doing: mount -t nfsd nfsd /proc/fs/nfs before mountd is started (init scripts should start doing this I hope, but distributions don't tend to use the init script from nfs-utils, so it is hard to push it). This will trigger mountd to listen on auth.unix.ip and others. That's a hassle, so Bruce's patch limits the warning purely to the new idmapper cache. It provides a callback in the cache_detail that individual caches can use to log messages when upcalls fail because a userspace daemon not running. Implement this method for the idmapping caches. [PATCH] Fix the mangled-oops-output-on-SMP problem From: Ingo Molnar printk currently does if (oops_in_progres) bust_printk_locks(); which means that once we oops, the printk locking is 100% ineffective and multiple CPUs make an unreadable mess on a serial console. It's a significant development hassle. Fix that up by only popping locks once per ten seconds. akpm@osdl.org did: - Bump the timeout to 30 seconds - 9600 baud is slow. - Handle jiffy wraps: change the logic so that we only skip the lockbust if the current time is within 30 seconds of the previous lockbusting attempt. [PATCH] ep_send_events() stack reduction ep_send_events() uses ~350 bytes of stack for a local buffer of events to send to userspace. The patch fixes that by removing the double-buffering altogether. A pipe-based microbenchmark from Davide Libenzi was sped up by 1-2%. [PATCH] Fix race condition with current->group_info From: Olaf Kirch I have been chasing a corruption of current->group_info on PPC during NFS stress tests. The problem seems to be that nfsd is messing with its group_info quite a bit, while some monitoring processes look at /proc//status and do a get_group_info/put_group_info without any locking. This problem can be reproduced on ppc platforms within a few seconds if you generate some NFS load and do a "cat /proc/XXX/status" of an nfsd thread in a tight loop. I therefore think changes to current->group_info, and querying it from a different process, needs to be protected using the task_lock. (akpm: task->group_info here is safe against exit() because the task holds a ref on group_info which is released in __put_task_struct, and the /proc file has a ref on the task_struct). [PATCH] don't export vma_prio_tree_next From: Christoph Hellwig there's no user is modules, the function isn't in mainline and I don't see why modules should use it. [PATCH] remove stale comments above struct page From: Christoph Hellwig struct page easily fits into a single cacheline with any recent CPU, and the ordering isn't as described anymore anyway. [PATCH] Decrease srtuct file size by 8 From: Kurt Garloff Attached patch decreases the size of struct file by 8 bytes on 64 bit arches by avoiding unecessary padding. [PATCH] hfsplus: fix key length for index nodes From: Roman Zippel Use the correct key length for index nodes. [PATCH] hfsplus: correct dentry initialization for dir dentries. From: Roman Zippel Initialize d_fsdata field also for dir dentries, use hfsplus_instantiate helper function for this. [PATCH] hfsplus: delete inode properly From: Roman Zippel Call hfsplus_delete_inode() to delete an inode when adding it to the filesystem failed, so superblock info is correctly updated. [PATCH] hfsplus: completely remove half inserted catalog entry From: Roman Zippel If the inserting of the file or dir record failed, remove the previously inserted thread record. [PATCH] fix system clock on ruffian Unlike most other alphas, ruffian uses i8253 timer instead of RTC as the system clock source. However, the PIT clock divisor (LATCH) is bogus since CLOCK_TICK_RATE has been changed to 32 KHz. Fixed using recently introduced PIT_TICK_RATE macro. Ivan. [PATCH] hfsplus: don't release not existing nodes From: Roman Zippel When releasing a page don't try to release not existing nodes. [PATCH] hfsplus: update dir time after change From: Roman Zippel Update dir ctime/mtime when adding/removing an entry. [PATCH] befs: nls fix From: "Sergey S. Kostyliov" Fix nls support for character sets with character width large than 1. [PATCH] fix a bash-ism in toplevel Makefile From: Christoph Hellwig From: Debian kernel package, author probably Herbert Xu. * Fixed bashism in Makefile [PATCH] remove a dead variable from isofs From: Christoph Hellwig From: Debian kernel package, author is probably Herbert Xu * Do not get seqno since we will not use it in fs/isofs/inode.c [PATCH] add one more neomagic audio device id From: Christoph Hellwig From: Mattia Monga via Debian kernel package Add support for nm256xl+ in sound/oss/nm256_audio.c [PATCH] missing init.h in drivers/mtd/chips/sharp.c From: Christoph Hellwig again needed by most non-x86 arches. * Include linux/init.h for __init [PATCH] include linux/root_dev.h for ROOT_DEV in drivers/mtd/maps/uclinux.c From: Christoph Hellwig * Include linux/root_dev.h for ROOT_DEV in drivers/mtd/maps/uclinux.c [PATCH] include linux/selection.h for color_table in drivers/video/tgafb.c From: Christoph Hellwig From: Debian kernel package, author probably Herbert Xu [PATCH] befs: typo fix From: "Sergey S. Kostyliov" Fix a typo in an error message. [PATCH] make i386 dma-mapping.h includeable standalone From: Christoph Hellwig From: Debian kernel package, author probably Herbert Xu Include asm/io.h and asm/scatterlist.h in include/asm-i386/dma-mapping.h to make it useable standalone, which is already true for most architectures. [PATCH] ext3: remove duplicated ext3_std_error() call From: Andi Kleen When start_transaction() detects an error it already calls ext3_std_error. No need to do it again in the caller. [PATCH] matroxfb: Add support for mapping CRTC<->outputs at boot time Signed-off-by: Petr Vandrovec Some people expressed interest in having possibility to set CRTC <-> outputs mapping at boot time, without having to use 'matroxset' later after kernel boots. This patch adds option 'video=matroxfb:outputs:XYZ', where X sets which CRTC will connect to primary output, Y sets secondary output and Z sets DVI output. In addition to that I also added missing memset() into maven, which was broken since i2c was kobjectified. [PATCH] Don't use "cut" in laptop mode control script -- it is in /usr. From: Bart Samwel We don't want to use "cut" in the laptop mode control script, because that is in /usr. This patch is from Jasper Spaans. [PATCH] swsusp: fix swsusp with intel-agp From: Pavel Machek swsusp contained rather nasty bug where it killed machine when intel-agp or anything else split kernel 4MB mapping. Herbert Xu diagnosed this. Fixed by switching to "known good" mapping for during suspend/resume. [PATCH] FAT: small fixes From: OGAWA Hirofumi - use fat_fs_panic() instead of BUG() if it read a corrupted inode. - add missing "\n". [PATCH] initramfs uncpio fix From: init/initramfs.c::do_skip() has an off-by-one that leads to unpacking failures for some gzipped cpio images. We have static int __init do_skip(void) { if (this_header + count <= next_header) { eat(count); return 1; } else { eat(next_header - this_header); state = next_state; return 0; } } and that <= should actually be <. It almost never matters, since if we hit the boundary case (header ending exactly on the gunzip window end) the current variant will simply end up doing extra call of do_skip() when we get to the next window and that will finish the work (assign state). The only exception is when we hit that in the last window. That is, if there's nothing after the final header (trailer). Then we miss the final state transition (Skip -> Reset) and get "junk in archive" panic. Normally cpio(1) pads the image to multiple of 512, so we actually have a bunch of zeroes after the trailer. And that almost always saves our butts - trailer is followed by zeroes, so we get to Reset state just fine. So we never see that on small in-kernel image (it's less than 512 bytes, so it gets a lot of padding) and we almost never see that on external ones (1:127 odds of hitting the bug). [PATCH] fix NUMA build Replace reference to page->count with page_count(). Ivan. [PATCH] v4l: use saa7111 i2c module in V4L MXB driver From: Michael Hunold The attached patch changes my "Multimedia eXtension Board" (MXB) Video4Linux-driver to use the standard saa7111 video decoder infrastructure (to which I recently submitted changes through Ronald Bultje) instead of some home-brewn direct-access stuff. Nothing serious, but it removes code duplication and makes the code use the video decoder api. [PATCH] Fix various memory leaks From: Yury Umanets Thanks to smatch I have found few memory leaks and other related issues. [PATCH] H8/300 module fix From: Yoshinori Sato - fix relocation - define SYMBOL_PREFIX [PATCH] H8/300 ne driver module fix From: Yoshinori Sato - module support fix [PATCH] CREDITS is unmaintained From: Adrian Bunk This information seems to be quite outdated. [PATCH] bk-kernel-howto reversion From: Rusty Russell This one snuck through - Jeff prefers the bk:// addresses. [PATCH] compile fix for mm/init.c Fix another page->count reference (in addition to numa.c one that I've sent earlier). Ivan. [PATCH] UDF: directory reading fix From: Ben Fennema The problem occured when files were stored on the disc in 16-bit per character mode when all the upper bits were 0. The fs module converted the file name given by the user to a 8-bit per character string to compare, so the comparison always failed. The patch maps the file from disc into the current locale and then compares it directly to the file name given by the user. [PATCH] Fix for lockup in reiserfs acl/xattrs From: Jeff Mahoney The following is a patch to fix a locking problem in ACL/xattr code. It manifests when a user attempts to set an xattr on a file which they do not own, and on which an ACL is applied. What happens is this: reiserfs_setxattr [write lock inode xattr sem] ->xattr_set -> lookup -> __reiserfs_permission [if conditions above are met, and need_lock= is unset, read lock inode xattr sem] *lockup* Since we already keep track of when to lock during permission calls, the fix is simple: just make the locking conditional as it was before. Credits to Andreas Gruenbacher [PATCH] remap_file_pages: implement MAP_POPULATE for all protections Signed-off-by: Hugh Dickins It seems eccentric to implement MAP_POPULATE only on PROT_NONE mappings: do_mmap_pgoff is passing down prot, then sys_remap_file_pages verifies it's not set. I guess that's an oversight from when we realized that the prot arg to sys_remap_file_pages was misdesigned. There's another oddity whose heritage is harder for me to understand, so please let me leave it to you: sys_remap_file_pages is declared as asmlinkage in mm/fremap.c, but is the one syscall declared without asmlinkage in include/linux/syscalls.h. [PATCH] remap_file_pages: fix syscall declaration Signed-off-by: Hugh Dickins sys_remap_file_pages is declared as asmlinkage in mm/fremap.c, but is the one syscall declared without asmlinkage in include/linux/syscalls.h. [PATCH] Really enable NUMA API on x86-64 From: Andi Kleen Really enable the NUMA API system calls on x86-64. [PATCH] minor sched.c cleanup Signed-off-by: Christian Meder Signed-off-by: Ingo Molnar The following obviously correct patch from Christian Meder simplifies the DELTA() define. [PATCH] ext2: fix build with DEBUG=y From: FabF [PATCH] fix PCI bridge swizzle on takara and eiger This fixes NULL pointer dereference (bus->self) for PCI devices on the root bus. Ivan. [PATCH] isapnp sb16 virtual pc From: David Sanders Patch adds support for the emulated Soundblaster 16 in Virtual PC 2004. [PATCH] Revert bogus x86-64 change From: Andi Kleen The 32bit generic nops added with a previous patch to x86-64 alternative() are not completely 64bit clean. This caused crashes in some cases. This patch reverts this broken change. [PATCH] ir-kbd-gpio.c build fix It's initialising slot 24 in two places. Gerd Knorr says "This one should be 23.". [PATCH] rmap build fix From: William Lee Irwin III PMD_SIZE is not a compile-time constant on sparc. Use min() in there so that the cluster size will be evaluated at runtime if the architecture insists on doing that. [PATCH] No interpretation of HD spindown timeout in laptop mode ACPI binding script. From: Bart Samwel Currently the ACPI binding script in the Laptop Mode doc always says "20 seconds" and "2 hours" for the timeouts it uses. This is incorrect if the user changed the config values, so we print something more general. [PATCH] Subject: Re: Help understanding slow down Signed-off-by: Ingo Molnar Add a warning that "idle=poll" is a performance hit on hyperthreaded CPUs. [PATCH] sched.h comment typo fix Signed-off-by: Christian Meder Signed-off-by: Ingo Molnar sched.h typo fix from Christian Meder. [PATCH] sched_yield() microoptimisation Signed-off-by: Ingo Molnar We can avoid the local_irq_enable() in sched_yield() because schedule() unconditionally enables interrupts anyway. [PATCH] missing compat ioctl mapping for DM_REMOVE_ALL Signed-off-by: Marcus Meissner Added missing DM_REMOVE_ALL call. [PATCH] x86-bigsmp: use fixed interrupt delivery This patch, from Venkatesh Pallipadi, changes x86 IO-APICs to use fixed interrupt delivery instead of lowest priority to support larger number of CPUs. Only bigsmp is affected by this cleanup. From: Venkatesh Pallipadi Signed-off-by: Ingo Molnar [PATCH] IRQ stacks for PPC64 Even with a 16kB stack, we have been seeing stack overflows on PPC64 under stress. This patch implements separate per-cpu stacks for processing interrupts and softirqs, along the lines of the CONFIG_4KSTACKS stuff on x86. At the moment the stacks are still 16kB but I hope we can reduce that to 8kB in future. (Gcc is capable of adding instructions to the function prolog to check the stack pointer whenever it moves it downwards, and I want to use that when I try using 8kB stacks so I can be confident that we aren't overflowing the stack.) Signed-off-by: Paul Mackerras [BRIDGE]: Update bridge.txt Trent Jarvi noticed this. The file was out of date with current web site and maintainer. Please apply to 2.4 and 2.6. Signed-off-by: Stephen Hemminger [PATCH] USB: Fix down() in hard IRQ in powermate driver Fixes this warning: May 18 06:56:01 Knoppix kernel: Debug: sleeping function called from invalid context at include/asm/semaphore.h:119 May 18 06:56:01 Knoppix kernel: in_atomic():1, irqs_disabled():0 May 18 06:56:01 Knoppix kernel: Call Trace: May 18 06:56:01 Knoppix kernel: [] __might_sleep+0xb2/0xd3 May 18 06:56:01 Knoppix kernel: [] powermate_config_complete+0x33/0x77 [powermate] May 18 06:56:01 Knoppix kernel: [] usb_hcd_giveback_urb+0x25/0x39 May 18 06:56:01 Knoppix kernel: [] uhci_finish_urb+0x54/0xa1 May 18 06:56:01 Knoppix kernel: [] uhci_finish_completion+0x43/0x55 May 18 06:56:01 Knoppix kernel: [] uhci_irq+0xf8/0x179 May 18 06:56:01 Knoppix kernel: [] usb_hcd_irq+0x36/0x67 May 18 06:56:01 Knoppix kernel: [] handle_IRQ_event+0x3a/0x64 May 18 06:56:01 Knoppix kernel: [] do_IRQ+0xb8/0x192 May 18 06:56:01 Knoppix kernel: [] common_interrupt+0x18/0x20 Attached patch uses spinlocks instead of a semaphore so that we can't sleep when in_atomic(). [PATCH] USB: out of bounds access in hiddev_cleanup hiddev_table[] is an array of pointers. the minor number is used as an offset. hiddev minors start either with zero, or with 96. If they start with 96, the offset must be reduced by HIDDEV_MINOR_BASE because only 16 minors are available. unplugging a hiddevice will zero data outside the hiddev_table array. this was spotted by Takashi Iwai. [IPSEC]: Do not leak entries in xfrm_state_find. In xfrm_state_find, the larval state never actually matures with Openswan so it only ever gets deleted by the timer which means that the time crash can't happen :) It becomes a (possible) memory leak instead. [IPSEC]: Fix outdated comment in __xfrm_state_delete. [IPSEC]: Use add_timer() in xfrm_state_find. [VLAN]: Use KERN_INFO for VLAN_INF. [PATCH] Fix nodemask clearing bug in NUMA API Fix over long nodemask clearing in get_mem_policy() by using the right size for the node mask. [PATCH] USB: visor: Fix Oops on disconnect This fixes http://bugme.osdl.org/show_bug.cgi?id=2289 This patch has been tweaked by greg@kroah.com [PATCH] USB: Initially read 9 bytes of config descriptor This patch reads the full 9 bytes of a configuration descriptor during enumeration rather than just the first 8 bytes. That's how Windows does it, and today I ran across a device that doesn't work properly when asked to send only 8 bytes worth. I doubt very much this will cause any problems with currently-working devices; since the descriptor itself is 9 bytes long and since the devices are most likely to expect a 9-byte request, anything that can handle an 8-byte request should have no difficulty. (Also, some debugging messages have been slightly improved.) Incidentally, USB traces taken from Windows 2000 and Windows XP show that when those operating systems retrieve a string descriptor during enumeration, they do so by requesting a 255-byte transfer. They do not first ask just for the initial 2 bytes (which contain the actual length) and then ask for the actual length, which is what we do. Interestingly, back in 2.4 we _did_ do things the same as Windows. [PATCH] USB UHCI: allow URBs to be unlinked when IRQs don't work A lot of people with USB controllers made by VIA have been suffering from the fact that these controllers stop working when they receive a babble packet. In particular, they stop generating interrupt requests. Since the UHCI driver relies on IRQs from the controller for proper timing and interlocking of unlink requests, this means that those broken controllers will hang the UHCI driver and drivers for any device connected through it. This patch, written by Herbert Xu, gives the UCHI driver the ability to manage the unlink procedure using timer interrupts as well as controller interrupts. (It also fixes a race in the UHCI irq handler.) Although it won't prevent the VIA controllers from flaking out when they encounter babble, at least now users will be able to rmmod the uhci-hcd driver and then reload it, restoring their systems back to normal operation (until the next babble!). P.S.: Herbert, there's one loose end I still want to tie up. When the controller isn't running (i.e., is suspended) the frame number won't change, but unlinks still need to work. It's a small point, not too likely to come up in normal usage. I'll fix it later on when I update the state-changing part of the driver. [PATCH] USB: Change "driverfs" to "sysfs" in usbcore Before fixing up the device locking and device reset code, I want to do some cleanups of the hub driver and related areas. This is the first of a series of patches for that purpose. This patch changes all the occurrences of "driverfs" in usbcore to "sysfs" -- I just couldn't stand seeing the out-of-date name any more (and I kept confusing it with usbfs, don't know why). Although I did a "bk mv driverfs.c sysfs.c" when creating the patch, the exported patch file itself doesn't reflect that very well. It looks like driverfs.c was deleted and sysfs.c created from scratch. If you prefer, I can resubmit this in a slightly different form, with the file name unchanged so that you can issue the "bk mv" command in your repository after applying the patch. [PATCH] USB: Add usb_release_address() and move usb_set_address() This patch adds usb_release_address() as a complement to usb_choose_address(), to centralize the work required when freeing an allocated device address. It also moves the usb_set_address() routine from usb.c to hub.c -- which is the only place it is ever used -- and renames it to hub_set_address(). [PATCH] USB: Make usb_choose_configuration() a separate subroutine This patch creates a separate subroutine to encapsulate the work required in choosing an initial configuration for a device. In my opinion that reflects a policy decision that should be kept apart from all the other work involved in creating a new device structure. The existing code in usb_new_device() is simply moved into usb_choose_configuration(). [PATCH] USB: Gonzo variable renaming in hub.c As part of the cleanup effort, I wanted to name all the variables in hub.c uniformly. Currently there are different names for the same thing in different routines, and the same names are used for different things -- it's impossible to keep things straight. I also wanted to step away from the deplorable practice of naming everything "dev". It is not an exaggeration that up until relatively recently one of the drivers (not the hub driver, fortunately!) contained a line which looked basically like this: dev->dev.dev = &intf->dev; If you can make sense out of that, you're a better code reader than I am! Ranting aside, this patch institutes the following name scheme for local variables in hub.c: hub: struct usb_hub hdev: hub's corresponding struct usb_device hub_dev: hub interface's embedded struct device udev: general struct usb_device There are a couple of genuine code changes hidden in there too. Just trivial things, like creating a local hub_dev variable for use in place of &hub->intf->dev. Pass in a "dirty" argument to ptep_establish in preparation for pte update race fix. This does not actually use the information yet, but the next few patches will start to put it to some good use. [TG3]: Make sure RX/TX flow control settings actually get set. Introduce architecture-specific "ptep_update_dirty_accessed()" helper function to write-back the dirty and accessed bits from ptep_establish(). Right now this defaults to the same old "set_pte()" that we've always done, except for x86 where we now fix the (unlikely) race in updating accessed bits and dropping a concurrent dirty bit. [TG3]: Update driver version and reldate. [IPSEC]: Fix buglet in AF_KEY spddelete When trying to spddelete individual entries using setkey, spddelete always fails. The culprit is in net/af_key.c; spdadd sets the family field of the selector when creating an entry, but spddelete doesn't when building a selector to match for xfrm_policy_bysel. Trivial fix is to have spddelete set the family field in the selector in same way spdadd does. [SPARC64]: Implement debugging version of write_trylock(). do not log errors on write failures unless debug is on [SPARC64]: Implement _raw_spin_lock_flags(). [SPARC64]: Update defconfig. Don't return void types from void functions. This helps reduce sparse noise. Make constant types explicit, rather than depend on some rather subtle C type expansion rules. This makes sparse happier. Remove bogus test preprocessor test. PAGE_SIZE isn't even always defined at this point, which makes us test undefined preprocessor symbols. It so happens that the test works in that case, but since the test is a bit pointless in the first place... [SPARC64]: Move over to HZ==1000. [NET_SCHED] Do not oops when user tries to attach a filter to a TBF qdisc. (TBF does not allow attaching filters as it has only one class, filter should be attached either to TBF's parent or to its child) Split ptep_establish into "establish" and "update_access_flags" ptep_establish() is used to establish a new mapping at COW time, and it always replaces a non-writable page mapping with a totally new page mapping that is dirty (and likely writable, although ptrace may cause a non-writable new mapping). Because it was nonwritable, we don't have to worry about losing concurrent dirty page bit updates. ptep_update_access_flags() leaves the same page mapping, but updates the accessed/dirty/writable bits (it only ever sets them, and never removes any permissions). Often easier, but it may race with a dirty bit update on another CPU. Booted on x86 and ppc64. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ide: missing rq checks in ide-disk ide-disk only checks for drive->blocked and blk_fs_request() if TASKFILE_IO is defined. Move these checks (and TCQ check too) to upper function. Signed-off-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: fix ide_delay_50ms() in ide.c to always sleep Noticed by Christoph Hellwig . Probably somebody got the logic wrong while adding #ifndef CONFIG_BLK_DEV_IDECS back in 2.4.0-test2. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: use msleep() instead of ide_delay_50ms() msleep() does msecs to jiffies conversion correctly regardless of HZ value and sets the current task's state in a safe way. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ppc64: fix nonexistent irq affinity This fixes a bug where, if we try to set the affinity on an unused virtual IRQ number on a logically-partitioned pSeries system, we call the firmware with physical IRQ number = -1, which it doesn't like. With this patch we just ignore the attempt. Signed-off-by: Paul Mackerras Signed-off-by: Linus Torvalds [SPARC64]: Kill unused var warnings/errors. [IPV6]: Fix pmtu check conditions in two spots. [CRYPTO]: Fix two scatterwalk problems. - After calling scatterwalk_copychunks walk_in might point to the next page which will break scatterwalk_samebuf (in this case src_p should point to tmp_src anyway and scatterwalk_samembuf returns 0). - scatterwalk_samebuf should also check for equal offsets inside the page (just bad for performance in some cases). [RTNETLINK]: IFA_MAX is wrong. [SCTP]: Kill 64-bit platform warning. [TCP]: Kill distance enforcement between tcp_mem[] elements. [TCP]: Add tcp_default_win_scale sysctl. [PATCH] PCI: restore pci config space on resume The patch below enhances the PCI layer with 2 things 1) enable and busmaster state are stored in the pci device struct 2) pci config space is stored to the pci device struct with that, it is possible to make a generic pci resume method that restores config space and reenables the device, including busmaster when appropriate. One can rightfully argue that the driver resume method should do this, and yes that is right. So the patch only does it for devices that don't have a resume method. Like the main PCI bridge on my testbox of which the bios so nicely forgets to restore the bus master bit during resume.. With this patch my testbox resumes just fine while it, well, wasn't all too happy as you can imagine without a busmaster pci bridge. Keep number of active (on the network at one time) requests (to a single cifs server) below SMB maxmpx fix big endian conversion of file system attribute and device info missing init for new request_q Take rename sem (where we can do it safely) when building full paths. We don't try to take the rename sem in cifs_rename of course because the kernel already took it above us, and for the same reason we can not take it in lookup/revalidate, but most everywhere else we build a full path we can safely take it. [PATCH] ppc64 kernel hackers can't spell From: Anton Blanchard From: Dave Hansen This patch is obviously of the utmost importance. It probably doesn't matter as much for kernel error messages, but one of these mistakes is in a user-readable /proc file. Signed-off-by: Anton Blanchard Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton [PATCH] ppc32: fix 'make O=...' From: Tom Rini Fix arch/ppc/boot/ so that everything now works with 'make O='. Partially by: Geoffrey LEVAND . Signed-off-by: Tom Rini Signed-off-by: Andrew Morton [PATCH] posix locks oops fix From: Andreas Gruenbacher There is a race between unshare_files() and the following steal_locks(). As a consequence, steal_locks() may steal some additional FL_POSIX locks that don't belong to the current thread. This triggers a BUG in locks_remove_flock(). In detail, the current thread shares its files struct with other threads. This causes unshare_files() to associate the current thread with a copy of its files_struct. The copy shares all file objects with the original files struct. In the time between unshare_files() and steal_locks(), another thread creates a new file and a FL_POSIX lock on it. The current thread gets into steal_locks() and takes over all FL_POSIX locks that refer to the previous files_struct, including the new lock. We do put_files_struct(original files_struct). This causes the file handle to the new file to be closed. We get into locks_remove_posix() and miss the lock, because its fl_owner field now refers to the new files_struct. Finally we get into locks_remove_flock(), and stumble upon the lock. While looking into this bug report I gathered the following data with a SUSE kernel (oops and LKCD dump from Chris): kernel BUG at fs/locks.c:1736! invalid operand: 0000 [#1] SMP CPU: 0 EIP: 0060:[] Tainted: G U EFLAGS: 00010246 (2.6.5-0-testing) EIP is at locks_remove_flock+0x8b/0x130 eax: f7b89998 ebx: f61df3fc ecx: f61df354 edx: 00000000 esi: f61df354 edi: f6702b80 ebp: f6179c24 esp: f6179c08 ds: 007b es: 007b ss: 0068 Process owcimomd (pid: 1713, threadinfo=f6178000 task=f66d0d60) Stack: c1e1fdac c1e1fdac f7fe83c0 00000296 f6702b80 f7fe87c0 f61df354 f6179c3c c016ce00 f61ddadc f6702b80 00000000 f6703b00 f6179c54 c0168b1f c0000000 0000026f 00000012 f6703b00 f6179c6c c0124ba7 00000001 f6179e5c f6179d88 Call Trace: [] __fput+0x30/0x120 [] filp_close+0x4f/0x90 [] put_files_struct+0x67/0xc0 [] load_elf_binary+0x3f5/0x1596 [] update_atime+0x9f/0xc0 [] __generic_file_aio_read+0x1cd/0x200 [] file_read_actor+0x0/0xd0 [] search_binary_handler+0x97/0x270 [] do_execve+0x172/0x200 [] sys_execve+0x32/0x70 [] sysenter_past_esp+0x52/0x71 Code: 0f 0b c8 06 eb 74 35 c0 eb db b8 00 e0 ff ff 21 e0 8b 10 8b put_files_struct+0x67 is equivalent to fs/binfmt_elf.c:681 in 2.6.6 current->files == fl->fl_owner fl->fl_file = 0xf6702b80 (a valid struct file) current->files = max_fds=32 max_fdset=1024 next_fd=3 fd=[0xf6927080 0xf6951b80 0xf6951b80 0 ...] Here's a proposed fix. As a side effect, steal_locks no longer walks the global list of locks, but only the locks of all open inodes. What are the reasons (other than historic ones) for not getting rid of fl_owner and using fl_pid instead, by the way? I think that would clean up the whole mess with file locks a bit. Signed-off-by: Andrew Morton [PATCH] Set d_bucket correctly for anonymous dentries From: Neil Brown In researching the oopses reported in bug #2761, Neil came up with: I have found one problem, but it isn't particularly new and I cannot see how it would be related. When d_alloc_anon creates an anonymous dentry, it is put on a special hash chain for anonymous dentries (sb->s_anon), but d_bucket is set to d_hash(parent, name_hash) If, when it is eventually moved to a proper name, that hash value is the same as the final hash value, it will not be moved to the right bucket, and so it not be accessible by name. This patch should fix it. anonymous dentries have their own private hash "bucket" (sb->s_anon) and so d_bucket should be set to a unique (impossible) address, else d_move will get confused. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton [PATCH] Fix the setting of file->f_ra on block-special files We need to set file->f_ra _after_ calling blkdev_open(), when inode->i_mapping points at the right thing. And we need to get it from inode->i_mapping->host->i_mapping too, which represents the underlying device. Also, don't test for null file->f_mapping in the O_DIRECT checks. Signed-off-by: Andrew Morton [PATCH] wdt.c warning fix drivers/char/watchdog/wdt.c: In function `wdt_init': drivers/char/watchdog/wdt.c:638: warning: label `outrbt' defined but not used Signed-off-by: Andrew Morton [PATCH] remove message: POSIX conformance testing by UNIFIX From: "Randy.Dunlap" Remove the outdated "POSIX conformance testing by UNIFIX" message. There is a general desire to reduce the quantity of noisy and/or outdated kernel boot-time messages... Suggested by Andi Kleen. Ulrich's (old) comments: http://www.nsa.gov/selinux/list-archive/0107/0525.cfm Certifying Linux (Linux Journal): http://www.linuxjournal.com/article.php?sid=0131 Agreed by Tim Bird, no dissenters that I heard of: http://marc.theaimsgroup.com/?l=linux-kernel&m=108362954024749&w=2 Signed-off-by: Andrew Morton [PATCH] CPU Hotplug: restore Idle task's priority during CPU_DEAD notification From: Srivatsa Vaddagiri Fix a CPU Hotplug problem wherein idle task's "->prio" value is not restored to MAX_PRIO during CPU_DEAD handling. Without this patch, once a CPU is offlined and then later onlined, it becomes "more or less" useless (does not run any task other than its idle task!) Ingo said: The __setscheduler() call is (technically) incorrect because in the SCHED_NORMAL case the prio should be zero. So it's a bit cleaner to set up the static priority to MAX_PRIO and then revert the policy to SCHED_NORMAL via __setscheduler(). Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton [PATCH] swsusp documentation updates From: Pavel Machek Signed-off-by: Andrew Morton [PATCH] Print backtrace for bad vfree() From: Andi Kleen Only the printk alone is not too useful, print the backtrace too. Signed-off-by: Andrew Morton [PATCH] nfsd: deleting symlinks over nfs causes oops on unmount From: "J. Bruce Fields" From: Neil Brown This fixes an oops on unmount (failure of the assertation at fs/ext3/super.c:421). Probably reproduceable just by creating and deleting a single symlink over nfs and then unmounting the exported filesystem. Recent change to fh_compose means dentry reference is *not* consumed, and so usually has to be explicitly dput afterwards. One usage was missed in that patch, so this dput is needed. Signed-off-by: Andrew Morton [SPARC64]: Export _do_write_trylock to modules. [PATCH] fix net/tulip/winbond-840.c warning. [PATCH] Fix 8139too ring size for dreamcast/embedded Presently 2.6.6 backs out the CONFIG_8139_RXBUF_IDX in favor of using a hardcoded 8139_RXBUF_IDX (again). This seems to have been done due to some issues occuring with 8139_RXBUF_IDX =3D=3D 3, however (as the Kconfig pointed out), we still need 8139_RXBUF_IDX =3D=3D 1 in the CONFIG_SH_DREAMC= AST case. The patch which made this change can be seen at: {MIME-mangled URL} Before that, CONFIG_8139_RXBUF_IDX was set to 1 both in the CONFIG_SH_DREAMCAST and CONFIG_EMBEDDED cases. This patch adds that back into the current 8139too. [PATCH] Update Alfred Arnold contact info From: Jean Delvare [PATCH] Fix incorrect but unused define in net_sk_mca.h From: Jean Delvare [PATCH] pcnet32: add static to two routines. This patch adds 'static' to two routines. The prototype has static but the instantiation did not. [PATCH] pcnet32: avoid hard hang with some chip variants. This patch fixes a hard hang with 79C975 and 79C976 chip variants when dumping BCR register #34. [PATCH] pcnet32: correct 79C976 variant string. This patch correctly identifies the 79C976 as a PCnet/PRO not a FAST III. [PATCH] pcnet32: fix boundary comparison bug. This patch fixes a boundary condition. It is possible to get an interrupt and have the transmit queue completely full. Without this the driver will leak skb's and pci maps (if the arch supports them). [PATCH] pcnet32: remove timer and complexity. This removes the timer I recently added, and the 'ltint' interrupt mitigation from the 79C971 and 79C972. It did not improve performance, added complexity, and was a bad idea in hind sight. [PATCH] pcnet32: limit frames received during interrupt. The current code will allow an infinite number of frames to be received during one interrupt. Tested ia32 and ppc64. [PATCH] pcnet32: fix bogus carrier errors with 79c973 The 79C973 version of the pcnet32 chipset would report all transmit operations as being sent with a carrier error. The root cause was writing reserved bits in bcr33. It caused the 973 to report xmit as errors, and caused 975 and 976 to hard hang when reading bcr34. My thanks to Bruce Penrod for his help in finding the cause of this bug. [PATCH] pcnet32: correct printk for big-endian arch This patch corrects a printk when executed on a big-endian system. Tested ppc64. [PATCH] pcnet32: avoid timeout with tcpdump This patch avoids a timeout when entering/exiting promiscuous mode with tcpdump. All pending xmit operations are flushed and if the queue is full the timeout will occur. The wake_queue avoids that timeout. Tested ppc64 and ia32. [netdrvr wan] farsync driver update 1) Provides support for new FarSync cards T1U, T2U, T4U and TE1 2) Provides support for an E1 interface 3) Provides support for a variant of X.21 that allows transmit and receive clocks 4) Provide a raw socket interface directly to the data from the line. 5) Improves performance with less time in interrupts and more in BH's [wireless airo] Add RFMON support for MPI and latest Cisco [PATCH] e1000 1/7: Clear Auto-MDIX when the link is forced to [PATCH] e1000 2/7: Workaround for link LED staying ON even when [PATCH] e1000 3/7: Determine link status correctly while using [PATCH] e1000 4/7: Estimate number of tx descriptors required Reduce scope of tx_lock [PATCH] e1000 6/7: ethtool_ops support [PATCH] e1000 7/7: Support for ethtool msglevel based error Also included are driver version update and change logs [netdrvr b44] always restore PCI config on resume the Broadcom BCM4401 driver restores pci configuration on resume only when the device is up. On my notebook, this leads to a failure when the device is down during the S3 cycle. Short solution for now: Always restore pci config. [netdrvr tulip] new pci id [PATCH] pcnet32: fix for patch 8 le16_to_cpu Joe Perches pointed out an error in patch 8. As I looked at the results closer 3 out of 4 looked correct. This fixes the output for the last case. Output is now the same on IA32 and PPC64 hardware. Cset exclude: mashirle@us.ibm.com|ChangeSet|20040526204412|10895 [PATCH] via-rhine: Fix force media Lucas Nussbaum and Dirk Koeppen each found independently that the code for forcing media options in via-rhine is borked and suggested the fix below. I've been sitting on this way too long because there is more badness in the immediate vicinity which needs a bigger surgery. The second hunk fixes a braino I managed to introduce myself. [PATCH] via-rhine: Rename some symbols This patch renames symbols: via_rhine_* -> rhine_* struct netdev_private *np -> struct rhine_private *rp [PATCH] via-rhine: Whitespace clean-up - Switch to 8 char tabs. - Remove kernel log pointer to the scyld web site -- it's a) fairly irrelevant by now and b) gone. - Remove Emacs Voodoo. - More white space clean up, mostly coding style. [PATCH] via-rhine: USE_MEM, USE_IO -> USE_MMIO Replace USE_MEM and USE_IO with USE_MMIO define. [PATCH] via-rhine: netdev_priv() Found another patch that should go with this batch: Switch to netdev_priv(). Fix outdated comment and bump version number while we're at it. Add new IBM PPC4xx EMAC net driver. sb1000 and wan/sealevel net drivers need to include linux/init.h. [PATCH] net/sk98lin: correct buggy VPD in ASUS MB From: Jeff Lightfoot The following patch to net/sk98lin/skvpd.c was put together by Marc Bouget, mbouget at club-internet.fr. This patch works around a corrupt EEPROM (VPD?) in the ASUS K8V Deluxe SE motherboard ethernet chipset and allows the network driver to work correctly. We have written to ASUS and the sk98lin maintainers but have not heard anything back. Add support for cifs per-share statistics, and add corresponding make menuconfig option for cifs statistics [netdrvr ixgb] massive update Since Intel agreed to submit further updates via broken-up patches like they do currently (and admirably) for e1000 and e100, I agreed to merge this update to bring the driver up to speed. Contributed by: Ayyappan.Veeraiyan@intel.com Changes: Features implemented * Support for new 850nm adapters. * Copyright notice updated to include year 2004. * Fix for "ixgb does not maintain non-default MTU setting across a link loss" issue - When link loss happens in non-default MTU environment, driver will incorrectly operate with default 1500 MTU setting. * Netpoll support added * Ethtool support - status functionality, FlowControl interface, Checksum interface, TSO and Scatter Gather interfaces * Race condition fix - Race condition (TX path) exists between ixgb_xmit_frame and clean_tx_irq routines in handling the queue. * Removed dead code segments (#if 0) Performance improvement features * Mod operator usage is removed - used to cause performance problems in non-IA architecture based machines * Multiple ICR register read in ISR is avoided * RS bit set on only 'end of packet' TX descriptors - to avoid multiple writebacks by controller for packets with multiple descriptors. * RX descriptors prefetch is done - improved 1500 MTU TX performance All relevant e1000 driver cleanups ported to ixgb * Valid error propagation in functions ixgb_up, ixgb_probe, ixgb_open. * NAPI code cleanups * u8, u16 and u32 data types are changed to uint8_t, uint16_t and uint32_t respectively. We use these types on our shared code for multiple OSes and also to make it uniform with e1000 driver. * Some functions in ixgb_main.c are moved to different location - This enables easy porting of e1000 bug fixes to ixgb [netdrvr] Add 'gigabit ethernet' config option [TCP]: Add receiver side RTT estimation. Based largely upon work by John Heffner. Remove the smbios driver as it is not needed. You can do the same from userspace, and the author requests that the driver be deleted from the kernel tree before people start using it. [XFS] Fix overflow in mapping test at offsets of 2^63-1 bytes SGI Modid: xfs-linux:xfs-kern:172649a [XFS] Don't leak locked pages on readahead failure SGI Modid: xfs-linux:xfs-kern:172618a add additional cifs stats fix rc mapping on out of memory on mid alloc failure and cleanup dead code [PATCH] ppc32: Fix typo in USB sleep code on intrepid based laptops This fixes a typo in the low level platform code that puts to sleep and wakes up the USB cell. This fixes a problem when pmdisk is used on those machines (pmdisk patch not merged yet, soon maybe...) From: Guido Guenther Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds [PATCH] ia64: use new ptep_set_access_flags ia64: Implement race-free ptep_set_access_flags() Signed-off-by: davidm@hpl.hp.com Signed-off-by: Linus Torvalds [IEEE1394]: Fix for deadlock condition. Submitted-by: Jim Radford Signed-off-by: Ben Collins [ieee1394]: Kill duplicate atomic.h inclusion. Submitted-by: Arthur Othieno Signed-off-by: Ben Collins [ieee1394]: Fix problem with extended ROM regions. Submitted-by: Steve Kinneberg Signed-off-by: Ben Collins [ieee1394]: Delete host timer to avoid crashes in certain conditions. Submitted-by: Alexandre Oliva Submitted-by: Andrew Morton Signed-off-by: Ben Collins [ieee1394]: Cleanup failure handling in ieee1394 and nodemgr. Submitted-by: Walter Harms Submitted-by: Randy.Dunlap Signed-off-by: Ben Collins [ieee1394]: Fix some possible deadlock conditions. Submitted-by: Paul Mackerras Signed-off-by: Ben Collins [ARM] Fix sparse complaint Sparse found an instance where we were directly dereferencing a userspace pointer in the signal handling code. This change fixes that. [ieee1394]: Remove unused variable. Signed-off-by: Ben Collins [TCP]: Grow socket receive buffer based upon estimated sender window. [PATCH] Device runtime suspend/resume fixes (1) Set device power state at runtime resume (as is done for runtime suspend) so that a later suspend does not think the device is still suspended (refusing to suspend it again). (2) Move devices from the active list to the off list only when suspending all devices as part of a system suspend, not for runtime suspend. This matches the resume code, which only moves devices from off to active during system resume, such that runtime resume currently doesn't move the suspended device back to the active list. (This also avoids reordering the device list for runtime suspends; the list is in order of registration and suspend/resume works best that way -- granted, more sweeping improvements in how device dependencies are accounted for in the suspend/resume order are also needed someday.) Runtime device suspend/resume is in some cases used frequently on battery-powered embedded devices, to save additional power and to handle device power state interactions with overall system power state on certain platforms. Signed-off-by: Greg Kroah-Hartman [PATCH] Leave runtime suspended devices off at system resume Currently all devices are resumed at system resume time, including any that were individually powered off ("at runtime") prior to the system suspend. In certain cases it can be nice to force back on individually suspended devices, such as the display, but hopefully this policy can be left up to userspace power managers; the kernel should probably honor the settings previously made by userspace/drivers. This seems preferable to requiring a power-conscious system to re-suspend devices after a system resume; furthermore, for certain platforms (such as XScale PXA27X) there can be disastrous consequences of powering up devices when the system is in a state incompatible with operation of the device. Suggested patch does this: (1) At system resume, checks power_state to see if the device was suspended prior to system suspend, and skips powering on the device if so. (2) Does not re-suspend an already-suspended device at system suspend (using a different method than is currently employed, which reorders the list, see #3). (3) Preserves the active/off device list order despite the above changes to suspend/resume behavior, to avoid dependency problems that tend to occur when the list is reordered. Signed-off-by: Greg Kroah-Hartman [PATCH] Report which device failed to suspend Based on a patch from Nickolai Zeldovich but put into the proper place by me. Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman Minor coding style fixups in resume code and added a bit of debugging help. Signed-off-by: Greg Kroah-Hartman [AIRO]: Fix build error. [sbp2]: Fix use-after-free bug. Signed-off-by: Luiz Capitulino Signed-off-by: Ben Collins [WATCHDOG] v2.6.6 w83627hf_wdt.c When drivers starts show the correct watchdog driver info. [WATCHDOG] v2.6.6 sc520_wdt.c-patch1 Clean-up (general stuff: comments, keep module parameters together, ...) Added clear definitions for the Watchdog Timer Control Register bits Made start, stop and keepalive return 0 if successful Fixed nowayout behaviour so that it is consistent with other watchdog drivers Fixed release behaviour so that it is consistent with other watchdog drivers Added wdt_set_heartbeat function to set the timeout/heartbeat of the watchdog Made sure that memory remapping (wdtmrctl) is done before misc_register is started MMCR_BASE_DEFAULT was wrong (Bug 2497 reported by Sean Young) Tested by Sean Young [WATCHDOG] v2.6.6 sc520_wdt.c-patch2 This patch also removes the cbar usage which is unnecessary. The MMCR is always available at 0xfffef000; there is no need to use the cbar register (if mmcr aliasing is enabled, then the MMCR is _also_ available at another address set by CBAR). [PATCH] Fix for leave-runtime-suspended-devices-off-at-system-resume.patch A patch to fix my previous leave-runtime-suspended-devices-off-at-system-resume patch; the new changes save a copy of power.power_state in order to know whether to resume a device, independently of mods to that field by a driver suspend routine. This fixes 2.6.7-rc1-mm1 in the same fashion as the updated 2.6.6 patch sent previously. Signed-off-by: Greg Kroah-Hartman [WATCHDOG] v2.6.6 linux/fs.h-patch From: Christoph Hellwig All watchdog drivers need linux/fs.h [PATCH] USB: Use normal return codes for several routines in hub.c This patch changes the return codes used by hub_port_wait_reset(), hub_port_reset(), and hub_port_debounce() in hub.c. I couldn't stand the {-1=error, 0=okay, 1=disconnect} scheme; the meanings seemed arbitrary and I constantly forgot which number stood for what status. The revised code uses normal negative error codes, including -ENOTCONN to indicate device disconnected, or 0 for success. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ftdi_sio throttling fix This patch fixes throttling problems in the ftdi_sio driver for the 2.6 kernel. The old throttling mechanism (unlinking the read urb) often failed to work, and even it did work, would lose any data held in the transfer buffer. The new mechanism presented here is based on what the whitehead driver does (defer processing and resubmitting of the read urb until unthrottled). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: Add InfiniCon PCI ID to pci_ids.h We would like to have the InfiniCon PCI Vendor ID added to pci_ids.h Below is a context diff, which would would greatly appreciate if you applied and included in future kernel releases. Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: fix pci/probe.c possible NULL pointer. In drivers/pci/probe.c::pci_scan_bridge() the call for pci_alloc_child_bus() can return NULL, but it is not handled by the function (detected by Coverity's checker). The patch bellow fix that returning `max' if we got the NULL, but I do not know if it is right. I guess it is, because in that case the function will act in the same way as with `pass != 0'. Signed-off by: Luiz Capitulino Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: i2c-parport: support the ADM1031 evaluation board The following patch adds support for the ADM1030 and ADM1031 evaluation boards to the i2c-parport and i2c-parport-light drivers. They are almost compatible with the already supported ADM1025 and ADM1032 boards, except that the ADM1032 board needs some pins to be set high to draw its power, while the same pins power up heating resistors on the ADM1031 board. I considered it was a bit dangerous to do that by default, so I ended up with two different device definitions, one with powering pins set, and one with these pins cleared. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: add max1619 driver This is a driver for "Remote/Local Temperature Sensor with Dual-Alarm Outputs and SMBus Serial Interface" MAX1619. I found this chip an my Laptop SAMSUNG NV5000. Daryng I use Linux cooling didn't worked at all, naw with this driwer it's working. I hope this will be usefool for ather too. I didn't hade any expiriens with programming, but i didn't wont to wait wann some body make it vor me. Jean halped me correrct any mysteiks wich i made. Thanks Jaen :) Signed-off-by: Greg Kroah-Hartman Revert 3c905C initialization changes that cause problems Cset exclude: akpm@osdl.org[torvalds]|ChangeSet|20040510205830|02933 [PATCH] radeonfb iBook & IGP fixes This patch to radeonfb fixes support for the latest iBook models along with an initialisation problem on some IGP chipsets. Please apply. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Linus Torvalds Missing spin lock init [ARM] Move common definitions to asm/memory.h Virtually all the architecture specific memory.h files were defining the same constants and v<->p translations the same way. Move them to asm/memory.h [ARM] Ensure AMBA devices on Versatile have a correct dma_mask [ARM] Remove obsolete asm-arm/arch-*/keyboard.h [PATCH] d_bucket initialisation simplification The recent nfsd fix was too fancy. When initialising d_bucket to an "invalid" value, all we need is a NULL in there. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: remove silly debug path from get_vsid() From: David Gibson Currently the get_vsid() and get_kernel_vsid() functions have a test which enables a different VSID algorithm for debugging. Using a dumb VSID algorithm for stressing the hash table is a reasonable debugging tool, but switching it at runtime makes no sense at all. Plus it adds another test and memory access to the performance critical SLB miss path. This patch removes the test, replacing it with a compile time switch. It seems to make a measurable, although small speedup to the SLB miss path (maybe 0.5%). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix typo in pmac_zilog From: Benjamin Herrenschmidt This patch fixes a typo preventing channel B from working on the Rx path of pmac zilog (never calling tty_flip_*). I think I never tested channel B :) Thanks to Hollis Blanchard for spotting the bug. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix non-existent /dev/adb From: Benjamin Herrenschmidt This patch fixes the lack of /dev/adb in kernel 2.6.7-rc1. The call to devfs_mk_cdev() has probably been removed too soon. Hope this one is better than the last one ;) Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use new msleep() in ADT746x driver From: Benjamin Herrenschmidt This patch replaces schedule_timeout() with the new msleep(). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: ix compiling arch/ppc/8260_io/enet.c From: Tom Rini When the 826x enet driver was made to call register_netdev/free_netdev, no one declared 'err' in the function. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix PPC4xx for the handle_page_fault() change From: Matt Porter Fixes PPC4xx from the do_page_fault()->handle_page_fault() change. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: reorg DMA API, add coherent alloc in irq From: Matt Porter Reorg PPC DMA API. Use PCI DMA API wrapper and add coherent alloc in irq. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: xmon fixes From: Anton Blanchard A few xmon fixes: - Check we have the set-indicator property before calling rtas. - We were printing a cpu number in one place with %s, fix. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add `make checkstack' target Jorn Engel Adds a `make checkstack' target. This disassembles and parses vmlinux and *.ko, generating a sorted list of stack hogs, eg: 0xc0100663 huft_build: 1456 0xc01022d3 huft_build: 1456 0xc0103127 inflate_dynamic: 1328 0xc0101487 inflate_dynamic: 1324 0xc010131f inflate_fixed: 1168 0xc0102fb7 inflate_fixed: 1168 0x00000003 sha512_transform: 984 0xc024aee3 Vpd: 952 0x00000003 twofish_setkey: 804 0x000060c3 isd200_action: 792 0x0000e6cb nfsd4_proc_compound: 760 0xc0249087 SkPnmiGetStruct: 712 .... Supported architectures are alleged to be arm, x86, ia64, mips, mips64, ppc, ppc64 and s390x. Signed-off-by: Jörn Engel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386: put irq stacks in .bss.page_aligned section From: Matt Mackall I noticed that my vmlinux BSS had grown from 17k to 45k between 2.6.5 and 2.6.6. 8k was moving a pair of objects in head.S from the text section to bss, 8k was the introduction of IRQ stacks, while the remainder (12k) was page alignment slop, some of it spurious. The following patch brings BSS down to the expected 33k. Throw the IRQ stacks into the page aligned section to avoided wasted BSS space. While we'd expect this to save up to 4k, this saves over 10k of BSS here due to gcc3.3 spuriously aligning other objects in the vicinity. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm-ioctl.c: fix off-by-one error From: Kevin Corry Fix an OB1 error when calculating an output buffer size, that could cause a missing null termininator in the 'list devices' ioctl results. [Steffan Paletta] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm.c: free cloned bio on error path From: Kevin Corry In __map_bio(), if the target returns an error while mapping the I/O, the cloned bio needs to be freed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm-ioctl: replace dm_[add|remove]_wait_queue() with dm_wait_event() From: Kevin Corry Some testing of DM multipath has turned up a problem with the DEVICE_WAIT command. In the tests, while performing a DEVICE_WAIT on a multipath device, the command sometimes returns immediately, even though the event-number is correct and no path-failure has occurred to trigger an event. The problem was tracked down to the call to schedule() in dev_wait(), which would return even though it was not woken up by a DM table event. This patch moves the responsibility for waiting from the ioctl interface into the core driver, and uses wait_event_interruptible() instead of relying on wait-queues and schedule(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: add static and __init qualifiers From: Kevin Corry DM: Add static and __init qualifiers. [Dave Olien] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm-table.c: proper usage of dm_vcalloc From: Kevin Corry dm-table.c: Proper usage of dm_vcalloc. [Dave Olien] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] dm: change maintainer From: Change of device-mapper maintainer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use SLAB_PANIC for general caches From: Brian Gerst Initialize the general caches using SLAB_PANIC instead of BUG(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] asm-i386/timer.h docu cleanup From: Adam Lackorzynski This patch fixes a typo (intruupt), a possible confusion (ms should be microseconds here, not milli), and adds descriptions for the missing functions. Signed-off-by: Adam Lackorzynski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix unchecked return value in register_disk() From: "Luiz Fernando N. Capitulino" Signed-off-by: Luiz Capitulino Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ADT746X MAINTAINERS update From: Colin Leroy I'm maintaining this driver i wrote :) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] epoll events send fix From: Davide Libenzi We're now sending epi->event.events while it should be sending epi->revents. Signed-off-by: Davide Libenzi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fs/dcache.c: avoid race when updating nr_unused count of unused dentries. From: NeilBrown d_count == 1 is no guarantee that dentry is on the dentry_unused list, even if it has just been incremented inside dcache_lock, as dput can decrement at any time. This test from Greg Banks is much safer, and is more transparently correct. Cc: Maneesh Soni , Dipankar Sarma From: Greg Banks Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CREDITS file update From: Thomas Dunbar used to be working in one of the Dean's offices here. He's now down the hall from me (and has been for several years, actually). So let's fix the crufty pointers. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CREDITS file update From: Robert Love Update Robert's email address Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vt_ioctl() comment fix From: The "Probably init should be changed" happened almost ten years ago. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: missing dget() From: Neil Brown The recentish change to fh_compose not consuming a reference to the passed dentries missed this needed dget. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: oprofile __user annotation [PATCH] sparse: parport __user annotation (sysctls) [PATCH] sparse: nfs __user annotation (client only, and not touching RPC) [PATCH] sparse: ext2 __user annotation (ioctl) [PATCH] sparse: ipc __user annotation [PATCH] sparse: acpi __user annotation [PATCH] sparse: trivial part of drivers/char __user annotation [PATCH] sparse: trivial part of drivers/block __user annotation [PATCH] sparse: partial drivers/input __user annotation [PATCH] sparse: drivers/pci __user annotation [PATCH] sparse: partial serial_core.c __user annotation [PATCH] sparse: OSS __user annotation caddr_t is gone (most of the instances were void __user * in disguise, the rest - void *) Fixed b0rken ioctls in mpu401 and pss - they used to dereference userland pointers with no checks. [PATCH] sparse: ide-proc.c fixes Fixed dereferencing userland pointers, general idiocy in parsing. [PATCH] sparse: trivial part of drivers/ide __user annotation [PATCH] sparse: rtc.c __user annotation Also replacement of #if RTC_IRQ with #ifdef, moved inlined function in front of all uses. [PATCH] sparse: partial mm/* __user annotation [PATCH] sparse: trivial part of kernel/* __user annotation Add __user annotations to ppc64 signal.c [TCP]: More sysctl tweakings for rcvbuf stuff. 1) Add sysctl to control rcvbuf moderation, off for now. 2) Set default winscale to zero. Add __user annotations to arch/ppc64/kernel/syscalls.c Add __user annotations to arch/ppc64/kernel/process.c [SERIAL] Fix sparse warnings in serial_core.c This fixes sparse warnings for the user write method, and the UART ioctl functions which copy data to/from userspace. [SPARC64]: compat select and futex need %o4 zero-extended. [AF_KEY]: Set family for state selector. As the comment in the code suggests, nobody really uses this so nobody will notice the difference :) Still, let's make it correct while we're at it. [NET]: Prevent future missed updates of FOO_MAX macros. [IPV6]: Fix memory leak in ah6.c [IPV4,6]: Fix off-by-one in max protocol-type check [IPV4]: Fix skb leak in igmpv3_newpack. [IRDA]: Fix NULL-ptr dereference in irlmp_get_saddr(). [ARM PATCH] 1898/1: fix io_v2p macro on PXA Patch from Nicolas Pitre Correcting my own screw-up, found by Ian Campbell. [NET]: Simplify netdev_sysfs_xxx if SYSFS is not configured. Don't need all the network sysfs code if CONFIG_SYSFS is not enabled. Also: * netdev_sysfs_unregister is declaration mismatch * if netdev_sysfs_register fails print a warning. Need to still mark it as registered so the unregister_netdevice works, but we will probably end up leaking memory in that case. [IPSEC]: Fix ref counting in __xfrmN_bundle_create(). [ARM PATCH] 1872/1: base clock difference between PXA25x and PXA27x Patch from Nicolas Pitre Fix sparse complaint about badly typed constant Add __user pointer annotations to arch/ppc64/kernel/sys_ppc32.c This also fixes a terminally broken sys32_utimes() implementation. [ARM PATCH] 1897/1: prevent selecting more than one PXA target Patch from Nicolas Pitre ... since this is not supported at the moment and would fail to build. [ARM PATCH] 1869/1: PCMCIA support for Mainstone Patch from Nicolas Pitre [NET]: Do net_todo_list empty check under semaphore. Add __user pointer annotations to fs/compat.c [PATCH] typo in OSS sparse __user annotations Fix a missing initialization in the sparse __user annotation work for OSS. Signed-off-by: Linus Torvalds [PATCH] Missed RTC_IRQ patchlet oh, hell - I missed this one when carving the thing out of big patch ;-/ adb.c needs Add __user pointer annotations to ppc64 code [PATCH] more sparse checking of do_utimes() Speaking of conflicts... Here's another half of a do_utimes() patch, same story as on ppc64: [PATCH] sparse: cdrom_generic_command split into kernel/user The kernel instance (packet_command) has kernel pointers, userland one - __user ones. Surprise. [PATCH] sparse: trivial part of drivers/scsi/* annotation [PATCH] sparse: trivial part of cdrom.c annotation [PATCH] sparse: kernel/sysctl.c annotation and cleanup [PATCH] sparse: make sg_io_hdr->cmdp a __user pointer copying moved into sg_io() [PATCH] sparse: scsi_cmd_ioctl __user annotation scsi_cmd_ioctl() switched to __user *, block/scsi_ioctl.c annotated. [PATCH] sparse: scsi_ioctl __user annotation scsi_ioctl() and scsi_ioctl_send_command() switched to __user *; scsi/scsi_ioctl.c annotated. [PATCH] sparse: sg.c annotation rest of pointers in sg ioctl arguments made __user. [PATCH] sparse: aio annotation [PATCH] sparse: trivial parts of fs/* annotation fs/*, fs/proc/*, fs/nfsd/*, fs/autofs4/* The only interdependent group is the fs/autofs4/* stuff. [PATCH] sparse: bits and pieces Independent minor bits caught by sparse: - paride.h mixing void and int in ? :, used always in a void context ide-iops.c return insw() - insw is void() - scsi/constants.c uses undefined macros in #if; added #define to 0 in case that used to leave it undefined - usb/host/hcd.h: fixed-point arithmetics in constant - fs/exec.c: missing UL on a large constant - fs/locks.c: #if where #ifdef should've been - fs.h: missing UL on MAX_LFS_FILESIZE in 64bit case [PATCH] sparse: misc ->read()/->write() __user annot