Summary of changes from v2.6.11 to v2.6.12-rc1 ============================================== [PATCH] 8139too Interframe Gap Time [PATCH] 8139too: use netdev_priv Use netdev_priv where appropriate, and get rid of "can't happen anymore" assert's. Signed-off-by: Stephen Hemminger [PATCH] wireless iomem annotations and fixes, switch to io{read,write} hermes.c switched to ioread/iowrite from homegrown analogs, its users updated. Fixed direct dereferencing of ioremapped memory in orinoco_plx. Signed-off-by: Al Viro [PATCH] fealnx iomem annotations, switch to io{read,write} Signed-off-by: Al Viro [PATCH] rtl8139too.c: Fix missing pci_disable_dev From: Thomas Gleixner Simple fix to make pci_enable/disable symetric and avoid the warning on module unload. Signed-off-by: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik [PATCH] rtl8139too.c: Fix missing pci_disable_dev Simple fix to make pci_enable/disable symetric and avoid the warning on module unload. Signed-off-by: Thomas Gleixner Signed-off-by: Jeff Garzik check rc of copy_to_user (pointed out by John Cherry) fix wsize mount parm so it works to control writes allow reads bigger than 64K (although Samba does not handle them yet). Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] Fix set of mount option rsize so it can be set above negotiated buffer size. Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] Enable reads over 64K by setting large read and write capability at SMB session negotiation Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] Fix whitespace Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] Fix default mode on cifs module parms in sysfs Pointed out by Domen Puncer Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] smc-mca iomem annotations and isa-ectomy switched to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] smc-ultra iomem annotations + isa-ectomy switched to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] smc-ultra32 iomem annotations + isa-ectomy switched to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] wd iomem annotations + isa-ectomy switched to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] ewrk3 iomem annotations + isa-ectomy switched to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] es3210 iomem annotions and isa-ectomy switched to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] arcnet: remove casts Remove casts of (void *) pointers. drivers/net/arcnet/arc-rawmode.c | 4 ++-- drivers/net/arcnet/arc-rimi.c | 14 +++++++------- drivers/net/arcnet/arcnet.c | 30 +++++++++++++++--------------- drivers/net/arcnet/com20020.c | 6 +++--- drivers/net/arcnet/com90io.c | 4 ++-- drivers/net/arcnet/com90xx.c | 8 ++++---- drivers/net/arcnet/rfc1051.c | 8 ++++---- drivers/net/arcnet/rfc1201.c | 12 ++++++------ 8 files changed, 43 insertions(+), 43 deletions(-) Signed-off-by: Domen Puncer Signed-off-by: Jeff Garzik Enable bus mastering before saving our state, or we'll only be able to load the modules one time. Signed-off-by: David Dillow Teach typhoon to use port IO on machines that need it. It will attempt to use MMIO, but if that fails (or the user asks), it will fallback to port IO. Signed-off-by: David Dillow Use module_param() and add descriptions. Signed-off-by: David Dillow Fixup the version reporting to match 3Com. Signed-off-by: David Dillow Version 03.001.008 of the Typhoon firmware, courtesy of 3Com. Fixes various crypto bugs on the 3CR990B family, among other issues. Signed-off-by: David Dillow Bump version and release date. Signed-off-by: David Dillow kallsyms: gate page patch breaks module lookups >Your recent patch looks to break module kallsyms lookups.... >It looks like if CONFIG_KALLSYMS_ALL is set then we never look up module >addresses. Separate lookups for kernel and modules when CONFIG_KALLSYMS_ALL=y. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg [PATCH] net/act2001-sir: replace schedule_timeout() with msleep() Any comments would be appreciated. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/irtty-sir: replace schedule_timeout() with msleep() Any comments would be appreciated. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/ma600-sir: replace schedule_timeout() with msleep() Any comments would be appreciated. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/xirc2ps_cs: replace Wait() with msleep() Any comments would be appreciated. Description: Use msleep() instead of Wait() to guarantee the task delays as expected. Remove definition of Wait(). Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/sir_dev: replace schedule_timeout() with msleep() Any comments would be appreciated. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/ni65: replace schedule_timeout() with msleep() Any comments would be appreciated. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/ns83820: replace schedule_timeout() with msleep() Any comments would be appreciated. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/tekram-sir: replace schedule_timeout() with msleep() Any comments would be appreciated. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer [PATCH] net/ewrk3: replace schedule_timeout() with msleep_interruptible() Any comments would be, as always, appreciated. -Nish Description: Uses msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer JFS: base static allocations on physical memory size On larger systems, performance is improved with a larger allocation of tlocks & tblocks. Base the default size of these allocations on the physical memory size. Signed-off-by: Dave Kleikamp [netdrvr mv643xx] This patch removes code that is redundant or useless. The biggest area is in pre-initializing the RX and TX descriptor rings, which only obfuscates the driver since the ring data is overwritten without being used. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This patch removes spin delays (count to 1000000, ugh) and instead waits with udelay or msleep for hardware flags to change. It also adds a spinlock to protect access to the MV64340_ETH_SMI_REG, which is shared across ports. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This patch fixes the code that enables hardware checksum generation. The previous code has so many problems that it appears to never have worked 2.6. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This patch replaces the use of the pci_map_* functions with the corresponding dma_map_* functions. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This patch adds device driver model support to the mv643xx_eth driver. This is a change to the driver's programming interface. Platform code must now pass in the address of the MV643xx ethernet registers and IRQ. If firmware doesn't set the MAC address, platform code must also pass in the MAC address. Also, note that local MV_READ/MV_WRITE macros are used rather than using global macros. Keeping the macro names minimizes the patch size. The names will be changed to mv_read/mv_write in a later cosmetic cleanup patch. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This patch adds support for passing additional parameters via the platform_device interface. These additional parameters are: size of RX and TX descriptor rings port_config value port_config_extend value port_sdma_config value port_serial_control value PHY address Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This patch makes the use of the MV64340_RX_QUEUE_FILL_ON_TASK config macro more consistent, though the macro remains undefined, since the feature still does not work properly. Signed-off-by: Steven J. Hill Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This patch simplifies the mv64340_eth_set_rx_mode function without changing its behavior. Signed-off-by: Dale Farnsworth [CIFS] remove old cifs_readdir routine Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] get rid of tcp peek usage on cifs socket. Makes more sense to read normally first four bytes off the socket (then read the rest of the frame) rather than peek first few bytes then read because we were having to retry the peek multiple times when peek would return less than four bytes and four bytes is the minimum we ever get. Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] Fix length check for short smbs in cifs demultiplexing and remove unneeded debug messages Signed-off-by: Steve French (sfrench@us.ibm.com) ALSA CVS update PCM Midlevel Sumary: Fix comment of snd_pcm_lib_malloc_pages() Fixed comment of snd_pcm_lib_malloc_pages() by Kirill Smelkov . Signed-off-by: Takashi Iwai [ALSA] Fix typos in doc Documentation Fixed typos in the document by Kirill Smelkov Signed-off-by: Takashi Iwai [ALSA] fix typo Documentation Signed-off-by: Clemens Ladisch [ALSA] Fix struct alignment on PPC64 IOCTL32 emulation Fixed the struct size mismatch (due to alignment) of snd_ctl_elem_value_t for PPC64. Signed-off-by: Takashi Iwai [ALSA] Add missing FORWARD ioctl IOCTL32 emulation Added the missing FORWARD ioctl. Signed-off-by: Takashi Iwai [ALSA] Fix struct size mismatch IOCTL32 emulation Fixed the struct size mismatch - should work on SPARC64 now, too. Signed-off-by: Takashi Iwai [ALSA] Show firmware loading state in proc file Digigram VX core Show the firmware loading state in proc file. Signed-off-by: Takashi Iwai [ALSA] Fix compilation on big-endian arch RME HDSP driver Fixed typo in the code for big-endian architectures. Signed-off-by: Takashi Iwai [ALSA] AC'97 Audio support for Intel ICH7 Intel8x0 driver This patch adds the ICH7 AC'97 DID the the intel8x0.c AC'97 audio driver. This patch was build against 2.6.11-rc1. Signed-off-by: Jason Gaston Signed-off-by: Takashi Iwai [ALSA] Fix silent output on some machines with AD1981x codecs AC97 Codec Fixed the default state of 'Headphone Jack Sense' switch on AD1981x codecs. Setting this on affects the output of some machines (e.g. Thindpads). The default value is set on only hardwares which are known to work. Signed-off-by: Takashi Iwai [ALSA] don't use broken legacy interfaces on M-Audio Quattro/Omnistudio USB generic driver Interfaces 0-2 of M-Audio Quattro/Omnistudio devices duplicate functionality of interfaces 3-5 and cause errors when used with those. Add a quirk to tell the driver not to use them. Signed-off-by: Clemens Ladisch [ALSA] AK4117 code - fixed cosmetic typos AK4117 receiver Signed-off-by: Jaroslav Kysela [ALSA] Add support for Chaintech 9CJS ICE1712 driver Added the support for Chaintech 9CJS by Delmaire Maxime. Signed-off-by: Takashi Iwai [ALSA] Add workaround for buggy ATI IXP hardwares ATIIXP-modem driver Added a workaround for buggy ATI IXP hardwares which returns bogus DMA pointer register value. Signed-off-by: Takashi Iwai [ALSA] Add missing inclusion of linux/device.h Digigram VX core,Digigram VX222 driver,Digigram VX Pocket driver Added the missing inclusion of Signed-off-by: Takashi Iwai [ALSA] Simplify the general ac97 volume/switch callback AC97 Codec Simplified the control callbacks of general AC97 volumes/switches. Signed-off-by: Takashi Iwai [ALSA] Add quirk for HP pavilion ZV5030US ATIIXP driver Added ac97 quirk for HP Pavilion ZV5030US to bind the control with mute-LED. Signed-off-by: Takashi Iwai [ALSA] Add quirk for HP nc8000 Intel8x0 driver Added ac97 quirk for HP nc8000. The list is sorted again. Signed-off-by: Takashi Iwai [ALSA] Enable HP jack sense for FSC Scenic-W AC97 Codec Enable 'Headphone Jack Sense' control on FSC Scenic-W as default, too. Signed-off-by: Takashi Iwai [ALSA] Add Intel HDA driver Documentation,PCI drivers,HDA generic driver,HDA Codec driver HDA Intel driver Added a new Intel High-Definition audio driver. The driver consists of two separate modules: the generic support module for HD codecs (snd-hda-codec), and the driver for Intel ICH6/7 chipset (snd-hda-intel). The snd-hda-intel was called formerly snd-azx in the ALSA 1.0.8 rlease. Signed-off-by: Takashi Iwai [ALSA] unlocked/compat_ioctl rewrite for control API Control Midlevel ioctl handler for control API is rewritten using unlocked/compat_ioctl. The 32bit wrapper is merged to the core module. Added a new register/unregister function for compat control ioctls. Signed-off-by: Takashi Iwai [ALSA] unlocked/compat_ioctl rewrite for PCM API PCM Midlevel The ioctl handler for PCM API is rewritten using unlocked/compat_ioctl. The 32bit wrapper is merged to the core module. Signed-off-by: Takashi Iwai [ALSA] unlocked/compat_ioctl rewrite for hwdep, rawmidi, timer and sequencer API HWDEP Midlevel,RawMidi Midlevel,Timer Midlevel,ALSA sequencer The ioctl handler for hwdep, rawmidi, timer and sequencer API are rewritten using unlocked/compat_ioctl. The 32bit wrapper is merged to the core module. Signed-off-by: Takashi Iwai [ALSA] unlocked/compat_ioctl rewrite for OSS compatible drivers ALSA<-OSS emulation,ALSA<-OSS sequencer The ioctl handlers for OSS compatible drivers are rewritten using unlocked/compat_ioctl. Signed-off-by: Takashi Iwai [ALSA] Export new register/unregister functions ALSA Core Export new register/unregister functions for compat control-ioctls. Signed-off-by: Takashi Iwai [ALSA] Remove snd-ioctl32 entry ALSA Core Remove the entry for snd-ioctl32. The 32bit wrapper is built in the core module. Signed-off-by: Takashi Iwai [ALSA] Use DEFINE_SPINLOCK(), DEFINE_RWLOCK() macros ALSA Core,PCM Midlevel,Timer Midlevel,ALSA sequencer ALSA<-OSS sequencer Replace spin/rwlock definitions with DEFINE_SPINLOCK() and DEFINE_RWLOCK() macros. Signed-off-by: Takashi Iwai JFS: fix livelock waiting for stale metapage Several waitors were keeping mp->count from going to zero, so we would never release the page. Simplify the logic by doing a busy wait without locking the metapage. Signed-off-by: Dave Kleikamp JFS: add missing include This is why it's a good idea to compile & test before checking in the code. Signed-off-by: Dave Kleikamp JFS: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. The current code uses TASK_INTERRUPTIBLE; however, it does not check for signals, so I do not think the change to msleep() is necessarily bad. Signed-off-by: Nishanth Aravamudan Signed-off-by: Dave Kleikamp [ALSA] remove obsolete sound/core/ioctl32 directory The compatibility layer is integrated to ALSA midlevel code now. [SOCK] make sk_alloc use kmalloc for non performance critical families With this we can have aggregate protocol specific struct proto_sock allocated for non performance critical protocols. We still check for slab == NULL && zero_it == 1 to allocate from the generic "sock" slab cache, but this will be removed when all the network families stop using sk_protinfo, when the generic "sock" slab cache will be removed. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [APPLETALK] stop using sk_protinfo Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [DECNET] Don't use sk_protinfo + private sock slab cache DecNET already uses a private sock slab cache, but initializes sk->sk_protinfo, pointing to (sk + 1), this is wrong because at sk_free time we call sk->sk_destruct, that by default points to sock_def_destruct, that does a kfree on sk->sk_protinfo, since it was initialized at net_proto_family->create() time (dn_create), but in decnet sk_protinfo was not kmalloced, it was allocated piggybacked to struct sock. This doesn't causes problems because decnet sets sk->sk_destruct to a custom function that doesn't calls kfree(sk->sk_protinfo), but to reach a long time goal of killing sk_protinfo lets just make DN_SK return sk + 1. I left merging dn_scp with dn_sock for later, as the current state suits my needs to introduce connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [AF_PACKET] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [ECONET] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [NETLINK] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [X25] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [PF_KEY] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [LLC] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [IRDA] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [PPPOX] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [ATM] stop using sk_protinfo Required to introduce struct connection_sock. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller [CIFS] misc cleanup - compare pointers to NULL not zero Signed-off-by: Steve French (sfrench@us.ibm.com) [ALSA] add more Yamaha USB MIDI quirks USB generic driver add support for Yamaha UC-MX, UC-KX, CLP-175, SPX2000 Signed-off-by: Clemens Ladisch [ALSA] fix usage of preprocessor directive inside macro HDA Intel driver gcc-2 complains about preprocessor directives inside a macro argument list Signed-off-by: Clemens Ladisch [ALSA] Warning doc about VIA82xx recording Documentation Add warning about the consequences of adjusting the 'Input Source Select' of VIA82xx. Signed-off-by: Ross Kendall Axe Signed-off-by: Takashi Iwai [ALSA] Special AC97 patch for ASUS W1000/CMI9739 laptop AC97 Codec This patch fixes sound output on the ASUS W1000 laptop with the CMI9739 chip. It wrongly reports that it has a SPDIF in, when in fact we wish to use the EAPD pin. Signed-off-by: James Courtier-Dutton Signed-off-by: Takashi Iwai [ALSA] replace schedule_timeout() with msleep() RawMidi Midlevel Use msleep instead of schedule_timeout() to guarantee the task delays as expected. This also removes a dependence on the value of HZ. Signed-off-by: Nishanth Aravamudan Signed-off-by: Takashi Iwai [ALSA] replace schedule_timeout() with msleep() Digigram VX core Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Takashi Iwai [ALSA] insert set_current_state() before schedule_timeout() GUS Library Insert set_current_state() before schedule_timeout(). Without the insertion, schedule_timeout() returns immediately. Signed-off-by: Nishanth Aravamudan Signed-off-by: Takashi Iwai [ALSA] replace schedule_timeout() with msleep_interruptible() GUS Library Use msleep_interruptible() instead of custom wait code involving schedule_timeout() to guarantee the task delays as expected. This also removes a dependence on the value of HZ. Signed-off-by: Nishanth Aravamudan Signed-off-by: Takashi Iwai [ALSA] insert set_current_state() before schedule_timeout() Wavefront drivers Insert set_current_state() before schedule_timeout(). Without the insertion, schedule_timeout() returns immediately, resulting in an effective busy-wait. Signed-off-by: Nishanth Aravamudan Signed-off-by: Takashi Iwai [ALSA] replace schedule_timeout() with msleep() EMU8000 driver Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Takashi Iwai [CIFS] Add support for updating Windows NT times/dates (part 1) Signed-off-by: Steve French (sfrench@us.ibm.com) [ALSA] Removed file added by mistake Removed include/sound/version.h~ [netdrvr mv643xx] This patch cleans up the handling of receive skb sizing. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] With this patch, the driver now calls netif_carrier_off/netif_carrier_on on a link down/up condition. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Add support for PHYs/boards that don't support autonegotiation. Signed-off-by: Brian Waite Signed-off-by: Dale Farnsworth [netdrvr mv643xx] This one liner removes a spurious left paren fixing an obvious syntax error in the #ifndef MV64340_NAPI case [netdrvr mv643xx] Add a function to detect at runtime whether a PHY is attached to the specified port, and use it to cause the probe routine to fail when there is no PHY. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Run mv643xx_eth.[ch] through scripts/Lindent Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Additional whitespace cleanups, mostly changing spaces to tabs in comments [netdrvr mv643xx] Rename MV_READ => mv_read and MV_WRITE => mv_write Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Big rename. Change MV64340 => MV643XX and mv64340 => mv643xx Signed-off-by: Dale Farnsworth [PATCH] net/cs89x0: replace schedule_timeout() with msleep() Hi, Description: The existing wait is in TASK_INTERRUPTIBLE, but does not check for signals (especially problemtic for a 30 msec wait!) as being a cause for schedule_timeout()s return. Use msleep() instead, to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Jeff Garzik [PATCH] net/airo: replace schedule_timeout() with msleep()/ssleep() Hi, Description: Use msleep()/ssleep() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Jeff Garzik [PATCH] net/cosa: replace schedule_timeout() with msleep() Hi, Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Also uses the set_current_state() macro instead of direct assignment in a pair of spots. I am still concerned about those sleeps, as TASK_INTERRUPTIBLE() is used without any checking for signals. Hence I used msleep() for the longer delay. Perhaps the 30 jiffy delay has not been updated for the larger HZ values and thus could be changed to msleep(300). Signed-off-by: Nishanth Aravamudan Signed-off-by: Jeff Garzik [PATCH] pcnet32: 79c976 with fiber optic fix After testing this patch I agree that it should be applied. The one change I made was to print the device name (ethN) instead of 'pcnet32'. Tested ia32. From: Guido Guenther , Lars Munch Skip PHY selection on Allied Telesyn 2701FX, it looses the link otherwise. Fix up the AT 2700FX as well. Signed-Off-By: Guido Guenther Signed-off-by: Andrew Morton signed-off-by: Don Fry Signed-off-by: Jeff Garzik [PATCH] ibmtr 1/2: iomem annotations - trivial part Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] ibmtr 2/2: ibmtr annotations - the rest The rest of annotations and cleanup: ->sram_virt abuse removed, we have separate ->sram_phys now (not remapped) and keep ->sram_virt an iomem pointer. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] sis900: add infrastructure needed for standard netif messages Infrastructure needed for standard netif messages - add msg_level to sis900_private - define default msg level - set default value for sis900_debug Update module parameter description Ethtool support for debugging output level Signed-off-by: Daniele Venzano Signed-off-by: Jeff Garzik [PATCH] sis900: version bump; remove broken URL Version bump Remove broken link to documentation Signed-off-by: Daniele Venzano Signed-off-by: Jeff Garzik [PATCH] sis900 printk audit Change priority of printk where appropriate Remove two cryptic and useless printk Signed-off-by: Daniele Venzano Signed-off-by: Jeff Garzik [PATCH] sis900: debugging output update Add some init debugging printk Use netif_msg macros before printing debug messages Signed-off-by: Daniele Venzano Signed-off-by: Jeff Garzik [PATCH] sis900: chiprev i/o cleanups Chip revision is now a member of sis_priv structure Kill all calls to pci_read_config_byte but one Change the code to use sis_priv->chipset_rev Signed-off-by: Daniele Venzano Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in the 3c515 driver Use netdev_priv in the 3c515 driver. Signed-off-by: Steffen Klassert Signed-off-by: Jeff Garzik [PATCH] Add MODULE_VERSION to the 3c515 driver Add MODULE_VERSION to the 3c515 driver. Signed-off-by: Steffen Klassert Signed-off-by: Jeff Garzik [PATCH] sk_mca - netdev_priv() Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] sk_mca - iomem and isa-ectomy usual isa-ectomy and iomem annotations Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] ibmlana part 1 (netdev_priv()) switched to netdev_priv() Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] ibmlana part 2 (iomem annotations and isa-ectomy) the usual switch to ioremap and normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] 3c503 (iomem + isa-ectomy) switch to ioremap() and normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [PATCH] prism54: use NULL for pointer Use NULL instead of 0 for pointer: drivers/net/wireless/prism54/isl_ioctl.c:1753:16: warning: Using plain integer as NULL pointer drivers/net/wireless/prism54/isl_ioctl.c:1753:26: warning: Using plain integer as NULL pointer Signed-off-by: Randy Dunlap Signed-off-by: Jeff Garzik Move MII-related constants from b44/tg3 drivers to linux/mii.h. [PATCH] Au1000 driver updates o mii-tool support o MAC address memcpy fix o VLAN support Signed-off-by: Jeff Garzik [PATCH] Remove Baget network driver Remove the support for Baget, a Russian embedded system suffering from bitrot for way too long. Signed-off-by: Jeff Garzik [PATCH] IOC3 driver updates o Fix build if CONFIG_SERIAL_8250 is disabled. o Add support for setting the MAC address via ifconfig o Generally try to pretend we're a better PCI citizen than the broken piece of silicon that the IOC3 is actually is. Signed-off-by: Jeff Garzik [PATCH] Jazzsonic driver updates o Resurrect the Jazz SONIC driver after years of it not having been tested o Convert from Space.c initialization to module_init / platform device. Signed-off-by: Jeff Garzik [PATCH] Marvell MV-64340 driver upda o Momentum Ocelot 3 also features a MV-64340 o Momentum Jaguar ATX does not need the special casing in the driver. Signed-off-by: Jeff Garzik [PATCH] Meth driver updates General driver updates, now approaching reliability of some definition. Signed-off-by: Jeff Garzik [PATCH] S2IO syntax fixes Syntactic nitpicking - C wants a space between the "include" and "<" just gcc happens to be tollerant. Signed-off-by: Jeff Garzik [PATCH] SB1250 driver updates o Fix initialization of internal sbmac eth1 o Clean up comments o Add in new module parameter handling o Fix printing of device name before register_netdevice Signed-off-by: Jeff Garzik [PATCH] SGI Seeq updates o Support for setting the MAC address o Make some sort of attempt at dealing with multicast in order to support IPv6 etc. The Seeq 8003 was built in the assumption nobody was ever going to need multicast, it seems. Signed-off-by: Jeff Garzik Fix bugs generating and parsing ConfigROMs with Extended ROM entries. Signed-off-by: Steve Kinneberg Signed-off-by: Jody McIntyre Fix bug where 4 times Extended ROM Leaf size would be read when parsing in csr1212. Added NULL check for csr1212_rom_cache_malloc return value. Signed-off-by: Steve Kinneberg Signed-off-by: Jody McIntyre Fix buffer overflow in csr1212.c. Signed-off-by: Steve Kinneberg Signed-off-by: Jody McIntyre Use wmb() to make sure things get flushed before setting the wakup bit. Signed-off-by: Ben Collins Submitted-by: Keith Bengston Signed-off-by: Jody McIntyre Fix GCC 3.4 compile error with inline keyword in function prototype. Signed-off-by: Adrian Bunk Signed-off-by: Steve Kinneberg Signed-off-by: Jody McIntyre kbuild: Makefile.lib - small cleanup Combine duplicate code in two smaller 'functions' Signed-off-by: Sam Ravnborg fix nodemgr parsing subdirectories in unit directory and tiny bugfix in sbp2 unit directory parsing (for PowerFile) Signed-off-by: Jody McIntyre kbuild: Introdude KBUILD_NOCMDDEP When tossing around with different gcc compilers there is no way to tell kbuild to ignore the new name of the compiler. The new option KBUILD_NOCMDDEP tell kbuild not to check the commandline for changes. This should be used with care because the resulting kernel may become inconsistent if one part is build with 2.96, and another part build with 3.3.4. So use only when you know what you are doing. Syntax: make KBUILD_NOCMDDEP=1 Original request for this feature came from hpa. Signed-off-by: Sam Ravnborg kbuild arch/i386: make install no longer check vmlinux make install is often executed as root or on a different mechine via NFS To avoid updating vmlinux due to directory changes or similar the install target for i386 no longer has vmlinux as a prerequisite. Now modules_install and install are aligned in this respect. Signed-off-by: Sam Ravnborg kbuild: default value for INSTALL_PATH set to /boot Most architectures uses /boot for there kernel image, so let this be reflected by the kernel. If INSTALL_PATH shell variable is set then this will have effect. If INSTALL_PATH is set one the commanline to make like this: make INSTALL_PATH=/nfs/boot install then this will override both kbuild and shell variable. If an arch prefer another default this must be set in the arch Makefile Signed-off-by: Sam Ravnborg kbuild: (trivial) spelling fix in comment in Makefile From: John Kacur Signed-off-by: Sam Ravnborg kbuild: add '--extra=+f' to ctags in Makefile in order to search for file names From: John Kacur Signed-off-by: Sam Ravnborg kbuild: Warn when building external modules without modversions This adds a warning when building external modules (M= or SUBDIRS= syntax) and there is no Module.symvers in the object tree. A missing Module.symvers is a clear sign that the kernel tree itself was never compiled. The resulting modules will work, but no symbol version information will be attached to kernel symbols the module uses (because that information comes from Module.symvers), and so the module will be more unsafe. Futhermore the external module will not record what other modules it is depended on. The test works with CONFIG_MODVERSIONS enabled or disabled. Signed-off-by: Andreas Gruenbacher Signed-off-by: Sam Ravnborg kbuild: Nicer printout when Module.symvers is missing Signed-off-by: Sam Ravnborg kbuild: Dont include absolute filenames in binaries The kbuild utilities are compiled with absolute patch names, so paths starting with $RPM_BUILD_ROOT would end up in the binaries. To avoid this, remove all references to __FILE__ (directly and indirectly via assert()). Signed-off-by: Andreas Gruenbacher Signed-off-by: Sam Ravnborg kernel/configs.c: make a variable static This patch makes a needlessly global variable static. Signed-off-by: Adrian Bunk Acked-by: Randy Dunlap Signed-off-by: Sam Ravnborg kallsyms: kallsyms.c - make some code static This patch makes some needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: Sam Ravnborg kbuild: update scripts/namespace.pl The patch below removes some false positives I've observed. Signed-off-by: Adrian Bunk Signed-off-by: Sam Ravnborg kbuild: make 'make help' show all *config targets and update descriptions slightly. "make help" doesn't show "make randconfig" nor "make config" as options and the description of oldconfig could be better (IMHO). Patch below adds the missing targets to the help and updates the description of oldconfig. Signed-off-by: Jesper Juhl Signed-off-by: Sam Ravnborg The wrong version of the parmtype patch was merged, incompletely, and the part that got merged got broken on the way. Here are the fixes: Move __MODULE_INFO to modparam.h: This macro is used in modparam.h; there are users who include this header but not module.h. The latter includes modparam.h already. __MODULE_INFO(parmtype, name##type, #name ":" #type) does not evaluate to __MODULE_INFO(parmtype, footype, "foo:int") as was the idea, but to __MODULE_INFO(parmtype, fooint, "foo:int") when type is bound to int. In more complicated cases, we get syntax erros. Re-introduce the __MODULE_PARM_TYPE macro; this is cleaner than renaming the type parameter. Add the parmtype definition which was dropped during the merge to to the obsolete but still heavily used MODULE_PARM macro. Signed-off-by: Andreas Gruenbacher Signed-off-by: Sam Ravnborf Christoph Hellwig: avoid obsolete scsi APIs in sbp2 Signed-off-by: Jody McIntyre Olaf Hering: Fix sw-suspend issue sw-suspend does not work with our kernel. khpsbpkt will die because down_interruptible returns -EINTR on suspend. As a result, hpsb packet delivery will not work anymore after resume. Signed-off-by: Jody McIntyre This patch makes sure we check the return value of copy_to_user() in drivers/ieee1394/raw1394.c::raw1394_read() with the added bonus of silencing this warning: include/asm/uaccess.h: In function `raw1394_read': drivers/ieee1394/raw1394.c:446: warning: ignoring return value of `__copy_to_user', declared with attribute warn_unused_result I've submitted this before, but never got an ACK or NACK, and the patch is still relevant against latest Linus bk (2.6.10-rc2-bk11 atm). Signed-off-by: Jesper Juhl Signed-off-by: Jody McIntyre From Stefan Richter: In trunk/ohci1394.c, duplicate code has slipped in which sets max_packet_size to 512 and prints a log notice. See "Serial EEPROM Sanity check" further down in ohci_initialize(). Since the latter code is more appropriate, the former is deleted by the attached patch. Signed-off-by: Jody McIntyre Damien Douxchamps: I have tested and updated a patch from Randy Dunlap that fixes missing entries in the modules.ieee1394map file. The patch is against latest SVN (1234). The patch adds the following entries for IIDC cameras that would not be detected otherwise: video1394 0x0000000c 0x000000 0x000000 0x00a02d 0x000101 video1394 0x0000000c 0x000000 0x000000 0x00a02d 0x000102 raw1394 0x0000000c 0x000000 0x000000 0x00a02d 0x000101 raw1394 0x0000000c 0x000000 0x000000 0x00a02d 0x000102 This is necessary because the IIDC consortium interpreted the 1394 specifications differently. They have been summoned by the 1394TA to change their numbering policy so that these entries are final and will not grow forever in number. Signed-off-by: Jody McIntyre Fixes a bug in the channel reservation : If dma resources allocation fails, the channel was not freed. I fixed that by marking the channel allocated after the dma resources allocation succeeded. Also changed the error return value from ioctl. Signed-off-by: Philippe De Muyter Signed-off-by: Dan Dennedy Signed-off-by: Jody McIntyre Change some variables and functions that were needlessly global static. Removes several functions that weren't used anywhere in the kernel. Removes many unnecessary EXPORT_SYMBOL's. Signed-off-by: Adrian Bunk Signed-off-by: Jody McIntyre Some Lindent cleanup (most removed to its own patch by scjody) Adds basic sysfs support for udev etc. Signed-off-by: Daniel Drake Signed-off-by: Jody McIntyre Cleanup with Lindent. Signed-off-by: Jody McIntyre Move simple class to ieee1394 core and register as /sys/class/ieee1394_protocol. Add sysfs/udev support to video1394 and dv1394 using simple class ieee1394_protocol. Signed-off-by: Dan Dennedy Signed-off-by: Jody McIntyre Dan Dennedy: Ignore any return value from devfs since it is non-critical, and a EEXIST return prevents the module from loading! Signed-off-by: Jody McIntyre This closes a small vmalloc leak on insmod/rmmod. Signed-off-by: Jim Radford Signed-off-by: Jody McIntyre We need to update the old csr1212 cache's bus generation after a bus reset once we decide it is still valid. Closes a vmalloc leak on *every* bus reset. Signed-off-by: Jim Radford Signed-off-by: Jody McIntyre Sets the sendtime of a packet _before_ adding it to pending_packet_queue, to prevent premature expiry (which leads to "unsolicited response packet" errors, among other things). Signed-off-by: Jody McIntyre dma.c vfree() checking cleanups. Signed-off by: James Lamanna Signed-off-by: Domen Puncer Signed-off-by: Jody McIntyre Fixed removal of old partial datagrams. Since max_partial_datagrams can be changed at runtime, there may be _more_ than max_partial_datagrams in the list. Also removed obsolote comment. Signed-off-by: Jody McIntyre Bugfix for Logical Unit Number in unit directory -- popular with multi-bay enclosures -- while not breaking Logical Unit Directory. Signed-off-by: Dan Dennedy Signed-off-by: Jody McIntyre Dan Dennedy: bugfix for logical unit directory lun number Signed-off-by: Jody McIntyre Adds a disable_irm option to ieee1394.ko which disables all Isochronous Resource Manager functionality, useful to work around certain problems, e.g. iPod detection. Signed-off-by: Jody McIntyre Dan Dennedy: reorganise LUN handling to resolve oops Signed-off-by: Jody McIntyre [PATCH] kbuild: Use -Wno-pointer-sign for gcc 4.0 Compiling an allyesconfig kernel straight with a gcc 4.0 snapshot gives nearly 10k new warnings like: warning: pointer targets in passing argument 5 of `cpuid' differ in signedness Since the sheer number of these warnings was too much even for the most determined kernel janitors (I actually asked ;-) and I don't think it's a very serious issue to have these mismatches I submitted an new option to gcc to disable it. It was incorporated in gcc mainline now. This patch makes the kernel compilation use it. There are still quite a lot of new warnings with 4.0 (mostly about uninitialized variables), but the compile log looks much nicer nnow. Signed-off-by: Andi Kleen Signed-off-by: Sam Ravnborg [PATCH] kbuild: no redundant srctree in tags file Avoid cluttering the tags/TAGS generated file with $(srctree) in the paths if this is not needed. This has two advantages: - Saving about 20M on the size of the resulting tags file (which are used currently to store the absolute path of the file names rather than the relative one) when KBUILD_OUTPUT is not set. - Keeping the tags file valid when the directory is renamed. No change is done for who does make tags O=..., if this is wanted (I would find that incommodous and non-typical for a developer, but anyway I've not ruined functionality in that case). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Sam Ravnborg [PATCH] kbuild: fix for i386 cross compile I used to be be able to cross compile for i386 on my x86_64 machine, but recently something (gcc/binutils?) changed, and it stopped working. Following patch makes cross compile work with: make ARCH=i386 CFLAGS_KERNEL="-m32" AFLAGS_KERNEL="-m32" bzImage Without the patch I'm getting the following error: SYSCALL arch/i386/kernel/vsyscall-syms.o /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/bin/ld: Relocatable linking with relocations from format elf32-i386 (arch/i386/kernel/vsyscall-sysenter.o) to format elf64-x86-64 (arch/i386/kernel/vsyscall-syms.o) is not supported collect2: ld returned 1 exit status Signed-off-by: Andrew Morton Signed-off-by: Sam Ravnborg [PATCH] kbuild: skip depmod if not executable I've cross-compiled Linux on i386-netbsdelf2.0 for arm-linux for quite some time now and everything seems to be working perfectly except for one minor glitch in the build process that halts module installation (needlessly, IMHO). Specifically, if System.map exists $(DEPMOD) is run ("for convenience" as the comment says in the Makefile). However, on NetBSD I don't have $(DEPMOD) available so the command fails and make exits with non-zero exit status. Please consider the attached patch to add a check for $(DEPMOD) so that missing $(DEPMOD) won't halt the whole build process. From: Tero Niemela Signed-off-by: Sam Ravnborg Fix revisions to match svn Signed-off-by: Jody McIntyre Fix whitespace/indenting to match SVN. Signed-off-by: Jody McIntyre Dan Dennedy: change allocation to GPF_ATOMIC to fix timing issue when this is called from raw1394.c:arm_register(). Signed-off-by: Jody McIntyre Fix PCILynx bus resets. Signed-off-by: Ben Collins Signed-off-by: Jody McIntyre Update ieee1394 maintainers. Signed-off-by: Jody McIntyre pcilynx.c: pcilynx: reduce stack usage in add_card(), from 800 to 308 bytes (on i386), by dynamically allocating struct i2c_adapter i2c_adapter; /* 492 bytes */ Signed-off-by: Randy Dunlap Signed-off-by: Jody McIntyre [PATCH] Use netdev_priv in YAM driver o Convert the YAM driver to use netdev_priv(). o If dev is valid there is no point in checking netdev_priv()'s return value for being NULL. o Fix build warning. Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in mkiss driver Convert the mkiss driver to use netdev_priv(). Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in bpqether driver Convert the bpqether driver to use netdev_priv(). Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in baycom_par driver Eleminate the last remaining instance of a direct reference to the priv member of struct net_device. This was debug code only, so use BUG_ON() instead of printk. Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in baycom_ser_hdx driver Eleminate the last remaining instance of a direct reference to the priv member of struct net_device. This was debug code only, so use BUG_ON() instead of printk. Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in hdlcdrv driver Eleminate the last remaining instance of a direct reference to the priv member of struct net_device. The paranoia check code of the same type that has been eleminated from many other drivers, so do this here also. Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in baycom_ser_fdx driver Eleminate the last remaining instance of a direct reference to the priv member of struct net_device. This was debug code only, so use BUG_ON() instead of printk. Signed-off-by: Jeff Garzik [PATCH] Use netdev_priv in baycom_epp driver Eleminate the last remaining instance of a direct reference to the priv member of struct net_device. The paranoia check code of the same type that has been eleminated from many other drivers, so do this here also. Signed-off-by: Jeff Garzik [PATCH] Reformat DMASCC driver Feed dmascc through indent, remove the RCS $Id string. Signed-off-by: Jeff Garzik [PATCH] remove dp83840.h dp83840.h is included once but none of the definitions it contains is actually used. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] remove bogus exports in ppp From: Paul Mackerras Remove unnecessary exports from ppp_generic.c. Signed-off-by: Christoph Hellwig Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik [PATCH] ray_cs: reduce stack usage (sockaddr) Signed-off-by: Jeff Garzik [PATCH] eepro100 kill obsolete ifdefs pci layer should provide enough dummy functions for such ugly hacks to be unneccessary these days. Please apply, Signed-off-by: Pavel Machek Signed-off-by: Jeff Garzik [PATCH] smc91x: allow RX of VLAN packets This patch allows for VLAN packets to be received. The initial patch was from Andrew de Quincey. While there, it also adds a test against an impossible hardware state in theory but that happened in practice where the chip returns a packet length of 0 which, once the status words have been substracted, causes the transfer of data with a negative length. Flaky hardware is probably to blame here but better guard ourselves against that than crashing the kernel. David Brownell was the happy victim of such hw. Signed-off-by: Nicolas Pitre Signed-off-by: Jeff Garzik [PATCH] use datacs in smc91x driver From: Ian Campbell Below is a patch to support the second 32-bit DATACS chipselect in the smc91x driver to transfer data. Support is enabled by adding a resource to the platform device named 'smc91x-data32'. My platform has a 16-bit chip select for the primary IO region and no DMA. I found that throughput went from roughly 50mbit/s to 80mbit/s. I tested by throwing UDP packets at it using mgen (9000 packets/second with UDP payload of 1472 bytes is roughly 100mbit/s, I think) and counting the packets received in 60s, I then did the same for transmitting. The measurements are very rough but the improvement seems fairly significant to me. Patch was compiled for lubbock and neponset and compiled and tested on my PXA platform. Signed-off-by: Ian Campbell Signed-off-by: Nicolas Pitre Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik 1394 uses skbs, so select NET. kbuild: Fix debugging leftover So now check for commandline options actually works again. Signed-off-by: Sam Ravnborg prismtech: Avoid recompile when changing compile dir -I$(PWD) is superflous - and caused absolute path to be stored in build command - this casuses recompile when using symlink to kernel. Also deleted commented out -DCONFIG_PRISM_WDS. CONFIG_PRISM_WDS are not present in any of the source files. Signed-off-by: Sam Ravnborg [IPV4]: Splitting of ip_route_{in,out}put_slow(). From: Einar Lueck This patch splits up ip_route_[in|out]put_slow in inlined functions. Basic idea: * improve overall comprehensibility * allow for an easier application of patch for improved multipath support Signed-off-by: David S. Miller Re-added Ben Collins to 1394. Signed-off-by: Jody McIntyre [PATCH] Add compat_ioctl to SD Add compat_ioctl entry point to SD Signed-off-by: Andi Kleen Signed-off-by: James Bottomley [PATCH] Add compat_ioctl to st Call new compat_ioctl host vector from tape driver Signed-off-by: Andi Kleen Signed-off-by: James Bottomley [PATCH] Add comment for compat_ioctl to SR Add comment that SR doesn't support compat_ioctl (because it doesn't pass down any driver ioctls right now) Signed-off-by: Andi Kleen Signed-off-by: James Bottomley [PATCH] Add compat_ioctl to osst Add compat_ioctl to osst Signed-off-by: Andi Kleen Signed-off-by: James Bottomley [PATCH] Convert aacraid to compat_ioctl Convert aacraid driver to the compat_ioctl entry points. I don't have hardware, so this is only compile tested, but I just did some transformations on the existing code. Signed-off-by: Andi Kleen Signed-off-by: James Bottomley [PATCH] Add compat_ioctl to SG Add compat_ioctl to SG driver Signed-off-by: Andi Kleen Signed-off-by: James Bottomley [PATCH] Convert megaraid2 to compat_ioctl Convert megaraid2 driver to new compat_ioctl entry points. Signed-off-by: Andi Kleen Signed-off-by: James Bottomley [PATCH] Add compat_ioctl to mptctl Convert mptctl to compat_ioctl. I also changed it to unlocked_ioctl while I was on it. Signed-off-by: Andi Kleen Signed-off-by: James Bottomley mptfusion: delete watchdogs timers from mptctl and mptscsih From: Moore, Eric Dean 1) mptscsih.c: I have changed task management requests so they complete in same thread before returning to os. I removed the TMtimer code. (2) mptctl.c: I have deleted both TMtimer and timer code. Replaced with wait_event_interruptible_timeout. So commands are now completed in same thread. (3) mptctl_do_fw_download - nasty polling of global parameters that are set in contents of interrupt handler(mptctl_reply), now using wait_event_interruptible_timeout. (4) I have cleaned up mptctl_reply. Signed-off-by: Eric Moore Signed-off-by: James Bottomley SCSI: fix compat_ioctl compile warnings Signed-off-by: James Bottomley [PATCH] drop some attibutes from the FC transport class I think the hardware_version, firmware_version, rom_version and driver_version don't belong to the FC transport class, there's nothing specific to FC or even SCSI specific in them. Signed-off-by: James Bottomley SCSI: Add device io statistics From: James.Smart@Emulex.Com Adds io statistics (requests, completions, error count) as generic attributes for scsi devices. Signed-off-by: James Bottomley SCSI: fix io statistics compile warnings Signed-off-by: James Bottomley Input: i8042 - move panicblink with the rest of module parameters, add proper entry to kernel-parameters.txt Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: add serio->start() and serio->stop() callback methods that are called whenever serio port is finishes being registered or unregistered. The callbacks are useful for drivers that share interrupt between several ports and there is a danger that interrupt handler will reference port that was just unregistered. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: i8042 - make use of new serio start() and stop() callbacks to ensure that i8042 interrupt handler that is shared among several ports does not reference deleted ports. Also rename i8042_valies structure to i8042_port, consolidate handling of KBD, AUX and MUX ports, rearrange interrupt handler code. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: rearrange serio event processing to get rid of duplicate events - do not sumbit event into the event queue if similar event has not been processed yet; also once event has been processed check the queue and delete events of the same type that have been accumulated in the mean time. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: evdev - return -EINVAL from evdev_read if read buffer is too small. Based on a patch by James Lamanna. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: synaptics - use DMI to detect Toshiba Satellite notebooks and automatically reduce touchpad reporting rate to 40 pps as they have trouble handling high rate (80 pps). Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: twidjoy - apparently Kconfig and Makefile disagreed on the name for config option so the module was never built. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: use msecs_to_jiffies instead of homegrown ms_to_jiffies when setting timer for autorepeat handling. This will make sure that autorepeat is scheduled correctly when HZ != 1000. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: use msecs_to_jiffies instead of manually calculating delay for Toshiba bouncing keys workaround to the code works with HZ != 1000. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: remove serio->private in favor of using driver-specific data in device structure, add serio_get_drvdata/serio_put_drvdata to access it. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: replace serio's type field with serio_id structure and add id_table to serio drivers to split initial matching and probing routines for better sysfs integration and to assist hotplug scripts in loading proper drivers. Add serio_hotplug to notify userspace about new ports. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: make serio implementation more in line with standard driver model implementations. serio_register_port is always asynchronous to allow freely registering child ports. When deregistering serio core still takes care of destroying children ports first. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: make serio's connect routines return error code instead of void. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: i8042 - fix 'noloop' module parameter description Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: serio - export id.type, id.proto, id.id and id.extra as sysfs attributes to assist hotplug scripts in recovering lost boot-time serio hotplug events. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: Make some needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: i8042 - call i8042_platform_exit to release resources acquired by i8042_platform_init when controller initialization fails. Signed-off-by: Prarit Bhargava Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Don't even try to reset the i8042 controller when it's not willing to talk to us at all - it's probably not there. Signed-off-by: Vojtech Pavlik input: This patch adds support to uinput for Linux's force feedback interface. With these changes, it's possible to write drivers for force feedback joysticks and similar devices in userspace. It also adds a way to set the physical path of devices created via uinput, and it has a couple trivial bugfixes. Signed-off-by: Micah Dowty Signed-off-by: Andrew Morton Signed-off-by: Vojtech Pavlik input: joydump_connect: reduce stack usage from 2048 to 44 bytes (on i386) by allocating 'buf' dynamically; struct joydump buf[BUF_SIZE]; // 2048 bytes Signed-off-by: Randy Dunlap Signed-off-by: Vojtech Pavlik input: mousedev_packet() incorrectly clears list->ready when called with "tail == head - 1". The effect is that the last mouse event from the hardware isn't reported to user space until another hardware mouse event arrives. This can make the left mouse button get stuck when tapping on a touchpad. When this happens, the button doesn't unstick until the next time you interact with the touchpad. Signed-off-by: Peter Osterlund Signed-off-by: Vojtech Pavlik input: Some Synaptics touchpads have a middle mouse button that also works as a scroll wheel. Scroll data is reported as packets with w == 2 and the scroll amount in byte 1, treated as a signed character. For some reason, the smallest possible wheel movement is reported as a scroll amount of 4 units. This amount is typically spread out over more than one packet, so the driver has to accumulate scroll delta values to correctly deal with this. Signed-off-by: Peter Osterlund Signed-off-by: Vojtech Pavlik input: Here it is, with the suggestions from Pete and Dmitry included. The patch does the following: * Compensates for the lack of floating point arithmetic by keeping track of remainders from the integer divisions. * Removes the xres/yres scaling so that you get the same speed in the X and Y directions even if your screen does not the same aspect ratio as your touchpad. * Sets scale factors to make the speed for synaptics and alps equal to each other and equal to the synaptics speed from 2.6.10. Signed-off-by: Peter Osterlund Signed-off-by: Vojtech Pavlik input: Correct Y axis range for ALPS touchpads. From: Peter Osterlund Signed-off-by: Vojtech Pavlik input: Add support for Logitech MX300 mouse in PS/2 mode. From: Daniel Johnson Signed-off-by: Vojtech Pavlik input: Add support for the Logitech MX1000 mouse in PS/2 mode. input: Cleanup the Kconfig menus for the input subsystem. From: Roman Zippel Signed-off-by: Vojtech Pavlik [PATCH] SCSI sim710.c: make some code static This patch makes some needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley input: When hardware tapping is disabled on an ALPS touchpad, the touchpad generates exactly the same data for a single tap and a fast double tap. The effect is that the second tap in the double tap sequence is lost. To fix this problem, this patch enables hardware tapping and converts the resulting tap and gesture bits to standard finger pressure values (z), which is what mousedev.c and the userspace X driver expects. Signed-off-by: Peter Osterlund Signed-off-by: Vojtech Pavlik input: Only parse a "z == 127" packet as a relative Dualpoint stick packet if the touchpad actually is a Dualpoint device. The Glidepoint modelsdon't have a stick, and can report z == 127 for a very wide finger. If such a packet is parsed as a stick packet, the mouse pointer will typically jump to one corner of the screen. Signed-off-by: Peter Osterlund Signed-off-by: Vojtech Pavlik input: This patch makes two needlessly global functions static. Signed-off-by: Adrian Bunk Signed-off-by: Vojtech Pavlik Input: make serio drivers register asynchronously. This should speed up boot process as some drivers take a long time probing for supported devices. Also change __inline__ to inline in serio.h Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Add support for Sharp Zaurus SL-C7cc Corgi keyboards. From: Richard Purdie Signed-off-by: Vojtech Pavlik input: Add support for Sharp SL-C7xx touchscreen (Corgi). From: Richard Purdie Signed-off-by: Vojtech Pavlik [PATCH] ata_pci_remove_one used freed memory Attempting to unload a serial ATA driver module gave me a kernel memory fault. I think this problem occurs in all configurations, but I should mention that my configuration may be slightly unusual in that I configured my BIOS not to do IDE emulation with SATA disks, and I don't actually have any disks plugged in. The problem was that ata_pci_remove_one would call scsi_host_put(ap->host), which would free the memory used to hold host_set->ports, but host_set->ports was used later in ata_pci_remove_one. So, the following patch reorders some of the steps in ata_pci_remove_one and seems to eliminate the problem, at least to the extent that I can unload and reload the module, although I do not have a SATA disk handy for testing (I'm expecting one to arrive later today). The patch actually makes the code four lines shorter, although two of those lines come from putting an assignement and variable declaration in the same line. Since the patch is a little hard to read, here is a description of the edit steps. 1. Moved pci_release_regions() to toward the end of the routine to facilitate merging the loops before and after it. Also, I think that calls that are good candidates for consolidating into the bus-level code in the future (instead of individual drivers) are best put at the beginning or end of the driver routines so that it is clearer if there would be problems doing such consolidation. 2. Moved the cacluation of ioaddr into the only if-branch that uses it. 3. Moved the call to scsi_host_put to after the code that checks ATA_FLAG_NO_LEGACY. Signed-off-by: Jeff Garzik input: New driver for ICS MicroClock MK712 TouchScreens. Signed-off-by: Vojtech Pavlik Input: add resume method to serio bus so ports are properly set up at resume time. Remove calls to serio_reconnect from i8042 as they should now be reconnected in course of regular resume process. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Add MCC devices to HID blacklist, cleanup whitespace along the way. From: Mark Glines Signed-off-by: Vojtech Pavlik input: Fix poll() behavior of input handlers on disconnect. Signed-off-by: Vojtech Pavlik input: HP HIL support (from PARISC Linux tree). From: Helge Deller Signed-off-by: Vojtech Pavlik input: Typo fix in atkbd.c comment From: Christian Ludwig Signed-off-by: Adrian Bunk Signed-off-by: Vojtech Pavlik I have a buggy USB HID device (APC SmartUPS) in which the designers forgot that ReportCount is a global item. Consequently, according to the report descriptor, several reports have multiple copies of the same usage in each field. When you actually query the device, however, only a single copy of the usage is returned. hid-core catches the expected vs. actual length mismatch and fails the transfer. This effectively makes the buggy reports inaccessible even though enough data is present to populate one usage (which is all userspace wants anyway). This patch changes hid-core to only warn (if debug is enabled) on such reports rather than failing the transfer. Signed-off-by: Adam Kropelin Signed-off-by: Vojtech Pavlik input: Document the adapter schematic needed for parkbd.c, right in the source. Signed-off-by: Vojtech Pavlik input: Typo fix in parkbd.c comment Signed-off-by: Vojtech Pavlik input: Fix ExplorerPS/2 wheel emulation for wheel events > 8 ticks. Signed-off-by: Vojtech Pavlik input: This patch adds support for a Wacom new tablet, Intuos3, and its associated tools. From: Ping Cheng Signed-off-by: Andrew Morton Signed-off-by: Vojtech Pavlik input: ere's a patch that removes a few pointless comparisons; "scancode" is unsigned so it can never be <0 which makes the test pointless. Also, there are a few instances where signed and unsigned variables are comared, and as far as I can tell they really should just all be unsigned. Signed-off-by: Jesper Juhl Signed-off-by: Vojtech Pavlik input: This patch removes the bouncing email address of Victor Krapivin from MODULE_AUTHOR. Signed-off-by: Adrian Bunk Signed-off-by: Vojtech Pavlik input: This patch fixes an oops in ns558 when no ports are found and at the same time the driver gets registered with the PnP subsystem. Since there is no need for port->type struct member, it removes it. Patch based on a patch from Matthieu Castet and Adam Belay Signed-off-by: Vojtech Pavlik Input: fix compie error in twidjoy.c Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Do a kill_fasync() in input handlers on device disconnect to notify a client using poll() that the device is gone. Signed-off-by: Vojtech Pavlik input: Properly set input.phys in Griffin Powermate driver. From: Duraid Madina Signed-off-by: Vojtech Pavlik input: Now that ACPIPnP is available, replace ACPI probing in i8042 with PnP probing. From: Matthieu Castet Signed-off-by: Vojtech Pavlik input: Fix i8042 PnP printk()'s and pnp_driver name. Signed-off-by: Vojtech Pavlik input: Make the polling interval for mice a configurable parameter of the HID driver. This is useful when a faster response from a mouse is beneficial, ie games. Signed-off-by: Mikkel Krautz Signed-off-by: Vojtech Pavlik [PATCH] convert pci_dev->slot_name usage to pci_name() Prepare for removal of pci_dev->slot_name Signed-off-by: Dave Jones Signed-off-by: Greg Kroah-Hartman [PATCH] Remove pci_dev->slot_name This is a pointer to dev.bus_id, which is properly accessed through the pci_name() function. Signed-off-by: Dave Jones Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: Remove unneeded instructions from ibmphp_pci.c this patch removes some unneeded code from ibmphp_pci.c. First I thought it is a bug and the second line should have been "sec_no = (int) sec_number". But than I found exactly the same read only 9 lines higher and after it the line I expected the second one to be. Between the 2 pci_bus_read_config_byte's are only some checks so I don't expect them to return different results. And sec_no is and int so removing this wont change anything at all. Signed-off-by: Rolf Eike Beer Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: pci_proc_domain There's no need for the architectures to know how to name busses, so replace pci_name_bus with pci_proc_domain -- a predicate to allow architectures to choose whether domains are included in /proc/bus/pci or not. I've converted all architectures but only tested ia64 and a CONFIG_PCI_DOMAINS=n build. Signed-off-by: Matthew Wilcox Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: Make pci_claim_resource __devinit ia64 calls pci_claim_resource() from pcibios_fixup_bus(), which is __devinit, so pci_claim_resource() needs to be __devinit too. Signed-off-by: Matthew Wilcox Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: fix pci_remove_legacy_files() crash The legacy_io which is the member of pci_bus struct might be NULL. It should be checked. This patch checks 'b->legacy_io', NULL or not. Signed-off-by: MUNEDA Takahiro Acked-by: Jesse Barnes Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: NUMA-Q PCI config access arg validation Fix NUMA-Q PCI config access bus validation. "bus" indexes into BUS2QUAD, which is mp_bus_id_to_node[MAX_MP_BUSSES]. This depends on the "pci_raw_ops should use unsigned args" patch I posted earlier today (no functional dependency; it just happens to be very close textually). Signed-off-by: Bjorn Helgaas Signed-off-by: Martin J. Bligh Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: pci_raw_ops should use unsigned args Convert pci_raw_ops to use unsigned segment (aka domain), bus, and devfn. With the previous code, various ia64 config accesses fail due to segment sign-extension problems. ia64: - With a signed seg >= 0x8, unwanted sign-extension occurs when "seg << 28" is cast to u64 in PCI_SAL_EXT_ADDRESS() - PCI_SAL_EXT_ADDRESS(): cast to u64 *before* shifting; otherwise "seg << 28" is evaluated as unsigned int (32 bits) and gets truncated when seg > 0xf - pci_sal_read(): validate "value" ptr as other arches do - pci_sal_{read,write}(): return -EINVAL rather than SAL error status arch/i386/pci/direct.c | 12 ++++++---- arch/i386/pci/mmconfig.c | 6 +++-- arch/i386/pci/numa.c | 6 +++-- arch/i386/pci/pcbios.c | 6 +++-- arch/ia64/pci/pci.c | 53 ++++++++++++++++++--------------------------- arch/x86_64/pci/mmconfig.c | 8 ++++-- include/linux/pci.h | 6 +++-- 7 files changed, 51 insertions(+), 46 deletions(-) Signed-off-by: Bjorn Helgaas Acked-by: Matthew Wilcox Signed-off-by: Greg Kroah-Hartman input: For now, a bug in the PSX controllers support in gamecon prevents hot-swapping of such controllers. If a controllers is removed then all the controllers stop working and cpu usage gets high. The attached patch (against 2.6.11-rc3) corrects this bug by checking the information read from the controller. If the message length is bigger than the maximum possible, then it means the controller is not there and therefore this value should be discarded. Note that this is a re-send of a previous patch now that the patch of Peter (which had to be applied before this one) has been intregrated in the vanilla kernel. It's Peter's version modified to apply cleanly against 2.6.11-rc3 plus a fix in the comment. Signed-off-by: Peter Nelson Signed-off-by: Eric Piel Input: make sure that all instances of ns558 are released upon module unload. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: On some architectures the atomic ops return `long'. Fix a printk() in serio.c to take that into account. Signed-off-by: Andrew Morton Signed-off-by: Vojtech Pavlik input: A Chicony keyboard doesn't like get_report on its non-exisiting PS/2 mouse interface. Add to HID blacklist. From: Stuart Hayes Seen-by: Pete Zaitcev Signed-off-by: Vojtech Pavlik input: Change touchscreen drivers NOT to rescale their values to a 4:3 shape. Signed-off-by: Vojtech Pavlik input: Move #include inside #ifdef __KERNEL__ in serio.h, to make it userspace-compilable. Signed-off-by: Vojtech Pavlik input: Fix range checks for the HIDIOC[GS]USAGES ioctl() to allow reading full number of bytes. From: Hal Tolley Signed-off-by: Vojtech Pavlik input: Add a new ID to the Logitech ForceFeedback joystick driver. From: Rainer Kümmerle Acked-by: Johann Deneux Signed-off-by: Vojtech Pavlik input: this patch turns off the pc speaker when pcspkr.ko is unloaded, else it would never stop Signed-off-by: Matthieu Castet Signed-off-by: Vojtech Pavlik [PATCH] arch/i386/kernel/pci/irq.c: Wrong message output The following has been reported in the wild for kernel 2.6.8-24: PCI: Enabling device 0000:00:05.0 (0000 -> 0002) PCI: No IRQ known for interrupt pin @ of device 0000:00:05.0. Probably buggy MP table. It should read "No IRQ known for interrupt pin A", but the 'pin' variable has already been decremented (from 1 to 0), so the line: printk(KERN_WARNING "PCI: No IRQ known for interrupt pin %c of device %s.%s\n", 'A' + pin - 1, dev->slot_name, msg); causes "pin @" to be output, because 'A' + 0 - 1 == '@'. The supplied patch should fix it. It also removes a redundant check for a nonzero pin. Signed-off-by: Mark F. Haigh Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: Dynids - passing driver data Currently, code exists in the pci layer to allow userspace to specify driver data when adding a pci dynamic id from sysfs. However, this data is never used and there exists no way in the existing code to use it. This patch allows device drivers to indicate that they want driver data passed to them on dynamic id adds by initializing use_driver_data in their pci_driver->pci_dynids struct. The documentation has also been updated to reflect this. Signed-off-by: Brian King Signed-off-by: Greg Kroah-Hartman [NET]: Remove protocol specific hacks in skb_ip_make_writable() These cause more trouble than anything else. In fact these silly checks keep the ipt action from working with targets that mangle the data area. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller [IPV6]: match TCP port selection behavior with ipv4 This patch makes TCP over IPV6 select ports the same way the current TCPv4 code does. It uses a hash function to provide a starting offset and a free running counter to provide seed. This changes the port selection semantics to match TCPv4 as well. If the port is in use but to a different remote address, it will get reused. It looks like the TCPv6 code was not updated when the TCPv4 code changed. Now the code in ipv4/tcp_ipv4.c and ipv6/tcp_ipv6.c are almost identical for tcp_hash_connect. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller Resolve ATM conflicts. [IPSEC]: Stop using dst->xfrm Here is a precursor to the xfrm dst consolidation that I talked about. In order to be able to store multiple SAs in one dst, we need to stop using dst->xfrm directly. The following patch does that for the ->output() functions. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Input: alps - fix protocol validation rules causing touchpad to lose sync if an absolute packet is received after a relative packet with negative Y displacement. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Add support for serial ELO touchscreens, including Elo IntelliTouch, AccuTouch and SecureTouch. Signed-off-by: Vojtech Pavlik input: Fix a code example in a comment in hiddev.c From: Jens B. Jorgensen Signed-off-by: Vojtech Pavlik input: Fix Elo touchscreen touch detection. Signed-off-by: Vojtech Pavlik Input: rename gameport->driver to gameport->port_data in preparation to sysfs integration. Signed-off-by: Dmitry Torokhov Input: more renames in gameport in preparations to sysfs integration - gameport_dev -> gameport_driver - gameport_[un]register_device -> gameport_[un]register_driver Signed-off-by: Dmitry Torokhov Input: make connect and disconnect methods mandatory for gameport drivers since that's where gameport_{open|close} are called from to actually bind driver to a port. Signed-off-by: Dmitry Torokhov Input: prepare for dynamic gameport allocation: - provide functions to allocate and free gameports; - provide functions to properly set name and phys; - dynamically allocated gameports are automatically announced in kernel logs and freed when unregistered. Signed-off-by: Dmitry Torokhov Input: convert input/gameport to dynamic gameport allocation. Signed-off-by: Dmitry Torokhov Input: convert sound/oss to dynamic gameport allocation. Signed-off-by: Dmitry Torokhov Input: convert sound/pci to dynamic gameport allocation. Signed-off-by: Dmitry Torokhov Input: integrate gameport drivers info dribver model/sysfs, create "gameport" bus. drivers' connect() routines now return error code instead of void. Signed-off-by: Dmitry Torokhov Input: complete gameport sysfs integration, ports are now devices in driver model. Implemented similarly to serio. Signed-off-by: Dmitry Torokhov Input: remove gameport->private in favor of using driver-specific data in device structure, add gameport_get/set_drvdata to access it. Signed-off-by: Dmitry Torokhov input: Fix keybit initialization in MK712 touchscreen driver. With this, the driver is tested to work properly. From: Richard Koch Signed-off-by: Vojtech Pavlik [PATCH] : net/core: move set MAC into separate function This moves the SIOCSIFHWADDR code from dev_ifsioc() into a separate new function, dev_set_mac_address(). This provides a single entry point for all callers performing MAC address changes. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik [PATCH] : bonding: use wrappers to change mtu and MAC This updates the bonding driver to use the dev_set_mtu() and dev_set_mac_address() wrapper functions. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik [PATCH] bonding: change misleading warning This updates a warning message that the bonding driver issues when some modes are unable to determine the link speed of a slave device. The old message led users to believe that bonding was slowing their gigabit devices to 100 Mb/sec. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik [PATCH] bonding: Update kconfig description This patch updates the very-outdated Kconfig description for bonding. Users reading the help text in menuconfig or xconfig would see text that implied that bonding only supports static link aggregation, and required a specific switch to make it work. The new description mentions multiple bonding modes and points the user to the bonding.txt documentation. Signed-off-by: Mitch Williams Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik [PATCH] bonding: Update/rewrite bonding.txt This is a complete overhaul of the bonding.txt documentation. Signed-off-by: Jay Vosburgh Signed-off-by: Jeff Garzik [PATCH] sundance: attempt to address high irqs due to TX overflow In at least some versions of Kernel 2.6 (2.6.8.1, 2.6.11-rc2) the driver drivers/net/sundance.c creates high interrupt load (~ 100 interrupts per second) even in case of no network traffic at all. It seems that some sort of TX overflow handling is misplaced and triggers interrupts very often even in case of no data to send. The TX overflow handling has been moved to a more appropriate place. While there, an off by one error of reading the TX status has also been corrected by moving the read after the break. Thanks to Jeroen who tested the patch (also with high workload). Interrupts are down to normal and there are no obvious side effects. input: Looks like someone forgot the ARCH_ Signed-off-by: Dave Jones Signed-off-by: Vojtech Pavlik input: Add pin numbers to parkbd.c documentation. Signed-off-by: Vojtech Pavlik input: HID list handling cleanup, fix two bugs in pid.c and one in hid-core.c that the cleanup uncovered. Remove a workaround for BTC keyboard 46e:5303, because it's breaking other devices. Instead enable QUIRK_NOGET for this keyboard. Change set_idle handling to use a '0' report ID, meaning all reports instead of iterating over each individual report ID. This shouldn't change much, since most normal devices have only one report with id '0'. Signed-off-by: Vojtech Pavlik [PATCH] net/s2io: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. This makes the code independent of HZ values (particularly important when HZ changes or is dynamic). Compile- and boot-tested. Signed-off-by: Nishanth Aravamudan Acked-by: Ravinandan Arakali Signed-off-by: Jeff Garzik input: Store alps hardware version info in the input_dev structure, so that it shows up in /proc/bus/input/devices. Signed-off-by: Peter Osterlund Signed-off-by: Vojtech Pavlik Input: psmouse should probe for "special" protocols only if max protocol is greater than IMEX so that proto=imps and proto=exps options work. Fix Kensington case. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik [ALSA] Add newline to printk ALSA Core Added the newline to printk error output. Signed-off-by: Takashi Iwai [ALSA] Ascii chars only RME HDSP driver Signed-off-by: Jaroslav Kysela [ALSA] Remove descriptions of obsolete options Documentation Removed descriptions of obsolete irq_mask and irq_list options for vxpocket, vxp440 and pdaudiocf drivers. Signed-off-by: Takashi Iwai [ALSA] Remove pm_register/pm_unregister SA11xx UDA1341 driver,ALSA Core,ISA Removed pm_register() and pm_unregister(). Use platform_device for suspend/resume, instead. The current implemention is still a hack. The whole ISA drivers should be rewritten with a proper bus definition. Signed-off-by: Takashi Iwai [ALSA] HDSP fixes Documentation,RME HDSP driver * init sequence cleanup and firmware upload related bugfixes * more robust revision detection scheme (should transparently handle new revisions) * allow hdsploader and the kernel fw loader to coexist this is useful for cardbus user who compiled the driver in-kernel (userspace may not be ready to upload the firmware when the card is probed) * removed confusing and obsolete passthru option (was interfering with the mixer when opening the device for capture or playback) this change requires a recompile of the userspace tools against the patched hdsp.h * removed confusing and obsolete line_outs_monitor module param * made precise_ptr the default behaviour, and runtime tweakable (removed corresponding module param) * add an alsa ctl to disable the use of the midi tasklet, and process midi data in the interrupt handler (using the tasklet is still the default) this is mainly intended for users of Ingo Molnar's RT patch * metering fix for Multiface/Digiface users (closes ALSA BUG #0000801) * small endianness fix * ALSA-Configuration.txt HDSP entry update * error messages cleanup Signed-off-by: Thomas Charbonnel Signed-off-by: Takashi Iwai [ALSA] Changes 'Music' to 'Synth' in mixer control names EMU10K1/EMU10K2 driver Changes 'Music' to 'Synth' in mixer control names Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai [ALSA] Interpret negative index as bitmask of permissible indexes Documentation,ALSA Core Currently arguments of the 'index' option from 0 through SNDRV_CARDS-1 force a module to take the specified index. Index -1 makes the module take the first available index. This patch extends this convention so that a negative index value is interpreted as a bitmask of the permitted indexes. Special cases: -1 0xffffffff 0 and up -2 0xfffffffe 1 and up -4 0xfffffffc 2 and up ... The patch includes also corrections of ALSA-Configuration.txt document. Signed-off-by: Thomas Hood Signed-off-by: Takashi Iwai [ALSA] Set default index of modem and bt87x drivers to -2 Documentation,ATIIXP-modem driver,BT87x driver,Intel8x0-modem driver VIA82xx-modem driver Set the default index value of modem and bt87x drivers to -2 so that the first slot is excluded when no index option is given. This gives other uadio drivers a chance to put them as the primary driver. Signed-off-by: Takashi Iwai [ALSA] use cached idVendor/idProduct values USB generic driver use the vendor/product IDs in the state structure instead of reading them again from the device Signed-off-by: Clemens Ladisch [ALSA] driver model type fixes for ALSA SA11xx UDA1341 driver,Control Midlevel,ALSA Core,Digigram VX core ES18xx driver,OPL3SA2 driver,AD1848 driver,CS4231 driver,ATIIXP driver ATIIXP-modem driver,CS4281 driver,ES1938 driver,ES1968 driver Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver,VIA82xx driver VIA82xx-modem driver,ALI5451 driver,CS46xx driver,HDA Codec driver HDA Intel driver,NM256 driver,Trident driver,YMFPCI driver PDAudioCF driver,Digigram VX Pocket driver,PPC PMAC driver Fixes by Pavel Machek : suspend() routines no longer get u32 as their parameter (they get pm_message_t, which is u32 for now, but will change in 2.6.12 or so). This fixes ALSA to notice this, and uses constants with right types where appropriate. It results in no code changes. [Best results will be when patching against latest -mm, you may get some warnings if you patch it into older kernel, but it should still do the right thing.] Please apply, Pavel [In addition, suspend callback type is changed to follow to the standard style taking no state argument -- Takashi] Signed-off-by: Takashi Iwai [ALSA] Fix descriptions about suspend/resume callbacks Documentation Fixed the descriptions about suspend/resume callbacks. The suspend callback takes pm_message_t argument, and resume takes no extra argument now. Signed-off-by: Takashi Iwai [ALSA] Remove unused variable USB USX2Y Removed an unused variable to fix a compile warning. Signed-off-by: Takashi Iwai [ALSA] Fix resume callback HDA Codec driver Fixed resume callback to follow the recent change of PM callbacks. Signed-off-by: Takashi Iwai [ALSA] Fix inclusion of pm.h ALSA Core Added the missing inclusion of linux/pm.h. Signed-off-by: Takashi Iwai [ALSA] Fix suspend/resume functions ALSA Core Fix the suspend/resume callback functions to follow the last change. (This fix was missing in the last patch.) Signed-off-by: Takashi Iwai [ALSA] intel8x0 - fixed timeout in the 'get current DMA pointer' routine Intel8x0 driver Patch-level: High Signed-off-by: Wei Ni Signed-off-by: Jaroslav Kysela [ALSA] intel8x0 - fix for broken PCI ID define for ICH6 Intel8x0 driver Patch-level: High Signed-off-by: Jean Delvare Signed-off-by: Jaroslav Kysela [ALSA] Fix compile error (due to last suspend/resume fix) PPC PMAC driver Fixed the forgotten caller of suspend/resume callbacks to follow the recent PM fixes. Signed-off-by: Takashi Iwai [ALSA] Fix 32bit calls to snd_pcm_channel_info() PCM Midlevel Fix 32-bit calls to snd_pcm_channel_info(). Signed-off-by: Brian Gerst Signed-off-by: Takashi Iwai [ALSA] hdsp ghost midi device fix RME HDSP driver * Prevents the creation of a second midi device for cards with only one midi I/O Signed-off-by: Thomas Charbonnel Signed-off-by: Takashi Iwai [ALSA] Kconfig: cleanup sound menu ALSA Core This properly indents the sound menu. Signed-off-by: Roman Zippel Signed-off-by: Takashi Iwai [ALSA] replace interruptible_sleep_on_timeout() with wait_event_interruptible_timeout() RawMidi Midlevel Use wai_event_interruptible_timeout() instead of deprecated interruptible_sleep_on_timeout(). Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Takashi Iwai [ALSA] Add quirk for LEGEND ZhaoYang 3100CF Maestro3 driver Added a quirk entry for LEGEND ZhaoYang 3100CF. Signed-off-by: Takashi Iwai [ALSA] capture EXTINs with multichannel device EMU10K1/EMU10K2 driver This patch changes the emu10k1 multichannel capture device (hw:x,2) to capture the 16 external inputs by default. This involves adding DSP code to route the EXTINs to the FXBUS2 (EFX capture) channels and setting the corresponding FXWC bits by default. This allows capturing multiple inputs simultaneously. It completely bypasses the capture controls of the mixer. With my Audigy2 ZS I can capture LineIn, Line2, and Aux2 at the same time (6 channels). Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai [ALSA] simplify snd_usbmidi_count_bits() USB generic driver This makes the bit counting code smaller and simpler. Signed-off-by: Charles C. Bennett Signed-off-by: Clemens Ladisch [ALSA] Novation and MOTU USB MIDI support USB generic driver Rewrote USB MIDI protocol handling code to use callbacks for each protocol; added support for Novation and MOTU protocols; changed detection code to allow interrupt endpoints. Signed-off-by: Clemens Ladisch [ALSA] Korg1212 updates KORG1212 driver This patches covers the following issues: - solves double 'spin_lock_irqsave' problems; - eliminate the use of deprecated function 'sleep_on_timeout'; - clarify some 'printk' messages; and - logs korg DMA Errors due to PCI congestion. Signed-off-by: Haroldo Gamal Signed-off-by: Takashi Iwai [ALSA] remove interruptible_sleep_on_timeout() usage GUS Library Replace deprecated interruptible_sleep_on_timeout() with wait_event_timeout(). Code is not identical, as the current sleeping system is 1 jiffy at a time checking atomic_read()'s return every iteration. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Takashi Iwai [ALSA] Remove interruptible_sleep_on_timeout(). ALSA<-OSS sequencer Use wait_event_interruptible_timeout() instead of deprecated interruptible_sleep_on_timeout(). Signed-off-by: Takashi Iwai [ALSA] Add __iomem prefix BT87x driver Added __iomem prefix to the mmio pointer. Signed-off-by: Takashi Iwai [ALSA] Add quirk for Fujitsu S6210 Intel8x0 driver Added ac97_quirk for Fujitsu S6210. Signed-off-by: Takashi Iwai [ALSA] MPU-401 PnP support Documentation,MPU401 UART Replace the ACPI PnP code with generic PnP calls. Signed-off-by: Clemens Ladisch [ALSA] enable disabling of isapnp OPL3SA2 driver Fixed a logic error that prevented the 'isapnp=0' module parameter from taking effect. Signed-off-by: Clemens Ladisch [ALSA] fixes als100 not detecting opl3 ALS100 driver This patch fixes issue when opl3 device couldn't be found due to numbering of devices in pnp card, because search of opl3 device started from mpu device, which could have number greater than opl3 could. Example: MPU is 00:01.03 and OPL is 00:01.01 Signed-off-by: Anton Romanov Signed-off-by: Clemens Ladisch [ALSA] Bind master and HP controls with hp_only quirk AC97 Codec Bind master and HP controls when hp_only quirk is given, instead of removing master control. This fixes the problem of some laptops which require sync'ed volume for PC-speaker and headphone output. Signed-off-by: Takashi Iwai [ALSA] fix sound/isa/gus/interwave.c compile with PNP=n AMD InterWave driver Emmanuel Colbus sent this patch one month ago with the following description: There is a trivial bug in the file sound/isa/gus/interwave.c . The variable isapnp is defined only if CONFIG_PNP is enabled, but it is always used few lines after. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai [ALSA] add 96Khz support and setting sample rate for direct SPDIF output EMU10K1/EMU10K2 driver This patch should add support for 96Khz 'direct SPDIF' aka 'SPDIF Bypass' (not P16V) playback mode available on the Audigy1 and 2 and newer SBLives (?). It lets you bypass the 48khz DSP resampling when using the card in digital mode. It also adds 96khz analog playback support, good for testing but less interesting because it's downsampled to 48khz. A new mixer control 'Audigy SPDIF Output Sample Rate' is created, you can choose 44100, 48000, or 96000. Standard SPDIF playback, AC3 passthrough (real 96khz playback), and analog playback (96khz is resampled to 48khz in the DSP) all work with a 16 bit,96khz wav file. Only the last was tested due to lack of any SPDIF hardware. This was derived mostly from the opensource.creative.com driver. All that was needed for 96khz playback to work in analog mode was changing the format to 8000_96000 (looks like the creative driver supports 192khz too). And, of course this sample rate has always been supported (albeit downsampled) because if you have 48khz samples in a soundfont the envelope engine has to be able to pitch shift them in both directions. I still have not been able to figure out how to get 24 bit playback to work. This is possible, independent of the P16V, for spdif and analog 24/48 playback via the DSP. I do know how to access the full 24 bits from the ADC from within the DSP, just not how to get it in there. For one thing I have no idea which 24 bit format it supports. Some of them seemed to work with JACK but produced noise. This was generated with my multichannel patch but it applies against ALSA CVS as well. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai [ALSA] MPU-401 driver cleanup MPU401 UART Correctly check for error codes returned by pnp_register_driver, use a common function for registering the sound card, and remove many #ifdef's. Signed-off-by: Matthieu Castet Signed-off-by: Clemens Ladisch [ALSA] add STAC9708 output bias mixer control AC97 Codec This adds a mixer control for an undocumented bit of the STAC9708 that somehow affects the analog output. This should help reducing the distortion at high output levels on ymfpci and SBLive cards. Signed-off-by: Clemens Ladisch [ALSA] Added ICE1724 - ESI Juli@ code (not complete) + AK4114 code + AK4358 Serial BUS drivers,AK4114 receiver,AK4XXX AD/DA converters ICE1712 driver,ICE1724 driver Initial incomplete driver for ESI Juli@ cardcards based on ICE1724, AK4114, AK4358 and AK5385. The ICE1724 and ICE1712 main files plus some drivers are also updated (cleanups and new callbacks). Signed-off-by: Jaroslav Kysela [ALSA] fix typo in assignment of snd_ak4114_spdif_playback_put AK4114 receiver snd_ak4114_spdif_playback_put was assigned to the .get callback which resulted in a duplicate initialization of that member Signed-off-by: Clemens Ladisch [ALSA] AK4114 - fixed workqueue initialization & removed debug code AK4114 receiver Signed-off-by: Jaroslav Kysela [ALSA] Added support for Terratec PHASE 22 ICE1712 driver,ICE1724 driver I've struggled for a couple of days with Terratec Phase 22 card. Chips used on it are well known but the combination is somehow unique. Phase 88 should have been similar... but it actually uses 1712 instead of 1721 (Envy24HT-S). So here is the patch against release 1.0.8 that adds Phase 22 to ice1724. I've tested only analog part (balances 1/4 TRS in and outs). Signed-off-by: Misha Zhilin Signed-off-by: Takashi Iwai [ALSA] Remove unused yss225.h Wavefront drivers yss225.h is just obsolete, not used/read by any codes. Let's remove it. Signed-off-by: Takashi Iwai [ALSA] split snd_emu10k1_trigger_voice into trigger and prepare functions EMU10K1/EMU10K2 driver This patch provides better sync between multiple voices by separating the trigger_voice function into prepare_voice which sets up the volume and filter parameters and trigger_voice which sets pitch target, current and initial pitch and enables the voice interrupt. For standard PCM this should not make much of a difference but will be important for minimizing phase error between voices for multichannel PCM. This behavior was derived from the opensource.creative.com driver. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai [ALSA] Fix rate setting on multiple codecs AC97 Codec From Ron Cococcia : Fixed the PCM rate setting on multiple AC97 codecs. Signed-off-by: Takashi Iwai [ALSA] fix typo in midi code RME HDSP driver fix typo in midi code Signed-off-by: Thomas Charbonnel Signed-off-by: Takashi Iwai [ALSA] Add support for Audigy2LS on MSI motherboard CA0106 driver Add support for Audigy2LS on MSI motherboard. Fixes Bug #0901 Signed-off-by: James Courtier-Dutton Signed-off-by: Takashi Iwai [ALSA] Enables SPDIF output on the Audigy2 Value EMU10K1/EMU10K2 driver Enables SPDIF output on the Audigy2 Value. It seems to work for PCM, but not AC3 yet. Signed-off-by: James Courtier-Dutton Signed-off-by: Takashi Iwai [ALSA] Add ac97_quirk for Dell machine Intel8x0 driver Added ac97_quirk option for Dell machine. Signed-off-by: Takashi Iwai input: Make ati_remote clean up properly when removing either the device or the module. Signed-off-by: Ville Syrjala Signed-off-by: Vojtech Pavlik input: Some changes to ati_remote key assignments: - Channel up/down keys are reversed on my ATI Remote Wonder. - Use KEY_TV, KEY_DVD and KEY_OK where appropriate. - Replace KEY_PLAYCD with KEY_PLAY. Signed-off-by: Ville Syrjala Signed-off-by: Vojtech Pavlik Input: fix race timer handling races in gameport-based joystick drivers by moving pollig timer down into gameport and using spinlock to protect it. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Properly ignore padding fields in HID reports. Bug-found-by: Ted <6x0124@yahoo.com.tw> Signed-off-by: Vojtech Pavlik [PKT_SCHED]: Extended Matches API An extended match (ematch) is a small classifiction tool not worth writing a full classifier for. Ematches can be interconnected to form a logic expression and get attached to classifiers to extend their functionatlity. The userspace part transforms the logic expressions into an array consisting of multiple sequences of interconnected ematches separated by markers. Precedence is implemented by a special ematch kind referencing a sequence beyond the marker of the current sequence causing the current position in the sequence to be pushed onto a stack to allow the current position to be overwritten by the position referenced in the special ematch. Matching continues in the new sequence until a marker is reached causing the position to be restored from the stack. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [PKT_SCHED]: Simple comparison ematch (cmp) The cmp ematch compares a static value provided by userspace against a 8, 16, or 32bit chunk read from the packet. The reading offset is provided by userspace and based on one of the skb layers (mac|nh|h). The ematch provides functionality to transform the byte order of the chunk and/or apply a mask and understands the operands eq, lt, and gt. Basically, it is very similiar to the u32 (e)match but tries filling the gaps left behind. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [PKT_SCHED]: Multi byte comparison ematch (nbyte) The nbyte ematch allows comparing any number of bytes at an arbitary offset based on one of the skb layers. Its main usage is intended for IPv6 addresses but may be used for any kind of pattern. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [PKT_SCHED]: u32 ematch The u32 ematch behaves exactly the same as a u32 match and will replace it in the long term. It allows the underlying classifiers to give hints about the position of the next protocol header (i.e. nexthdr+). Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [PKT_SCHED]: Metadata ematch (meta) The meta ematch allows comparing various metadata values against static values from usersapce or other metadata values. It currently supports various numeric meta values such as netfilter mark, packet length, security level, interface indices, tc classid, load average, a random value but also variable length values such as interface names. Adding support for additional meta values is as easy as writing a data collector (usually 1-5 lines of code) and assign it to a id and type by putting it into the meta operations table. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [PKT_SCHED]: Basic classifier The basic classifier is the most simple classifier one can think of, it doesn't do anything on its own but to support extended matches and actions. A basic classifier returns true if no ematches or actions are configured and thus can also be used as a catch-all classifier. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller [ATM]: fore200e needs to be converted over to sk_atm(). Signed-off-by: David S. Miller [TIMER]: Export avenrun for packet scheduler meta ematch. Signed-off-by: David S. Miller [IPSEC]: Merge xfrm{4,6}_bundle_ok/stale_bundle This patch merges __xfrm4_bundle_ok/__xfrm6_bundle_ok/stale_bundle so that when I add MTU verification code I don't have to put it in three places. It also moves the tests on dst->dev and dst->obsolete outside the loop since the former is identical throughout the bundle and the latter can only be positive on the final element which also happens to be dst->path. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller JFS: Fix array overflow On a system with more than 64 processors, commit_threads was too big and caused an array overflow. Always limit it to MAX_COMMIT_THREADS. Also, avoid waking up more than one commit thread at a time. Signed-off-by: Dave Kleikamp [WORKQUEUE]: Add cancel_rearming_delayed_work() From: Arjan van de Ven cancel_rearming_delayed_workqueue() is only used inside workqueue.c; make this function static (the more useful wrapper around it later in that function remains non-static and exported) Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [IPVS]: Fix deadlock in update_defense_level() This function invokes si_meminfo() from timer context, which doesn't work due to bdev_lock not being an IRQ safe lock. So move it to keventd context. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [IPV4]: Make loopback idev stick around. As it is when loopback_dev loses all of its IPv4 addresses its corresponding idev will be destroyed. Unfortunately as of last August route.c relies on the loopback idev to kill references to other idev objects. The end result is that when you do ip a f dev lo, unregistering other devices will hang until those dst objects referring to their idev objects die of natural causes. Of course this may never happen if the processes holding those references get dead-locked by invoking an operation that takes the RTNL. A simple solution is to make sure that loopback's idev sticks around all the time. Incidentally this also fixes the setting of some flags on the loopback idev object as currently the code that does it won't be called if you add the addresses to lo after bring it up. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPV6]: Make loopback idev stick around. Mirror the ipv4 change. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [XFRM]: stale_bundle()'s test was reversed Signed-off-by: Herbert Xu Signed-off-by: David S. Miller input: Fix Microtouch USB touchscreen Y axis direction. [0,0] should be upper left corner. Signed-off-by: Vojtech Pavlik Input: fix timer handling race in sidewinder joystick driver by switching to gameport's polling facilities. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik [netdrvr mv643xx] Fix a few places I missed in the previous rename patch. Rename: mv64x60 => mv643xx Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Fix handling of unaligned tiny fragments not handled by hardware Check all fragments instead of just the last. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Increment tx_ring_skbs before calling eth_port_send, since otherwise the irq handler may check and decrement it before we increment it. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Clear transmit l4i_chk even when the hardware ignores it. Not absolutely necessary, but makes debugging easier. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Trivial. Remove repeated comment. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Call netif_carrier_off when closing the driver. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Update tx_bytes statistic when using hw tcp/udp checksum generation. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] We already set ETH_TX_ENABLE_INTERRUPT whenever we set ETH_TX_LAST_DESC. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Disable tcp/udp checksum offload to hardware. It generally works, but the hardware appears to generate the wrong checksum if the hw checksum generation wasn't used in the previous packet sent. I'm increasingly confident this is a hardware error. We'll disable hw tcp/udp checksum generation until we have a fix or workaround. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Enable the mv643xx ethernet support on platforms using the MV64360 chip. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Add ethtool support to the mv643xx ethernet driver. Initially, we add statistics and link status reporting. Signed-off-by: Dale Farnsworth [PATCH] drivers/pci/*: convert to pci_register_driver convert from pci_module_init to pci_register_driver (from:http://kerneljanitors.org/TODO). Signed-off-by: Christophe Lucas Signed-off-by: Greg Kroah-Hartman [PATCH] PCI Hotplug: Fix OSHP calls in shpchp and pciehp drivers Here is a patch to fix a problem in OSHP calls in shpchp and pciehp drivers that was detected in 2.6.11-rc3. In this kernel, calls to acpi_evaluate_object() to evaluate OSHP returned AE_BUFFER_OVERFLOW with the existing code. Earlier kernels didn't return this error code. The correct fix should be making return_buffer pointer NULL for no value is returned from this method. Signed-off-by: Dely Sy Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: Add PCI quirk for SMBus on the Toshiba Satellite A40 The Toshiba Satellite A40 laptop hides its SMBus device, much like a number of Asus boards reputedly do. This prevents access to the LM90 hardware monitoring chip. This simple patch extends the PCI quirk used for the Asus and HP systems to this Toshiba laptop. Signed-off-by: Frans Pop Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: allow x86_64 to do pci express On Mon, Feb 14, 2005 at 10:47:01AM +0100, Piotr Kaczuba wrote: > On Mon, Feb 14, 2005 at 10:18:43AM +0100, Andi Kleen wrote: > > Piotr Kaczuba writes: > > > Is there a reason why "PCI access mode" config option isn't available for > > > x86_64? Due to this, PCIE config options aren't available either. > > > > There is no 64bit PCI BIOS, so access is always direct. > > > > I assume you mean mmconfig access with "PCIE config options", that is > > a separate config option and available. > > I mean the PCIEPORTBUS option which depends on PCI_GOMMCONFIG or > PCI_GOANY. I assume that due to PCI_MMCONFIG / PCI_GOMMCONFIG mismatch > it's not available on x86_64. Ok, that's a bug in PCIEPORTBUS. Best is probably to completely remove the dependency, it doesn't make much sense (the code has to handle the case of mmconfig not being available at runtime anyways) Remove bogus dependency in PCI Express root driver. Signed-off-by: Andi Kleen Signed-off-by: Greg Kroah-Hartman [PATCH] pci/quirks.c: unhide SMBus device on Samsung P35 laptop this patch is needed to make the SMBus device on my Samsung P35 laptop visible. By default, it doesn't appear as a pci device. Patch tested, works perfectly for me. Please apply. Signed-off-by: Carl-Daniel Hailfinger Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: clean up the msi api Remove the call to request_mem_region() in msix_capability_init() to grab the MSI-X vector table. Drivers should be using pci_request_regions() so that they own all of the PCI BARs, and the MSI-X core should trust it's being called by a correct driver. Signed-off-by: Roland Dreier Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: pci.ids update this patch partially updates drivers/pci/pci.ids to the current version from http://pciids.sf.net. I have gone over the diff to ensure nothing gets deleted/changed erroneously. There are some differences where I couldn't verify whether the in-kernel or the upstream version are correct, so I left them alone. Patch checked for build warnings and I'm running a kernel with it on my machine right now. Signed-off-by: Carl-Daniel Hailfinger Signed-off-by: Greg Kroah-Hartman [CIFS] Handle RFC1001 NACK with length of 4 Signed-off-by: Steve French (sfrench@us.ibm.com) JFS: allow iocharset=none mount option iocharset=none is an explicit option to specify the default character translation be used (no translation). This allows remounting a partition which was mounted with a different setting, and allows the same mount options to be used between 2.6 and 2.4 kernels, where there is a different default. Signed-off-by: Dave Kleikamp JFS: change project url to http://jfs.sourceforge.net/ Signed-off-by: Dave Kleikamp [PATCH] drivers/net/slhc.c: remove 2 functions This patch removes two unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/shaper.c: make a variable static On Fri, Feb 18, 2005 at 07:18:19PM -0500, Jeff Garzik wrote: > Adrian Bunk wrote: > >This patch contains the following cleanups: > >- remove an unused #define SHAPER_BANNER > >- remove the sh_debug flag > > > >Signed-off-by: Adrian Bunk > > you are removing presumably-useful debug code; NAK. OK, less invasive patch below. <-- snip --> This patch makes a needlessly global variable static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/tulip/interrupt.c: make a variable static This patch makes a needlessly global variable static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/tun.c: make 2 functions static This patch makes two needlessly global functions static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/via-velocity.c: make a function static This patch makes a needlessly global function static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/ppp_deflate.c: make 2 structs static This patch makes two needlessly global structs static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/pppoe.c: make a struct static This patch makes a needlessly global struct static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/s2io.c: cleanups This patch contains the following cleanups: - make needlessly global code static - remove the unused blobal function get_xena_rev_id Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/bonding/: make 3 functions static This patch makes three needlessly global functions static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/depca.c: make 2 structs static This patch makes two needlessly global structs static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/dgrs.c: make 3 functions static This patch makes three needlessly global functions static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/ethertap.c: make 2 functions static This patch makes two needlessly global functions static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/loopback.c: make a function static This patch makes a needlessly global function static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/amd8111e.c: make 2 functions static This patch makes two needlessly global functions static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/3c527.c: make a struct static This patch makes a needlessly global struct static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/3c509.c: make 2 structs static This patch makes two needlessly global structs static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] ixgb: use netif_poll_{enable|disable} 1 use netif_poll_{enable|disable} to synchronize between poll and i/f down/up Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] ixgb: Avoid race e1000_watchdog and ixgb_clean_tx_irq Avoid race between e1000_watchdog and ixgb_clean_tx_irq Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] ixgb: Robert Olsson's fix and refinement to poll obert Olsson's fix and refinement to the poll routine Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] ixgb: Invalidate software cache, when EEPROM write occurs Added code to invalidate software cache, when a write is made to the EEPROM. Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] ixgb: Driver version, white space, other stuff Driver version number, white space, comments, device id & other changes Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Robert Olsson's fix and refinement 1 Robert Olsson's fix and refinement to the poll routine Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: use netif_poll_{enable|disable} 2 use netif_poll_{enable|disable} to synchronize between poll and i/f down/up Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Avoid race between e1000_watchdog 3 Avoid race condition between e1000_watchdog and e1000_clean_tx_irq Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Delay clean-up of last Tx buffer 4 Delay clean-up of last Tx buffer to fix pre-mature writeback of Tx descriptors. Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Fix WOL settings in 82544 based 5 Fix WOL settings in 82544 based adapters Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Patch from Peter Kjellstroem -- 6 Patch from Peter Kjellstroem -- fix lockup with 82547 Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Checks for desc ring/rx data 7 Add checks for desc ring/rx data bufs spanning 64k address boundary Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Report failure code when loopback 8 Report failure code when loopback test fails Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Fixes related to Cable length 9 Fixes related to Cable length estimation Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik [PATCH] e1000: Driver version white space, 10 Driver version number, white space, comments, device id & other changes Signed-off-by: Mallikarjuna R Chilakala Signed-off-by: Ganesh Venkatesan Signed-off-by: John Ronciak Signed-off-by: Jeff Garzik input: Fix a few conditions in power.c, which kept it from doint anything at all. Found-by: BJ Douma Signed-off-by: Vojtech Pavlik [PATCH] Fix selection of command serial numbers and pids This patch fixes one of Christroph's fixme comments in the SCSI midlayer. The selection of the serial number and pid for commands was done by a global variable and not SMP safe. The race was not very serious because it was only used for error handling, but it's still better to fix it. I audited all the drivers and none seemed to use them for anything interesting, so I just made it a per host counter protected by host lock. (in fact they could be probably removed because they only see to be used as a flag in exception handling and for debugging. The patch would be unfortunately quite big because a lot of driver printks use them) This should be slight faster on SMP too because the cache line of the counter won't bounce around the machine. Signed-off-by: James Bottomley scsi: remove device_request_lock The static device_request_lock doesn't protect anything; remove it. Signed-off-by: Matthew Wilcox Signed-off-by: James Bottomley [PATCH] qla1280: remove qla1280_proc_info reading the /proc/scsi/qla1280/* files can easily corrupt kernel memory. As the feature is deprecated, and the qla1280 implementation doesn't return very usefull implementation but is so buggy that any serious user would have noticed we just remove it. Signed-off-by: James Bottomley [PATCH] qla1280: use pci_map_single Signed-off-by: James Bottomley [PATCH] qla1280: update changelog Signed-off-by: James Bottomley [PATCH] mark eata_pio broken it oopses when trying to use it with my SmartRaid IV card, it's a mess and the only hardware supported by it but not the eata driver are two 10-year old ISA boards. Signed-off-by: James Bottomley [PATCH] mark qlogicisp broken It's lacking EH support and the hardware is supported by the qla1280 driver now. Signed-off-by: James Bottomley [PATCH] SCSI tape descriptor based sense data support The patch at the end of this message converts the SCSI tape driver to support also descriptor based sense data. Test for deferred sense data have been added in a couple of places and the EOM tests have been unified. Some tests have been simplified but the patch is not meant to change the current behavior. The patch is against 2.6.11-rc4 and has been tested to some extent. The patch also includes the msleep_interruptible change from from kernel janitors. Thanks to Doug Gilbert for doing a first version of this sense data conversion. Signed-off-by: Kai Makisara Signed-off-by: James Bottomley [PATCH] Retry supposedly "unrecoverable" hardware errors This is an updated and unmangled version of the patch sent in by Martin Peschke. Apparently some drives report Hardware Error sense for problems which do improve after retrying, so the patch retries these supposedly "unrecoverable" errors for such devices. In addition to the IBM ESS drive it adds a blacklist entry for the drive inside the MPIO HS200 Gigabox. Signed-off-by: Martin Peschke Signed-off-by: Alan Stern Signed-off-by: James Bottomley [PATCH] Add a NOREPORTLUN blacklist flag This patch adds a NOREPORTLUN blacklist flag for a disk made by "WDC" (Winchester?). The drive's firmware crashes when it receives REPORT_LUNS, even though it claims to be SCSI rev 04. Signed-off-by: Alan Stern Signed-off-by: James Bottomley [netdrvr mv643xx] Ensure that we only change the Port Serial Control Reg while the port is disabled. Signed-off-by: Dale Farnsworth [netdrvr mv643xx] Remove call to msleep() while locks are held. We don't really need to wait for the link to come up. It was a workaround to avoid a transient error message, "Virtual device %s asks to queue packet!\n", in dev_queue_xmit() when called by ic_bootp_send_if(). This happens because right after opening the network device, there is a pending PHY status change interrupt causing the driver to call netif_stop_queue(). A half second later, the link comes up and all is well. We could have moved the call to msleep() to mv643xx_eth_open() to perpetuate the workaround, but I think it's best to remove it entirely. Signed-off-by: Dale Farnsworth [PATCH] drivers/net/lp486e.c: make some code static This patch makes some needlessly global code static and makes CUcmdnames const. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/sb1000.c: make some variables static This patch makes some needlessly global variables static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/via-rhine.c: make a variable static const This patch makes a needlessly global variable static const. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [AGPGART] Don't scan whole bus for a VGA card. Use the handy pci_get_class() function instead of implementing our own pci bus walking loop. Also makes it skip non-VGA devices fixing up a long-standing FIXME. Previously, it may have been tripping up on AGP bridges, which could have caused all sorts of sillyness. Signed-off-by: Dave Jones [AGPGART] Rename a bunch of ambiguous variables. mode = What X wants us to set the mode to (As set by AGPMode in X config) cmd = PCI_AGP_STATUS from the AGP bridge. tmp = PCI_AGP_STATUS from the graphic card. mode -> requested_mode cmd -> bridge_agpstat tmp -> vga_agpstat Signed-off-by: Dave Jones [AGPGART] Fix refcount bug in mode parsing code. The pci_get_class conversion leaked this refcount. Signed-off-by: Dave Jones [AGPGART] Check the bridge is in 3.0 mode, not the graphic card. Signed-off-by: Dave Jones [AGPGART] Warn and fix up mode if userspace passes nonsense. Check the reserved bits in the agp mode register. Signed-off-by: Dave Jones [AGPGART] Fix up the reserved bits. The previous checks were against AGP_STAT values, but userspace passes us an agp command register. [AGPGART] Do some sanity checks on the rates that userspace passes. The AGP specifications define the following... agp2 agp3 000 BAD BAD 001 x1 x4 010 x2 x8 011 BAD x8 100 x4 BAD 101 BAD BAD 110 BAD BAD 111 BAD BAD Signed-off-by: Dave Jones [AGPGART] Name & Shame the apps passing bad flags. (Basically a distinction between XFree and Xorg) Signed-off-by: Dave Jones [AGPGART] Add mechanism for chipset specific errata. Allow chipset drivers to tell the generic routines not to enable certain features if they have errata when those features are used. Signed-off-by: Dave Jones [AGPGART] AMD 761 errata workaround. B0/B1 steppings of this chipset were horribly broken, and couldn't do fast writes, or side band addressing. Looking through the errata on this one reads like a horror story, it's a miracle it could get AGP x1 working. Signed-off-by: Dave Jones [AGPGART] AMD 751 errata workaround. Some combinations of NVidia GeForce cards and this AGP chipset cause lockups when operated in AGP x2 mode. Force them to x1 mode for safety. Signed-off-by: Dave Jones [AGPGART] Remove pointless tests for bridge vendor from amd-k7-agp driver. If we got far enough to run this code, we *must* have an AMD bridge. Signed-off-by: Dave Jones [AGPGART] Introduce routine to check current operating mode of agp bridge. Signed-off-by: Dave Jones [AGPGART] Mask out the reserved bits of the agp mode register before handing them to userspace. X munges what we hand to it, so with luck, this will lower the possibility of it handing us something with reserved bits set. Signed-off-by: Dave Jones [AGPGART] In AGP2.0 mode, if we're in 1X mode, disable fast writes. In this mode, fast writes are just ignored, and treated as regular PCI writes, but disabling them explicitly doesn't hurt. Signed-off-by: Dave Jones [AGPGART] Fix stupid thinko in device discovery. Should fix the 'cant find AGP VGA controller' warnings. Signed-off-by: Dave Jones [AGPGART] Fix the same pci_get_class bug in the amd-k7 driver. Signed-off-by: Dave Jones [AGPGART] Silly thinko in reserve bit masking. Stupid inversion meant we passed '0' to userspace, and madness ensued resulting in very funky visuals. Signed-off-by: Dave Jones [AGPGART] Make sure we don't give up searching for gfx cards. We need to clear the previously found cap_ptr, or we exit after finding the first one, even if its not the one plugged into the bridge we're looking at. Signed-off-by: Dave Jones [AGPGART] Make agp=off boot param work for Intel AGP drivers. Signed-off-by: Dave Jones [AGPGART] Trailing whitespace removal. Signed-off-by: Dave Jones [AGPGART] Print diagnostic info when failing to determine aperture size on VIA systems. I've seen this happen a few times, and never got to the bottom of it, so hopefully this will make things a little easier to diagnose what's going on. Signed-off-by: Dave Jones [AGPGART] Trailing whitespace removal de jour. Signed-off-by: Dave Jones [AGPGART] VIA AGPGARTs can support really small aperture sizes. Signed-off-by: Dave Jones [AGPGART] Don't clobber other bits in control register when flushing TLB on VIA. Signed-off-by: Dave Jones [AGPGART] Various "I'm a dumbass" compile fixes. Signed-off-by: Dave Jones [AGPGART] Lower 7 bits of TLB flush register must be zero. Signed-off-by: Dave Jones [AGPGART] Drop the Intel-mch AGP driver. Andi Kleen points out that the intel-agp driver actually works on i865's, where the -mch driver doesn't. The -mch driver was something of a failed experiment. Hoping that the code would be much cleaner, I forked the intel-agp driver into this variant, and removed some legacy bits. The result was a third the size, but it still was no work of art, worse yet -- it didn't even do what it said on the can. intel-agp still supports everything that the -mch driver did, so we can just remove this from the tree and fall back to the old driver. Signed-off-by: Dave Jones [AGPGART] Convert from pci_module_init to pci_register_driver Signed-off-by: Christophe Lucas Signed-off-by: Dave Jones [AGPGART] i810 suspend/resume support. From Nigel Cunningham/Karol Kozimor Signed-off-by: Dave Jones [AGPGART] yet more whitespace removal. Signed-off-by: Dave Jones input: Fix keyboard scrollwheel support, add horizontal wheel support, and enable both by default. Signed-off-by: Vojtech Pavlik [AGPGART] Compile fixes. Somehow the conversion to the extra arg for agp_collect_device_status() got dropped. Signed-off-by: Dave Jones [AGPGART] aper_base can't be signed. We pass this to remap_pfn_range after shifting it right. Nasty things happen as a result. Signed-off-by: Dave Jones input: Add a missing ';' to hid-core.c Signed-off-by: Vojtech Pavlik [AGPGART] Rework AGPv2 rate verification. The spec says its valid for multiple bits to be set when we read rate, however we must take care to ensure that we only write 1 bit back. This removes some bogus warnings that appeared on some boxes. Signed-off-by: Dave Jones [AGPGART] allow multiple backends to be initialized. From: Michael Werner This patch adds support for initializing and addressing multiple AGP bridges using the agpgart driver. In particular, it extends agp_acquire and agp_allocate_memory so that different bridges can be acquired and memory allocated within a specific AGP aperature. From: Brice Goglin It seems that memsetting the whole bridge structure to 0 (instead of juste the agp_in_use field) fixes Benoit's problem too. No idea which field was responsible for this. New patch attached. From: Mike Werner add bridge assignment missed in agp_allocate_memory From: Andi Kleen Here's the correct fix. agp_bridge is defined in drivers/char/agp/agp.h. It's a bit ugly though. Signed-off-by: Mike Werner Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [AGPGART] add agp_find_bridge function From: Michael Werner This patch gives non-generic platforms a method for using platform specific agp_find_bridge functions. Signed-off-by: Mike Werner Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [AGPGART] allow drivers to allocate memory local to the bridge From: Michael Werner This patch allows drivers to allocate memory local to the bridge using platform specific alloc_page routines. Signed-off-by: Mike Werner Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [DRM] add support for new multiple agp bridge agpgart api From: Michael Werner This patch adds drm support for new multiple agp bridge agpgart api. Signed-off-by: Mike Werner Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [FB] add support for new multiple agp bridge agpgart api From: Michael Werner This patch adds fb support for new multiple agp bridge agpgart api. Signed-off-by: Mike Werner Signed-off-by: Andrew Morton Signed-off-by: Dave Jones [MM]: Add set_pte_at() which takes 'mm' and 'addr' args. I'm taking a slightly different approach this time around so things are easier to integrate. Here is the first patch which builds the infrastructure. Basically: 1) Add set_pte_at() which is set_pte() with 'mm' and 'addr' arguments added. All generic code uses set_pte_at(). Most platforms simply get this define: #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval) I chose this method over simply changing all set_pte() call sites because many platforms implement this in assembler and it would take forever to preserve the build and stabilize things if modifying that was necessary. Soon, with platform maintainer's help, we can kill of set_pte() entirely. To be honest, there are only a handful of set_pte() call sites in the arch specific code. Actually, in this patch ppc64 is completely set_pte() free and does not define it. 2) pte_clear() gets 'mm' and 'addr' arguments now. This had a cascading effect on many ptep_test_and_*() routines. Specifically: a) ptep_test_and_clear_{young,dirty}() now take 'vma' and 'address' args. b) ptep_get_and_clear now take 'mm' and 'address' args. c) ptep_mkdirty was deleted, unused by any code. d) ptep_set_wrprotect now takes 'mm' and 'address' args. I've tested this patch as follows: 1) compile and run tested on sparc64/SMP 2) compile tested on: a) ppc64/SMP b) i386 both with and without PAE enabled Signed-off-by: David S. Miller [AGPGART] add bridge parameter to driver functions From: Michael Werner Add bridge parameter to create_gatt_table, free_gatt_table and mask_memory Signed-off-by: Mike Werner Signed-off-by: Andrew Morton [SPARC64]: Pass mm/addr directly to tlb_batch_add() No longer need to store this information in the pte table page struct. Signed-off-by: David S. Miller [NET]: Add skb_header_release and use it in net/ipv4/tcp This patch adds skb_header_release which can be called when the owner of an skb no longer needs to access the header at all. What constitutes the header is left up to the users of the skb to define. For instance, for outbound TCP packets we define the header to be anything in front of the TCP payload. Therefore we add skb_header_release calls to all the paths where outound TCP packets are produced. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [NET]: Add skb_header_cloned and use it in e1000/tg3 This patch adds skb_header_cloned which tells us whether we need to copy the data before we can modify the header part of the skb. Again, what constitutes the header is left up to the users of the skb to define. This patch then uses this function in e1000/tg3 to copy the data before the TCP/IP header is modified. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PPC]: Use new set_pte_at() w/mm+address args. Based almost entirely upon an earlier patch by Benjamin Herrenschmidt. Signed-off-by: David S. Miller [NETFILTER]: ipt_hashlimit: replace rwlock with spinlock As Samuel points out, the rwlock doesn't really make much sense. Signed-off-by: Samuel Jean Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NETFILTER]: ipt_hashlimit: use hlist instead of list head Use hlist instead of list_head to save lots of memory for the hash buckets. Signed-off-by: Samuel Jean Signed-off-by: Harald Welte Signed-off-by: David S. Miller [PATCH] Orinoco driver updates - use netif_carrier_*() Removes the orinoco driver's custom and dodgy "connected" variable used to track whether or not we're associated with an AP. Replaces it instead with netif_carrier_ok() settings. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - update printk()s Reformats printk()s, comments, labels and other cosmetic strings in the orinoco driver. Also moves, removes, and adds ratelimiting in some places. Behavioural changes are trivial/cosmetic only. This reduces the cosmetic/trivial differences between the current kernel version, and the CVS version of the driver; one small step towards full merge. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - use mdelay()/ssleep() more Use mdelay() or ssleep() instead of various silly more complicated ways of delaying in the orinoco driver. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - add free_orinocodev() Introduce a free_orinocodev() function into the orinoco driver, used by the hardware type/initialization modules to free the device structure in preference to directly calling free_netdev(). At the moment free_orinocodev() just calls free_netdev(). Future merges will make it clean up internal scanning state, so merging this now will reduce the diff noise. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - cleanup low-level code Apply some cleanups to the low-level orinoco handling code in hermes.[ch]. This cleans up some error handling code, corrects an error code to something more accurate, and also increases a timeout value. This last can (when the hardware plays up) cause long delays with spinlocks held, which is bad, but is rather less prone to prematurely giving up, which has the unfortunate habit of fatally confusing the hardware in other ways :-/. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - cleanup PCI initialization Update the initialization code in the various PCI incarnations of the orinoco driver. This applies similar initialization and shutdown cleanups to the orinoco_pci, orinoco_plx and orinoco_tmd drivers. It also adds COR reset support to the orinoco_plx and orinoco_tmd drivers, improves PCI power management support in the orinoco_pci driver and adds a couple of extra supported cards to the ID tables. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - use modern module_parm() Add descrptions to module parameters in the orinoco driver, and also add permissions to allow them to be exported in sysfs. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - PCMCIA initialization cleanups Cleanup the various bits of initialization code for PCMCIA / PC-Card orinoco devices. This includes one important bugfix where we could fail to take the lock in some circumstances. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - update is_ethersnap() Make the is_ethersnap() function take a void * rather than a pointer to the internal header structure. This makes more logical sense and reduces dependencies between different parts of the code. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - prohibit IBSS with no ESSID Remove has_ibss_any flag and never set the CREATEIBSS RID when the ESSID is empty. Too many firmware break if we do. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - delay Tx wake Delay netif_wake_queue() until the packet has actually been transmitted, rather than just when the firmware has copied it into its internal buffers. This seems to prevent problems on some Intersil firmware versions (I suspect the problems were caused by the firmware's buffers filling up). Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - WEP updates Updates to the WEP configuration code. This adds support for shared key authentication on Agere firmwares. It also adds support (in some cases) for changing the WEP keys without disabling the MAC port (thus triggering a reassociation by the firmware). This is needed by 802.1x implementations, although it's not clear if the code so far is sufficient to allow working 802.1x. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - update firmware detection Update firmware detection code. This will now reliably detect Intersil firmwares past verison 1.x, a serious flaw in the previous code. It cleans up the code, and reduces the size of the private structure by using single bits for the various firmware feature flags. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - update version and changelog Previous patches have brought the in-kernel orinoco driver roughly to parity with version 0.14alpha2 from out-of-tree. Update the version number and changelog accordingly. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] smc91x iomem annotations usual iomem annotations; Signed-off-by: Al Viro Signed-off-by: Jeff Garzik [libata qstor] minor update per LKML comments * use __le{32,64} * use DMA_{32,64}BIT_MASK [PATCH] drivers/scsi/sata_vsc: Use the DMA_{64,32}BIT_MASK constants Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling pci_set_dma_mask() or pci_set_consistent_dma_mask() See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details Signed-off-by: Tobias Klauser Signed-off-by: Jeff Garzik [PATCH] drivers/scsi/ahci: Use the DMA_{64,32}BIT_MASK constants Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling pci_set_dma_mask() or pci_set_consistent_dma_mask() See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details Signed-off-by: Tobias Klauser Signed-off-by: Jeff Garzik [PATCH] strip: use of netdev_priv Signed-off-by: Francois Romieu Signed-off-by: Jeff Garzik input: Add support for less usual ALPS touchpads, rearrange code, separate touchpoint/passthrough into its own input device. Signed-off-by: Vojtech Pavlik input: adjust file2alias utility to export aliases for serio drivers (serio:tyNprNidNexN). Move serio_device_id from serio.h to mod_devicetable.h Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Fix sermouse not to call serio_open() twice. Bug introduced in last serio update. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Fix compilation warning in PID driver and generally repair force feedback effect erase routine that could never have worked. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Rename hid_find_field to hidinput_find_field to match the naming convention in hid-input Signed-off-by: Vojtech Pavlik Input: fix identation in PID driver. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Workaround in i8042 for PnP BIOS reporting incorrect command register address. If the address is in the standard range, and a non-standard number is reported, we ignore it and use the default. Signed-off-by: Vojtech Pavlik input: Update kernel documentation to reflect the i8042.noacpi -> i8042.nopnp change. Signed-off-by: Vojtech Pavlik input: Fix i8042's interactions with ACPI. Only believe what ACPI tells us if it is enabled, if is PnP enabled, and if is ACPIPnP enabled. It will still lie to us, but it won't be too bad. Signed-off-by: Vojtech Pavlik input: Make ALPS protocol synchronization dependent on protocol variant to enhance robustness. Signed-off-by: Vojtech Pavlik [IXGB]: Check skb_header_cloned for TSO packets. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller input: Fix usage of *_MAX macros. Check keycode in KDIOSKEYCODE and EVIOCSKEYCODE macros to be <= KEY_MAX. Check off-by one mistakes in keycodemax usage. There was a lot of potential for overwriting memory. Also enlarge NR_KEYS to 256 while we're at it. Found-by: Georgi Guninski Initial-patch-by: Linus Torvalds Signed-off-by: Vojtech Pavlik [CRYPTO]: Add Tiger digest algorithms. Signed-off-by: James Morris Signed-off-by: David S. Miller input: Separate dualpoint and passthrough flags in ALPS driver. Some non-dualpoint devices need passthrough enabled. Signed-off-by: Vojtech Pavlik [libata ahci] Print out port id on error messages Pointed out by Justin Cormack, Brett Russ, and others. input: Make the i8042 PnP detection even more BIOS and CONFIG-proof. This now should work with almost any BIOS and kernel config combination. Signed-off-by: Vojtech Pavlik input: Print a warning message when PnP fails to find an i8042 controller. Signed-off-by: Vojtech Pavlik input: Disable scancode event generation in hid-core.c, as it can cause floods of events when devices don't honor the set_idle() call or report noise on absolute values, until a solution for this is found. Signed-off-by: Vojtech Pavlik input: atkbd - "scroll" is a per-device attribute, don't use global flag in interrupt handler. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Remove filtering of duplicate events in hid-core. HIDDEV wants them, and hid-input doesn't care, since input does the filtering anyway. Signed-off-by: Vojtech Pavlik input: Add a missing brace in hid-core.c Signed-off-by: Vojtech Pavlik PCI: remove pci_find_device usage from pci sysfs code. Signed-off-by: Greg Kroah-Hartman input: After testing on real world hardware, it's obvious we can't trust ACPIPnP nor PnPBIOS to properly report the existence of a keyboard and mouse port in all cases. Some BIOSes hide the ports if no mouse or keyboard is connected, causing trouble with eg. KVM switches. The i8042 driver now does read-only probing first, which should not cause any problems even if an i8042 controller really is not present. However, on IA64 we still need to trust ACPI, since legacy-free hardware is common there and invalid port accesses cause exceptions. Signed-off-by: Vojtech Pavlik [PATCH] PCI: Apple PCI IDs update please sent that to Andrew/Linus in your next batch for after 2.6.11, those new IDs will be needed for support of the new iMac G5. The changes to pci.ids match the changes already submitted to the web database. From: Benjamin Herrenschmidt Signed-off-by: Greg Kroah-Hartman [libata ahci] support ->tf_read hook [PATCH] PCI: tone down pci=routeirq message From: Bjorn Helgaas Tone down the message about using "pci=routeirq". I do still get a few reports, but most are now prompted just by the fact that my email address appears in dmesg in an "error-type" message. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: fix hotplug double free With the brackets missed out func could be freed twice. Found by Coverity tool Signed-off-by: Alexander Nyberg Signed-off-by: Greg Kroah-Hartman [PATCH] PCI: One more Asus SMBus quirk One more Asus laptop requiring the SMBus quirk (W1N model). Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [MM]: Add 'pfn' arg to flush_cache_page(). Based almost entirely upon a patch by Russell King. Signed-off-by: David S. Miller input: set gameport devices' bus so they can be bound to drivers. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: Fix string formatting in joydump. Signed-off-by: Vojtech Pavlik [PATCH] Orinoco driver updates - PCMCIA initialization cleanups The client_reg.Attributes field is no longer used. Don't bother setting it. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] Orinoco driver updates - cleanup PCI initialization As someone pointed out, pci_set_drvdata() belongs right at the end of PCI initialization. Correct this in the various PCI based orinoco drivers. Signed-off-by: David Gibson Signed-off-by: Jeff Garzik [PATCH] sb1000: reduce ioctl stack usage sb1000_dev_ioctl() (on i386) uses 824 bytes of stack space, all due to overuse of inline functions. By changing a few infrequently used functions to non-inline, the stack usage is reduced to only 60 bytes. Nothing in a fast path is changed. Signed-off-by: Randy Dunlap Signed-off-by: Jeff Garzik [PATCH] wireless: Clean up firmware loading in (resend) Identify different firmware by enums, not strings, as we need to have some integral firmware identifier for choosing maximum rssi values for each different firmware type. Consolidate the information about firmware filenames and capabilities in the atmel module, not in atmel_cs or atmel_pci. Move common prototypes and firmware enum into new atmel.h file. The atmel_cs driver also thought that init_atmel_card() took "int irq" as the first parameter, this is now fixed to be "unsigned short irq". Signed-off-by: Dan Williams Signed-off-by: Jeff Garzik [PATCH] wireless: WEXT quality cleanups + max rssi (resend) Use correct maximum rssi level for at76c502e-type cards, and correct values in the qual.updated field to more closely match the current Wireless Extensions API. Signed-off-by: Dan Williams Signed-off-by: Jeff Garzik [PATCH] wireless: Make Atmel driver use SET_NETDEV_DEV Make the Atmel wireless driver use SET_NETDEV_DEV to get the correct entries in sysfs. Seems like somebody meant to do this but it got lost. atmel_cs.c was previously fixed to pass in the correct struct device * via handle_to_dev() but the driver never actually used it. Signed-off-by: Dan Williams Signed-off-by: Jeff Garzik [MM]: Pass correct address down to bottom of page table iterators. Some routines, namely zeromap_pte_range, remap_pte_range, change_pte_range, unmap_area_pte, and map_area_pte, were using a chopped off address. This causes bogus addresses to be passed into set_pte_at() and friends, resulting in missed TLB flushes and other nasties. Signed-off-by: David S. Miller [SPARC64]: Do the init_mm check inline in set_pte_at(). Signed-off-by: David S. Miller input: Add more PnP IDs to i8042 PnP probe table. BIOS manufacturers are very creative. Signed-off-by: Vojtech Pavlik input: Make gameport digital joysticks work on 2.6 and x86_64 again. Signed-off-by: Vojtech Pavlik mv643xx: raise size of receive skbs to allow for an optional VLAN tag VLAN tag needs an extra 4 bytes in receive skb Signed-off-by: Dale Farnsworth mv643xx: remove superfluous function, mv643xx_set_ethtool_ops Signed-off-by: Dale Farnsworth Audit IPC object owner/permission changes. Add linked list of auxiliary data to audit_context Add callbacks in IPC_SET functions to record requested changes. Signed-off-by: David Woodhouse input: Add MicroTouch (3M) serial touchscreen driver From: Dan Streetman Signed-off-by: Vojtech Pavlik input: Add the option to use cooked coordinates in MicroTouch USB touchscreen driver. From: Dan Streetman Signed-off-by: Vojtech Pavlik Currently touching audit.h triggers a large rebuild because it's sucked in via fs.h. It's there because of the getname()/putname() requirements that come with CONFIG_AUDITSYSCALL. Remove header dependency by pushing relevant putname() implementation into fs/namei.c. It adds function call overhead for putname() callers when CONFIG_AUDITSYSCALL is set, quite minor cost for detangled source. Signed-off-by: Chris Wright A closer sweep of configurable audit symbols shows the following need audit.h included when audit.h is detangled from fs.h. arch/um/kernel/ptrace.c for audit_syscall_entry/exit arch/s390/kernel/ptrace.c for audit_syscall_entry/exit arch/mips/kernel/ptrace.c for audit_syscall_entry/exit Signed-off-by: Chris Wright [S390]: Fix build after set_pte_at() changes. Signed-off-by: David S. Miller Resolve conflicts. [ALSA] TEA575x - add video release callback to avoid warning TEA575x tuner Signed-off-by: Jaroslav Kysela [ALSA] FM801 - radio: Fixed thinko for tea575x_tuner module parameter (int type not bool) FM801 driver Signed-off-by: Jaroslav Kysela [ALSA] emu10k1 driver - add multichannel device hw:x,3 [1/8] EMU10K1/EMU10K2 driver Update header file for multichannel support. Add some new register info. Signed-Off-By: Lee Revell Signed-off-by: Jaroslav Kysela [ALSA] emu10k1 driver - add multichannel device hw:x,3 [2-8/8] EMU10K1/EMU10K2 driver This series of patches adds a 16 channel non interleaved PCM playback device, hw:x,3, to the emu10k1 driver. It also adds support for the newly discovered per channel half loop interrupt. Signed-Off-By: Lee Revell Signed-off-by: Jaroslav Kysela [ALSA] emu10k1 - add 'voices' /proc entry for debugging the voice allocator EMU10K1/EMU10K2 driver This patch adds a 'voices' /proc entry for debugging the voice allocator. It also increases the size of the ptr_regs files to display the values for all channels. Finally it updates the names of the EFX recording inputs from '???' to 'FXBUS2_*'. Signed-Off-By: Lee Revell Signed-off-by: Jaroslav Kysela [ALSA] Fix detection of AFG node HDA Codec driver Fix the detection of AFG node with unsolicited events. Signed-off-by: Takashi Iwai [ALSA] add code to dump packets USB generic driver add a compile-time option to log the contents of USB packets Signed-off-by: Clemens Ladisch [ALSA] Fix CM9761A codec support AC97 Codec Fixed the codec patch for (probably) CM9761A. It looks incompatible with other CM9761 models. Signed-off-by: Takashi Iwai [ALSA] Fix CM9761 again AC97 Codec Revert the last addition for CM9761A support. The codec doesn't support the real control of Master/PCM volumes, too. Instead, fixed the default multi-channel register setting now. Signed-off-by: Takashi Iwai [ALSA] use unsigned 1-bit fields Virtual Midi Can't have a boolean and a sign bit in 1 bit. Fix (14) boolean/bitfield sparse warning: include/sound/seq_virmidi.h:41:16: warning: dubious one-bit signed bitfield Signed-off-by: Randy Dunlap Signed-off-by: Takashi Iwai [ALSA] Fix the wrong function call from ioctl Control Midlevel Fixed the call of a wrong function from ioctl. Signed-off-by: Takashi Iwai [ALSA] [SPARSE] Fix __user pointers PCM Midlevel,RawMidi Midlevel,ALSA<-OSS emulation,ALSA sequencer Fixed __user pointers including other misc fixes: - replaced the obsolete CONFIG_SND_IOCTL32_EMUL. - added the proper segment change before passing the kernel pointer as the user pointer in PCM code. Signed-off-by: Takashi Iwai [ALSA] [SPARSE] Use unsigned int :1 bitfields EMU10K1/EMU10K2 driver,GUS Library,ALSA<-OSS emulation,Trident driver YMFPCI driver,CMIPCI driver,Intel8x0-modem driver,Maestro3 driver ALI5451 driver,ICE1712 driver Use unsigned int :1 bitfields. Signed-off-by: Takashi Iwai [ALSA] Fix comiple with old gcc EMU10K1/EMU10K2 driver Fix compile with old gcc. Signed-off-by: Takashi Iwai [ALSA] [SPARSE] Fix __user pointers EMU10K1/EMU10K2 driver Fix the access to __user pointers in some places. Added proper casts. Signed-off-by: Takashi Iwai [ALSA] [SPARSE] Add __user pointer casts Wavefront drivers Added __user pointer casts to sys_*() arguments Signed-off-by: Takashi Iwai [ALSA] [SPARSE] Use NULL instead of 0 HDA Codec driver Use NULL for pointers instead of 0. Signed-off-by: Takashi Iwai [ALSA] Fix invalid use of readl/writel KORG1212 driver Fixed the invalid use of readl/writel to normal pointers. Signed-off-by: Takashi Iwai [ALSA] remove an unnecessary printk EMU10K1/EMU10K2 driver This patch removes an unnecessary printk accidentally left in the multichannel patch. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai [ALSA] Fix compilation with compat support ALSA sequencer Fix the compilation with 32bit compat support. Signed-off-by: Takashi Iwai [ALSA] Don't set up the front stream twice HDA Codec driver Don't set up the front stream twice in the loop. Signed-off-by: Takashi Iwai [ALSA] Fix mono volume/mute controls HDA generic driver Fixed mono volume/mute controls. They were handled as stereo mistakenly. Signed-off-by: Takashi Iwai [ALSA] Fix SPDIF output HDA Codec driver Fixed SPDIF output (over multi-out). Signed-off-by: Takashi Iwai [ALSA] remove superfluous from_timer_port parameter ALSA sequencer Removed superfluous from_timer_port parameter from snd_seq_queue_process_event and queue_broadcast_event functions. Signed-off-by: Clemens Ladisch [ALSA] fix indentation Generic drivers Signed-off-by: Clemens Ladisch [ALSA] add support for Emagic USB MIDI interfaces USB generic driver Add support for the Emagic USB MIDI protocol (raw MIDI with 'F5 xx' port switching) and for Unitor8/AMT8/MT4 devices. Signed-off-by: Clemens Ladisch [ALSA] add logging to send_bulk_static_data USB generic driver Add the optional dump_urb call to send_bulk_static_data, too. Signed-off-by: Clemens Ladisch [ALSA] ignore Emagic padding bytes USB generic driver Ignore the 0xff padding bytes added by Emagic devices at the end of input packets. Signed-off-by: Clemens Ladisch [ALSA] fix Emagic broadcast port names USB generic driver Name the broadcast port 'Broadcast' instead of 'Broadcast/Control' because control messages are returned through the first MIDI port. Signed-off-by: Clemens Ladisch [ALSA] Fix Digital Input HDA Codec driver,HDA generic driver Fixed the SPDIF digital input support for HDA codecs. New controls 'IEC958 Capture Switch' and 'IEC958 Capture Default' are added. Signed-off-by: Takashi Iwai [ALSA] CMI8768 patch CMIPCI driver Hi, I made a patch for CM8768, which has the same PCI ID but there are several HW diffecece, aas listed: 1. 8768 has no PCM volume control. 2. The ADC of 8768 can only record in 44.1kHz or 48kHz. 3. 8768 can support up to 8 channels. I made change for item 2 and 3, I want to use the softvol plugin but don't know how to. The driver just don't generate the PCM volume slider for now. Signed-off-by: ChenLi Tien Signed-off-by: Takashi Iwai [ALSA] ALC882 support, fix ALC880 5-stack mode HDA Codec driver - Added the ALC882 support. Currently no model selections; full-mode with digital I/O only. - Fixed the widget assignment in ALC880 5-stack mode. Signed-off-by: Takashi Iwai [ALSA] Fix digital input HDA Codec driver Fixed SPDIF digital input. Signed-off-by: Takashi Iwai [ALSA] Don't query chip models on CMI8338 CMIPCI driver Don't call query_chip() for CMI8338. It's for CMI8738/8768 only. Signed-off-by: Takashi Iwai [ALSA] Add module_init and module_exit entries ALSA sequencer From Mikael Magnusson : Added the missing module_init and module_exit entries. Signed-off-by: Takashi Iwai [ALSA] add Roland FANTOM-X support USB generic driver This adds a USB MIDI quirk for the Roland FANTOM-X. Signed-off-by: Clemens Ladisch [ALSA] do codec init more like windows does au88x0 driver The following patch makes the codec init code act more like the windows code. Signed-off-by: Jeff Muizelaar Signed-off-by: Takashi Iwai [ALSA] Fix CM9761 again AC97 Codec Fixed the silent output playback problem on CM9761. The SPDIF_CTRL register (0x6c) bit 17 was the culprit. The master volume is back again since it seems to have some influence on the looped input sounds. Signed-off-by: Takashi Iwai [ALSA] Add mixer controls to intel8x0m Intel8x0-modem driver This patch adds a mixer switch to the intel8x0m driver, so that the hook state can be controlled from userspace, instead of bringing the line off hook on capture start. Please someone test, and merge into cvs. Comments are welcome. Signed-off-by: Jaime A. Lopez Sollano Signed-off-by: Takashi Iwai [ALSA] AC97 quirk for Dell Precision 650 Intel8x0 driver Added the ac97 quirk entry for Dell Precision 650. Signed-off-by: Takashi Iwai [ALSA] add more USB MIDI quirks USB generic driver Add support for Roland RS-70, SP-606, BOSS DR-880 Signed-off-by: Clemens Ladisch [ALSA] fix buffer wrap in snd_rawmidi_transmit_peek RawMidi Midlevel Fix the behaviour and return value of snd_rawmidi_transmit_peek when the buffer wraps around. Signed-off-by: Clemens Ladisch [ALSA] fix counting of MIDI input overruns RawMidi Midlevel Do not throw away the old value of the overrun counter when more than one byte is received. Signed-off-by: Clemens Ladisch [ALSA] add port names for serial MIDI ports Generic drivers Give each of the MIDI ports created by snd-serial-u16550 a unique name. Signed-off-by: Clemens Ladisch [ALSA] remove unsafe usage of urb->status USB generic driver Remove unprotected accesses to urb->status and substream->runtimer->trigger. Signed-off-by: Clemens Ladisch [ALSA] remove _snd_rawmidi_runtime.trigger RawMidi Midlevel Remove the trigger field from _snd_rawmidi_runtime because it is never ever read. (This may be why nobody noticed that snd_rawmidi_transmit_empty sets it to the wrong value.) Signed-off-by: Clemens Ladisch [ALSA] Fix the Audigy SPDIF sample rate register definitions EMU10K1/EMU10K2 driver Signed-off-by: Lee Revell Signed-off-by: Jaroslav Kysela [ALSA] Control API - fix the wrong allocation for userspace controls Control Midlevel Signed-off-by: Jaroslav Kysela [ALSA] emu10k1 - fix the initial value for Captured FX8010 Outputs EMU10K1/EMU10K2 driver - rename 'EFX voices mask' to 'Captured FX8010 Outputs' - fix the initial value Signed-off-by: Lee Revell Signed-off-by: Jaroslav Kysela [ARM] Update syscall table Add demultiplexed socket and ipc syscalls. Add key syscalls. Leave the new numbers for the demultiplexed socket and ipc syscalls commented out in asm-arm/unistd.h for the time being. Signed-off-by: Russell King [ARM] Fix set_fiq_regs()/get_fiq_regs() Make these "naked" functions. This allows us to eliminate the clobbers which later gcc versions complain about. Signed-off-by: Russell King [ARM] Fix sparse warnings in ARM IDE drivers. Signed-off-by: Russell King [ARM] Acorn SCSI: Ensure iomem pointers are marked as such. Signed-off-by: Russell King [ARM] Don't use host->irq Signed-off-by: Russell King [ARM] SCSI: Move host->dma_channel to info->scsi.dma Signed-off-by: Russell King [PATCH] I2C: add fscpos chip driver This patch against 2.6.11-rc1 contains a driver for fscpos sensors. Signed-off-by: Stefan Ott Signed-off-by: Greg Kroah-Hartman [ARM] Unuse scsi host->base This eliminates the final usage of deprecated elements in scsi_host by Acorn SCSI drivers. Signed-off-by: Russell King [PATCH] I2C: Allow it87 pwm reconfiguration Quoting myself: > As soon as you will have confirmed that everything worked as expected, > Jonas and I will provide a patch adding a pwm polarity reconfiguration > module parameter for you to test. This should give you access to the > PWM features of your it87 chip again, but in a safe way for a change > ;) Here comes this patch. The new "fix_pwm_polarity" module parameter allows one to force the it87 chip reconfiguration. This is only supported in the case the original PWM configuration is suspected to be bogus, and only if we think that reconfiguring the chip is safe. I wish to thank Rudolf Marek and Jonas Munsin again for their testing and review of my code. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Fix up some build warnings in the fscpos driver. Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Kill i2c_client.id (1/5) (1/5) Stop using i2c_client.id in i2c/chips drivers (mostly hardware monitoring drivers). Drivers affected: * adm1021 * adm1025 * adm1026 * adm1031 * ds1621 * fscher * gl518sm * isp1301_omap * lm75 * lm77 * lm80 * lm83 * lm85 * lm87 * lm90 * max1619 * pcf8574 * pcf8591 * rtc8564 * smsc47m1 * w83l785ts The vast majority of these drivers simply defined the i2c_client id struct member but never used it, so they are not affected at all by the change. Exceptions are: * lm85 and rtc8564, which would at least display the id in a debug message when assigning it. Not really useful though, as the id was then never used. * adm1026, which used the assigned id in all driver messages. However, since dev_* calls will append the bus number and client address to these messages, the id information is redundant and can go away. Also, the driver would allow some GPIO reprogramming on the first client only (id=0) and removing the id doesn't allow that anymore. I would restore a similar functionality if needed, but the ADM1026 chip is found on very few motherboards and none of these has more than one ADM1026 chip AFAIK, so it doesn't seem to be worth the effort. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Kill i2c_client.id (2/5) (2/5) Stop using i2c_client.id in media/video drivers. Affected drivers: * adv7170 * adv7175 * bt819 * bt856 * bttv * cx88 * ovcamchip * saa5246a * saa5249 * saa7110 * saa7111 * saa7114 * saa7134 * saa7185 * tda7432 * tda9840 * tda9875 * tea6415c * tea6420 * tuner-3036 * vpx3220 Most drivers here would include the id as part of their i2c client name (e.g. adv7170[0]). This looks more like an habit than something really needed, so I replaced the various printf by strlcpy, which should be slightly faster. As said earlier, clients can be differenciated thanks to their bus id and address if needed, so I don't think that including this information in the client name is wise anyway. Other drivers would either set the id to -1 or to a unique value but then never use it. These drivers are unaffected by the changes. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Kill i2c_client.id (3/5) (3/5) Stop using i2c_client.id in misc drivers. Affected drivers: * acorn/char/pcf8583 * acorn/char/i2c * i2c/i2c-dev * macintosh/therm_windtunnel * sound/oss/dmasound/dac3550a * sound/ppc/keywest The Acorn pcf8583 driver would give the i2c_client id the same value as the i2c_driver id, and later test that client id (in i2c). I changed it to test the client's driver id instead. The result is the same and the client id is then useless and can be removed. All other drivers here would allocate the client id to some value and then never use it. They are unaffected by the change. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Kill i2c_client.id (4/5) > (4/5) Deprecate i2c_client.id. Now that i2c_client.id has no more users in the kernel (none that I could find at least) we could remove that struct member. I however think that it's better to only deprecate it at the moment, in case I missed users or any of the other patches are delayed for some reason. We could then delete the id member definitely in a month or so. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Kill i2c_client.id (5/5) > (5/5) Documentation update. Finally, updates are required to the i2c/writing-client and i2c/porting-client documents. Remove any reference to i2c_client id and invite porters to discard that struct member. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: just delete the id field, let's not delay it any longer Becides, sparse keeps complaining when it sees this attribute within a structure... Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: fix for fscpos voltage values Multiplied the voltage multipliers by 10 in order to comply with the sysfs guidelines. Signed-off-by: Stefan Ott Signed-off-by: Greg Kroah-Hartman [AGPGART] Fix typo. From: Joern Heissler Signed-off-by: Dave Jones [PATCH] I2C: i2c-dev namespace cleanup This patch is namespace cleanup for the i2c-dev module. Please apply. Signed-off-by Mark M. Hoffman Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: lm78 driver improvement The following patch against kernel 2.6.11-rc2-mm1 improves the lm78 driver. I used it as a model to port the sis5595 driver to the 2.6 kernel, and I then applied the changes suggested by Jean Delvare on the sis5595 driver to this one. Signed-off-by: Aurelien Jarno Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Enable w83781d and w83627hf temperature channels The chips supported by the w83781d and w83627hf drivers might come up with their temperature channels disabled. Currently, the w83781d driver does so for temp3 but omits temp2, while the w83627hf driver omits both. The following patch fixes that, and prints warning messages when the driver has to enable the channels (normally the BIOS should do it for us). We also skip this initialization step for the AS99127F chips, for which we have no documentation. This should hopefully solve the problem reported here: http://archives.andrew.net.au/lm-sensors/msg29150.html Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Kill unused includes in i2c-sensor-detect.c Looks to me like i2c-sensor-detect.c includes a handful of headers it doesn't need at all. This patch removes them. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: unnecessary #includes in asb100.c * Jean Delvare [2005-01-25 10:14:49 +0100]: > Any reson why asb100.c (in linux 2.6.11-rc2) includes linux/ioport.h and > asm/io.h? As an i2c-only chip driver, I don't think it needs these. > > As a side note, I also wonder what the inclusions of linux/config.h, > linux/types.h and asm/errno.h are there for. Because they look pretty? Here's a patch Greg, please apply... Signed-off-by: Mark M. Hoffman Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: lm80 driver improvement Description: Cleanup some cluttered macros, add error checking for fan divisor value set. Signed-off-by: Sytse Wielinga Signed-off-by: Aurelien Jarno Signed-off-by: Shawn Starr Signed-off-by: Greg Kroah-Hartman [PATCH] i2c-core.c: make some code static This patch makes some needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: use time_after instead of comparing jiffies Signed-off-by: Alexey Dobriyan Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: add ST M41T00 I2C RTC chip driver This patch adds support for the ST M41T00 I2C RTC chip. This rtc chip has no mechanism to freeze it's registers while being read; however, it will delay updating the external values of the registers for 250ms after a register is read. To ensure that a sane time value is read, the driver verifies that the same registers values were read twice before returning. Also, when setting the rtc from an interrupt handler, a tasklet is used to provide the context required by the i2c core code. Signed-off-by: Mark A. Greer Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: New chip driver: sis5595 Please find below the new version of the patch against kernel 2.6.11-rc3-mm1 to add the sis5595 driver (sensor part). As you suggested, I have changed the PCI part of the driver, taking the via686a driver as an example. I have also changed the comparison of jiffies by using time_after. Signed-off-by: Aurelien Jarno Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: add Marvell mv64xxx i2c driver Marvell makes a line of host bridge for PPC and MIPS systems. On those bridges is an i2c controller. This patch adds the driver for that i2c controller. Please apply. Depends on patch submitted by Jean Delvare: http://archives.andrew.net.au/lm-sensors/msg29405.html Signed-off-by: Mark A. Greer Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: add GL520SM Sensor Chip driver Port of the Genesys Logic 520SM sensor chip driver from linux 2.4 Signed-off-by: Maarten Deprez Signed-off-by: Greg Kroah-Hartman [ARM] Net: add macro to access driver specific netdev data. Signed-off-by: Russell King [PATCH] I2C: improve debugging output Rework the pca_xfer() function to always print the number of successfully completed transfers in a series when debugging, even when exiting with an error. Signed-off-by: Ian Campbell Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Enable I2C_PIIX4 for 64-bit platforms Is there any specific reason for the PIIX4 SMBus driver to be disabled on 64-bit platforms? If not, then please apply the following change. The MIPS Technologies Malta development board has the 82371EB chip and supports 64-bit configurations. I've verified the driver to work correctly using 64-bit kernels for both endiannesses. Signed-off-by: Maciej W. Rozycki Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: fix typo in drivers/i2c/busses/i2c-ixp4xx.c I was looking at your ixp4xx gpio i2c driver for inspiration (for a similar pxa2xx one) and I just happened to notice a tiny typo. Signed-off-by: Ian Campbell Signed-off-by: Greg Kroah-Hartman [PATCH] I2C i2c-nforce2: add support for nForce4 (patch against 2.6.11-rc4) can you please apply the attached patch (against 2.6.11-rc4, but works as well for 2.6.11-rc3-mm2), that adds support for the two SMBusses of the nForce4 to the i2c-nforce2 i2c bus driver. The patch is reported to work on the standard nForce4 (i.e. non-Ultra, non-SLI), but I expect that it works as well for the other nForce4 chipsets, that seem to have the same PCI-id for the SMBus-device. This patch was proposed by Chuck , thanks to him for the information, testing and his patch. Signed-off-by: Hans-Frieder Vogt Signed-off-by: Greg Kroah-Hartman [ARM] Use ecard_{request,release}_resources() for resource management Signed-off-by: Russell King [ARM] Net: Convert ether1 and ether3 to use iomem accesses. Signed-off-by: Russell King [ARM] Add card type specific data structure. Signed-off-by: Russell King [SPARC64]: Accept 'm5823' clock chip as seen on SB1500. Signed-off-by: David S. Miller [ARM] Acorn expansion card core update. Add __iomem annotations and use iomem functions where appropriate. Separate out expansion card allocation/initialisation and freeing. Convert device attributes to be handled by driver core. Clean up deprecated function warnings for internal ecard_address usage. Signed-off-by: Russell King [ARM PATCH] 2448/1: Remove PrPMC1100 platform Patch from Deepak Saxena No longer maintained, not sure one can even buy one of these. Signed-off-by: Deepak Saxena Signed-off-by: Russell King [ARM PATCH] 2449/1: Make IXP4xx use platform devices for serial ports Patch from Deepak Saxena Signed-off-by: Deepak Saxena Signed-off-by: Russell King [PATCH] I2C: Remove NULL client checks in rtc8564 driver Several functions in your rtc8564 driver verify the non-NULLity of the i2c client that is passed to them. It doesn't seem to be necessary, as I can't think of any case where these functions could possibly be called with a NULL i2c client. As a matter of fact, I couldn't find any similar driver doing such checks. My attention was brought on this by Coverity's SWAT which correctly noticed that three of these functions contain explicit or hidden dereferences of the i2c client pointer *before* the NULL check. I guess it wasn't a problem because the NULL case cannot happen (unless I miss something), but this still is confusing code. Thus I propose the following changes: Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Make i2c list terminators explicitely unsigned Shouldn't the i2c list terminators be explicitely declared as unsigned? I'd hope it to help code analysis tools and possibly avoid false positives. Coverity's SWAT pointed my attention to these constants. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Fix some gcc 4.0 compile failures and warnings gcc 4.0.x cvs seems to dislike "include/linux/i2c.h file" and others due to a current gcc 4.0.x change having to do with array declarations. Example error msg: include/linux/i2c.h:{55,194} error: array type has incomplete element type A. Daplas has recently done a workaround for this on another header file. A thread discussing this can be found by following the link below: http://gcc.gnu.org/ml/gcc/2005-02/msg00053.html The patch changes the array(struct i2c_msg) declaration used by *i2c_transfer and *master_xfer from "struct i2c_msg msg[]" format to "struct i2c_msg *msg". After some grepping, I came up with about a dozen files that used the format disliked by gcc4 that're addressed by the attached patch. Tested on gcc 3.x & gcc 4.x by configuring kernel with all i2c switches enabled as module, and saw no errors or warnings in i2c. Signed-off-by: Mickey Stein Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: S3C2410 missing I2C_CLASS_HWMON None of the standard sensor drivers currently recognise the s3c24xx I2C controller as it does not have I2C_CLASS_HWMON set in the adapter class field. The attached patch initialises the adapter class to I2C_CLASS_HWMON Signed-off-by: Ben Dooks Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: minor I2C cleanups This is one in a series of patches for adding a non-blocking interface to the I2C driver for supporting the IPMI SMBus driver. This patch is a simply some minor cleanups and is in addition to the patch by Mickey Stein (http://marc.theaimsgroup.com/?l=linux-kernel&m=110919738708916&w=2). Clean up some general I2C things. Fix some grammar and put () around all the #defines that are compound to avoid nasty side-effects. Signed-off-by: Corey Minyard Signed-off-by: Greg Kroah-Hartman [PATCH] Add class definition to the elektor bus driver Hi Frank, all, > > Which bus driver are you using? It obviously lacks class declaration, > > so the correct fix is to add the class there. > > The modules that are loading are (in reverse order): > adm1031 > ad5321 > mic184 > pca9540 > i2c_sensor > i2c_elektor > i2c_algo_pcf > i2c_core > > So I believe what you are asking for is the i2c_elektor driver for the > PCF8584 ISA to I2C chip. Correct, I just checked and this one actually lacks its class. Patch follows. This patch adds a class definition to the elektor i2c bus driver. Without this definition, hardware monitoring chips located on such busses cannot possibly be driven. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: saa7146 build fix include/media/saa7146.h:160: parse error before `*' include/media/saa7146.h:160: warning: function declaration isn't a prototype Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: w83627hf needs i2c-isa The w83627hf driver is useless unless i2c-isa is present. All other drivers in this case do select I2C_ISA through Kconfig, so this one should as well do. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 2450/1: Add missing REG_OFFSET to ixp4xx platform.h header Patch from Deepak Saxena Patch 2449/1 depends on this since it removes REG_OFFSET from the individual board implementations. Signed-off-by: Deepak Saxena Signed-off-by: Russell King [ARM PATCH] 2460/1: fix up resource usage on locomo Patch from John Lenz Add the list of devices on the locomo chip, and change around how resources and struct resource are used. There is only one struct resource for the entire locomo, but each driver will call request_mem_region on the pieces it is using. Secondly, add a few helper functions to locomo.c to control GPIOs and DAC. Signed-off-by: John Lenz Signed-off-by: Russell King [PATCH] I2C: fixed up the i2c-id.h algo ids. Thanks to Jean Delvare for the help with this. Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 2465/1: VR1000 - add power-off hook Patch from Ben Dooks Add PM hook to power board down when requested Signed-off-by: Ben Dooks Signed-off-by: Russell King [PATCH] I2C: Change of i2c co-maintainer Since I am working more actively than Philip (or anyone else, for that matter) on the i2c subsystem these days, it would probably make sense that I am listed as the co-maintainer instead of him. Signed-off-by: Jean Delvare Acked-by: Philip Edelbrock Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Trivial indentation fix in i2c/chips/Kconfig Hi Greg, Quoting myself: > (...) I also think I see an indentation issue on the "tristate" line, > seemingly copied from the SENSORS_DS1621 section which would need to > be fixed as well. Here is the trivial patch fixing that, if you want to apply it. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 2467/1: S3C2440 - camera interface device Patch from Ben Dooks Add s3c2440 camera interface device definition Patch from Guillaume GOURAT Signed-off-by: Guillaume GOURAT Signed-off-by: Ben Dooks Signed-off-by: Russell King [ARM PATCH] 2469/1: S3C2410 - add S3C2410_TCFG1_MUX4_SHIFT definition Patch from Ben Dooks Add missing S3C2410_TCFG1_MUX4_SHIFT Patch from Guillaume Gourat Signed-off-by: Guillaume GOURAT Signed-off-by: Ben Dooks Signed-off-by: Russell King [ARM PATCH] 2470/1: S3C2410 Documentation - add Guillaume Gourat Patch from Ben Dooks Add Guillaume Gourat to list of port contributors Signed-off-by: Ben Dooks Signed-off-by: Russell King [PATCH] w1/w1_therm: replace schedule_timeout() with msleep_interruptible() Description: Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. Changed tm to an int, as it now is in terms of msecs, not jiffies. Signed-off-by: Nishanth Aravamudan Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: dscore cleanups. 2/2 Trivial cleanups, mostly static/non static, removed unneded exports. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: Core cleanup 1/2 Trivial cleanups, mostly static/non static, removed unneded exports. It fuzzes a bit, sorry, patch is quite old. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: fix some compiler warnings generated by the last "static" patch. Signed-off-by: Greg Kroah-Hartman [PATCH] w1: replace obsoleted *sleep_on* Remove obsoleded *sleep_on*. Since they are used only to wait for a given flags and awakening only happens on signals, we can just replace them with msleep_interruptible. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] w1: get rid of the potential problems with atomic operations. Get rid of the potential problems with atomic operations. According to upcoming atomic_ops.txt by David Miller and Anton Blanchard some archs may reoder atomic operations with nonatomic, since the former are always visible but the latter are not, this can lead to unpredicted behaviour. Signed-off-by: Evgeniy Polyakov Signed-off-by: Greg Kroah-Hartman [PATCH] drivers/w1/*: convert to pci_register_driver convert from pci_module_init to pci_register_driver (from:http://kerneljanitors.org/TODO). Signed-off-by: Christophe Lucas Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 2482/1: IXP2000 - header cleanup Patch from Ben Dooks fix the following problems: lib/iomap.c:140: warning: passing arg 1 of `__raw_readsb' makes pointer from integer without a cast lib/iomap.c:156: warning: passing arg 1 of `__raw_writesb' makes pointer from integer without a cast include/asm-arm/arch-ixp2000/io.h modified to have (void __iomem *) in front of the alignment code include/asm/arch/system.h:22: warning: `cli' is deprecated (declared at include/linux/interrupt.h:65) cli() replace by local_irq_disable arch/arm/mach-ixp2000/ixdp2x01.c:116: warning: passing arg 1 of `ixp2000_reg_write' from incompatible pointer type arch/arm/mach-ixp2000/ixdp2x01.c:117: warning: passing arg 1 of `ixp2000_reg_write' from incompatible pointer type fixed definition of the cpld registers IXDP2X01_CPLD_VIRT_REG() Signed-off-by: Ben DooksLooks okay. Test-booted on ENP-2611, no problem. Signed-off-by: Lennert Buytenhek Signed-off-by: Russell King [ARM PATCH] 2483/1: S3C2410 - serial sparse error Patch from Ben Dooks Eliminate NULL initiated fields in the port structures which where causing errors from sparse. Signed-off-by: Ben Dooks Signed-off-by: Russell King [ARM PATCH] 2488/1: Update Vibren PXA255 IDP support Patch from Cliff Brake Changes to machine specific files and add defconfig so the CONFIG_ARCH_PXA_IDP machine will build and run. Changes are mostly related to the 2.6 driver model. Also removed code that is no longer required -- support for older versions of hardware, etc. Signed-off-by: Cliff Brake Signed-off-by: Russell King [ARM PATCH] 2495/1: 21285 - fix build warnings Patch from Ben Dooks 21285 serial driver has a couple of sparse errors from zero initialiser, as well as an unused label. Signed-off-by: Ben Dooks Signed-off-by: Russell King [ARM PATCH] 2500/1: S3C2410 - include/asm-arm/arch-s3c2410/regs-adc.h Patch from Ben Dooks S3C2410 ADC register definitions Patch from Shannon Holland Signed-off-by: Shannon Holland Signed-off-by: Ben Dooks Signed-off-by: Russell King [PATCH] sis900.c net poll support Signed-off-by: Jeff Garzik [PATCH] Sparse fixes for drivers/net/hamradio Signed-off-by: Jeff Garzik [PATCH] ixgb: Documentation/networking/ixgb.txt Signed-off-by: Jeff Garzik [PATCH] (v2) arlan: remove gcc warning with CONFIG_PROC_FS=n Signed-off-by: Jeff Garzik [PATCH] Add OMAP support to smc91x Ethernet driver From: Tony Lindgren Following patch adds support for various OMAP boards to smc91x. Signed-off-by: Tony Lindgren Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik [wireless atmel] Add support LG LW2100N WLAN PCMCIA card Originally from Serge A. Suchkov . [PATCH] smc91x: power down PHY on suspend From: Ian Campbell Powering down the PHY saves something like 100mA at 5V on my platform. Currently it is only done when the interface is brought down but it makes sense to do it on suspend as well. Signed-off-by: Ian Campbell Signed-off-by: Nicolas Pitre Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik [PATCH] e100: remove reference to NAPI config option e100 is NAPI all the time, so the Kconfig option is wasting space. Signed-off-by: Scott Feldman Signed-off-by: Jeff Garzik [PATCH] Add PPC440SP support to IBM EMAC driver Configures EMAC thresholds appropriately for the EMAC on the PPC440SP. Signed-off-by: Matt Porter Signed-off-by: Jeff Garzik [PATCH] Fix u32 vs. pm_message_t in network device drivers This should fix confusion in network device drivers. No code changes. Signed-off-by: Pavel Machek Signed-off-by: Jeff Garzik [PATCH] sk98lin: add MODULE_DEVICE_TABLE entry Signed-off-by: Jeff Garzik [PATCH] eepro100: remove ID for 82556 82556 support doesn't work with eepro100, so this removes the ID (0x1228) for 82556. See this thread for more info: http://marc.theaimsgroup.com/?l=linux-kernel&m=110726223221165&w=2 Signed-off-by: Scott Feldman Signed-off-by: Jeff Garzik [PATCH] fix driver name in dl2k as returned by ETHTOOL_GDRVINFO The GDRVINFO command of the ETHTOOL ioctl returns a bogus driver name. this bug confusees various network config tools... see mdk bug #12609 (http://qa.mandrakesoft.com/show_bug.cgi?id=12609) for reference Signed-off-by: Thierry Vignaud Signed-off-by: Jeff Garzik [PATCH] Possible VIA-Rhine free irq issue It seems to me that in the VIA Rhine device driver the requested irq might not be freed in case the alloc_ring() function fails. alloc_ring() can fail with a ENOMEM return value because of possible pci_alloc_consistent() failures. Signed-off-by: Jeff Garzik [PATCH] Possible AMD8111e free irq issue It seems to me that if in the amd8111e_open() fuction dev->irq isn't zero and the irq request succeeds it might not get released anymore. Specifically, on failure of the amd8111e_restart() call the function returns -ENOMEM without releasing the irq. The amd8111e_restart() function can fail because of various pci_alloc_consistent() and dev_alloc_skb() calls in amd8111e_init_ring() which is being called by amd8111e_restart. 1374 if(dev->irq ==0 || request_irq(dev->irq, amd8111e_interrupt, SA_SHIRQ, 1375 dev->name, dev)) 1376 return -EAGAIN; Signed-off-by: Jeff Garzik [PATCH] prism54: fix printk format warnings prism54 build shows some printk format complaints: (sparc64 build warning) drivers/net/wireless/prism54/isl_38xx.c:131: warning: long int format, different type arg (arg 3) drivers/net/wireless/prism54/isl_38xx.c:151: warning: long int format, different type arg (arg 3) cross-compile results: https://www.osdl.org/plm-cgi/plm?module=patch_info&patch_id=4240 Signed-off-by: Randy Dunlap Signed-off-by: Jeff Garzik [PATCH] Remove unused MAXBPQDEV definition Signed-off-by: Jeff Garzik [PATCH] sata_qstor: eh_timeout fix Here is an update to sata_qstor.c to enable full/proper register access during eh_timeout handling. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik [PATCH] net/wan/sbni: fix section usage net/wan/sbni data reference can be initdata: Error: ./drivers/net/wan/sbni.o .data refers to 0000000000000000 R_X86_64_64 .init.data+0x0000000000000060 Error: ./drivers/net/wan/sbni.o .data refers to 0000000000000008 R_X86_64_64 .init.data+0x0000000000000140 Error: ./drivers/net/wan/sbni.o .data refers to 0000000000000010 R_X86_64_64 .init.data+0x0000000000000180 Error: ./drivers/net/wan/sbni.o .data refers to 0000000000000018 R_X86_64_64 .init.data+0x0000000000000020 Error: ./drivers/net/wan/sbni.o .data refers to 0000000000000020 R_X86_64_64 .init.data+0x00000000000001c0 Signed-off-by: Randy Dunlap Signed-off-by: Jeff Garzik [PATCH] tulip/de2104x: don't mix __init & __devinit sections tulip/de2104x: fix section usage, don't mix __init & __devinit: Error: ./drivers/net/tulip/de2104x.o .text refers to 000000000000176d R_X86_64_PC32 .init.text+0xfffffffffffffffc Error: ./drivers/net/tulip/de2104x.o .text refers to 0000000000001798 R_X86_64_PC32 .init.text+0xfffffffffffffffc Signed-off-by: Randy Dunlap Signed-off-by: Jeff Garzik [PATCH] emac: fix skb allocation for full-size jumbo frames Sets jumbo frame handling based on MTU and allocates rx buffers large to handle full-size jumbo frames. Signed-off-by: Matt Porter Signed-off-by: Jeff Garzik [PATCH] WAN drivers fix: N2, C101, PCI200SYN - quite fatal The last change to drivers/wan/hd6457x.c was a bit fatal to drivers using it - the attached patch fixes NULL pointer dereference on RX. I've updated URLs in MAINTAINERS and wan/Kconfig as well. Signed-off-by: Krzysztof Halasa Signed-off-by: Jeff Garzik [PATCH] drivers/scsi/sata_*: make code static This patch makes needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik [PATCH] drivers/net/wan/z85230.c interrupt handling fix From: tom watson While working on a driver for z85230 based board I noticed what looks like it could be a problem. If the interrupt handler is handling an interrupt on port b and an interrupt comes in for port a, it seems to me that the port b handler would be called instead of the port a handler, and possibly hang the board until reset. Attached is a patch to set the irq methods back to port a before attempting to call them. Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik [PATCH] 2.6 eepro100: replace and delete duplicate ids - replace PCI_DEVICE_ID_INTEL_82557 and PCI_DEVICE_ID_INTEL_82559ER with theirs hex numbers - PCI_DEVICE_ID_INTEL_82801BA_7 is a duplicate of 0x2449. Signed-off-by: Jeff Garzik [IPV6] NDISC: Fix space calculation for link-layer address options. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Save space for ndisc_options{}. Pointed out by Krishna Kumar . Also, size of structure is now adjusted automatically. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Make ndisc_opt_lladdr_data() and check length inside. What we should do is to check lladdrlen and get pointer for link-layer address option. Since we know lladdrlen == dev->addr_len, we can check inside. Singned-off-by: Hideaki YOSHIFUJI [IPV6] ROUTE: Add gc_min_interval_ms sysctl. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Ensure to notify up-to-date link information. Signed-off-by: Hideaki YOSHIFUJI [TCP]: Put back tcp_timer_bug_msg[] symbol export. It is needed for tcp_reset_xmit_timer(), which is invoked by tcp_prequeue() which is invoked from tcp_ipv6.c Signed-off-by: Hideaki YOSHIFUJI Signed-off-by: David S. Miller [NET] NEIGHBOUR: Add hook for sysctl strategy. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: NEWLINK notification on change of Reachable Time Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Recompute Reachable Time on change of Base Reachable Time. Signed-off-by: Hideaki YOSHIFUJI [NET] NEIGHBOUR: Add retrans_time_ms and reachable_time_ms sysctls. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Deprecate base_reachable_time and retrans_timer. Signed-off-by: Hideaki YOSHIFUJI [IPV6] ROUTE: Keep cache entries for a while. GC always removed most cache entries and a fresh redirect entry might be removed immideately. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Ensure to send redirects. rt6_lookup() is inappropriate because it cannot lookup route to the source node of the original packet if we don't have specific route to it. Signed-off-by: Hideaki YOSHIFUJI [IPV6] NDISC: Ensure to send redirects even if we don't know target's lladdr. [IPV6] Always add a fragment header after receiving TOO BIG w/ pmtu < 1280. According to RFC2460, PMTU is set to the IPv6 Minimum Link MTU (1280) and a fragment header should always be included after a node receiving Too Big message reporting PMTU is less than the IPv6 Minimum Link MTU (1280). Signed-off-by: Hideaki YOSHIFUJI [IPV6] Ensure to use interface hoplimit by default. Signed-off-by: Hideaki YOSHIFUJI [IPV6] Unify common functions to compare ipv6 prefixes. Signed-off-by: Hideaki YOSHIFUJI [IPV6] ADDRCONF: Update prefix route on address deletion. We did not delete prefix route on deletion of corresponding permanent address while we add prefix route on addition of permanent address. This was confusing. With this changeset, we purge prefix route or convert it to dynamic one, if appropriate. Signed-off-by: Hideaki YOSHIFUJI [IPV6] Mature enough, no longer EXPERIMENTAL. Now we can pass IPv6 Ready Logo Phase 1 and Phase 2 Self Tests. Signed-off-by: Hideaki YOSHIFUJI [NET] Don't use magic number for sysctl table definition. Signed-off-by: Hideaki YOSHIFUJI [PATCH] mii: add GigE support Add support for GigE PHYs in MII support library. This patch allows GigE drivers to use the MII library the same way 10/100 drivers do. Since the MII library is already used by lots of network drivers and the GigE MII register bit definitions were reserved when many 10/100 PHYs were designed, the new GigE registers are accessed only if a driver specifically enables it. Existing 10/100 drivers should see no behavior differences with this change. Signed-off-by: James Chapman Signed-off-by: Jeff Garzik [PATCH] VIA-Rhine: undork whitespace Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik [ARM PATCH] 2502/1: S3C2410 - watchdog during kernel uncompression Patch from Ben Dooks Enable the watchdog at the start of the kernel uncompression stage, so that if any errors occur before the kernel reaches the stage where it can start running processes then the system will be reset. Signed-off-by: Ben Dooks Signed-off-by: Russell King [ARM PATCH] 2503/1: S3C2410 - add brief documentation for HP IPAQ H1940 Patch from Ben Dooks Brief documentation for Documents/arm/Samsung-S3C24XX for the HP IPAQ H1940 Signed-off-by: Ben Dooks Signed-off-by: Russell King SCSI: revamp target scanning routines The basic change is to allow target scans to be done by generic device (which need only have a scsi host as a parent). Also changes most target functions to take a struct scsi_target instead of the H/C/T numbers. Signed-off-by: James Bottomley [ARM PATCH] 2506/1: S3C2410 - dma descriptor slab Patch from Ben Dooks Use slab allocator instead of kmalloc() to allocate the dma buffer descriptors. This should allow the tracking of dma descriptors, and to check if they are being freed correctly. Signed-off-by: Ben Dooks Signed-off-by: Russell King [PATCH] SCSI tape: write filemark before rewind etc. when writing The patch at the end of this message modifies the st write semantics in the following way: write a filemark before rewind, offline, or seek if the previous operation was write. This semantics is specified on the man pages of some Unices and some software (e.g., cpio) seems to assume this. The change makes sure that the last file on the tape is properly terminated with a filemark and reading the file does not fail at the end. Signed-off-by: Kai Makisara Signed-off-by: James Bottomley [PATCH] dc395x: Fix support for highmem From: Guennadi Liakhovetski Removes the page_to_virt and maps sg lists dynamically. This makes the driver work with highmem pages. Signed-off-by: Guennadi Liakhovetski Signed-off-by: Jamie Lenehan Signed-off-by: James Bottomley [PATCH] trivial fix for 2.6.11 raid6 compilation on ppc w/ Altivec From: Rene Rebe Signed-off-by: Greg Kroah-Hartman For UML, this is fine as far as it goes, but you're adding register references to arch-independent code, so this is needed as well: Signed-off-by: Jeff Dike Signed-off-by: Chris Wright Inode audit records are currently showing only name, inode, and dev. The device is calculated incorrectly, and similarly dev based filtering is broken. Fix device node problems and add some more useful data to inode audit record -- mode, uid, gid of inode. Signed-off-by: Chris Wright [ARM PATCH] 2461/1: base support for poodle machine Patch from John Lenz Adds support for the Sharp Zaurus SL-5600 Add the ability to compile any collection of poodle and corgi support under the PXA_SHARPSL option. arch/arm/boot/compressed/head-sharpsl.S already has code to detect the poodle machine. Signed-off-by: John Lenz Signed-off-by: Russell King [ARM PATCH] 2491/1: make ixp2000 use section mappings for on-chip registers Patch from Lennert Buytenhek This patch makes the ixp2000 port use section mappings for on-chip registers. This has two advantages: 1. It saves some TLB entries. 2. It enables us to work around ixp2400 erratum #66, for which the suggested (and only) fix involves mapping all on-chip registers using XCB=101 instead of XCB=000. This patch was derived from an older patch for the same erratum (ARM patch ID 2265/1), made by Deepak Saxena. Note that this patch does not actually constitute a workaround for erratum #66, it merely lays the foundation for such a workaround. Signed-off-by: Lennert BuytenhekSigned-off-by: Deepak Saxena Signed-off-by: Russell King [ARM PATCH] 2508/1: S3C2440 - timer and irq device updates Patch from Ben Dooks The patch does a number of updates, which are inter-dependant on each other, for the s3c2440 support and some clean-ups for all s3c24xx architecture in general. 1) Remove the s3c24xx_{fclk,hclk,pclk} variables, and pass these values to the clock core on initialisation. This removes the needless double copy, as only the timer code uses these directly (see point 4). Add an over-all xtal clock to the clock core 2) Add a sysdev driver to the clock code to ensure all the s3c2440 clocks are added if an s3c2440 is present. 3) Add the new IRQs to irq.c, and initialise them if the sysdev for the s3c2440 is present. 4) Change the timer code to request the timer clk and use it to get the frequency. Depends on patch 2467/1 Thanks to Guillaume Gourat for the original patches that prompted this re-write. Signed-off-by: Ben Dooks Signed-off-by: Russell King [NETFILTER]: fix ip6_queue inefficiencies Check if packet exceeds max queue length before netlink_unicast(), add drop statistics. Signed-off-by: Patrick McHardy [NETFILTER]: Use correct types in seq_printf calls Signed-off-by: Patrick McHardy [NETFILTER]: Reduce netfilter memory use on MP systems On kernels compiled with a big NR_CPUS netfilter rules would eat a lot of memory because all counters would be duplicated for all NR_CPUs CPUs. With NR_CPUS=256 this would add up to many MBs of memory. This patch only allocates enough memory for the possible CPUs, which is usually a much smaller number than NR_CPUS. This allows loading of bigger rule sets on 64bit systems. There is still a limit because someone else broke vmalloc to have a 64MB limit on 64bit systems for single allocations, 129MB on 32bit. It allocates an array of pages with kmalloc and kmalloc has a 128K limit. To be fixed with a separate patch. 64bit systems were hurt worst because they tend to have big NR_CPUS and the counters need more memory there, and the vmalloc limit is lower. But it will raise the limits even on 32bit. And in general it saves a lot of memory. Tested only on a small dual CPU box. Signed-off-by: Andi Kleen Signed-off-by: Patrick McHardy [NETFILTER]: Use num_possible_cpus instead of NR_CPUS in {ip6_,arp_,eb}tables Similar to Andi Kleen's patch "Reduce netfilter memory use on MP systems". Signed-off-by: Patrick McHardy [NETFILTER]: Fix /proc/net/ip_conntrack seq_file operations ip_conntrack dumps an entire hash chain at a time. If dumping the first hash chain exceeds the available room nothing has been copied and seq_read() stops and returns the error. Change it to dump just a single entry at a time. Signed-off-by: Patrick McHardy [NETFILTER]: SCTP conntrack: fix association restart Signed-off-by: Patrick McHardy [NETFILTER]: Fix multiple problems with TCP window tracking The first attached patch addresses several problems in the current TCP connection tracking in the 2.6 tree. Some of the problems was reported, others was discovered by nfsim tests: - tcp_sack function was not safe against nonlinear skbs - practically arbitrary RST segments (addresses, ports assumed to be known) could cause connection teardown in conntrack (thanks to Tim Burress for the bugreport and patch) - article on which the code was based falsely assumed that packets must fit completely into the window: packets must at least overlap (thanks to Phil Oester for the bugreport and patch) - state table slightly changed to handle ACK packets sent by server to late resent SYNs - tracking reopening connections reworked - cosmetic change: when window tracking is ignored by setting ip_conntrack_tcp_be_liberal to nonzero, it's ignored completely from now on Signed-off-by: Patrick McHardy [NETFILTER]: Don't insist on ICMP errors carrying 8 byte of protocol header An ICMP error only needs to carry 8 bytes of protocol header if they were present in the original packet. Makes netfilter's handling of ICMP errors consistent with IP. Signed-off-by: Patrick McHardy [ARM PATCH] 2511/1: SMDK2440 - base machine support Patch from Ben Dooks SMDK2440 core board support Signed-off-by: Ben Dooks Signed-off-by: Dimitry Andric Signed-off-by: Russell King [ARM PATCH] 2512/1: S3C2410 - remove bast-cpld.h from include/asm-arm/arch-s3c2410/hardware.h Patch from Ben Dooks Remove the include of bast-cpld.h, as it shouldn't be here as it only defines some extra bast-specific registers, and does not affect the configuration of the hardware dependenat items. Ensure that the file is included in the one place it is needed and not included. This should discourage anyone else putting include files in which do not affect the over-all hardware definitions. Signed-off-by: Ben Dooks Signed-off-by: Russell King [PATCH] Fix for trivial fix for 2.6.11 raid6 compilation on ppc w/ Altivec Here's a patch that will work for both PPC and PPC64. The proper way to fix this in mainline is to merge -mm's cpu_has_feature patch, but for the stable 2.6.11-series, this much less intrusive (i.e. just the pure bugfix, not the cleanup part). Signed-off-by: Olof Johansson Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 2509/1: fix watchdog timer frequency for PXA27x Patch from Nicolas Pitre Signed-off-by: Nicolas Pitre Signed-off-by: Russell King [PATCH] Fix keyboards for Dell machines Some ACPI-related changes were recently made to i8042 discovery for ia64. Unfortunately this broke a significant number of Dell laptops due to their having incorrect BIOS tables. So, for now, arrange for the new code to be ia64-only. From: Dmitry Torokhov Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [ARM PATCH] 2477/1: Move double defined macro to header file Patch from Thomas Gleixner IRQ_DISPATCH is defined in two c files. Move it to the common header file. Signed-off-by: Thomas Gleixner Signed-off-by: Russell King [ARM PATCH] 2510/1: PXA: Disable pxa_gpio_irq_type printks Patch from Richard Purdie The printks inside pxa_gpio_irq_type damage performance and are of little value in a production kernel. They should be disabled. Signed-off-by: Richard PurdieSigned-off-by: Nicolas Pitre Signed-off-by: Russell King [ARM PATCH] 1941/2: End-of-interrupt (irq_finish) macro on ARM Patch from SAN People On some ARM-based processor's (eg, Atmel's AT91RM9200) it is necessary to signal the end-of-interrupt to the interrupt controller. This is necessary so it can restore its internal priority levels, etc. This patch is equivalent to the version in the current 2.4 kernels. Patch now updated to 2.6.11 Signed-off-by: Andrew Victor Signed-off-by: Russell King Linux 2.6.11.1 [ARM PATCH] 2459/1: ARMv6 supersections for static kernel direct mapped memory regions [updated] Patch from George G. Davis Use ARMv6 supersections for 16MiB static kernel direct mapped memory regions when possible. Based on comments received for the first version of this patch, this version has added a comment to clarify that ARMv6 supersections are only valid for the domain == 0 case and moved the supersection address mask and size macros before the hardware page table definitions. Signed-off-by: George G. Davis Signed-off-by: Russell King [ARM PATCH] 2513/1: more PXA27x regs to save for sleep mode Patch from Nicolas Pitre ... plus Mainstone bits. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King [ARM PATCH] 2472/1: Updates 8250.c to correctly detect XScale UARTs Patch from George Joseph Modifications to autoconfig_16550a to add a testcase to detect XScale UARTS. Signed-off-by: George Joseph Signed-off-by: Russell King [MMC] Use bus dev_attrs instead of handling device attrs manually Convert MMC to use bus dev_attrs instead of handling the registration of these attributes itself. Signed-off-by: Russell King [ARM PATCH] 2514/1: save iWMMXt context to ram before entering sleep mode Patch from Nicolas Pitre Signed-off-by: Nicolas Pitre Signed-off-by: Russell King [ARM] Fix two missed ether1_outw() function calls. Signed-off-by: Russell King [SPARC64]: Tomatillo PCI controller bug fixes. - Error handlers were mis-calculating ICLR register to ACK on Tomatillo. - PCI error handlers should not ACK other IRQ. - Fix Tomatillo version comparison for PCI Timeout Interval setting - Tomatillo PCI control register prefetch enable bits were off. - Tomatillo revs <= 1 need bit 61 set, all others should have it clear. This is in the PCI control register. Signed-off-by: David S. Miller [TIGON3]: Do not touch NIC_SRAM_FIRMWARE_MBOX when TG3_FLG2_SUN_570X. There is no firmware on these chips, so accessing this value is pointless. But, more importantly, touching this area on such chips results in PCI PIO timeouts. Signed-off-by: David S. Miller [TIGON3]: Update driver version and reldate. Signed-off-by: David S. Miller [Bluetooth] Don't use ISOC transfers for sniffer devices The sniffer devices present themself as a full H:2 device, but actually they don't need any ISOC transfers and so don't start them. Signed-off-by: Marcel Holtmann [Bluetooth] Remove interruptible_sleep_on_timeout() usage Remove deprecated interruptible_sleep_on_timeout() function calls and replace them with direct wait-queue usage. Signed-off-by: Nishanth Aravamudan Signed-off-by: Marcel Holtmann [Bluetooth] Convert clock offset value from little endian The clock offset value is stored in little endian and so convert it before showing it in the inquiry cache list. Signed-off-by: Marcel Holtmann [Bluetooth] Enhance HCI callback interface This patch adds callback functions for changing the link key and switching the role to the Bluetooth core interface. Signed-off-by: Marcel Holtmann [Bluetooth] Update entry for the BPA 100/105 driver This patch adds the missing entry for the BPA 100/105 driver into the MAINTAINERS file. Signed-off-by: Marcel Holtmann [ARM] Add __iomem checking for __raw_{read,write}[bwl] Signed-off-by: Russell King [ARM] Fix sparse warnings for ebsa110 IO implementation Signed-off-by: Russell King [ARM] Remove ARM specific set_pmd() set_pmd has specific behaviour on ARM which may be unexpected. Since it is rather too close to macros used by other architectures, open code this functionality. Signed-off-by: Russell King [PATCH] SGI 921857: find broken with nohide on NFSv3 This patch makes "find" work when traversing nohide exports on NFSv3. The READDIRPLUS reply needs to not return a file handle for the ".." entry when the directory is a server side mountpoint, which would be the directory itself, otherwise the client remembers the wrong file handle and gets confused. Signed-off-by: Greg Banks Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: exportfs: reduce stack usage find_exported_dentry() declares char nbuf[NAME_MAX+1]; in 2 separate places, and gcc allocates space on the stack for both of them. Having just one of them will suffice, if we can put put with its scope. Reduces function stack usage on x86-32 from 0x230 to 0x130. Signed-off-by: Randy Dunlap Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: svcrpc: add a per-flavor set_client method Add a set_client method to the server rpc auth_ops struct, used to set the client (for the purposes of nfsd export authorization) using flavor-specific information. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: svcrpc: rename pg_authenticate Later patches remove pg_authenticate and use the name for a different purpose; so rename it to pg_authenticate_obsolete for now. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: svcrpc: move export table checks to a per-program pg_add_client method svcauth_null_accept() and svcauth_unix_accept() are currently hard-wired to check the source ip address on an incoming request against the export table, which make sense for nfsd but not necessarily for other rpc-based services. So instead we have the accept() method call a program-specific pg_authenticate() method. We also move the call to this method into svc_process instead of calling it from the flavor-specific accept() routines. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: nfs4: use new pg_set_client method to simplify nfs4 callback authentication Use new pg_authenticate method to simplify nfs4 callback authentication. This also has the effect of changing the error return from rejectedcred to badcred. I believe the change is correct. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: lockd: don't try to match callback requests against export table On lockd callbacks, we're a client, and the source address is that of a server, so we shouldn't be trying to match the source address of the callback request against our export table. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: nfsd: remove pg_authenticate field The pg_authenticate (now pg_authenticate_obsolete) callback was only being used by the nfs4 client callback code to circumvent the svcauth_unix code's insistence on checking all requests against the export table. With that problem solved, we no longer need it. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: global/static cleanups for nfsd The patch below contains the following cleanups: - make some needlessly global code static Signed-off-by: Adrian Bunk Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: change nfsd reply cache to use list.h lists also kmalloc the cache one entry at a time, instead of in one big slab. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] nfsd: discard CACHE_HASHED flag, keeping information in refcount instead. This patch should fix a problem that has been experienced on at-least one busy NFS server, but it has not had lots of testing yet. If -mm could provide that ..... The rpc auth cache currently differentiates between a reference due to being in a hash chain (signalled by CACHE_HASHED flag) and any other reference (counted in refcnt). This is an artificial difference due to an historical accident, and it makes cache_put unsafe. This patch removes the distinction so now existance in a hash chain is counted just like any other reference. Thus a race window in cache_put is closed. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] aoe: fix printk warning u64's are not longlongs on sparc64 and ppc64. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] audit mips fix CC arch/mips/kernel/ptrace.o arch/mips/kernel/ptrace.c: In function 'do_syscall_trace': arch/mips/kernel/ptrace.c:310: warning: implicit declaration of function 'audit_syscall_entry' arch/mips/kernel/ptrace.c:310: error: 'struct pt_regs' has no member named 'orig_eax' arch/mips/kernel/ptrace.c:314: warning: implicit declaration of function 'audit_syscall_exit' Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB: simplify MAD code Remove unneeded MAD agent registration by using a single agent for both directed-route and LID-routed MADs. Signed-off-by: Hal Rosenstock Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB: fix vendor MAD deregistration Fix bug when deregistering a vendor class MAD agent. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB: sparse fixes Fix some sparse warnings by making sure we have appropriate "extern" declarations visible. Signed-off-by: Tom Duffy Signed-off-by: Hal Rosenstock ( Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: add missing break Add missing break statements in switch in mthca_profile.c (pointed out by Michael Tsirkin). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: fix reset value endianness MTHCA_RESET_VALUE must always be swapped, since the HCA expects to see it in big-endian order and we write it with writel. This means on little-endian systems we have to swap it to big-endian order before writing, and on big-endian systems we need to swap it to make up for the additional swap that writel will do. This fixes resetting the HCA on big-endian machines. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/ipoib: fix rx memory leak Fix memory leak when posting a receive buffer (pointed out by Shirley Ma). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/ipoib: use list_for_each_entry_safe when required Change uses of list_for_each_entry() where the loop variable is freed inside the loop to list_for_each_entry_safe(). Signed-off-by: Shirley Ma Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/ipoib: rename global symbols Make IPoIB data_debug_level module parameter static to the single file where it is used. Also Rename IPoIB module parameter variable from "debug_level" to "ipoib_debug_level". This avoids possible name clashes if IPoIB is built into the kernel. We use module_param_named so that the user-visible parameter names remain the same. Signed-off-by: Tom Duffy Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/ipoib: small fixes IPoIB small fixes: Initialize path->ah to NULL, and fix dereference after free of neigh in error path of neigh_add_path(). Signed-off-by: Shirley Ma Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/ipoib: don't call ipoib_put_ah with lock held ipoib_put_ah() may call ipoib_free_ah(), which might take the device's lock. Therefore we need to make sure we don't call ipoib_put_ah() when holding the lock already. Signed-off-by: Shirley Ma Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/ipoib: fix locking on path deletion Fix up locking for IPoIB path table. Make sure that destruction of address handles, neighbour info and path structs is locked properly to avoid races and deadlocks. (Problem originally diagnosed by Shirley Ma) Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB: fix ib_find_cached_gid() port numbering Fix ib_find_cached_gid() to return the correct port number relative to the port numbering used by the device. Signed-off-by: Sean Hefty Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: CQ minor tweaks Clean up CQ code so that we only calculate the address of a CQ entry once when using it. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: improve CQ locking part 1 Avoid taking the CQ table lock in the fast path path by using synchronize_irq() after removing a CQ from the table to make sure that no completion events are still in progress. This gets a nice speedup (about 4%) in IP over IB on my hardware. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: improve CQ locking part 2 Locking during the poll cq operation can be reduced by locking the cq while qp is being removed from the qp array. This also avoids an extra atomic operation for reference counting. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: CQ cleanups Simplify some of the code for CQ handling slightly. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB: remove unsignaled receives Remove support for unsignaled receive requests. This is a non-standard extension to the IB spec that is not used by any known applications or protocols, and is not supported by newer hardware. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: map registers for mem-free mode Move the request/ioremap of regions related to event handling into mthca_eq.c. Map the correct regions depending on whether we're in Tavor or native mem-free mode. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: add UAR allocation Add support for allocating user access regions (UARs). Use this to allocate a region for kernel at driver init instead using hard-coded MTHCA_KAR_PAGE index. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: dynamic context memory mapping for mem-free mode Add support for mapping more memory into HCA's context to cover context tables when new objects are allocated. Pass the object size into mthca_alloc_icm_table(), reference count the ICM chunks, and add new mthca_table_get() and mthca_table_put() functions to handle mapping memory when allocating or destroying objects. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free memory region support Add support for mem-free mode to memory region code. This mostly amounts to properly munging between keys and indices. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free EQ initialization Add code to initialize EQ context properly in both Tavor and mem-free mode. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free interrupt handling Update interrupt handling code to handle mem-free mode. While we're at it, improve the Tavor interrupt handling to avoid an extra MMIO read of the event cause register. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: tweak firmware command debug messages Slightly improve debugging output for UNMAP_ICM and MODIFY_QP firmware commands. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: tweak MAP_ICM_page firmware command Have MAP_ICM_page() firmware command map assume pages are always the HCA-native 4K size rather than using the kernel's page size. This will make handling doorbell pages for mem-free mode simpler. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free doorbell record allocation Mem-free mode requires the driver to allocate additional doorbell pages for each user access region. Add support for this in mthca_memfree.c, and have the driver allocate a table in db_tab for kernel use. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free doorbell record writing Add a mthca_write_db_rec() to wrap writing doorbell records. On 64-bit archs, this is just a 64-bit write, while on 32-bit archs it splits the write into two 32-bit writes with a memory barrier to make sure the two halves of the record are written in the correct order. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: refactor CQ buffer allocate/free Factor the allocation and freeing of completion queue buffers into mthca_alloc_cq_buf() and mthca_free_cq_buf(). This makes the code more readable and will eventually make handling userspace CQs simpler (the kernel doesn't have to allocate a buffer at all). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free CQ initialization Update CQ initialization and cleanup to handle mem-free mode: we need to make sure the HCA has memory mapped for the entry in the CQ context table we will use and also allocate doorbell records. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free CQ operations Add support for CQ data path operations (request notification, update consumer index) in mem-free mode. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free QP initialization Update QP initialization and cleanup to handle mem-free mode. In mem-free mode, work queue sizes have to be rounded up to a power of 2, we need to allocate doorbells, there must be memory mapped for the entries in the QP and extended QP context table that we use, and the entries of the receive queue must be initialized. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free address vectors Update address vector handling to support mem-free mode. In mem-free mode, the address vector (in hardware format) is copied by the driver into each send work queue entry, so our address handle creation can become pretty trivial: we just kmalloc() a buffer to hold the formatted address vector. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free work request posting Implement posting send and receive work requests for mem-free mode. Also tidy up a few things in send/receive posting for Tavor mode (fix smp_wmb()s that should really be just wmb()s, annotate tests in the fast path with likely()/unlikely()). Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: mem-free multicast table Tie up one last loose end by mapping enough context memory to cover the whole multicast table during initialization, and then enable mem-free mode. mthca now supports enough of mem-free mode so that IPoIB works with a mem-free HCA. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: QP locking optimization 1. Split the QP spinlock into separate send and receive locks. The only place where we have to lock both is upon modify_qp, and that is not on data path. 2. Avoid taking any QP locks when polling CQ. This last part is achieved by getting rid of the cur field in mthca_wq, and calculating the number of outstanding WQEs by comparing the head and tail fields. head is only updated by post, tail is only updated by poll. In a rare case where an overrun is detected, a CQ is locked and the overrun condition is re-tested, to avoid any potential for stale tail values. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB/mthca: implement query of device caps Set device_cap_flags field in mthca's query_device method. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] IB: MAD cancel callbacks from thread Modify ib_cancel_mad() to invoke a user's send completion callback from a different thread context than that used by the caller. This allows a caller to hold a lock while calling cancel that is also acquired from their send handler. Signed-off-by: Sean Hefty Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] initialize a spin lock in CPM2 uart driver Static initialization of spin locks that are otherwise accessed prior to initialization. Signed-off-by: Jaka Mocnik Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: global sysctl This first patch of the series introduces a sysctl (default off) that enables/disables the randomisation feature globally. Since randomisation may make it harder to debug really tricky situations (reproducability goes down), the sysadmin needs a way to disable it globally. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: infrastructure The patch below introduces get_random_int() and randomize_range(), two helpers used in later patches in the series. get_random_int() shares the tcp/ip random number stuff so the CONFIG_INET ifdef needs to move slightly, and to reduce the damange due to that, secure_ip_id() needs to move inside random.c From: Frank Sorenson Acked-By: Jeff Dike The stack randomization patches that went into 2.6.11-rc3-mm1 broke compilation of ARCH=um. This patch fixes compiling by adding arch_align_stack back in. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Frank Sorenson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: add PF_RANDOMIZE Even though there is a global flag to disable randomisation, it's useful to have a per process flag too; the patch below introduces this per process flag and automatically sets it for "new" binaries. Eventually we will want to tie this to the legacy-va-space personality Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: stack randomisation The patch below replaces the existing 8Kb randomisation of the userspace stack pointer (which is currently only done for Hyperthreaded P-IVs) with a more general randomisation over a 64Kb range. 64Kb is not a lot, but it's a start and once the dust settles we can increase this value to a more agressive value. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: mmap randomisation The patch below randomizes the starting point of the mmap area. This has the effect that all non-prelinked shared libaries and all bigger malloc()s will be randomized between various invocations of the binary. Prelinked binaries get a address-hint from ld.so in their mmap and are thus exempt from this randomisation, in order to not break the prelink advantage. The randomisation range is 1 megabyte (this is bigger than the stack randomisation since the stack randomisation only needs 16 bytes alignment while the mmap needs page alignment, a 64kb range would not have given enough entropy to be effective) Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: enable by default Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: add ADDR_NO_RANDOMIZE personality Introduce a personality that disables randomisation, so that users can use setarch and related commands to run specific applications without randomisation. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Randomisation: top-of-stack randomization In addition to randomisation of the stack pointer within the stack, the stack itself should be randomized too. We need both approaches, we can only randomize the stack itself in pagesize increments. However randomizing large ranges with the stackpointer runs into the situation where a huge chunk of the stack rlimit is used by the randomisation; this is undesirable so we need to do both. Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Move accounting function calls out of critical vm code paths In the 2.6.11 development cycle function calls have been added to lots of hot vm paths to do accounting. I think these should not go into the final 2.6.1 release because these statistics can be collected in a different way that does not require the updating of counters from frequently used vm code paths and is consistent with the methods use elsewhere in the kernel to obtain statistics. These function calls are acct_update_integrals -> Account for processes based on stime changes update_mem_hiwater -> takes rss and total_vm hiwater marks. acct_update_integrals is only useful to call if stime changes otherwise it will simply return. It is therefore best to relocate the function call to acct_update_integral into the function that updates stime which is account_system_time and remove it from the vm code paths. update_mem_hiwater finds the rss hiwater mark. We call that from timer context as well. This means that processes' high-water marks are now sampled statistically, at timer-interrupt time rather than deterministically. This may or may not be a problem.. This means that the rss limit is not always updated if rss is increased and thus not as accurate. But the benefit is that the rss checks do no pollute the vm paths and that it is consistent with the rss limit check. The following patch removes acct_update_integrals and update_mem_hiwater from the hot vm paths. Signed-off-by: Christoph Lameter From: Jay Lan The new "move-accounting-function-calls-out-of-critical-vm-code-paths" patch in 2.6.11-rc3-mm2 was different from the code i tested. In particular, it mistakenly dropped the accounting routine calls in fs/exec.c. The calls in do_execve() are needed to properly initialize accounting fields. Specifically, the tsk->acct_stimexpd needs to be initialized to tsk->stime. I have discussed this with Christoph Lameter and he gave me full blessings to bring the calls back. Signed-off-by: Jay Lan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] invalidate range of pages after direct IO write Presently we invalidate all of a file's pages when writing to any part of that file with direct-IO. After a direct IO write only invalidate the pages that the write intersected. invalidate_inode_pages2_range(mapping, pgoff start, pgoff end) is added and called from generic_file_direct_IO(). While we're in there, invalidate_inode_pages2() was calling unmap_mapping_range() with the wrong convention in the single page case. It was providing the byte offset of the final page rather than the length of the hole being unmapped. This is also fixed. This was lightly tested with a 10k op fsx run with O_DIRECT on a 16MB file in ext3 on a junky old IDE drive. Totaling vmstat columns of blocks read and written during the runs shows that read traffic drops significantly. The run time seems to have gone down a little. Two runs before the patch gave the following user/real/sys times and total blocks in and out: 0m28.029s 0m20.093s 0m3.166s 16673 125107 0m27.949s 0m20.068s 0m3.227s 18426 126094 and after the patch: 0m26.775s 0m19.996s 0m3.060s 3505 124982 0m26.856s 0m19.935s 0m3.052s 3505 125279 akpm: - Don't look up more pages than we're going to use - Don't test page->index until we've locked the page - Check for the cursor wrapping at the end of the mapping. Signed-off-by: Zach Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] write and wait on range before direct io read This adds filemap_write_and_wait_range(mapping, lstart, lend) which starts writeback and waits on a range of pages. We call this from __blkdev_direct_IO with just the range that is going to be read by the direct_IO read. It was lightly tested with fsx and ext3 and passed. Signed-off-by: Zach Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] only unmap what intersects a direct_IO op Now that we're only invalidating the pages that intersected a direct IO write we might as well only unmap the intersecting bytes as well. This passed a light fsx load with page cache, direct, and mmap IO. Signed-off-by: Zach Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make mapping->tree_lock an rwlock Convert mapping->tree_lock to an rwlock. with: dd if=/dev/zero of=foo bs=1 count=2M 0.80s user 4.15s system 99% cpu 4.961 total dd if=/dev/zero of=foo bs=1 count=2M 0.73s user 4.26s system 100% cpu 4.987 total dd if=/dev/zero of=foo bs=1 count=2M 0.79s user 4.25s system 100% cpu 5.034 total dd if=foo of=/dev/null bs=1 0.80s user 3.12s system 99% cpu 3.928 total dd if=foo of=/dev/null bs=1 0.77s user 3.15s system 100% cpu 3.914 total dd if=foo of=/dev/null bs=1 0.92s user 3.02s system 100% cpu 3.935 total (3.926: 1.87 usecs) without: dd if=/dev/zero of=foo bs=1 count=2M 0.85s user 3.92s system 99% cpu 4.780 total dd if=/dev/zero of=foo bs=1 count=2M 0.78s user 4.02s system 100% cpu 4.789 total dd if=/dev/zero of=foo bs=1 count=2M 0.82s user 3.94s system 99% cpu 4.763 total dd if=/dev/zero of=foo bs=1 count=2M 0.71s user 4.10s system 99% cpu 4.810 tota dd if=foo of=/dev/null bs=1 0.76s user 2.68s system 100% cpu 3.438 total dd if=foo of=/dev/null bs=1 0.74s user 2.72s system 99% cpu 3.465 total dd if=foo of=/dev/null bs=1 0.67s user 2.82s system 100% cpu 3.489 total dd if=foo of=/dev/null bs=1 0.70s user 2.62s system 99% cpu 3.326 total (3.430: 1.635 usecs) So on a P4, the additional cost of the rwlock is ~240 nsecs for a one-byte-write(). On the other hand: From: Peter Chubb As part of the Gelato scalability focus group, we've been running OSDL's Re-AIM7 benchmark with an I/O intensive load with varying numbers of processors. The current kernel shows severe contention on the tree_lock in the address space structure when running on tmpfs or ext2 on a RAM disk. Lockstat output for a 12-way: SPINLOCKS HOLD WAIT UTIL CON MEAN( MAX ) MEAN( MAX )(% CPU) TOTAL NOWAIT SPIN RJECT NAME 5.5% 0.4us(3177us) 28us( 20ms)(44.2%) 131821954 94.5% 5.5% 0.00% *TOTAL* 72.3% 13.1% 0.5us( 9.5us) 29us( 20ms)(42.5%) 50542055 86.9% 13.1% 0% find_lock_page+0x30 23.8% 0% 385us(3177us) 0us 23235 100% 0% 0% exit_mmap+0x50 11.5% 0.82% 0.1us( 101us) 17us(5670us)( 1.6%) 50665658 99.2% 0.82% 0% dnotify_parent+0x70 Replacing the spinlock with a multi-reader lock fixes this problem, without unduly affecting anything else. Here are the benchmark results (jobs per minute at a 50-client level, average of 5 runs, standard deviation in parens) on an HP Olympia with 3 cells, 12 processors, and dnotify turned off (after this spinlock, the spinlock in dnotify_parent is the worst contended for this workload). tmpfs............... ext2............... #CPUs spinlock rwlock spinlock rwlock 1 7556(15) 7588(17) +0.42% 3744(20) 3791(16) +1.25% 2 13743(31) 13791(33) +0.35% 6405(30) 6413(24) +0.12% 4 23334(111) 22881(154) -2% 9648(51) 9595(50) -0.55% 8 33580(240) 36163(190) +7.7% 13183(63) 13070(68) -0.85% 12 28748(170) 44064(238)+53% 12681(49) 14504(105)+14% And on a pentium3 single processsor: 1 4177(4) 4169(2) -0.2% 3811(4) 3820(3) +0.23% I'm not sure what's happening in the 4-processor case. The important thing to note is that with a spinlock, the benchmark shows worse performance for a 12 than for an 8-way box; with the patch, the 12 way performs better, as expected. We've done some runs with 16-way as well; without the patch below, the 16-way performs worse than the 12-way. It's a tricky tradeoff, but large-smp is hurt a lot more by the spinlocks than small-smp is by the rwlocks. And I don't think we really want to implement compile-time either-or-locks. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PPC/PPC64: Abstract cpu_feature checks. Abstract most manual mask checks of cpu_features with cpu_has_feature() Signed-off-by: Olof Johansson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Don't create .tmp_gas_check This changes how the ppc32 'checkbin' target works. Previously we did all of the tests using variables which would be evaluated for any and every make target. This meant that 'make tags' for example would leave behind a '.tmp_gas_check' file even though we didn't actually compile up anything, and would get in the way of diffs. By moving all of this logic directly into the 'checkbin' target, we only test gcc/gas versions when we're going to compile. Signed-off-by: Olaf Hering Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix mv64x60 register relocation bug in bootwrapper The gt64260 looks at the highest 20 bits while the mv64[34]60 looks at only the highest 16 bits when determining the base address for the bridge's registers. This patch adds support for both. Signed-off-by: Nate Case Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: update arch/ppc/configs/pmac_defconfig enable drm/agp, cpufreq, pppoe and new pccard option Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Artesyn Katana platform update - Adds MTD support for the soldered FLASH - Adds cmdline parsing - Turns on the Blue LED when the system is halted - Moves some of the device window left by the firmware to proper alignments - Handles possibility of different frequencies for TCLK & SysCLK in 64460 - Misc. code clean up Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Artesyn Katana enet update - Adapt Katana to the new names used by the ethernet driver. - Remove SRAM allocation code for mv643xx_enet until it's had more review. Signed-off-by: Dale Farnsworth Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: move irq_desc[].status, IRQ_LEVEL bit setup to xilinx_pic.c Move the code that informs the kernel if the particular interrupt is edge triggered or level sensitive from the board specific file to a "CONFIG_VIRTEX_II_PRO-specific" file. Using old IRQ numbering in that code is also fixed. Signed-off-by: Andrei Konovalov Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Lindentify PPC4xx PIC driver This patch fixes whitespace in PPC4xx PIC driver. Signed-off-by: Eugene Surovegin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: PPC4xx PIC: ack parent UIC in disable_irq This patch fixes bug in PPC4xx disable_irq implementation. We need to ACK parent UIC to prevent false triggering in case IRQ we just disabled was already pending. Signed-off-by: Eugene Surovegin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: incorrect #define in include/asm-ppc/cpm2.h This patch fixes the incorrect definition of a macro that sets the transmit parity to even on a cpm uart device. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Bogus definition of __cmpxchg_u32() This patch fix bogus types in the definition of __cmpxchg_u32() on ppc32. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: fix whitespace for 85xx CDS common platform Fix whitespace in arch/ppc/platforms/85xx/mpc85xx_cds_common.c Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Move from using #define SVR_ to cur_ppc_sys_spec name for 85xx platform Removes explicit defines for SVR_85xx and use the information in the ppc_sys_specs table in platform code. Changed the ppc_sys_name strings to be a bit more generic so we have a bit more flexilibity when we display them. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: mv64360_pic non-zero irq base Add support for non-zero irq base to mv64360_pic code. - Fix mv64360 pic code to handle non-zero mv64x60_irq_base - Cleanup mv64360 entries in /proc/interrupts Signed-off-by: James Chapman Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Add GPIO/IRQ definitions for mv64x60 parts Add mv64x60 GPP IO pin/IRQ register definitions Signed-off-by: James Chapman Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: support OpenBIOS/U-Boot for Ebony This patch adds support for OpenBios on Ebony, as Matt Porter has suggested. It will provide same functionality as the pibs extension for Luan and Ocotea. Signed-off-by: Gerhard Jaeger Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Add support for the Dallas 1553 RTC/NVRAM This patch adds support for the Dallas 1553 RTC/NVRAM. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Add support to use the DS1553 RTC/NVRAM on MPC8555 CDS system This patch makes the MPC8555 CDS system utilize the DS1553 RTC/NVRAM. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Trivial bug fix in CRITICAL_EXCEPTION macro This patch fixes a trival bug in the CRITICAL_EXCEPTION macro Signed-off-by: Takeharu KATO Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: PowerQUICC II Pro subarch support Patch adds support for the initial PowerQUICC II Pro processors (MPC8343/E, MPC8347/E, and MPC8349/E) and the first reference platform (MPC834x SYS) from Freescale. The initial support is limited to existing drivers that overlap with the MPC85xx subarch (ethernet, I2C, uart). Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove unneeded includes from pSeries_nvram.c The pseries nvram driver started probably as a copy of nvram.c. These includes are not needed to build it. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: collect and export low-level cpu usage statistics POWER5 machines have a per-hardware-thread register which counts at a rate which is proportional to the percentage of cycles on which the cpu dispatches an instruction for this thread (if the thread gets all the dispatch cycles it counts at the same rate as the timebase register). This register is also context-switched by the hypervisor. Thus it gives a fine-grained measure of the actual cpu usage by the thread over time. This patch adds code to read this register every timer interrupt and on every context switch. The total over all virtual processors is available through the existing /proc/ppc64/lparcfg file, giving a way to measure the total cpu usage over the whole partition. Signed-off-by: Manish Ahuja Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Move systemcfg out of head.S The "systemcfg" data structure in the ppc64 kernel is something that used to be defined to be at a hard-coded page number in the kernel image. This is not necessary (at least not any more) and is a possible problem with future developements. This patch removes that constraint, which also simplifies various bits of assembly in head.S that were dealing with it. This is the first step of a deeper cleanup of systemcfg definition of usage (and ultimately removal in it's current incarnation). Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: defconfig updates Update several ppc64 defconfigs. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: distribute EXPORT_SYMBOLs This patch just moves as many as possible EXPORT_SYMBOL()s from arch/ppc64/kernel/ppc_ksyms.c to where the symbols are defined. This has been compiled on pSeries, iSeries and pmac. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Implement a vDSO and use it for signal trampoline This patch adds to the ppc64 kernel a virtual .so (vDSO) that is mapped into every process space, similar to the x86 vsyscall page. However, the implementation is very different (and doesn't use the gate area mecanism). Actually, it contains two implementations, a 32 bits and a 64 bits one. These vDSO's are currently mapped at 0x100000 (+1Mb) when possible (when a process load section isn't already there). In the future, we can randomize that address, or even imagine having a special phdr entry letting apps that wnat finer control over their address space to put it elsewhere (or not at all). The implementation adds a hook to binfmt_elf to let the architecture add a real VMA to the process space instead of using the gate area mecanism. This mecanism wasn't very suitable for ppc, we couldn't just "shove" PTE entries mapping kernel addresses into userland without expensive changes to our hash table management. Instead, I made the vDSO be a normal VMA which, additionally, means it supports copy-on-write semantics if made writable via ptrace/mprotect, thus allowing breakpoints in the vDSO code. The current implementation of the vDSOs contain the signal trampolines with appropriate DWARF informations, which enable us to use non-executable stacks (patches to come later) along with a few more functions that we hope glibc will soon make good use of (this is the "hard" part now :) Note that the symbols exposed by the vDSO aren't "normal" function symbols, apps can't be expected to link against them directly, the vDSO's are both seen as if they were linked at 0 and the symbols just contain offsets to the various functions. This is done on purpose to avoid a relocation step (ppc64 functions normally have descriptors with abs addresses in them). When glibc uses those functions, it's expected to use it's own trampolines that know how to reach them. In some cases, the vDSO contains several versions of a given function (for various CPUs), the kernel will "patch" the symbol table at boot to make it point to the appropriate one transparently. What is currently implemented is: - int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz); This is a fully userland implementation of gettimeofday, with no barriers and no locks, and providing 100% equivalent results to the syscall version - void __kernel_sync_dicache(unsigned long start, unsigned long end) This function sync's the data and instruction caches (for making data executable), it is expected that userland loaders use this instead of doing it themselves, as the kernel will provide optimized versions for the current CPU. Currently, the vDSO procides a full one for all CPUs prior to POWER5 and a nop one for POWER5 which implements hardware snooping at the L1 level. In the future, an intermediate implementation may be done for the POWER4 and 970 which don't need the "dcbst" loop (the L1D cache is write-through on those). - void *__kernel_get_syscall_map(unsigned int *syscall_count); Returns a pointer to a map of implemented syscalls on the currently running kernel. The map is agnostic to the size of "long", unlike kernel bitops, it stores bits from top to bottom so that memory actually contains a linear bitmap check for syscall N by testing bit (0x80000000 >> (N & 0x1f)) of * 32 bits int at N >> 5. Note about backward compatibility issues: A bug in the ppc64 libgcc unwinder makes it unable to unwind stacks properly accross signals if the signal trampoline isn't on the stack. This has been fixed in CVS for gcc 4.0 and will be soon on the stable branch, but the problem exist will all currently used versions. That means that until glibc gets the patch to enable it's use of the vDSO symbols for the DWARF unwinder (rather trivial patch that will be pushed to glibc CVS soon hopefully), unwinding from a signal handler will not work for 64 bits applications. I consider this as a non-issue though as a patch is about to be produced, which can easily get pushed to "live" distros like debian, gentoo, fedora, etc... soon enough (it breaks compatilbity with kernels below 2.4.20 unfortunately as our signal stack layout changed, crap crap crap), as there are few 64 bits applications out there (expect gentoo), as it's only really an issue with C++ code relying on throwing exceptions out of signal handlers (extremely rare it seems), and as "release" distros like SLES or RHEL will probably have the vDSO enabled glibc _and_ the unwinder fix by the time they release a version with a 2.6.11 or 2.6.12 kernel anyway :) So far, I yet have to see an app failing because of that... Finally, many many many thanks to Alan Modra for writing the DWARF information of the signal handlers and debugging the libgcc issues ! Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64-implement-a-vdso-and-use-it-for-signal-trampoline gas workaround I cannot find a version of binutils which doesn't either do arch/ppc64/kernel/vdso32/gettimeofday.S: Assembler messages: arch/ppc64/kernel/vdso32/gettimeofday.S:33: Error: syntax error; found `@' but expected `,' or arch/ppc64/kernel/vdso32/gettimeofday.S: Assembler messages: arch/ppc64/kernel/vdso32/gettimeofday.S:33: Internal error, aborting at ../../gas/config/tc-ppc.c line 2658 in md_assemble Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: generic hotplug cpu support Patch provides a generic hotplug cpu implementation, with the only current user being pmac. This doesn't replace real hotplug code as is currently used by LPAR systems. Ben i can add the additional pmac specific code to put the processor into a sleeping state seperately. Thanks to Nathan for testing. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: generic hotplug cpu support fix Fix a false-positive from the smp_processor_id() debugging code. Idle threads are per-cpu anwyay. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: disable HMT for RS64 cpus Hardware multithreading for RS64 cpus is currently broken. Anton sent me a patch a few weeks ago, but it did not work. So just hide the config option for the time being. Signed-off-by: Olaf Hering Acked-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: use vmlinux during make install on ppc64 make install passes the zImage to the installkernel script. When an initrd is used, this script has to pull out the vmlinux from the zImage because yaboot can not boot a zImage+initrd combo. It can only handle vmlinux+initrd or zImage.initrd. Its simple to just pass the plain vmlinux instead. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: functions to reserve performance monitor hardware The PPC64 interrupt code includes a hook to call when an exception from the performance monitor unit occurs. However, there's no way of reserving the hook properly, so if more than one bit of code tries to use it things will get ugly. Currently oprofile is the only user, but there are likely to be more in future e.g. perfctr, if and when it reaches a fit state for merging. This patch creates functions to reserve and release the performance monitor hardware (including its interrupt), and makes oprofile use them. It also creates a new arch/ppc64/kernel/pmc.c, in which we can put any future helper functions for handling the performance monitor counters. Signed-off-by: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix thinko in prom_init.c (It's a real bug, but I suspect it doesn't trigger normally as we tend to allocate the initrd low, but it should be fixed anyway). This patch fixes an error in prom_init.c in the check for the initrd location vs. the memory allocation mecanism. Signed-off-by: Arnd Bergmann Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Fix zImage wrapper incorrect size to flush_cache() This patch fixes a bug in the ppc64 zImage wrapper causing it to pass an incorrect size to flush_cache() when flushing the data and instruction caches prior to jumping to the kernel entry. This causes crashes on firmare environment that do strict MMU mapping only of actually allocated areas Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: offb remapped address The offb code did not take into account a remapped pci address. Adding in the pci_mem_offset fixed a DSI in offb. Signed-off-by: Jake Moilanen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: add TANBAC TB0219 base board driver This patch adds GPIO/LED/DIPSW driver for TANBAC TB0219. Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: calculate clock at any time This patch changes bcu.c to calculate clock at any time. Because clock can be changed. Moreover, EXPORT_SYMBOL_GPLs are added to it. Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: update CMU This patch updates cmu.c to get the resource by standard method. Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] net: port smc91x to SH4-202 Microdev. Here is a patch that gets the smc91x driver working on the SH4-202 Microdev board. Signed-off-by: Paul Mundt Signed-off-by: Jeff Garzik [PATCH] initialize a spin lock in gianfar driver Initialize the mdio_lock spin lock in mii_info struct, which is otherwise accessed prior to initialization. Signed-off-by: Jaka Mocnik Signed-off-by: Kumar Gala Signed-off-by: Jeff Garzik x86: make put_user() out-of-line This makes the resulting assembly not only easier to read, it results in roughly a 0.5% savings in code size. Fixes from Richard Henderson for the original broken asm constraints. [SH]: Cache flush simplifications after flush_cache_page() arg change. Signed-off-by: David S. Miller [ARM] Add validation function for struct rtc_time Signed-off-by: Russell King [ARM] Simplify /proc/driver/rtc procfs interface. The read method doesn't need to calculate eof/start offsets. Signed-off-by: Russell King [ARM] Update mach-types from website. Signed-off-by: Russell King [ARM PATCH] 2515/1: S3C2410 - allow serial to use fclk on s3c2440 Patch from Ben Dooks This patch extends the s3c2410 serial driver to allow it to use fclk and correctly determine the uart dividers. The necessary defines are added to the serial headers as well. Also modified is the header to point at the current Simtec linux pages, as well as extend the copyright. Signed-off-by: Ben Dooks Signed-off-by: Russell King [CIFS] remove sparse warnings - moving externs & making more functions static Signed-off-by: Steve French (sfrench@us.ibm.com) [AGPGART] vfree() checking cleanups generic.c vfree() checking cleanups. Signed-off by: James Lamanna Signed-off-by: Domen Puncer Signed-off-by: Dave Jones [CIFS] replace schedule_timeout with msleep (uninterrutable) in send retry path when clogged socket Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer Signed-off-by: Steve French [PATCH] x86: fix TF bit corner case with ptrace and signals If a debugger set the TF bit, make sure to clear it when creating a signal context. Otherwise, TF will be incorrectly restored by sigreturn. Signed-off-by: Daniel Jacobowitz Signed-off-by: Linus Torvalds [PATCH] Consolidate compat_sys_waitid This patch does: - consolidate the three implementations of compat_sys_waitid (some were called sys32_waitid). - adds sys_waitid syscall to ppc - adds sys_waitid and compat_sys_waitid syscalls to ppc64 I have left PARISC and MIPS to their own devices (by request). Signed-off-by: Stephen Rothwell Signed-off-by: Linus Torvalds [SPARC64]: Update defconfig. Signed-off-by: David S. Miller [SPARC64]: Fix semtimedop compat ipc code. The timeout pointer really does get passed in as the fifth argument, not the third. Thanks to Willy Tarreau for noticing. Signed-off-by: David S. Miller [CRYPTO]: Mark myself as co-maintainer. James is stepping down for a while. Signed-off-by: David S. Miller [IPSEC]: Add xfrm_state_mtu() This patch introduces the function xfrm_state_mtu which calculates the MTU under a specific SA. This function can be simplified once we get rid all other uses of get_max_size as we can move the calculation into the invidual SA type. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Add route element to xfrm_dst This patch adds a pointer to the route corresponding to the specific flow over the SA of an xfrm_dst that's being used. It also sets the next pointer of each xfrm_dst to the one above it. This allows to traverse the list upwards from the bottom. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Store MTU at each xfrm_dst Finally this is the patch that sets the MTU values of each xfrm_dst and keeps it up-to-date. To recap, at this point we've obtained accurate MTU values at each xfrm_dst. The next step would be to start using it as dst_pmtu(xfrm_dst). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Use dst_mtu i n xfrm[46]_output There was a lot of fun in laying the foundations. Now it's time to start using it. This patch fixes the calculations in xfrm[46]_output so that we don't reject properly sized packets from the TCP stack. The previous calculation is wrong because the xfrm overhead is not constant. After this I'll start cleaning stuff up. For example, tcp's ext2_header_len and dst's path can both be removed. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Fix xfrm[46]_update_pmtu to update top dst Let's also fix IPsec PMTU storage. When we get an MTU update for an xfrm_dst, it should be done to the top dst, not the bottom dst. For example, when we get a need-to-frag message for host C behind a our IPsec peer B, we should be updating the dst entry for C and not B as we do now. I've removed the boundary checks since the same checks are done in ipv[46]/route.c already. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Get metrics for xfrm_dst from top dst For the metrics other than MTU, we should also be getting it from the top dst as opposed to the bottom dst. With this change, the user is able to manipulate values such as advmss for individual hosts behind a remote IPsec gateway. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [CIFS] cifs ioctl support part 1 This is needed for getflags and setflags (chattr) support and the new CIFS POSIX extensions Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] blacklist microtek scanmaker III To try and escape the madness of adding a zillion USB card readers to the SCSI whitelist, I flipped the scan all lun's by default switch in the fedora kernel recently to see just what breaks, in the hope of moving from a whitelist solution to a blacklist. Here's the first (hopefully of not too many) devices that broke. (See https://bugzilla.redhat.com/beta/show_bug.cgi?id=149402 for more info) Signed-off-by: Dave Jones Signed-off-by: James Bottomley [PATCH] NCR5380 delayed work fix and locking fix Changes to the NCR5380 driver between 2.6.9 and 2.6.10 replaced the driver's home-grown delayed work implementation with a call to schedule_delayed_work(). However, the delay argument was not passed correctly, so the work was usually scheduled for _way_ too far in the future. This patch fixes this. NCR5380_print_status() is called from NCR5380_abort() and from NCR5380_bus_reset(). In at least the abort() case, the host lock has already been acquired by scsi_error.c:scsi_try_to_abort_command(). NCR5380_print_status() calls NCR5380_proc_info() which also acquires and releases the host lock. This patch removes the call to NCR5380_proc_info() from NCR5380_print_status. Cosmetic: Remove duplicated lines of code from NCR5380_abort(). Signed-off-by: Kenn Humborg Signed-off-by: James Bottomley [PATCH] SCSI NCR_D700.c: make some code static This patch makes some needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] Display SPI transfer agreement in common code [ This is an updated version of http://marc.theaimsgroup.com/?l=linux-scsi&m=110918302718178&w=2 Relative to that patch, it prints the period in a nicer way; exactly the same way as the strings in the original version of this file. ] Introduce a generic SPI function to print the negotiated transfer agreement. It's based on the implementation in sym53c8xx_2/sym_misc.c. I have changes in my tree to make 53c700, ncr53c8xx and sym2 use it. Other drivers need to be converted to use the SPI transport layer first. In order to calculate the speed I needed to be able to convert from period factor to period in picoseconds. That required changing (show|store)_spi_transport_period to work in picoseconds rather than a string. Signed-off-by: Matthew Wilcox Signed-off-by: James Bottomley [PATCH] Use spi_display_xfer_agreement() in 53c700 Convert 53c700 to use spi_display_xfer_agreement() Signed-off-by: Matthew Wilcox Signed-off-by: James Bottomley input: Fix two typos in i8042 PnP code. Signed-off-by: Vojtech Pavlik input: Fix ALPS breakage caused by previous refactoring. Signed-off-by: Vojtech Pavlik input: Fix a connector name in a comment in lkkbd.c Signed-off-by: Vojtech Pavlik New BitKeeper file ``drivers/input/touchscreen/hp680_ts_input.c'' input: This patch is for the keyboard on Sharp Zaurus collie and poodle models (SL5000, SL5500, and SL5600). It uses the devices exported in arch/arm/common/locomo.c. The pressed state of the keys is now handled by the input layer rather than directly in this driver. More information about the status of Zaurus (and some extra patches if you need to test this out) can be found on my web page at http://www.cs.wisc.edu/~lenz/zaurus Signed-off-by: John Lenz Signed-off-by: Vojtech Pavlik input: hid-debug.h uses a C99 feature (range designators) not available in gcc-2.95. Since gcc-2.95 is still a supported compiler for 2.6 and the initializers as used here add no functional value, this patch removes them. gcc-2.95 is then able to compile hid-core with DEBUG enabled. Signed-off-by: Adam Kropelin Signed-off-by: Vojtech Pavlik input: convert from pci_module_init to pci_register_driver Signed-off-by: Christophe Lucas Signed-off-by: Domen Puncer Signed-off-by: Vojtech Pavlik input: Fix compiler warning in trident gameport code with enabled debugging and compiler error in ymfpci when compiled without gameport support. From: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: some whitespace and formatting cleanup in Corgi drivers. Also change del_timer to del_timer_sync in corgikbd and add missing del_timer_sync to corgi_ts. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: i8042 - disable MUX mode on some Fujitsu notebooks as it does not seem to be working properly and requires psmouse module to be reloaded several times for touchpad to be identified correctly. Since none of these notebooks have external PS/2 ports disabling MUX should have no drawbacks. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik Input: export psmouse module parameters via sysfs: /sys/module/psmouse/parameters/proto /sys/module/psmouse/parameters/rate /sys/module/psmouse/parameters/resetafter /sys/module/psmouse/parameters/resolution /sys/module/psmouse/parameters/smartscroll Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik input: hid-debug.h includes resolv_event, which is not used if DEBUG is only enabled in hid-core, but _is_ used when DEBUG is also enabled in hid-input. Mark the function with __attribute__((unused)) to silence the warning when only hid-core is being DEBUGged. Signed-off-by: Adam Kropelin Signed-off-by: Vojtech Pavlik [IPSEC]: Check dst validity harder in xfrm_bundle_ok There is another bug in xfrm_bundle_ok where I forgot to check the validity of xdst->route. In fact, the check on dst->path isn't strong enough either. For IPv6 entries, dst->path->obsolete is always negative until you call ipv6_dst_check. So we really need to do that here. Here's the patch to fix those two problems. Yes I know my dst_check implementation is lame. I'll come back and fix up all the dst_check functions by moving their dst_release calls out. It proves that you were right in that IPv6 dst leak thread :) Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Get rid of dst_pmtu/ext2_header_len Here is a patch that replaces all occurrences of dst_pmtu in the TCP stack. As a result we no longer need ext2_header_len. This has a nice synergetic effect with Arnaldo's latest change to linux/tcp.h :) I'll be removing other users of dst->path/dst_pmtu next. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [ATALK]: linux/atalk.h needs net/sock.h Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [IPSEC]: Kill redundant dst_release check in xfrm_dst_destroy Here's a trivial patch to get rid of a redundant check that I added in patch 3/4. dst_release already checks for dst == NULL. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [PATCH] PA-RISC copy/clear_user_page improvements - Performance improvement to __clear_user_page_asm - White space cleanup - 64-bit version of copy_user_page_asm - Add prefetching to copy_user_page_asm - remove NOP and "bundle" comments Contributions from Joel Soete Signed-off-by: Grant Grundler Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] GCC 3.4 fixes for PA-RISC parport support - Move include/asm/parport_gsc.h to drivers/parport/ - Fix gcc 3.4 compilation (redefined extern inline functions are not considered for inlining) From: Joel Soete Signed-off-by: Grant Grundler Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] Convert PARISC64 to 64BIT More CONFIG_PARISC64 to CONFIG_64BIT conversion Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] Convert from a struct dev to a firmware hwpath PA-RISC firmware needs a hwpath which can be constructed from a pci_dev or a parisc_device. Previously we've known what type of device we had, but when using sysfs we have to figure it out. Signed-off-by: Thibaut VARENE Signed-off-by: Linus Torvalds [PATCH] PA-RISC PDC stable storage driver Add PDC stable storage driver. Also reorganise PA-RISC Kconfig a little. Signed-off-by: Thibaut VARENE Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] ALSA Harmony sound driver for PA-RISC ALSA Harmony rewrite Signed-Off-By: Kyle McMartin Signed-off-by: Stuart Brady Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] PA-RISC defconfig update Update a500_defconfig Remove n4000_defconfig as a500_defconfig is now suitable for both boxes Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] Update PA-RISC PCI host adapter - Use CONFIG_64BIT instead of CONFIG_PARISC64 - Rename lba_cfg_ops to elroy_cfg_ops - Don't check for a non-1,2 or 4 size in the cfg_ops - Call LBA_CFG_ADDR_SETUP instead of LBA_CFG_TR4_ADDR_SETUP in elroy_cfg_ops - Don't read back from LBA_PCI_CFG_ADDR in LBA_CFG_TR4_ADDR_SETUP - Remove LBA_FLAG_NO_DMA_DURING_CFG since it's always set for elroy_cfg_ops - Remove LBA_TR4PLUS since we no longer need to test for it. - Inline lba_common_init() into lba_driver_probe() - Move TR2.1 check into an elroy-only path - Check for LBAs that aren't Elroy, Mercury or Quicksilver. - Remove all casts to 'int' in the driver, got rid of some unnecessary parens and deleted the obsolete part of a comment. - Return -EINVAL for config space >255 - Always return 0 on config read success - Remove definitions of TRUE and FALSE - ioremap fix for port-io on non-PAT machines - Remove the bad casts from the register accessors - With those gone, I could see the piop_base needed to be remapped. - Fix all ioremap abuse noticed by CONFIG_DEBUG_IOREMAP on an N4000. Signed-off-by: Grant Grundler Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] Update PA-RISC IOMMU code - The pdc_io_reset_devices() call necessary for USB keyboard kills the serial console. Use a test that seems to work for both. - Don't bounce >4G buffers on machines with IOMMU - Remove ASSERT code and cleanup iomem * related warnings - Fix comment that was pointing to the old file location - Expand comment about PDC reset to describe broken GFX+USB console at powerup by direct linux to serial console - Fix all ioremap abuse noticed by CONFIG_DEBUG_IOREMAP on an N4000 - Remove casts from "READ_REG" and "WRITE_REG" macro - Set D4 and DD bits in IOC_CTRL - Allow all memory in machine to be in-flight DMA at once, up to 4GB Signed-off-by: Grant Grundler Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] Update PA-RISC IOSAPIC driver - Fix all ioremap abuse noticed by CONFIG_DEBUG_IOREMAP on an N4000. - F_EXTEND doesn't do what I thought it did on a 32-bit box. - New calling convention for txn_alloc_irq() - Replace CONFIG_PARISC64 with CONFIG_64BIT - Ensure alignment of the irt buffer to 8 bytes even when slab debugging is enabled Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] PA-RISC Kconfig updates - Use def_bool where possible - Eliminate PARISC64 Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] PA-RISC Makefile updates - Support sparse - Use CONFIG_64BIT instead of CONFIG_PARISC64 - Find palo in /sbin even if it's not in our $PATH Signed-off-by: Randolph Chung Signed-off-by: Matthew Wilcox Signed-off-by: Linus Torvalds [PATCH] Document a "don't do that" case for the tty layer [PATCH] Fibre attached pcnet/32 The current driver does workarounds for errata that do not work with fibre attached devices. This patch avoids doing the workaround on the only known fibre attach pcnet/32 hardware. All handling is automated on pci sub-ids Patch by: Guido Guenther Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds [PATCH] Add ATP88x support to the ATP870U driver (Vendor patch) Patch-by: ARTOP Corp. Basically this adds the small bits for the new card and makes one set of items an array because the new card is multi-channel. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds [PATCH] Restore PWC driver PWC has a new maintainer (Luc Saillard) and also the various contentious binary hooks removed and replaced with reverse engineering work. Please restore it to the kernel Alan Signed-off-by: Luc Saillard Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds [PATCH] PCI idents for PCnet32 fix Sorry forgot I made these constants [PATCH] stallion ressurection, phase 1 This gets the stallion driver working again non-SMP. Patch by Wayne Meissner Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds [PATCH] resync ATI PCI idents into base kernel [CIFS] ioctl support part 1 Signed-off-by: Steve French (sfrench@us.ibm.com) [CIFS] recognize nouser_xattr and user_xattr mount options (default is still xattr enabled if built with xattr support) Signed-off-by: Steve French (sfrench@us.ibm.com) [SPARC]: mstk48t{08,59}_regs is static. Signed-off-by: David S. Miller [SPARC64]: boot_cpu_id is static. Signed-off-by: David S. Miller [SPARC64]: Make access_ok() more palatable to gcc-4.x Also, kill __{user,kernel}_ok() as they are unused macros on sparc64. Signed-off-by: David S. Miller [BT8XX]: Declare bt878[] array after struct layout definition. Signed-off-by: David S. Miller [PATCH] USB: add SiS USB2VGA kernel driver Signed-off-by: Thomas Winischhofer Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix sparse bitwise warnings in the sisusb.c driver Signed-off-by: Greg Kroah-Hartman [PATCH] USB: SiS USB2VGA minor fix. here is a tiny, small update for the sisusb driver. It fixes one spacing issue, one (internal) API issue and one endian issue (stupid copy/paste error) Signed-off by: Thomas Winischhofer Signed-off-by: Greg Kroah-Hartman [PATCH] USB: give sisusb a valid minor number (133 - 140) Signed-off-by: Greg Kroah-Hartman [PATCH] USB: SN9C10x driver bugfix SN9C10x bugfix and small updates. Changes: @ Allocate the correct number of buffer memory bytes for read() * Wakeup interruptible events on DEV_MISCONFIGURED status * Allocate the exact number of buffers (nreadbuffers) in poll() * Documentation updates Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: SN9C10x driver bugfix SN9C10x driver bugfix. Changes: @ Calculate correct image size in urb_complete() Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: Remove fix_capacity routine This is patch as422 from Alan Stern. This is the second half of the two-part patch to move the fix_capacity functionality up into the sd driver. James Bottomley has applied the SCSI half, so now the usb-storage part is ready to go. In short, the patch removes the fix_capacity routine and in its place, sets a device flag to tell sd that the reported capacity is one sector too high. It's a simple change and shouldn't cause any problems. Signed-off-by: Alan Stern Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB storage: make IGNORE_RESIDUE apply for reads (in addition to writes) This patch was originally as406. I've rediffed it against a current tree. This patch makes the iGNORE_RESIDUE flag apply to reads (as well as writes, which it already does). This is done because we've found devices which improperly report residue in the 'read' case. Phil will send in a follow-up patch with the appropriate unusual_devs entry for Ian's device soon. Signed-off-by: Alan Stern Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB: remove UB checks in the usb-storage driver. This allows either the ub or usb-storage driver to bind to the same device, allowing people to use both without rebuilding their kernels. It can be a bit messy at times... Signed-off-by: Greg Kroah-Hartman Acked-by: Matthew Dharm Acked-by: Pete Zaitcev [PATCH] USB: shuttle_usbat cleanups and generalisations Misc cleanups, a few more annotations, some function name/usage generalisation, and preparation for addition of support for flash-reader devices. Signed-off-by: Daniel Drake Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add USBAT02 storage support Adds support for USBAT02-based devices. A few HP cd writers came out with this chip. A lot of flash-readers also share these ID numbers: this will be addressed in the next patch. Signed-off-by: Daniel Drake Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add USBAT-based CompactFlash storage support Adds long overdue support for 12 CompactFlash card reader/writers based on the USBAT02 chip! See http://usbat2.sourceforge.net Signed-off-by: Daniel Drake Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] USB: unusual_devs.h update Alan and Matt recently submitted a patch to change IGNORE_RESIDE to ignore residues on WRITE as well as READ. As a follow up to that, this device needs that functionality. This adds the unusual_devs entry for that device. Signed-off-by: Phil Dibowitz Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: devices which don't process PREVENT-ALLOW MEDIUM REMOVAL This patch started life as as423, and has been re-generated against the current tip. Some storage devices don't like PREVENT-ALLOW MEDIUM REMOVAL commands; rather than returning an Invalid Command ASC they just die or imagine that the medium has actually been removed. Until now people have been relying on the SCSI blacklist table, which can be updated at runtime, to mark devices which shouldn't receive these commands. However it will be more efficient and easier to do it from within usb-storage, particularly since many of these devices share the same USB Vendor and Product IDs (while having different INQUIRY product strings). *sigh* We really should be trying to push as much of this as possible onto hotplug. It's easier to update userspace tools than the kernel to support a new device. The relevant devices already have unusual_devs entries; this patch just adds the new flag to those entries and uses it to set a corresponding flag in the scsi_device structure. Signed-off-by: Alan Stern Signed-off-by: Matthew Dharm Signed-off-by: Greg Kroah-Hartman [PATCH] usb/cypress_m8: replace schedule_timeout() with msleep() Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. The current code is not incorrect. Using msleep(), though, encourages specifying time delays in human time-units and consistency across the kernel. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB ftdi_sio: an rs485 adaptor from 4n-galaxy.de This patch adds support for an rs485 adaptor from 4n-galaxy.de. Signed-off-by: Jim Radford Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Retry more aggressively during device initialization This patch make the hub driver's device initialization routine more aggressive about detecting errors and retrying. It checks the result of the 64-byte GET-DESCRIPTOR request to verify that the descriptor tag is set correctly and the ep0-maxpacket value is legal; if either is not true it will retry the request immediately. David Brownell has said that this kind of approach is necessary to make certain buggy devices work. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Make use_both_schemes=y the default Enough people are experiencing problems with the new device initialization scheme that it seems like a good idea to make the default behavior be to try the old scheme when the new one fails. That's what this patch does, simply by changing the initial value of the use_both_schemes module parameter. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] usb/io_edgeport: replace interruptible_sleep_on_timeout() with wait_event_timeout() Use wait_event_timeout() instead of deprecated interruptible_sleep_on_timeout(). Signals are not checked in the current code, so interruptible should not be necessary. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/mdc800: use wait_event_timeout() Use wait_event_timeout() instead of custom wait-queue code. Remove now unused variables. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/auerswald: use wait_event_timeout() Use wait_event_timeout() instead of custom wait-queue code. There might be a problem with returning without adding/removing to the waitqueue before wait_event_timeout() is called. I am not sure if this is a problem or not. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ati_remote: use wait_event_timeout() Description: Use wait_event_timeout() instead of custom wait-queue code. The current code uses TASK_INTERRUPTIBLE but doesn't seem to care about signals so TASK_UNINTERRUPTIBLE should be ok. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add 'distrust_firmware' option to ohci This replaces an undocumented/experimental "power_switching" flag with a more useful one that lets the driver rely on the boot firmware to report such capabilities. The driver still defaults to munging those informational flags (as it has since 2.2!), so usbcore usually won't try to power-switch with OHCI, but now we have a simple way to default to the behavior specified by the board manufacturer. Also corrects a misprint in the debug 'registers' dump: a bit was shifted right by one nibble, so every controller was reported as supporting the legacy i8042 emulation registers. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ohci-omap updates This resolves a FIXME by making the OHCI driver handle power switching on the OSK board, rather than expecting tps65010 init logic to do that. The tps65010 support is #ifdeffed, since that driver hasn't yet been merged into the mainline kernel tree. It also makes OSK (and Innovator) report that they can do ganged power switching; the rest of usb ignores that for now, but that'll change. (Eventually OHCI needs to support board-specific root hub operations, especially for power switching and overcurrent detection, but that needs a few more tweaks.) Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Initialize connected ports on newly-activated hubs This patch changes the mechanism used for detecting devices that were already connected to a hub at the time the hub was activated. This can occur in several different circumstances: when the hub is configured for the first time, when the hub is reset following a malfunction, when the hub is resumed. The patch mainly addresses the third possibility, although it also handles the other two. The scenario I have in mind is waking up from a system suspend, where the user has plugged in a new USB device while the system was asleep, and for some reason the hub no longer has a record of the connect change on that port. (Maybe the BIOS or the boot kernel has interfered.) At any rate, the patch causes the hub driver to scan all ports in the reactivated hub, and if it finds a connected port with no child device already allocated then it pretends there was a connect-change event on that port. This will serve to take care of ports with new devices attached that the driver doesn't know about. The existing resume code already handles the case of ports that used to have a device but don't any longer. The remaining case, where different devices are attached to the port before suspending and after resuming, still needs to be handled. The resume code should call the same "descriptors changed" check used by usb_reset_device. That's a patch for another day. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB UHCI: split code from uhci-hcd.c to new file uhci-q.c The uhci-hcd.c source file has become uncomfortably large. In anticipation of separate upcoming changes to the HC management (for suspend/resume) and the URB handling (single QH per endpoint), and for the sake of compatibility with the structure of the OHCI and EHCI drivers, this patch splits out almost all the code for scheduling URBs and sticks it in a new source file, uhci-q.c. This is code rearrangement only, with no functional changes. In case your patch scripts aren't smart enough to realize it, the new uhci-q.c file will have to added to the list of BK-managed files. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] usb/hid-core: use wait_event_timeout() Use wait_event_timeout() instead of custom wait-queue code. Remove now unused variables. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/kaweth: use wait_event_timeout() Use wait_event_timeout() instead of custom wait-queue code. Remove now unused variables. I changed the code to only add to the wait-queue if necessary, but I'm not sure if this is correct. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Revised fixups for root-hub message handler This patch fixes a number of small errors in the routines that handle messages for root hubs: Fill in the extra byte if a string descriptor transfer asks for an odd number of bytes. Don't copy more than urb->transfer_buffer_length bytes. Use an extra internal buffer to avoid the need for lots of bounds checking. Replace strcpy by strlcpy and sprintf by snprintf to avoid overflowing an internal buffer. Don't set urb->status without first acquiring urb->lock. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add ASIX AX88772 10/100 Ethernet support to usbnet * Add support for the ASIX AX88772 10/100 Ethernet chip * Fix ax8817x_bind to use allocated buffer to avoid DMA on the stack * Fix ax8817x_bind error handling to ensure all resources are freed on failure * Fix ax8817x_get_eeprom routines to return valid eeprom data Signed-off-by: David Hollis Acked-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] usb-storage: More flexible signature checking mechanism This patch alters the CSW signature checking code to work with devices that report non-standard signatures, such as some Olympus and Aldi cameras. We now learn the first signature we see, and use it to check signatures of all subsequent transfers. This allows us to continue to benefit from the error-checking capabilities of the signature transfer, while becoming compatible with (yet more) non-standard devices. Suggestion from Alan Stern. Signed-off-by: Daniel Drake Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add usbmon, a USB monitoring framework This patch adds so-called "usbmon", or USB monitoring framework, similar to what tcpdump provides for Ethernet. This is an initial version, but it should be safe and useful. It adds an overhead of an if () statement into submission and giveback paths even when not monitoring, but this was deemed a lesser evil than stealth manipulation of function pointers. The patch makes two changes to hcd.c which make usbmon more useful: - Change the way we determine that DMA should not be mapped for root hubs, so that usbmon knows easily when it's safe to capture data. - Return exports of usb_bus_list and usb_bus_list_lock for those who wish to build usbmon as a module. This version of the patch changes #define to inlines for hooks and drops extra mod_ops. Signed-off-by: Pete Zaitcev Signed-off-by: Greg Kroah-Hartman [PATCH] usb/io_edgeport: remove interruptible_sleep_on_timeout() usage On Tue, Feb 01, 2005 at 11:43:08AM -0800, Nishanth Aravamudan wrote: > This should fix the behavior of the previous patch (probably not noticed yet). > The wake_up*() was not matched properly in the first patch (fixed below). Please > consider reverting the previous patch and applying this one instead. Directly use wait-queues to remove remaining callers of interruptible_sleep_on_timeout(). Signals are not checked (except in one case) in the current code, so interruptible should not be necessary. Modify the wake_up*() calls to match the wait-queue usage. There were some naming conflicts, which I tried to resolve appropriately. The final replacement is within a #if 0 / #endif section of code, but in case that code is ever used again, I would prefer it had the correct interface :) Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/mdc800: replace wake_up() with wake_up_interruptible() On Tue, Feb 01, 2005 at 11:51:36AM -0800, Nishanth Aravamudan wrote: > This should fix the behavior of the previous patch (probably not noticed yet). > The wake_up*() was not matched properly in the first patch (fixed below). Modify the wake_up*() calls to match the wait_event*() ones from a previous patch. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix types in usb suspend This fixes types in USB w.r.t. driver model. It should not actually change any code. Please apply, From: Bernard Blackham Signed-off-by: Pavel Machek Signed-off-by: Greg Kroah-Hartman [PATCH] USB: don't power down net2280 on suspend This creates a module parameter "enable_suspend", and changes the default behavior to avoid the need to power cycle machines with net2280 cards to recover from some common developer actions (like rmmod/modprobe). When set to 1, the net2280, for better or worse, will enter low-power mode when the USB host requests it. This is fine except in situations involving a power-cycling host or rmmoding the gadget driver while connected to a suspended (or disconnected!) port. When set to 0 (now the default), the driver will report suspend requests to the gadget driver, but will not place the NET2280 into low-power mode. This works fine in all situations except bus-powered devices (for which a PCI+Linux-based NET2280 generally doesn't make much sense anyway) It also (finally...) updates NetChip references to refer to PLX; and updates the dates on the driver. From: Alex Sanks Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add This adds a new header file, with definitions for the CDC class constants and structures used by various drivers. For now this only has the ones Linux actually uses. Each one is used in at least two or three different drivers, so sharing the definitions helps reduce errors. It's also a good excuse to make sure there "sparse -Wbitwise" doesn't report errors in how these are used! Patches to those drivers will follow as I have time to verify the updates: - CDC ACM (for serial lines and modems) * Host side support in "cdc-acm" * Peripheral side support in "g_serial" - CDC Ethernet (cable modems, PDAs, etc) * Host side support in "usbnet" * Peripheral side support in "g_ether" Also, Microsoft's RNDIS is a variant of CDC ACM, providing an Ethernet model and implemented by g_ether; it uses these definitions too. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Ethernet/RNDIS build fix on PXA25x This fixes a build problem with the RNDIS support on PXA25x processors. It's useful to help OpenZaurus win even bigger ... current OpenEmbedded builds already bundle this patch. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: omap_udc handles two more devel boards This teaches omap_udc how to work on two more OMAP development boards: - OMAP 5912 OSK, a starter kit; - OMAP 1710 H3, more or less an H2 with a newer OMAP chip (0.90 nm etc). It also adds slightly more informative debug dumps for transceiver configuration. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: pxa2xx_udc isn't for pxa27x This prevents selection of the pxa2xx_udc driver on pxa27x chips; the newer chip has incompatible changes in the register API. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet, cleanups and suspend/resume calls This has some small updates to the "usbnet" driver: - Remove an unused debug-only symbol - Make the net1080 minidriver pass "sparse -Wbitwise" - Add suspend/resume methods No functionality changes other than the suspend/resume support. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet uses This makes the "usbnet" driver user the new header, and the stuctures and constants found therein. It also cleans up the Zaurus device table entries a smidgeon. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman USB: revert wacom driver patch. Cset exclude: akpm@osdl.org[gregkh]|ChangeSet|20050308064955|00321 Will be coming in through the bk-input tree instead. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Ethernet/RNDIS gadget driver uses This converts the Ethernet/RNDIS gadget driver to use . It now passes "sparse -Wbitwise", except for the spot in the gadget API where the SETUP packet is still byteswapped. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: serial/acm gadget uses This converts the serial/ACM gadget driver to use , again a net code shrink. It also gets rid of several "sparse -Wcontext -Wbitwise" warnings; again, excepting the cases where the gadget driver setup() callback hasn't yet changed in all the controller drivers. Two of these warnings were bugs: one affecting CDC ACM support on big-endian hardware (reporting of DTE data rate), one keeping IRQs blocked too long. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: cdc-acm uses This makes cdc-acm use the file. It (still) passes "sparse -Wbitwise" on those fields. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ohci ppc driver (1/2): big-endian tweaks These are the remaining OHCI core (and Kconfig) updates for big-endian support on STB03xxx and MPC52xx PPC chips. These are the first known implementations with big-endian register and memory layouts. - Two more in-memory fields, related to isochronous transfers have different behavior: HCCA frame number, and ISO TD status. - Kconfig gets new OHCI options, for big-endian and little-endian. The default is little-endian; those PPC platforms can support both the on-chip big-endian version, and little-endian PCI chips. Most of the related ohci core fixes have already been merged. Signed-off-by: Dale Farnsworth Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ohci ppc driver (2/2): ohci-ppc-soc.c This adds drivers/usb/host/ohci-ppc-soc.c, the USB OHCI glue file for two PPC SOC implementations. Signed-off-by: Dale Farnsworth Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: UHCI: Fix build errors when CONFIG_DEBUG_FS isn't set > I've dropped this now. It caused the usb-bk tree to be dropped from the > -mm releases due to it causing build errors if CONFIG_DEBUG_FS not being > enabled. Andrew sent me a horrible hack to try to fix it up, but I'm > going to trust you to fix it up properly :) Here's a proper fix (well, it's a little hackish, but better than Andrew's I hope). No more build problems if CONFIG_DEBUG_FS isn't set. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] usb/message: make usb_{control,bulk}_msg() use msecs Change the units of the timeout parameter in both usb_control_msg() and usb_bulk_msg() from jiffies to milliseconds. This is the core patch upon which the remaining ones will be built. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] include/usb: change USB_CTRL_{SET,GET}_TIMEOUT to msecs Change the units of the timeout constants in usb.h to correspond to the new parameter units for usb_{control,bulk}_msg(), in this case from seconds to milliseconds. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/message: change parameters of usb_control_msg() to msecs Change units of parameters being passed to usb_control_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT's units are changed in a separate patch such that the the HZ multiplication is no longer necessary. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/message: move msecs change into usb_start_wait_urb() After discussion with gregkh on IRC, I realized that the conversion can be pushed one layer further down into usb_start_wait_urb(), as only usb_{control,bulk}_msg() call this function (kaweth.c has its own version, which remains unchanged by this set of patches). The following incremental patch pushes the conversion into usb_start_wait_urb(). It should be applied after the previous ones to message.c [1/63 and 3/63]. Description: Pushes conversion from milliseconds to jiffies one function further down the usb stack into usb_start_wait_urb(). The only callers of this function are usb_{control,bulk}_msg(); this patch makes the units conversion happen in one place instead of two. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/speedtch: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/audio: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/cdc-acm: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/usblp: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/devio: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/hub: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT was converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/hid-core: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/cytherm: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/usbtest: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/powermate: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/aipteke: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/mtouchusb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/wacom: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ibmcam: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/konicawc: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ov511: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/se401: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. USB_CTRL_{GET,SET}_TIMEOUT were converted to milliseconds in a separate patch. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/sn9c102: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ultracam: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/vicam: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/auerswald: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/w9968cf: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/idmouse: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/legousbtower: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/phidgetkit: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/phidgetservo: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/usbled: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/uss720: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/catc: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/rtl8150: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/usbnet: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Remove unused jiffy-unit constant. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/belkin_sa: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ezusb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/io_ti: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ipaq: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ipw: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ir-usb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/keyspan_pda: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/kl5kusb105: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/mct_u232: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ti_usb_3410_5052: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/visor: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/rio500: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/whiteheat: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/usb-skeleton: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] bluetooth/bfusb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Marcel Holtmann Signed-off-by: Greg Kroah-Hartman [PATCH] char/pcwd_usb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] net/irda-usb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] net/stir4200: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] w1/dscore: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] sound/usbmixer: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] sound/usX2Yhwdep: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] dvb/b2c2-usb-core: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] dvb/dvb-dibusb-firmware: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] video/cpia_usb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] dvb/cinergyT2: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] dvb/dvb-dibusb: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. This constant is only used for these functions. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] dvb/dvb-ttusb-budget: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] dvb/ttusb_dec: change parameters of usb_{control,bulk}_msg() to msecs Change units of parameters being passed to usb_{control,bulk}_msg() to milliseconds. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ethernet gadget driver aligns IP headers Align incoming Ethernet packets so the header after Ethernet starts on something closer to a cacheline boundary. This normally just tweaks performance for the IP layer. But on one board (a no-MMU ARM9TDMI with no hardware support for alignment fixups) it's needed to prevent the IP checksumming code from failing. From: Thomas Brinker Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ehci updates for TDI/ATG silicon This patch updates support for the TDI EHCI controller, which is mostly used on non-PCI systems: - Correctly initialize the latest chip, which has both host (EHCI) and peripheral modes. - Initialize split isochronous transfers to use the integrated TT. Most of the patch, by volume, just changes the company name from ARC to TDI in the source code; TransDimension bought ARC's peripheral connectivity business. From: Craig Nadler Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: teach gadget drivers about s3c2410_udc This patch makes gadget drivers recognize the UDC controller in the Samsung s3c2310 (ARMv4T). This is used in the iPaq H1940, partially supported by Linux, as well as various other devices. A controller driver is available, though it's not yet submitted. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet uses NET_IP_ALIGN Go back to aligning RX packets to make the IP layer happy, now that there's an appropriately platform-specific way to do this. This should be only a performance tweak. However, the alignment handlers on some platforms don't seem to behave; so it may have correctness impacts too. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman <050035w@acadiau.ca> [PATCH] USB: fix error in usb_skel.c Signed-off-by: Greg Kroah-Hartman [PATCH] usb-storage: Don't log expected signatures This fairly trivial patch makes three small changes: Correct a typo in a comment. Don't print a debugging message when a USB mass-storage device uses the standard signature (the one we would expect normally). Shorten a debugging message and add a newline. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] [PATCH 2.6] maintainers / documentation update cyberjack Here's a pure documentation update for the cyberjack driver. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbfs fix for data loss in message.c This is my fix for usbfs losing data when the urb is timed out but already contains data. Signed-off-by: Brian Murphy Signed-off-by: Greg Kroah-Hartman [PATCH] USB: set timeout message to debug level: message.c this makes a the debug message on timeout be at debug level so it only exists when compiling with explicit debugging support. I have added information about the request length and data length as now if the data length is non-zero a 0 status is returned. Signed-off-by: Brian Murphy Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbfs: remove debug message this removes a warning message which only contains data which is in any case returned to user space. This message is especially annoying when polling with short timeouts, filling up the log files and polluting the console. As agreed with David Brownell. Signed-off-by: Brian Murphy Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes to the hcd glue layer in usbcore. It is a prerequisite for all the other patches (which are all otherwise independent). Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes for the core hcd-pci file and the uhci-hcd driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes for the dummy-hcd driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes for the ohci-lh7a404 driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes to the ohci-omap driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes to the ohci-ppc-soc driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes to the ohci-pxa27x driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes to the sl811-hcd driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes to the ohci-au1xxx driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Clear endpoint toggles in usb_set_interface Pete Zaitcev has found some USB devices that don't reset their endpoint data toggles when they get a SET-INTERFACE request. Apparently they interpret the USB specification too literally when it says that the toggles must be reset whenever the alternate setting is "changed". Anyway, this patch calls usb_clear_halt for all endpoints in the altsetting whenever usb_set_interface is called and the new altsetting is the same as the old one. It adds some extra overhead for the majority of devices that don't need it, but fortunately usb_set_interface isn't called very often. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix race in URB submission vs. endpoint-disable This patch fixes a race between URB submission and endpoint-disable. (I don't know that it's actually possible to trigger the race, but it won't hurt to move the appropriate test inside the region protected by the spinlock.) In addition, an out-of-date comment referring to timeouts is removed. The patch also changes the error code returned when an URB is submitted for a nonexistent or disabled endpoint to -ENOENT and documents the error code (which was already in use by usbfs) in Documentation/usb/error-codes.txt. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USBcore: implement usb_add_hcd and usb_remove_hcd This patch contains the changes to the ohci-sa1111 driver to accomodate the new usb_add_hcd, usb_remove_hcd routines. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Don't return IRQ_NONE for edge-triggered interrupts On Tue, 15 Feb 2005, Greg KH wrote: > Thanks, I've applied all of them except as460 as there seemed to be > confusion about that one. Care to respin that one based on all of the > comments given to it? It turns out that patch as460 is all right as it stands, and the addition of the patch below will resolve the problem. It prevents the OHCI drivers from returning IRQ_NONE on architectures that use edge-triggered interrupts. The patch has been OK'ed by Christopher and David. Just be sure to apply this one and as460 at the same time! Properly speaking this problem ought to be fixed in the interrupt core since it affects every driver, not just USB. Until that happens, this will suffice. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix ohci Kconfig entry The recently merged AMD/Alchemy Au1xxx OHCI driver won't configure on boards which also have PCI support; this resolves that. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: cache the product, manufacturer, and serial number strings at device insertion. This should fix a lot of issues with broken devices that can't handle retrieving strings while they are doing something else (strings would be fetched from usbfs and sysfs entries.) Based on a patch that has been in the SuSE kernel tree for a long time from Olaf Hering Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix up the input drivers to use the built in strings, instead of re-reading them from the device. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: remove string fetches from the usb-storage core, have them used the cached versions instead. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: make iInterface string cached Signed-off-by: Greg Kroah-Hartman [PATCH] USB: cache the iConfiguration string, if present. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix memory leak in get_string if usb_string() call failed. Pointed out by Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix up compiler warnings when CONFIG_USB_DEBUG is not set. As pointed out by Kay Sievers Signed-off-by: Greg Kroah-Hartman [PATCH] USB Documentation update: USB error codes This patch fixes a documentation error I made earlier and clears up the meaning of the -ETIMEDOUT error code in urb->status. Some host controller drivers _do_ use that code to indicate no response was received from the device, which can be confusing since the same code is also used when a request's timer expires. In the future it would be a good idea to change the second usage (as returned by usb_bulk_msg and usb_control_msg) to -ETIME. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: pegasus and rtl8150 cset for proper link detection changes mainly include adding work queue to both drivers and a bunch of other small fixes. Signed-off-by: Petko Manolov [PATCH] USB: pxa2xx_udc tweak Add a missing local_irq_restore() on the SET_CONFIGURATION completion path. From: Eugeny S. Mints Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] [PATCH] Add US_FL_GO_SLOW flag, This adds the US_FL_GO_SLOW flag. This flag is for devices that need a 110 usec delay during high-speed transfers. This seems to be limited to USB-to-IDE chips. Unusual_dev entries for affected devices are included. This has been thrown around in the usb-storage list for a while now, and I believe everyone is happy with it. Signed-off-by: Phil Dibowitz Signed-off-by: Greg Kroah-Hartman [PATCH] usb/usblp: convert USBLP_WRITE_TIMEOUT to milliseconds USBLP_WRITE_TIMEOUT was not updated with the the other constants related to converting the final parameter of usb_{control,bulk}_msg() to milliseconds. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] usb/ftdi_sio: convert WDR_TIMEOUT to milliseconds WDR_TIMEOUT was not updated with the the other constants related to converting the final parameter of usb_{control,bulk}_msg() to milliseconds. Signed-off-by: Nishanth Aravamudan Signed-off-by: Greg Kroah-Hartman [PATCH] USB Storage: Unusual_devs entry for Nikon DSC D70 Here's a new unusual_devs.h entry for the Nikon DSC D70 camera, which suffers the common problem of reporting one more sector than it actually has. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix use after free in usb/core/devices.c There's a low probability use-after-free here caused by some switched pointers, st needs to go back to file->private_data Found by Coverity tool Signed-off-by: Alexander Nyberg Signed-off-by: Greg Kroah-Hartman [PATCH] USB: PhidgetKit driver update A small patch for drivers/usb/misc/phidgetkit.c: Fixes for PhidgetInterfaceKit 0/0/4, by Chris Strandt Signed-off-by: Sean Young Signed-off-by: Greg Kroah-Hartman [PATCH] USB: add zd1201 wireless lan driver Signed-off-by: Jeroen Vreeken Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix up HZ change in zd1201 driver. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: compat ioctl for submiting URB From: Christopher Li - Let usbdevfs directly handle 32 bit URB ioctl. More specifically: USBDEVFS_SUBMITURB32, USBDEVFS_REAPURB32 and USBDEVFS_REAPURBNDELAY32. Those asynchronous ioctls are too complicate to handle by the compatible layer. Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [SERIAL] Fix 16550A misdetection Patch from Petr Vandrovec XScale detection needs access to Interrupt Enable Register on UART. But this register shares position with high byte clock divisor, and previous detection steps were leaving clock divisor and not IER selected, causing misdetection of all 16550A chips as XScale. Fix this by disabling access to clock divisor at the end of previous detection step, so chip is in same mode after each detection step. Signed-off-by: Petr Vandrovec [ARM PATCH] 2516/1: S3C2410 - add Acer n30 Patch from Ben Dooks Add the Acer N30 machine, from Christer Weinigel Signed-off-by: Christer Weinigel Signed-off-by: Ben Dooks Signed-off-by: Russell King epoll: return proper error on overflow condition Noted by Georgi Guninski. [PATCH] ppc32: fix for e500 oprofile build Fix for trivial fix for 2.6.11 oprofile compilation on e500 based ppc. Signed-off-by: Andy Fleming Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc: raid6 build fix Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86_64 pte warning fix include/asm/pgtable.h:267: warning: `struct vm_area_struct' declared inside parameter list include/asm/pgtable.h:267: warning: its scope is only this definition or declaration, which is probably not what you want Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove drivers/char/tpqic02.c Since at about half a year, this driver was no longer selectable via Kconfig. Since it seems noone missed this driver, therefore this patch removes it. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: revert implement-a-vdso-and-use-it-for-signal-trampoline-gas-workaround We don't actually need this. The reason why the ppc64 build exploded was that I had CC="gcc -m64", and even though the build system turns that into "gcc -m64 -m32", that is, surprisingly, equivalent to "gcc -m64". Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cramfs: small stat(2) fix When I stat(2) a device node on a cramfs, the st_blocks field is bogus (it's derived from the size field which in this case holds the major/minor numbers). This makes du(1) output completely wrong. Signed-off-by: Eric Lammerts Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] macserial build fix `current' is a lousy choice for a variable name. This driver explodes on ppc64 because `current' expands to (local_paca->__current). OK, the driver doesn't compile on power4 anyway, but... Cc: Benjamin Herrenschmidt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: Compilation fixes for Ebony, Luan and Ocotea this patch fixes the problem, that the current kernel (linux-2.6.11-rc5) could not be compiled, when "support for early boot texts over serial port" (CONFIG_SERIAL_TEXT_DEBUG=y) is active. Signed-off-by: Gerhard Jaeger Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make st seekable again Apparently `tar' errors out if it cannot perform lseek() against a tape. Work around that in-kernel. Signed-off-by: Kai Makisara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vm: pageout throttling With silly pageout testcases it is possible to place huge amounts of memory under I/O. With a large request queue (CFQ uses 8192 requests) it is possible to place _all_ memory under I/O at the same time. This means that all memory is pinned and unreclaimable and the VM gets upset and goes oom. The patch limits the amount of memory which is under pageout writeout to be a little more than the amount of memory at which balance_dirty_pages() callers will synchronously throttle. This means that heavy pageout activity can starve heavy writeback activity completely, but heavy writeback activity will not cause starvation of pageout. Because we don't want a simple `dd' to be causing excessive latencies in page reclaim. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] simpler topdown mmap layout allocator 1. typos/spelling ;-) 2. removed prev_vma and find_vma_prev because the condition checked later was always true 3. moved the free_area_cache/mmap_base check into arch_unmap_area_topdown where i think it belongs. 4. removed the extra free_area_cache setting code in the while loop as it only has to be set when we actually (and successfully) return from this function. The only visible change to the layout should be the following: [PATCH] vmscan: reclaim SWAP_CLUSTER_MAX pages in a single pass Here is another small OOM killer improvement. Previously we needed to reclaim SWAP_CLUSTER_MAX pages in a single pass. That should be changed so that we need only reclaim that many pages during the entire try_to_free_pages run, without going OOM. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] stop using "base" argument in __free_pages_bulk() Appended is a patch which stops using the zone->zone_mem_map to calculate the buddy and combined page pointers. It uses the fact that the mem_map array is guaranteed to be contigious for the surrounding (1 << MAX_ORDER) pages. The relative positions of the pages in the physical address space to provide the alignement; which conicidentally fixes the issue where zones are not aligned at MAX_ORDER. There is a very comprehensive comment in the new code explaining the mathematical relationship between a page and its buddy so I won't reproduce it here. This kind of approach is required for CONFIG_NONLINEAR systems where the mem_map is not contiguous within a zone, and the zone->zone_mem_map is not used at all. This patch has been boot-tested on a large variety of systems and architectures: my P4 laptop, 16-way NUMAQ, 16-way Summit, 4-way x86 SMP, ppc64 LPAR, x86_64, and several ia64 configurations. It has been performance-tested on a 16-way NUMAQ. SDET shows a very slight (within margin of error) performance gain. Kernbench shows an approximately ~1% decrease in system time with this patch applied. So, it has a likely positive performance impact. However, the patch has the potential to have a negative performance impact on systems with an expensive page_to_pfn() implementation. But, I think the NUMAQ has one of the more expensive ones around, and it doesn't seem mind too much. Signed-off-by: Andy Whitcroft Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mempool: protect buffer overflow in mempool_resize - Race in mempool_resize: memcpy can copy at the end of the kmalloced elements. - When new_min_nr is same as min_nr, instead of reallocate and copy, just return, changed '<' to '<='. - Changed while condition to the same sense of if condition from '>' to '<'; it is easy to think with only one of the left and right brains at a time. Signed-off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix mincore cornercases: overflow caused by large "len" This patch fixes 2 cornercases of overflow caused by argument len in sys_mincore(): Case 1: len is so large that will overflow to 0 after page alignment. E.g. len=(size_t)(-1), i.e. 0xff...ff. Expected result: it's overflow and return ENOMEM. Current result: len is aligned to 0, then treated the same as len=0 and return succeed. This cornercase has been fixed in do_mmap_pgoff(), and here sys_mincore() also needs this fix. Case 2: len is a large number but will not overflow after alignment. But start+len will overflow. E.g. len=(size_t)(-PAGE_SIZE), and start>0. Expected result: it's overflow and return ENOMEM. Current result: return EINVAL. Looks like considering len as a non-positive value, probably influenced by manpage. But since the type of len is size_t, i.e. unsigned, it shouldn't be considered as non-positive value. I've also reported this inconsistency to manpage mincore. Signed-off-by: Gordon Jin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] copy_pte_range latency fix Ingo's patch to reduce scheduling latencies, by checking for lockbreak in copy_page_range, was in the -VP and -mm patchsets some months ago; but got preempted by the 4level rework, and not reinstated since. Restore it now in copy_pte_range - which mercifully makes it easier. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: unneeded prev_page assignments There is no point in setting ra->prev_page before 'goto out', it will be overwritten anyway. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: cleanup get_next_ra_size() get_next_ra_size() can get all info from file_ra_state. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: factor out duplicated code This patch introduces make_ahead_window() function for simplification of page_cache_readahead. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: cleanup blockable_page_cache_readahead() I think that do_page_cache_readahead() can be inlined in blockable_page_cache_readahead(), this makes the code a bit more readable in my opinion. Also makes check_ra_success() static inline. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: simplify ra->size testing Currently page_cache_readahead() treats ra->size == 0 (first read) and ra->size == -1 (ra_off was called) separately, but does exactly the same in both cases. With this patch we may assume that the reading starts in 'ra_off()' state, so we don't need to consider the first read as a special case. file_ra_state_init() sets ra->prev_page = -1; ra->size = 0; When the page_cache_readahead() is called for the first time it sets ra->size to nonzero value either via get_init_ra_size() or ra_off(). So ra->size == 0 implies that ra->prev_page == -1. I am ignoring the case when readahead is disabled via ra->ra_pages == 0. page_cache_readahead detects sub-page sized reads: if (offset == ra->prev_page && req_size == 1 && ra->size != 0) But if offset == ra->prev_page, then ra->size == 0 can happen only if offset == -1, so there is no need to check ra->size here. If application starts reading 16Tb file from the last page then readahead can't help. First offset==0 read or first sequential detection: if ((ra->size == 0 && offset == 0) || (ra->size == -1 && sequential) could be changed to: if ((ra->size == 0 && sequential) || (ra->size == -1 && sequential) which means: if (sequential && (ra->size == 0 || ra->size == -1)) Random case detection: if (!sequential || (ra->size == 0)) But if sequential == 1, then ra->size can't be 0, this case is already handled before. Now we have: if (offset == ra->prev_page && req_size == 1) /* sub-page reads */ if (sequential && (ra->size == 0 || ra->size == -1)) /* first offset==0 read or first sequential */ if (!sequential) /* random case */ Now ->size is checked only in one place, so ra_off() can set ra->size = 0, and we can just test ->size against 0. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: improve sequential read detection 1. Current code can't always detect sequential reading, in case when read size is not PAGE_CACHE_SIZE aligned. If application reads the file by 4096+512 chunks, we have: 1st read: first read detected, prev_page = 2. 2nd read: offset == 2, the read is considered random. page_cache_readahead() should treat prev_page == offset as sequential access. In this case it is better to ++offset, because of blockable_page_cache_readahead(offset, size). 2. If application reads 4096 bytes with *ppos == 512, we have to read 2 pages, but req_size == 1 in do_generic_mapping_read(). Usually it's not a problem. But in random read case it results in unnecessary page cache misses. ~$ time dd conv=notrunc if=/tmp/GIG of=/tmp/dummy bs=$((4096+512)) 2.6.11-clean: real=370.35 user=0.16 sys=14.66 2.6.11-patched: real=234.49 user=0.19 sys=12.41 Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] readahead: trivial, small comments update On top of "[PATCH 2/2] readahead: improve sequential read detection". Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] use find_trylock_page in free_swap_and_cache instead of hand coding Use find_*_page helpers in swap code instead handcoding it. Signed-off-by: Marcelo Tosatti Acked-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Bad page state mapcount A small change to the tests for "Bad page state", to avoid one class of the page_remove_rmap BUG reports, giving more information while letting the system continue: check page_mapcount (_mapcount != -1) rather than page_mapped (_mapcount >= 0). And how does _mapcount go bad? In the case under study, it looks sure now that an overheating(?) Pentium III sometimes gets confused by a pair of instructions in the no-buddy-bitmap __free_pages_bulk, and clears the PG_private bit from the _mapcount field while buddying around - changing PG_private value changes the bit cleared from _mapcount. Bad page state mapcount:-4096 would have tracked this down much sooner, and will be recognizable if other cpus show the same aberrant reaction to 2.6.11. The page_remove_rmap BUG does need to be replaced by more permissive and informative handling, but I'm not yet ready to to finalize such a patch. Please admit Colin Harrison to the Order of the Iridescent Penguin, for his tireless testing. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] put newly registered shrinkers at the tail of the list This way we actually shake dentries before inodes and thus mark more inodes reclaimable once we shake them. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Speed freeing memory for suspend. Here's a patch I've prepared which improves the speed at which memory is freed prior to suspend. It should be a big gain for swsusp. For suspend2, it isn't used much, but has shown big improvements when I set a very low image size limit and had memory quite full. 1GB P4, 2.6.11+Suspend2 2.1.8. Soft image size limit set to 2MB to emulate Pavel's implementation (eat as much memory as we can). Without patch: Freed 16545 pages in 4000 jiffies = 16.16 MB/s Freed 83281 pages in 14060 jiffies = 23.14 MB/s Freed 237754 pages in 41482 jiffies = 22.39 MB/s With patch: Freed 52257 pages in 6700 jiffies = 30.46 MB/s Freed 105693 pages in 11035 jiffies = 37.41 MB/s Freed 239007 pages in 18284 jiffies = 51.06 MB/s With a less aggressive image size limit (200MB): Without the patch: Freed 14600 pages in 1749 jiffies = 32.61 MB/s (Anomolous!) Freed 88563 pages in 14719 jiffies = 23.50 MB/s Freed 205734 pages in 32389 jiffies = 24.81 MB/s With the patch: Freed 68252 pages in 496 jiffies = 537.52 MB/s Freed 116464 pages in 569 jiffies = 798.54 MB/s Freed 209699 pages in 705 jiffies = 1161.89 MB/s The later pages take more work to get, which accounts for the slower MB/s with smaller numbers of pages to free. Without the patch, though, getting the easier pages also takes longer because we do a far greater number of invocations of shrink_all_memory in order to get the same number of pages. Signed-Off-By: Nigel Cunningham Acked-By: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] vfs: adds the S_PRIVATE flag and adds use to security This patch series adds SELinux support to reiserfs. This patch adds an S_PRIVATE flag to inode->i_flags to mark an inode as filesystem-internal. As such, it should be excepted from the security infrastructure to allow the filesystem to perform its own access control. Signed-off-by: Jeff Mahoney Acked-by: Stephen Smalley Acked-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] selinux: internal inode loop needs IS_PRIVATE test This patch applies the IS_PRIVATE test to the selinux internal inode loop. Signed-off-by: Jeff Mahoney Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: private inode abstracted to static inline This patch moves the assignment of i_priv_object to a static inline. This is in preparation for selinux support in reiserfs. Signed-off-by: Jeff Mahoney Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: change reiserfs to use S_PRIVATE This patch changes reiserfs to use the VFS level private inode flags, and eliminates the old reiserfs private inode flag. Signed-off-by: Jeff Mahoney Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc32: add Radstone PPC7D platform support Radstone PPC7D are ppc7447A VME boards with Marvell Discovery-II, dual GigE, dual PMC, 6 serial ports, keyboard/mouse, USB and optional SCSI/VGA. This patch adds support for the PPC7D platform. Signed-off-by: James Chapman Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Make therm_adt746x handle latest powerbooks This patch lets therm_adt746x handle the latest powerbooks. In these ones, Apple doesn't put the i2c bus number in the "reg" property of the fan node. Instead, we can get the bus number from the fan node path, which looks like "/proc/device-tree/.../i2c-bus@1/.../fan". Here's a patch that handles both old and new form. Signed-off-by: Colin Leroy Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: Mode 2 PCI-X config space size fix This patch is from Brian King . When working with a PCI-X Mode 2 adapter on a PCI-X Mode 1 PPC64 system, the current code used to determine the config space size of a device results in a PCI Master abort and an EEH error, resulting in the device being taken offline. This patch checks OF to see if the PCI bridge supports PCI-X Mode 2 and fails config accesses beyond 256 bytes if it does not. Signed-off-by: Brian King Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: addresses from OF getting truncated to 32-bits This patch is from Jake Moilanen , reformatted by me. The `assigned-addresses' property in the Open Firmware device tree nodes for PCI devices has 64 bits of PCI bus address, but we were only using 32. This patch fixes it so we use all 64. Signed-off-by: Jake Moilanen Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: fix init_boot_display link error This patch is from Amos Waterland . In pmac_setup.c, the function init_boot_display as currently written only makes sense with CONFIG_BOOTX_TEXT enabled, and causes a link error if it is not enabled. Signed-off-by: Amos Waterland Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: C99 initializers for hw_interrupt_type This patch is from Thomas Gleixner . Convert the initializers of hw_interrupt_type structures to C99 initializers. Signed-off-by: Thomas Gleixner Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: kprobes: handle trap variants while processing probes This patch is from Ananth N Mavinakayanahalli . While processing a kprobe, we were currently not handling all available trap variants available on PowerPC. This lead to the breakage of BUG() handling in ppc64. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: set pci_io_base dynamically if necessary This patch is from John Rose . Upon DLPAR addition of a PCI Host Brige to a system with purely virtual I/O, set pci_io_base as necessary. Signed-off-by: John Rose Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ppc64: allow dynamic enablement of EEH This patch is from John Rose . EEH scans the system I/O adapters at boot for EEH-capabilities. If no EEH-capable adapters are found, the subsystem is marked disabled for the life of the system. EEH should allow dynamic enabling of the EEH subsystem when hotplug-adding an adapter. Signed-off-by: John Rose Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] mips: add spare timer init This patch adds spare timer initialization for NEC VR41xx. Signed-off-by: Yoichi Yuasa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Initial checkstack port This provides a port of checkstack for sh64 for the simple frames allocated as an immediate with a single instruction. Stack frame creation on sh64 happens in a couple of different ways, when the frame size is less than 511 bytes an addi or addi.l is typically used, generally along the lines of something like: addi{,.l} r15, -IMM_FRAME_SIZE, r15 For larger frames, this ends up getting split up into a movi/sub pair: movi IMM_FRAME_SIZE, rX sub r15, rX, r15 We currently don't handle the split pair case, as basically any register can be used, and there is no easy way to determine what happens without scanning the prologue multiple times and using some sort of register cache (we already do something similar for the sh64 stack unwinder, but it would be preferable not to do this in perl..). This does have limited usefulness in that we are not easily able to check for huge frames without manual inspection, but this is still useful enough in the general case to be worth doing for the addi/addi.l case as long as people are aware of this caveat. It may be worth revisiting at a later point to try and catch the larger users though. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Update Richard Curnow's MAINTAINERS info Fairly self explanatory.. Signed-off-by: Richard Curnow Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Align slab caches on an 8-byte boundary The BYTES_PER_WORD assumption doesn't work out on sh64 when we are using a 32-bit ABI. We want slab caches to be forced to a minimum alignment of 8-bytes, as it was before Anton's change. This was also already discussed at length with Manfred in this thread: http://marc.theaimsgroup.com/?l=linux-kernel&m=110227138116749&w=2 Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: defconfig updates Update for the cayman defconfig. We also drop the generic arch/sh64/defconfig as it has very little hope of being kept up to date, so we use the cayman one instead. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: iomap interface. This adds support for the iomap interface to sh64. As a result of this, we can also clean up a lot of the sh64 common I/O routines. We also add a board-specific ioport_map() for the cayman so we can use iomap generically. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: module support This adds support for modules. Signed-off-by: Richard Curnow Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: generic hardirqs Convert sh64 to use generic hardirqs. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: IDE updates This fixes up a few minor IDE issues on sh64. We also enable cayman on-board IDE in the SuperIO. Signed-off-by: Richard Curnow Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: TMU init bugfix TMU0 initialization was broken when the timer was already started by someone else (for instance, a boot loader). This fixes it. Signed-off-by: Andy Sturges Signed-off-by: Richard Curnow Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Send cli()/sti() back from whence it came There were a couple of cli()/sti() users left, so we get rid of them.. Hopefully this is the last of this mess. Signed-off-by: James Nelson Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: Beat dcache disabling back into submission Somewhere along the line dcache disabling decided it wanted to stop itself from compiling. So we fix it. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh64: merge updates Mostly random bugfixes and some build fixes, as well as killing off some leftover cruft. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: defconfig updates Nothing to see here, move along. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: generic hardirqs Convert sh to use generic hardirqs. Signed-off-by: Christoph Hellwig Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: hp620 updates This gets hp620 working again.. Signed-off-by: Kristoffer Ericson Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: framebuffer updates hitfb and pvr2fb were both recently broken by mainline changes, this gets them working properly again. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: Update cpufreq driver for cpumask This updates the sh cpufreq driver for the cpumask changes. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sh: merge updates More random cleanup and build fixes. Signed-off-by: Paul Mundt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Allow hot-add enabled i386 NUMA box to boot Dave Hanson mentioned I should send this patch to you. I posted it to linux-mm a while ago without complaint. This patch solves a simple problem related to the interpretation on the SRAT table and the info found in the e820. When a possible hot-add area is exposed on my box (IBM x445 with hot add enabled in the bios) my SRAT table correctly exposed a new node from the end of my physical memory to 64gb. In the present kernels the numa KVA areas (based on the SRAT) are calculated before find_max_pfn. The remap area is created for this large non-populated zone and the system dies a while later during bootup. I believe the correct things to do (as did the hot-plug community) the correct thing to do is the keep the node_start_end_pfn data structures focuses on memory that is in the system. That is all this patch does. It ignores any node data (correctly reported by the SRAT) that is above the e820 end of memory. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: refactor memory setup Refactor the i386 default and CONFIG_DISCONTIG_MEM setup_memory() functions to share the common bootmem initialisation code. This code is intended to be identical, but there are currently some fixes applied to one and not the other. This patch extracts this common initialisation code. Signed-off-by: Andy Whitcroft Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: consolidate set_max_mapnr_init() implementations discontig.c has its own version of set_max_mapnr_init(). However, all that it really does differently from the mm/init.c version is skip setting max_mapnr (which doesn't exist because there's no mem_map[]). Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: remove-free_all_bootmem() #define in arch/i386/mm/init.c, there's a #define for __free_all_bootmem(): #ifndef CONFIG_DISCONTIGMEM #define __free_all_bootmem() free_all_bootmem() #else #define __free_all_bootmem() free_all_bootmem_node(NODE_DATA(0)) #endif /* !CONFIG_DISCONTIGMEM */ However, both of those functions end up eventually calling the same thing: free_all_bootmem_core(NODE_DATA(0)) This might have once been a placeholder for a more complex bootmem init call, but that never happened. So, kill off the DISCONTIG version, and just call free_all_bootmem() directly in both cases. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix iounmap and a pageattr memleak (x86 and x86-64) Reject zero page vm-area request, align size properly and hide the guard page from the callers like ioremap - this avoids a kernel crash due one more page being passed to change_page_attr Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Determine SCx200 CB address at run-time The current SCx200 drivers use a fixed base address of 0x9000 for the Configuration Block, but some systems (at least the Soekris net4801) uses a base address of 0x6000. This patch first tries the fixed address then - if no configuration block could be found - tries the address written to the Configuration Block Address Scratchpad register by the BIOS. Signed-off-by: Henrik Brix Andersen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: iounmap() isa special case ioremap() has special-case handling for the IS region, but inunmap() does not. So iounmap() generates a warning when a caller correctly performs an ioremap()/iounmap() sequence. Fix that by teaching iounmap() about the IS address range. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Support for GEODE CPUs Those CPU's are found mostly in embedded systems ... one of the most prominent Hardware using GEODE CPU is probably soekris net4801 (http://www.soekris.com). This patch has been on my homepage (http://www.sk-tech.net/support/soekris.html) for quite a time - but I've been asked several time to have it included in the main kernel. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make highmem_start access only valid addresses (i386) When CONFIG_HIGHMEM=y, but ZONE_NORMAL isn't quite full, there is, of course, no actual memory at *high_memory. This isn't a problem with normal virt<->phys translations because it's never dereferenced, but CONFIG_NONLINEAR is a bit more finicky. So, don't do __va() in non-existent addresses. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386: C99 initializers for hw_interrupt_type structures Convert the initializers of hw_interrupt_type structures to C99 initializers. Signed-off-by: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cpuid takes unsigned arguments Because Xen is compiled with -Wall -Werror, has inherited processor.h from Linux and Fedora is now built with gcc4, I discovered this bug. The few callers I verified all call cpuid with unsigned ints, but the function is defined with signed ints. This trivial patch fixes that. Signed-off-by: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] x86: clean up FIXME in do_timer_interrupt Clean up the logic in do_timer_interrupt() Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Support HPET with a single timer for system time This patch removes the check for the existence of multiple HPET timers. It allows the use of HPET with only a single timer for system time if HPET_EMULATE_RTC is not set. Signed-off-by: Christoph Lameter Signed-off-by: Shai Fultheim Acked-by: "Pallipadi, Venkatesh" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove dead cyrix/centaur mtrr init code There are several cases where __init function pointers are stored in a general purpose struct. For example, a SCSI template may contain a __init detect function. Have not yet thought of an elegant way to avoid this. One such case is the mtrr code, where struct mtrr_ops has an init field pointing at __init functions. Unless I overlook something, this case may be easy to settle, since the .init field is never used. The patch below comments out the declaration and initialisation of the .init field of struct mtrr_ops, and puts #if 0 ... #endif around the centaur_mcr_init() and cyrix_arr_init() code. Simultaneously a number of variables are made static. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Altix: Ignore input during early boot 2.6 Altix console patch to ignore input during early booting Signed-off-by: Patrick Gefre Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Altix: ioc4 serial driver support Signed-off-by: Patrick Gefre Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp: do not use higher order memory allocations on suspend This is patch from Rafael, it eliminates order-5 (or worse) allocations during suspend. I did few style/whitespace modifications. It was tested by me, Rafael, and Stefan from SuSE. Signed-off-by: Rafael J. Wysocki Signed-off-by: Pavel Machek Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Update suspend-to-RAM vs. video documentation We got quite long list of machines and tricks needed to get them working. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] swsusp fails to suspend if CONFIG_DEBUG_PAGEALLOC is also enabled swsusp low-level assembly requires PSE (4mb pages for kernel) and DEBUG_PAGEALLOC disables that capability. Tell people what went wrong, some people seen same problem on VIA cpus... Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kconfig: DEBUG_PAGEALLOC and SOFTWARE_SUSPEND are incompatible on i386 On i386, SOFTWARE_SUSPEND requires the CPU to have PSE support, but DEBUG_PAGEALLOC disables PSE. Thus, allowing both options to be enabled simultaneously makes no sense. This patch disables DEBUG_PAGEALLOC if SOFTWARE_SUSPEND is enabled; it also displays a comment to briefly explain why DEBUG_PAGEALLOC is missing in that case. I have tested this patch against oldconfig and menuconfig on 2.6.11-bk2. Signed-off-by: Barry K. Nathan Acked-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] m32r: use generic bug.h Signed-off-by: Daniel Dickman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: trivial removal of Makefile var That var is used only once, use its value directly. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: soft-float, 4GB swap bug, smp clean & cpu hotplug. s390 core changes: - Add -msoft-float to CFLAGS. - Remove experimantal tag from cpu hotplug. - Allow more than 4GB swap on a single device for 64 bit. - Fix race in machine_restart to make sure all cpus entered stopped state before reipl. - Cleanup: use for_each_online_cpu macro where possible. - Add argument brackets to __FD_SET/__FD_CLEAR/__FD_ZERO. - Reset cpu_present in smp startup to avoid long delays if only one cpu is defined. - Regenerate default configuration. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: gcc4 compile fixes. Make s390 compile and work with gcc4. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: key management. Add key management system calls. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: common i/o layer. Common i/o layer changes: - Update scsw information before checking activity control bits in the offline processing. - Clear irb structure after cio initiated I/O completed. - Modify cdev private structure only while holding the lock. - Update scsw information before checking whether we can start path verification. - Only generate a notoper event if the device is not already in the not operation state, otherwise we end up with two unregister calls. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: irb faking. Common i/o layer changes: - If a device driver tries to start I/O while the common I/O layer wants to start path verification, don't reject the I/O with -EBUSY (which might prompt the driver to retry the next tick) but seemingly accept the I/O and deliver a fake irb with deferred cc 1 after path verification has finished (prompting the driver to retry the I/O). This prevents the device driver from doing useless retries while cio is still busy with path verification. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: z90crypt reader task rescheduling. z90crypt device driver changes: - Correct the condition for which the reader task is scheduled to run. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: iucv driver init call. iucv changes: - Initialize iucv with subsys_initcall to make sure that it is there before either vmlogrdr or netiucv start using it. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: qeth layer 2, fake_ll and vlan bugs. With Frank Pavlic qeth network driver changes: - Using layer 2 mode IPv6 multicast addresses has not been registered at the OSA card (??? FIXME) - We have to allow QETH_IP_THREAD in qeth_set_online too when running in layer 2 mode otherwise multicast addresses won't be registered at the OSA card. - fake_ll improvements for dhcpcd. - Strip ethernet header of VLAN packets before calling skb_pull. This fixes multicast VLAN traffic stalls. - Fix unused variable warning. Signed-off-by: Martin Schwidefsky Acked-by: Jeff Garzik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] s390: ctc online/offline bug fix. ctc network driver changes: - Properly initialize ccw array. This fixes the stray oopses after an online/offline cycle. - Correct check for already existing channel. - Add missing kfrees. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cleanup vc array access This removes as far as possible unneccessary vc_cons lookups by using a pointer to the vc_data structure instead of the index. The hidden currcons argument in console_macros.h is temporarily replaced with a hidden vc pointer. Signed-off-by: Roman Zippel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove console_macros.h Remove the macros in console_macros.h and so make the structure references explicit. Signed-off-by: Roman Zippel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] merge vt_struct into vc_data The vt_struct and vc_data are always allocated together, so there is no need for a separate vt_struct structure. Signed-off-by: Roman Zippel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] jbd: journal overflow fix #2 fix against credits leak in journal_release_buffer() The idea is to charge a buffer in journal_dirty_metadata(), not in journal_get_*_access()). Each buffer has flag call journal_dirty_metadata() sets on the buffer. Signed-off-by: Alex Tomas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] JBD: reduce stack and number of journal descriptors Dynamically allocate the holding array for kjournald write patching rather than allocating it on the stack. Signed-off-by: Alex Tomas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] JBD: log space management optimization during truncate ext3 calls journal_forget() for freed blocks, but before these blocks go to the transaction and jbd reserves space in log for them (->t_outstanding_credits). also, journal_forget() removes these blocks from the transaction, but doesn't correct log space reservation. for example, removal of 500MB file reserves 136 blocks, but only 10 blocks go to the log. a commit is expensive and correct reservation allows us to avoid needless commits. here is the patch. tested on UP. Signed-off-by: Alex Tomas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Factor out phase 6 of journal_commit_transaction journal_commit_transaction() is 720 lines long. This patch pulls about 55 of them out into their own function, removes a goto and cleans up the control flow a little. Signed-off-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3 cleanup 1 Rename variables in ext3/balloc.c as was done in ext2 a couple of years ago. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3: free block accounting fix If we chose to "do_more", we would double-count the amount freed in the second and subsequent block groups. Fix it the same way as was done in ext2 a couple of years ago. Signed-off-by: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3_test_root() speedup Reorder test_root testing from 3,5,7 to 7,5,3 so that average case becomes good. Even number check is added. Signed-off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix race between the NMI code and the CMOS clock This patch fixes a race between the CMOS clock setting and the NMI code. The NMI code indiscriminatly sets index registers and values in the same place the CMOS clock is set. If you are setting the CMOS clock and an NMI occurs, Bad values could be written to or read from the CMOS RAM, or the NMI operation might not occur correctly. Fixing this requires creating a special lock so the NMI code can know its CPU owns the lock an "do the right thing" in that case. This was discovered and the fix has been tested by a very demanding customer who tests the heck of out the software we deliver. Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] OSS Support for AC97 low power codecs This is a resend of a patch that has been applied to 2.4. The low power codec functionality has also now been included in ALSA. It checks the codec ID before doing an AC97 register reset. This allows the kernel to support low power codecs that are powered down by a reset command. This patch also fixes some other minor issues. Changes:- - Added AC97_DEFAULT_POWER_OFF to ac97_codec_ids[] - ac97_probe now checks hardwired codec ID's before sending a reset - Added support for WM9713 - Moved the codec specific inits after the mixer setup as some init - tings were being clobbered. - Added extra check so that default_digital_ops doesn't overwrite a valid codec_ops. (SPDIF) Signed-off-by: Liam Girdwood Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix kallsyms/insmod/rmmod race The attached patch fixes a race between kallsyms and insmod/rmmod. The problem is this: (1) The various kallsyms functions poke around in the module list without any locking so that they can be called from the oops handler. (2) Although insmod and rmmod use locks to exclude each other, these have no effect on the kallsyms function. (3) Although rmmod modifies the module state with the machine "stopped", it hasn't removed the metadata from the module metadata list, meaning that as soon as the machine is "restarted", the metadata can be observed by kallsyms. It's not possible to say that an item in that list should be ignored if it's state is marked as inactive - you can't get at the state information because you can't trust the metadata in which it is embedded. Furthermore, list linkage information is embedded in the metadata too, so you can't trust that either... (4) kallsyms may be walking the module list without a lock whilst either insmod or rmmod are busy changing it. insmod probably isn't a problem since nothing is going a way, but rmmod is as it's deleting an entry. (5) Therefore nothing that uses these functions can in any way trust any pointers to "static" data (such as module symbol names or module names) that are returned. (6) On ppc64 the problems are exacerbated since the hypervisor may reschedule bits of the kernel, making operations that appear adjacent occur a long time apart. This patch fixes the race by only linking/unlinking modules into/from the master module list with the machine in the "stopped" state. This means that any "static" information can be trusted as far as the next kernel reschedule on any given CPU without the need to hold any locks. However, I'm not sure how this is affected by preemption. I suspect more work may need to be done in that case, but I'm not entirely sure. This also means that rmmod has to bump the machine into the stopped state twice... but since that shouldn't be a common operation, I don't think that's a problem. I've amended this patch to not get spinlocks whilst in the machine locked state - there's no point as nothing else can be holding spinlocks. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] d_drop should use per dentry lock d_drop() must use the dentry->d_lock spinlock. In some cases __d_drop() was used without holding the dentry->d_lock spinlock, too. This could end in a race with __d_lookup(). Signed-off-by: Jan Blunck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add struct request end_io callback This is needed for several things, one in-tree user which I will introduce after this patch. This adds a ->end_io callback to struct request, so it can be used with async io of any sort. Right now users have to wait for completion in a blocking manner. In the next iteration, ->waiting can be folded into ->end_io_data since it is just a special case of that use. From: Peter Osterlund The problem is that the add-struct-request-end_io-callback patch forgot to update pktcdvd.c. This patch fixes it. Signed-off-by: Jens Axboe Signed-off-by: Peter Osterlund Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rework core barrier support This reworks the core barrier support to be a lot nicer, so that all the nasty code resides outside of drivers/ide. It requires minimal changes to support in a driver, I've added SCSI support as an example. The ide code is adapted to the new code. With this patch, we support full barriers on sata now. Bart has acked the addition to -mm, I would like for this to be submitted as soon as 2.6.12 opens. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] scsi_io_completion sense copy For the flush generated requests, we don't have room for sense info right now. This might change in the future so that the sd end_io function can make a better judgement on what to do about an error. So check this in scsi_io_completion(), only copy sense data to request if it has space assigned to it. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] blk_execute_rq() oops on fast completion blk_execute_rq() can oops in wait_for_completion(), if the request has completed before we call wait_for_completion() because blk_end_sync_rq() clears ->waiting when it is entered. Fix this by always using the on-stack completion variable instead. Signed-off-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] annotate /proc//maps with [heap]/[stack]/[vdso] markers This patch makes the /proc//maps file easier to parse (both for humans and for applications), by annotating the heap, stack and vdso mappings with [heap], [stack] and [vdso] markers. It makes it easier/faster to determine at a quick glance whether an application has a secure VM layout, and it also makes it easier for tools to determine whether e.g. the heap or stack is executable or not. new maps file, on a patched kernel: 001c4000-001d9000 r-xp 00000000 03:01 19954 /lib/ld-2.3.3.so 001d9000-001db000 rw-p 00014000 03:01 19954 /lib/ld-2.3.3.so 001dd000-002fb000 r-xp 00000000 03:01 19960 /lib/tls/libc-2.3.3.so 002fb000-002fd000 r--p 0011d000 03:01 19960 /lib/tls/libc-2.3.3.so 002fd000-002ff000 rw-p 0011f000 03:01 19960 /lib/tls/libc-2.3.3.so 002ff000-00301000 rw-p 002ff000 00:00 0 08048000-0804c000 r-xp 00000000 03:01 31968 /bin/cat 0804c000-0804d000 rw-p 00003000 03:01 31968 /bin/cat 0804d000-0806e000 rw-p 0804d000 00:00 0 [heap] b7dbc000-b7dbd000 r--p 009d1000 03:01 83628 /usr/lib/locale/locale-archive b7dbd000-b7dc4000 r--p 0097d000 03:01 83628 /usr/lib/locale/locale-archive b7dc4000-b7df1000 r--p 0094a000 03:01 83628 /usr/lib/locale/locale-archive b7df1000-b7ff1000 r--p 00000000 03:01 83628 /usr/lib/locale/locale-archive b7ff1000-b7ff2000 rw-p b7ff1000 00:00 0 bffeb000-c0000000 rw-p bffeb000 00:00 0 [stack] ffffe000-fffff000 ---p 00000000 00:00 0 [vdso] Tested on x86, but should work on all architectures. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] serial: add NEC VR4100 series serial support This patch adds serial driver for NEC VR4100 series serial interface unit. The new device numbers have been recorded by LANANA. Signed-off-by: Yoichi Yuasa Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] serial: add the output interface control to VR41xx SIU driver This patch adds the output interface control to VR41xx SIU driver. And obsolete function for VR41xx SIU is removed. And add __init for the function used only for initialization. Signed-off-by: Yoichi Yuasa Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sys_setpriority() euid semantics fix What _is_ inconsistent is kernel/sys.c's setpriority()/set_one_prio(). It checks current->euid|uid against p->uid, which makes little sense, but is how we've been doing it ever since. It's a Linux quirk documented in the manpage. To make things funnier, SuS requires current->euid|uid match against p->euid. The patch below fixes it (and brings the logic in line with what setscheduler()/setaffinity() does), but if we do it then it should be done only in 2.6.12 or later, after good exposure in -mm. (Worst-case this could break an application but i highly doubt it: it at most could deny renicing another task to positive (or in very rare cases, to negative) nice values, which no application should crash on something like that, normally.) Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add TCSBRKP to compat_ioctl.h Move ioctl TCSBRKP support to compat layer. Same rationale as TCSBRK. - Remove corresponding code under ppc64, sparc64 and s390. - Use ULONG_IOCTL() instead of COMPATIBLE_IOCTL(), since the argument is int, not pointer. Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] serial: update vr41xx_siu This patch updates serial driver for VR41xx serial unit. Some check are added to verify_port. Signed-off-by: Yoichi Yuasa Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] minor conceptual fix for /proc/kcore header size While investigating the 2.4 memory corruption problem fixed by the patch previously posted, it was noticed that the 2.6 version of get_kcore_size() inappropriately uses sizeof(struct memelfnote) in its calculation of the /proc/kcore ELF header size. What is actually stored in the header is an "elf_note" structure plus the 4 ASCII chars "CORE". It just so happens that on 32-bit arches, both calculations result in the same value (16). But on 64-bit arches, the allocated size (24) is larger than necessary (16). This does not result in any possible data corruption, but it might be nice to correct this "conceptual" error. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add compiler-gcc4.h With the release of gcc 4.0 being only a few months away and people already tring compiling with it, it's time for adding a compiler-gcc4.h . This patch contains the following changes: - remove compiler-gcc+.h - compiler-gcc4.h: new file based on a corrected compiler-gcc+.h - compiler.h: include compiler-gcc4.h for gcc 4 - compiler.h: #error for gcc > 4 - compiler-gcc3.h: remove __compiler_offsetof (there will never be a gcc 3.5) small indention corrections I've tested the compilation with both gcc 3.4.4 and a recent gcc 4.0 snapshot from Debian experimental. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] convert /proc/driver/rtc to seq_file. The /proc/driver/rtc interface didn't have any module owner hook. The simplest fix is to just convert this to the single version of seq_file. Also, fix initialization of rtc_dev to use C99 form. Signed-off-by: Stephen Hemminger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] drivers/char/lp.c race fix In lp_write(), copy_from_user() is called to copy data into a statically allocated kernel buffer before down_interruptible() is called. If a second thread of execution comes in between the copy_from_user() and the down_interruptible() calls, silent data corruption could result. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] clean up and unify asm-*/resource.h files This patch does the final consolidation of asm-*/resource.h file, without changing any of the rlimit definitions on any architecture. Primarily it removes the __ARCH_RLIMIT_ORDER method and replaces it with a more compact and isolated one that allows architectures to define only the offending rlimits. This method has the positive effect that adding a new rlimit can now be purely done via changing asm-generic/resource.h alone. Previously one would have to patch 4 other (sparc, sparc64, alpha and mips) resource.h files. The patch also does style unification, whitespace cleanups and simplification of resource.h files and cleans up the asm-generic/resource.h file as well. I've added more comments too. This patch should have no effect on any code on any architecture. (i.e. it's a pure identity patch.) Tested on x86 and carefully reviewed to make sure that Sparc, Sparc64, MIPS and Alpha rlimits are still the same as required by the ABI. Signed-off-by: Ingo Molnar Acked-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add local bio pool support and modify dm I've had this patch reviewed by Jens, and incorporated his recommended fixes. The patch adds new interfaces to bio.c that support the creation of local bio and bvec pools. This is important for layered drivers that need to allocate new bio and bvec structures in response to bio's submitted to it from higher up. The layered drivers can allocate local pools of bio structures to preclude deadlock under global bio pool exhaustion. The device mapper source files have been modified to remove duplicate bio code, and to use the new interfaces to create local bio pools. From: Dave Olien Change bio_clone() to use the global bio_set pool instead of the bio_set pool associated with the bio argument. This is because raid5 and raid6 bio's are not allocated from a bio_set and have no bio_set associated with them. This patch along with the patch Linux just accepted allows raid5 and raid6 to function. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Implement quota reading and writing functions for UFS. Attached patch adds functions ufs_quota_read() and ufs_quota_write() to the UFS code. So quotas for UFS should work again (they were broken by the quota io redesign). I don't actually think the patch is too much important as I'm not sure anybody uses quotas on UFS but we're in the "stable" branch so just dropping a support did not seem right to me. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Run softirqs on proper processor on offline We take down ksoftirqds at CPU_DEAD time, so there is a brief period whereupon there is a ksoftirqd thread for an offline processor, it is at this point that ->cpus_allowed won't have it pinned anymore. An online processor would then take down that ksoftirqd and exit it. Ensure that we only offline the processor when it's safe and never run softirqs in another processor's ksoftirqd context. This also gets rid of the warnings in ksoftirqd on cpu offline. Signed-off-by: Zwane Mwaikambo Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] a_ops-based loop I/O Implements fallback to file_operations->write in the case that aops->{prepare,commit}_write are not present on the backing filesystem. The fallback happens in two different ways: - For normal loop devices, i.e. ones which do not do transformation on the data but simply pass it along, we simply call fops->write. This should be pretty much just as fast as using aops->{prepare,commit}_write directly. - For all other loop devices (e.g. xor and cryptoloop), i.e. all the ones which may be doing transformations on the data, we allocate and map a page (once for each bio), then for each bio vec we copy the bio vec page data to our mapped page, apply the loop transformation, and use fops->write to write out the transformed data from our page. Once all bio vecs from the bio are done, we unmap and free the page. This approach is the absolute minimum of overhead I could come up with and for performance hungry people, as you can see I left the address space operations method in place for filesystems which implement aops->{prepare,commit}_write. I have tested this patch with normal loop devices using aops->{prepare,commit}_write on the backing filesystem, with normal loop devices using the fops->write code path and with cryptoloop devices using the double buffering + fops->write code path. Signed-off-by: Anton Altaparmakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] add timing information to printk messages Here's a little patch which is useful for showing timing information for kernel bootup activities. This patch adds a new Kconfig option under "Kernel Hacking" and a new option for the kernel command line. It also provides a script for showing delta information. Note that the timing data may not be correct on some platforms until after time_init() is called. Recently (as of about 2.6.10) I found that the message log produced by dmesg is truncated when I use this feature. That is, the first few printk messages of the boot sequence are not in the dmesg output, although they are printed to console during startup. This is a new behavior - dmesg output was fine as of 2.6.9. Increasing CONFIG_LOG_BUF_SHIFT had no effect on the truncation. Has something changed with printk recently? For more information on this patch, see: http://tree.celinuxforum.org/CelfPubWiki/InstrumentedPrintk Here's some sample output: ... [4294667.296000] Kernel command line: ro root=/dev/nfs ip=dhcp hdc=ide-scsi console=vga console=ttyS0,115200 [4294667.296000] ide_setup: hdc=ide-scsi [4294667.296000] Initializing CPU#0 [4294667.296000] PID hash table entries: 512 (order: 9, 8192 bytes) [ 0.000000] Detected 1995.620 MHz processor. [ 21.397369] Using tsc for high-res timesource [ 21.399820] Console: colour VGA+ 80x25 [ 21.537244] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) [ 21.544547] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) [ 21.555066] Memory: 125076k/130240k available (2002k kernel code, 4556k reserved, 1006k data, 140k init, 0k highmem) [ 21.565775] Checking if this processor honours the WP bit even in supervisor mode... Ok. [ 21.574089] Calibrating delay loop... 3940.35 BogoMIPS (lpj=1970176) [ 21.596511] Mount-cache hash table entries: 512 (order: 0, 4096 bytes) [ 21.603263] CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 00004400 00000000 00000000 [ 21.603276] CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 00004400 00000000 00000000 [ 21.603287] CPU: Trace cache: 12K uops, L1 D cache: 8K [ 21.608884] CPU: L2 cache: 128K ... And now the patch... Signed-off-by: Tim Bird Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] seccomp: secure computing support I'd need it merged into mainline at some point, unless anybody has strong arguments against it. All I can guarantee here, is that I'll back it out myself in the future, iff Cpushare will fail and nobody else started using it in the meantime for similar security purposes. (akpm: project details are at http://www.cpushare.com/technical. It seems like a good idea to me, and one which is worth supporting. I agree that for this to be successful, the added robustness of Andrea's simple and specific jail is worthwhile). Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] minor bttv driver update Just a new PCI Subsystem ID and a PM fix from Pavel. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] tv tuner module update. Did some code reorganization: split up the source into four files: - tuner-core.c for all the interfacing stuff (register driver, handle insmod options, react on v4l ioctls, ...), - tuner-simple.c for all those trivial 4-byte-command-sequence tuner chips. - mt20xx.c for the mt2032 and mt2050 tuners. - tda8290.c for the tda8290/8272 combo (this code is new). I also did a number of cleanups like using dev_printk() for the messages everythere. There should be no functional changes beside the new support for the tda8290 tuner. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove mount option parsing from procfs This patch removes the mount options of the proc filesystem. They don't have any effect since 2.4.something. Only proc_fill_super() calls parse_options, notably proc_remount() does not. And proc_fill_super() is only called at the very first mount which in turn is the one caused by kern_mount() in fs/proc/root.c and that passes a NULL pointer as mount options string. It is called only once because proc is a filesystem with a single super_block (i.e. it uses get_sb_single()). Since noone seems to miss the uid and gid options so far I suggest to simply remove them. Their function can be easily performed in userspace. E.g. this (if it worked like intended): # mount -t proc -o uid=procuser,gid=procgrp proc /proc can be done like so, probably in some init script: # mount -t proc proc /proc && chown procuser:procgrp /proc But I don't see why anyone would want to do that in the first place. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] CREDITS Update CREDITS update for Mattihas Urlichs. Signed-Off-By: Matthias Urlichs Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] bksend example script fix The "bksend" example script doesn't work if PAGER (used by "bk changes") is set to something which doesn't fallback to plain stdout if its output isn't a tty. Fixed by forcing PAGER to be /bin/cat. Signed-Off-By: Matthias Urlichs Acked-by: Jeff Garzik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] export kallsyms_lookup_name() Export kallsyms_lookup_name() for kprobe/jprobe module use. (akpm: modules which use kprobes/jrobes are usually problem-specific and will not be merged into the mainline kernel, so we we're actually to see actual users of this patch merged) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Add nobh_writepage() support Add nobh_wripage() support for the filesystems which uses nobh_prepare_write/nobh_commit_write(). Idea here is to reduce unnecessary bufferhead creation/attachment to the page through pageout()->block_write_full_page(). nobh_wripage() tries to operate by directly creating bios, but it falls back to __block_write_full_page() if it can't make progress. Note that this is not really generic routine and can't be used for filesystems which uses page->Private for anything other than buffer heads. Signed-off-by: Badari Pulavarty Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix 1-Wire Dallas in bigendian machines I've been testing the 1-Wire Dallas in a bigendian machine (through a GPIO) and I've found some problems that can easily addressed with the provided patch. (inline at the end of the message). I have a question about the implementation of w1_smem. In the line 90 of drivers/w1/w1_smem.c. for (i = 0; i < 9; ++i) count += sprintf(buf + count, "%02x ", ((u8 *)&sl->reg_num)[i]); I don't see why this loop is execute 9 times when the provided reg_num is 8 bytes long. I don't understand the purpose of the last byte. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] reiserfs: return -EIO instead of calling BUG() when rename goes wrong This patch makes reiserfs to return -EIO when rename-ing went wrong instead of calling BUG(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Keys: Doc update on locking The attached patch updates the documentation on the kernel keys to describe the locking associated with keys and key type operations. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] ext3_new_inode() failure handling missing check There's a missing failure handling check here that would possibly lead to a null dereference later on, I'm not sure about the correct return value however. I haven't tried it as I'm not sure how to trigger the case ;) Found by the Coverity tool. Signed-off-by: Alexander Nyberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] loglevel boot option Add a boot-time option to set the loglevel. We already have `quiet' and `debug', which set it to specific levels. This is better. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] cross-compile scripts/lxdialog/ on AIX AIX curses.h defines macros 'clear_screen' and 'color_names' but does not define 'scroll()'. Signed-Off-By: Peter Samuelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparc: use initalisers for struct resource For when the layout of `struct resource' changes. Signed-off-by: Alexey Dobriyan Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] partitions/msdos.c fix A well-known kernel bug is that it guesses at the partition type and the partitions on any disk it encounters. This is bad because needless I/O is done, slowing down the boot, sometimes quite a lot, especially when I/O errors occur. And it is bad because sometimes we guess wrong. In other words, we need the user space command `partition', where "partition -t dos /dev/sda" reads a DOS-type partition table. (And "partition /dev/sda" tries all known heuristics to decide what type of partitioning might be present.) The two variants are: (i) partition tells the kernel to do the partition table reading, and (ii) partition uses partx to read the partition table and tells the kernel one-by-one about the partitions found this way. Since this is a fundamental change, a long transition period is needed, and that period could start with a kernel boot parameter telling the kernel not to do partition table parsing on a particular disk, or a particular type of disks, or all disks. This could have been the intro to a patch doing that, but is not. (It is just an RFC.) The tiny patch below prompted the above - it was suggested by Uwe Bonnes who encountered USB devices without partition table where our present heuristics did not suffice to stop partition table parsing. It causes the kernel to ignore partitions of type 0. A band-aid. I think nobody uses such partitions seriously, but nevertheless this should probably live in -mm for a while to see if anybody complains. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] explicitly bind idle tasks With hotplug cpu and preempt, we tend to see smp_processor_id warnings from idle loop code because it's always checking whether its cpu has gone offline. Replacing every use of smp_processor_id with _smp_processor_id in all idle loop code is one solution; another way is explicitly binding idle threads to their cpus (the smp_processor_id warning does not fire if the caller is bound only to the calling cpu). This has the (admittedly slight) advantage of letting us know if an idle thread ever runs on the wrong cpu. Signed-off-by: Nathan Lynch Acked-by: Joel Schopp Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Minor cleanups to the IPMI driver This patch cleans up the DMI handling so that multiple interfaces can be reported from the DMI tables and so that the DMI slave address can be transferred up to the upper layer. It also adds an option to specify the slave address as an init parm and removes some unnecessary initializers. This patch also adds inc/dec usecount functions for the SMIs so they can modify the usecounts of modules they use (added because the SMB driver uses the I2C code). Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Quotactl changes for XFS Attached patch from Nathan splits the checks done in quotactl() in XFS and VFS parts (it's mostly just moving of code back and forth). It's done mainly because XFS guys would like to implement more types of quotas and I don't want them to slow down the general VFS case. Signed-off-by: Nathan Scott Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] autofs4 patch: autofs4_wait can leak memory There is a memory in the autofs4_wait function, if multiple processes are waiting on the same queue: name = kmalloc(NAME_MAX + 1, GFP_KERNEL); if (!name) return -ENOMEM; ... if ( !wq ) { /* Create a new wait queue */ wq = kmalloc(sizeof(struct autofs_wait_queue), GFP_KERNEL); if ( !wq ) { kfree(name); up(&sbi->wq_sem); return -ENOMEM; } ... wq->name = name; ... } else { atomic_inc(&wq->wait_ctr); up(&sbi->wq_sem); ... } In the else clause, we forget to free the name we kmalloc'd above. This is pretty easy to trigger with the following reproducer: setup an automount map as follows: for n in `seq 1 48`; do echo "$n server:/export/$n" >> /etc/auto.test; done setup a master map entry to point at this: echo "/test /etc/auto.test --timeout=1" >> /etc/auto.master Now, assuming the nfs server was setup to export said directories, run the following shell script in two xterms: #!/bin/sh while true; do for n in `seq 1 48`; do ls /test/$n done sleep 2 done and watch the size-256 slab cache grow Within 4 minutes, I had the size-256 cache grow to 384k. On a kernel with the below patch applied, the size-256 remained constant during an over-night run. Signed-off-by: Jeff Moyer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] efi: fix failure handling The EFI driver allocates memory and writes into it without checking the success of the allocation. Furthermore, on failure of the firmware_register() it doesn't free the allocated memory and on failure of the subsys_create_file() calls it returns zero instead of the errorcode. Signed-off-by: Panagiotis Issaris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix register access typo in synclinkmp Fix register access typo in synclinkmp.c that caused value to be written to wrong register. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] atm/lanai: fix section references atm/lanai: fix text section references to __init text; they should be __devinit instead of __init; Error: ./drivers/atm/lanai.o .text refers to 0000000000002105 R_X86_64_PC32 .init.text+0x0000000000000021 Error: ./drivers/atm/lanai.o .text refers to 0000000000002116 R_X86_64_PC32 .init.text+0x0000000000000021 Error: ./drivers/atm/lanai.o .text refers to 0000000000002132 R_X86_64_PC32 .init.text+0x0000000000000021 Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] atm/ambassador: fix init section references atm/ambassador: fix text section references to __init text and __initdata; The biggest negative about this AFAIK is that it makes ucode_data non-initdata, and that moves about 8 KB of data from .init.data to .data. Similarly, .text increases by approx. 1300 bytes (on x86-32). Error: ./drivers/atm/ambassador.o .text refers to 0000000000002a07 R_X86_64_PC32 .init.text+0x0000000000000149 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002a45 R_X86_64_32S .init.data+0x0000000000000040 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002a7c R_X86_64_PC32 .init.data+0x0000000000000020 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002a83 R_X86_64_PC32 .init.data+0x000000000000001c Error: ./drivers/atm/ambassador.o .text refers to 0000000000002b40 R_X86_64_PC32 .init.text+0x0000000000000149 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002bbc R_X86_64_PC32 .init.text+0x0000000000000149 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002c0f R_X86_64_32S .init.data+0x0000000000000024 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002c17 R_X86_64_32S .init.data+0x0000000000000020 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002c3c R_X86_64_PC32 .init.data+0xfffffffffffffffc Error: ./drivers/atm/ambassador.o .text refers to 0000000000002c6a R_X86_64_PC32 .init.text+0x0000000000000149 Error: ./drivers/atm/ambassador.o .text refers to 0000000000002c77 R_X86_64_32S .init.data+0x0000000000000040 Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] atm/zatm: fix section references atm/zatm: fix text section references to __init text and __initdata; they should be __devinit instead of __init; Error: ./drivers/atm/zatm.o .text refers to 0000000000001abb R_X86_64_PC32 .init.text+0x0000000000000154 Error: ./drivers/atm/zatm.o .text refers to 0000000000001ad3 R_X86_64_PC32 .init.text+0x0000000000000154 Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oss/cs4281: fix initdata section references oss/cs4281: fix initdata section references: Error: ./sound/oss/cs4281/cs4281.o .text refers to 0000000000006dae R_X86_64_32S .init.data+0x0000000000000004 Error: ./sound/oss/cs4281/cs4281.o .text refers to 0000000000006db6 R_X86_64_32S .init.data Error: ./sound/oss/cs4281/cs4281m.o .text refers to 0000000000006dae R_X86_64_32S .init.data+0x0000000000000004 Error: ./sound/oss/cs4281/cs4281m.o .text refers to 0000000000006db6 R_X86_64_32S .init.data Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oss/cmpci: fix initdata section references oss/cmpci: fix initdata section reference: Error: ./sound/oss/cmpci.o .text refers to 000000000000418e R_X86_64_32S .init.data+0x0000000000000004 Error: ./sound/oss/cmpci.o .text refers to 0000000000004196 R_X86_64_32S .init.data Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oss/es1370: fix initdata section references oss/es1370: fix initdata section reference: Error: ./sound/oss/es1370.o .text refers to 00000000000042bd R_X86_64_32S .init.data+0x0000000000000024 Error: ./sound/oss/es1370.o .text refers to 00000000000042c5 R_X86_64_32S .init.data+0x0000000000000020 Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oss/esssolo1: fix initdata section references oss/esssolo1: fix initdata section reference: Error: ./sound/oss/esssolo1.o .text refers to 0000000000000bab R_X86_64_32S .init.data+0x0000000000000004 Error: ./sound/oss/esssolo1.o .text refers to 0000000000000bb2 R_X86_64_32S .init.data Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oss/nm256: fix section references oss/nm256_audio: fix init text section reference: Error: ./sound/oss/nm256_audio.o .text refers to 0000000000001847 R_X86_64_PC32 .init.text+0x0000000000000018 Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oss/pss: fix section references oss/pss: fix initdata reference used in exit: Error: ./sound/oss/pss.o .exit.text refers to 000000000000003f R_X86_64_PC32 .init.data+0x0000000000000003 Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] oss/sscape: fix section references oss/sscape: fix initdata reference used in exit: Error: ./sound/oss/sscape.o .exit.text refers to 000000000000007d R_X86_64_PC32 .init.data+0x0000000000000003 Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] base-small: introduce the CONFIG_BASE_SMALL flag This patch series introduced a new pair of CONFIG_EMBEDDED options call CONFIG_BASE_FULL/CONFIG_BASE_SMALL. Disabling CONFIG_BASE_FULL sets the boolean CONFIG_BASE_SMALL to 1 and it is used to shrink a number of core data structures. The space savings for the current batch is around 14k. This patch: Add CONFIG_BASE_SMALL for miscellaneous core size that don't warrant their own options. Example users to follow. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] base-small: shrink chrdevs hash CONFIG_BASE_SMALL degrade char dev hash table to linked list Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] base-small: shrink PID tables CONFIG_BASE_SMALL reduce size of pidmap table for small machines Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] base-small: shrink UID hash CONFIG_BASE_SMALL reduce UID lookup hash Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] base-small: shrink futex queues CONFIG_BASE_SMALL reduce futex hash table Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] base-small: shrink timer hashes CONFIG_BASE_SMALL reduce timer list hashes Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] base-small: shrink console buffer CONFIG_BASE_SMALL reduce console transfer buffer Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lib/sort: Heapsort implementation of sort() This patch adds a generic array sorting library routine. This is meant to replace qsort, which has two problem areas for kernel use. The first issue is quadratic worst-case performance. While quicksort worst-case datasets are rarely encountered in normal scenarios, it is in fact quite easy to construct worst cases for almost all quicksort algorithms given source or access to an element comparison callback. This could allow attackers to cause sorts that would otherwise take less than a millisecond to take seconds and sorts that should take less than a second to take weeks or months. Fixing this problem requires randomizing pivot selection with a secure random number generator, which is rather expensive. The second is that quicksort's recursion tracking requires either nontrivial amounts of stack space or dynamic memory allocation and out of memory error handling. By comparison, heapsort has both O(n log n) average and worst-case performance and practically no extra storage requirements. This version runs within 70-90% of the average performance of optimized quicksort so it should be an acceptable replacement wherever quicksort would be used in the kernel. Note that this function has an extra parameter for passing in an optimized swapping function. This is worth 10% or more over the typical byte-by-byte exchange functions. Benchmarks: qsort: glibc variant 1189 bytes (+ 256/1024 stack) qsort_3f: my simplified variant 459 bytes (+ 256/1024 stack) heapsort: the version below 346 bytes shellsort: an optimized shellsort 196 bytes P4 1.8GHz Opteron 1.4GHz (32-bit) size algorithm cycles relative cycles relative 100: qsort: 38682 100.00% 27631 100.00% qsort_3f: 36277 106.63% 22406 123.32% heapsort: 43574 88.77% 30301 91.19% shellsort: 39087 98.97% 25139 109.91% 200: qsort: 86468 100.00% 61148 100.00% qsort_3f: 78918 109.57% 48959 124.90% heapsort: 98040 88.20% 68235 89.61% shellsort: 95688 90.36% 62279 98.18% 400: qsort: 187720 100.00% 131313 100.00% qsort_3f: 174905 107.33% 107954 121.64% heapsort: 223896 83.84% 154241 85.13% shellsort: 223037 84.17% 148990 88.14% 800: qsort: 407060 100.00% 287460 100.00% qsort_3f: 385106 105.70% 239131 120.21% heapsort: 484662 83.99% 340099 84.52% shellsort: 537110 75.79% 354755 81.03% 1600: qsort: 879596 100.00% 621331 100.00% qsort_3f: 861568 102.09% 522013 119.03% heapsort: 1079750 81.46% 746677 83.21% shellsort: 1234243 71.27% 820782 75.70% 3200: qsort: 1903902 100.00% 1342126 100.00% qsort_3f: 1908816 99.74% 1131496 118.62% heapsort: 2515493 75.69% 1630333 82.32% shellsort: 2985339 63.78% 1964794 68.31% 6400: qsort: 4046370 100.00% 2909215 100.00% qsort_3f: 4164468 97.16% 2468393 117.86% heapsort: 5150659 78.56% 3533585 82.33% shellsort: 6650225 60.85% 4429849 65.67% 12800: qsort: 8729730 100.00% 6185097 100.00% qsort_3f: 8776885 99.46% 5288826 116.95% heapsort: 11064224 78.90% 7603061 81.35% shellsort: 15487905 56.36% 10305163 60.02% 25600: qsort: 18357770 100.00% 13172205 100.00% qsort_3f: 18687842 98.23% 11337115 116.19% heapsort: 24121241 76.11% 16612122 79.29% shellsort: 35552814 51.64% 24106987 54.64% 51200: qsort: 38658883 100.00% 28008505 100.00% qsort_3f: 39498463 97.87% 24339675 115.07% heapsort: 50553552 76.47% 37013828 75.67% shellsort: 82602416 46.80% 56201889 49.84% 102400: qsort: 81197794 100.00% 58918933 100.00% qsort_3f: 84257930 96.37% 51986219 113.34% heapsort: 110540577 73.46% 81419675 72.36% shellsort: 191303132 42.44% 129786472 45.40% From: Zou Nan hai The new sort routine only works if there are an even number of entries in the ia64 exception fix-up tables. If the number of entries is odd the sort fails, and then random get_user/put_user calls can fail. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sort: link it in We cannot tell at build time whether some module may want it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lib/sort: Replace qsort in XFS Point XFS qsort at lib/sort in a way that makes it happy. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lib/sort: Replace insertion sort in exception tables Replace exception table insertion sort with lib/sort Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lib/sort: Replace insertion sort in IA64 exception tables Switch IA64 exception tables to lib/sort. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lib/sort: Use generic sort on x86_64 x86_64 wasn't doing anything special in its sort_extable. Use the generic lib/extable sort. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: cleanup waitqueue logic, fix missed wakeup Original code checked in output pool for missed wakeup avoidance, while waker (batch_entropy_process) checked input pool which could result in a missed wakeup. - Move to wait_event_interruptible style - Delete superfluous waitqueue Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: kill pool clearing Remove pool clearing. We've only ever cleared one of three pools and there's no good reason to do it. Instead just reset the entropy count. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: combine legacy ioctls ZAPENTCNT is now effectively identical to RNDCLEARPOOL, fall through Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: re-init all pools on zero - Re-init all three pools in ioctls - Clear entropy count in init_std_data under a lock - Add kerneldoc comment Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: simplify initialization Simplify the init code Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: kill memsets of static data Remove redundant memsets of BSS data Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: kill dead extract_state struct Remove unused extract_timer_state struct. It was formerly used to feedback zero-entropy timing samples while extracting entropy, but that had a tendency to overwhelm the batch processing queue and prevent storing real samples. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: kill 2.2 compat waitqueue defs Remove Linux 2.2 compatibility cruft. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: kill redundant rotate_left definitions We've got three definitions of rotate_left. Remove x86 and duplicate rotate definitions. Remaining definition is fixed up such that recent gcc will generate rol instructions on x86 at least. A later patch will move this to bitops and clean up the other tree users. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] rol32 thinko This thinko.. makes things a bit more arbitrary than we'd like. I've re-audited the other rotate conversions. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: kill misnamed log2 Remove incorrectly named ln (it's log2!) and x86 asm function and replace with fls bitop. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: More meaningful pool names Give pools more meaningful names. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Static allocation of pools As we no longer allow resizing of pools, it makes sense to allocate and initialize them statically. Remove create_entropy_store and simplify rand_initialize. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Static sysctl bits Static initialization for sysctl support Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Catastrophic reseed checks When reseeding, we must always do a "catastrophic reseed" where we pull enough new bits to make the new state unguessable from outputs even if we knew the old state. So we must do the checks against the minimum reseed amount under the pool lock in extract_entropy. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Entropy reservation accounting Additional parameter to allow keeping an entropy reserve in the input pool. Groundwork for proper /dev/urandom vs /dev/random starvation prevention. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Reservation flag in pool struct Move the limit flag to the pool struct, begin process of eliminating extract flags. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Reseed pointer in pool struct Put pointer to reseed pool in pool struct and automatically pull entropy from it if it is set. This lets us remove the EXTRACT_SECONDARY flag. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Break up extract_user Break apart extract_entropy into kernel and user versions, remove last extract flag and some unnecessary variables. This makes the code more readable and amenable to sparse. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Remove dead MD5 copy Remove long-dead md5 code. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Simplify hash folding Simplify output hash folding Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Clean up hash buffering Clean up buffer usage for SHA and reseed. This makes the code more readable and reduces worst-case stack usage. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Remove entropy batching Rather than batching up entropy samples, resulting in longer lock hold times when we actually process the samples, mix in samples immediately. The trickle code should eliminate almost all the additional interrupt-time overhead this would otherwise incur, with or without locking. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Create new rol32/ror32 bitops Add rol32 and ror32 bitops to bitops.h Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Use them throughout the tree Move users of private rotl/rotr functions to rol32/ror32. Crypto bits verified with tcrypt. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Kill the SHA variants Kill the unrolled SHA variants, they're unused and duplicate code in cryptoapi. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Cleanup SHA interface Clean up SHA hash function for moving to lib/ Do proper endian conversion Provide sha_init function Add kerneldoc Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Move SHA code to lib/ Move random SHA code to lib/. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Replace SHA with faster version A replacement SHA routine that's slightly larger, but over twice as fast. It's also faster and much smaller than the cryptolib version. size speed buffer size original: 350B 2.3us 320B cryptolib: 5776B 1.2us 80B this code: 466B 1.0us 320B alternate: 2112B 1.0us 80B Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Update cryptolib to use SHA fro lib Drop the cryptolib SHA implementation and use the faster and much smaller SHA implementation from lib/. Saves about 5K. This also saves time by doing one memset per update call rather than one per SHA block. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Move halfmd4 to lib Move half-MD4 hash to /lib where we can share it with htree. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Kill duplicate halfmd4 in ext3 htree Replace duplicate halfMD4 code with call to lib/ Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Simplify and shrink syncookie code Simplify syncookie initialization Refactor syncookie code with separate hash function Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] random: Move syncookies to net/ Move syncookie code off to networking land. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] lib/parser.o linkage fix It's possible to define .configs in which there are no references in vmlinux to lib/parser.o. So you cannot load any filesystem modules. Arrange for parser.o to be statically linked. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Speed up /proc/pid/maps This patch uses find_vma() to improve the read response of /proc/pid/maps. It attempts to make the liner scan instead of quadratic walk and utilise rb tree. Reading the file was doing sequential scan from the begining to file position all the time, and taking a quite long time. The improvements came from f_version/m_version and resulting in mmap_cache match. Even if mmap_cache does not match, rb tree walk should be faster than sequential walk. First attempt was to put the state across read system calls into private data. Later got inspiration from wli's pid patch using f_version in readdir of /proc. Other advantage is, f_version will be cleared automatically by lseek. The test program creates 32K maps and splits them into two(limited by max_map_count sysctl) using mprotect(0). After the patch, the read time improves from many seconds to milliseconds, and does not grow superlinearly with number of read calls. Help taken from Peter Swain in idea and testing. After the patch: Reading /proc/self/maps:65528 time: 0 secs and 780728 usecs buf:4096 bytes:3811362 Reading /proc/self/maps:65528 time: 1 secs and 117573 usecs buf:1024 bytes:3866627 Reading /proc/self/maps:65528 time: 0 secs and 473459 usecs buf: 256 bytes:3866627 Reading /proc/self/maps:65528 time: 0 secs and 901288 usecs buf: 64 bytes:3866627 Reading /proc/self/maps:65528 time: 1 secs and 480185 usecs buf: 16 bytes:3866627 Reading /proc/self/maps:65528 time: 1 secs and 636268 usecs buf: 4 bytes:3866627 Reading /proc/self/maps:65528 time: 4 secs and 118327 usecs buf: 1 bytes:3866627 Before the patch: Reading /proc/self/maps:65528 time: 4 secs and 359556 usecs buf:4096 bytes:3866647 Reading /proc/self/maps:65528 time:16 secs and 218584 usecs buf:1024 bytes:3866688 Reading /proc/self/maps:65528 time:67 secs and 870200 usecs buf: 256 bytes:3866688 Reading /proc/self/maps:65528 time:255 secs and 186934 usecs buf: 64 bytes:3866688 Small reads never completed. Signed-off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] posix-timers: tidy up clock interfaces and consolidate dispatch logic This patch cleans up the posix-timers interfaces for defining clocks, and the calls to them. It fixes some sloppy types, adds a clockid_t parameter to the calls that lacked it, and adds a function pointer that can be used for clock_getres. It further cleans up the posix-timers.c code using the k_clock function pointers or default functions when no hooks are supplied, consolidating repeated code into shared inline functions or macros. This paves the way for adding the CPU clock hooks. The mmtimer.c changes are untested, but obviously can't be wrong. There aren't any other struct k_clock definitions in the tree, but any others would need to be updated for the function signature changes. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] posix-timers: high-resolution CPU clocks for POSIX clock_* syscalls This patch provides support for thread and process CPU time clocks in the POSIX clock interface. Both the existing utime and utime+stime information (already available via getrusage et al) can be used, as well as a new (potentially) more precise and accurate clock (which cannot distinguish user from system time). The clock used is that provided by the `sched_clock' function already used internally by the scheduler. This gives a way for platforms to provide the highest-resolution CPU time tracking that is available cheaply, and some already do so (such as x86 using TSC). Because this clock is already sampled internally by the scheduler, this new tracking adds only the tiniest new overhead to accomplish the bookkeeping. Some notes: This allows per-thread clocks to be accessed only by other threads in the same process. The only POSIX calls that access these are defined only for in-process use, and having this check is necessary for the userland implementations of the POSIX clock functions to robustly refuse stale clockid_t's in the face of potential PID reuse. This makes no constraint on who can see whose per-process clocks. This information is already available for the VIRT and PROF (i.e. utime and stime) information via /proc. I am open to suggestions on if/how security constraints on who can see whose clocks should be imposed. The SCHED clock information is now available only via clock_* syscalls. This means that per-thread information is not available outside the process. Perhaps /proc should show sched_time as well? This would let ps et al show this more-accurate information. When this code is merged, it will be supported in glibc. I have written the support and added some test programs for glibc, which are what I mainly used to test the new kernel code. You can get those here: http://people.redhat.com/roland/glibc/kernel-cpuclocks.patch Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] posix-timers: tidy up clock interfaces and consolidate dispatch logic cleanup > We do need to do one or the other. I assume the current indecision is > pending some benchmarking work? That was more or less the idea. But I kind of figured someone would just tell me which one to do without actually doing any timings. This patch (applies after the cpuclocks patch) makes the one decision, to use conditional branches rather than indirect calls in the common case. That is consistent with what the old code did. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] posix-timers: fix posix-timers signals lock order The posix-timers code establishes the locking order that k_itimer locks are outside siglocks. However, when the signal code calls back into the posix-timers code to reload a timer after its signal is dequeued, it holds a siglock while calling do_schedule_next_timer, which gets a timer lock. I'm not sure there is any deadlock scenario possible using the real-time POSIX timers, because of the intricate arrangement of timer firing and resetting synchronization. But with the new CPU timers code, this deadlock pops up right away. Dropping the siglock here certainly doesn't hurt in the real-time timer cases, and it really seems like the right thing here to keep the locking details in the interface between signals and posix-timers code comprehensible. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] posix-timers: CPU clock support for POSIX timers POSIX requires that when you claim _POSIX_CPUTIME and _POSIX_THREAD_CPUTIME, not only the clock_* calls but also timer_* calls must support the thread and process CPU time clocks. This patch provides that support, building on my recent additions to support these clocks in the POSIX clock_* interfaces. This patch will not work without those changes, as well as the patch fixing the timer lock-siglock deadlock problem. The apparent pervasive changes to posix-timers.c are simply that some fields of struct k_itimer have changed name and moved into a union. This was appropriate since the data structures required for the existing real-time timer support and for the new thread/process CPU-time timers are quite different. The glibc patches to support CPU time clocks using the new kernel support is in http://people.redhat.com/roland/glibc/kernel-cpuclocks.patch, and that includes tests for the timer support (if you build glibc with NPTL). From: Christoph Lameter Your patch breaks the mmtimer driver because it used k_itimer values for its own purposes. Here is a fix by defining an additional structure in k_itimer (same approach for mmtimer as the cpu timers): From: Roland McGrath Fix bug identified by Alexander Nyberg > The problem arises from code touching the union in alloc_posix_timer() > which makes firing go non-zero. When firing is checked in > posix_cpu_timer_set() it will be positive causing an infinite loop. > > So either the below fix or preferably move the INIT_LIST_HEAD(x) from > alloc_posix_timer() to somewhere later where it doesn't disturb the other > union members. Thanks for finding this problem. The latter is what I think is the right solution. This patch does that, and also removes some superfluous rezeroing. Signed-off-by: Roland McGrath Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] PANIC in check_process_timers() It was intended that such things would not be possible because getting into that code in the first place should be ruled out while exiting. That removes the requirement for any special case check in the common path. But, it was done too late since it hadn't occurred to me that ->live going zero itself created a problem. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make ITIMER_REAL per-process POSIX requires that setitimer, getitimer, and alarm work on a per-process basis. Currently, Linux implements these for individual threads. This patch fixes these semantics for the ITIMER_REAL timer (which generates SIGALRM), making it shared by all threads in a process (thread group). Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make ITIMER_PROF, ITIMER_VIRTUAL per-process POSIX requires that setitimer, getitimer, and alarm work on a per-process basis. Currently, Linux implements these for individual threads. This patch fixes these semantics for the ITIMER_PROF timer (which generates SIGPROF) and the ITIMER_VIRTUAL timer (which generates SIGVTALRM), making them shared by all threads in a process (thread group). This patch should be applied after the one that fixes ITIMER_REAL. The essential machinery for these timers is tied into the new posix-timers code for process CPU clocks and timers. This patch requires the cputimers patch and its dependencies. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] make RLIMIT_CPU/SIGXCPU per-process POSIX requires that the RLIMIT_CPU resource limit that generates SIGXCPU be counted on a per-process basis. Currently, Linux implements this for individual threads. This patch fixes the semantics to conform with POSIX. The essential machinery for the process CPU limit is is tied into the new posix-timers code for process CPU clocks and timers. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] override RLIMIT_SIGPENDING for non-RT signals I can read POSIX to say that the siginfo_t data must be available when `kill' was used, as well. This patch makes it allocate the siginfo_t, even when that exceeds {RLIMIT_SIGPENDING}, for any non-RT signal (< SIGRTMIN) not sent by sigqueue (actually, any signal that couldn't have been faked by a sigqueue call). Of course, in an extreme memory shortage situation, you are SOL and violate POSIX a little before you die horribly from being out of memory anyway. The LEGACY_QUEUE logic already ensures that, for non-RT signals, at most one is ever on the queue. So there really is no risk at all of unbounded resource consumption; the usage can reach {RLIMIT_SIGPENDING} + 31, is all. It's already the case that the limit can be exceeded by (in theory) up to {RLIMIT_NPROC}-1 in race conditions because the bump and the limit check are not atomic. (Obviously you can only get anywhere near that many with assloads of preemption, but exceeding it by a few is not too unlikely.) This patch also fixes that accounting so that it should not be possible to exceed {RLIMIT_SIGPENDING} + SIGRTMIN-1 queue items per user in races. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] show RLIMIT_SIGPENDING usage in /proc/PID/status Jeremy mentioned the aggravation of not being able to tell when your processes are using up signal queue entries and hitting the RLIMIT_SIGPENDING limit. This patch adds a line to /proc/PID/status showing how many queue items are in use, and allowed, for your uid. I can certainly see the appeal of having a display of the number of queued items specific to each process, and even the items within the process broken down per signal number. However, those are not things that are directly counted, and ascertaining them requires iterating through the queue. This patch instead gives what can be readily determined in constant time using the accounting already done. I'm not sure something more complex is warranted just to facilitate one particular debugging need. With this, you can see quickly that this particular problem has come up. Then examination of each process's SigPnd/ShdPnd lines ought to give you an indication of which processes have any queued RT signals sitting around for a long time, and you can then attack those programs directly, though there is no way after the fact to determine how many queued si