Summary of changes from v2.6.1 to v2.6.2 ============================================ [SCTP] ADDIP: Support for processing ASCONF chunks and respond with ASCONF_ACK chunks. [SCTP] Remove the extra semicolon in sctp_cacc_skip_3_1(). [SCTP] ADDIP: Add sysctl parameter to enable/disable addip. [ACPI] If ACPI is disabled by DMI BIOS date, then turn it off completely, including table parsing for HT. This avoids a crash due to ancient garbled tables. acpi=force is available to over-ride this default. http://bugzilla.kernel.org/show_bug.cgi?id=1434 [ACPI] In ACPI mode, delay print_IO_APIC() to make its output valid. http://bugzilla.kernel.org/show_bug.cgi?id=1177 [SCTP] Fix to free associations in the accept queue of a one-to-one style listening socket that is closed. [SCTP] Fix the duplicate increment of checksum error counter and counting bad packet errors as checksum errors. [SCTP] Fix overflow in the macros JIFFIES_TO_MSECS/MSECS_TO_JIFFIES when used with large values. [ACPI] print_IO_APIC() only after it is programmed http://bugzilla.kernel.org/show_bug.cgi?id=1177 [ACPI] "acpi_pic_sci=edge" in case platform requires Edge Triggered SCI http://bugzilla.kernel.org/show_bug.cgi?id=1390 [ACPI] fix compiler warning (Andrew Morton) [ACPI] prevent ES7000 tweak from breaking i386 IOAPIC (Andrew de Quincey) [SCTP] ADDIP: Support for processing incoming ASCONF_ACK chunks. JFS: Avoid segfault when dirty inodes are written on readonly mount Writes to a device may cause a ->write_inode to be called during a read-only mount. JFS needs to check for NULL log in jfs_flush_journal. [ACPI] sync with 2.4.23 Re-enable IRQ balacning if IOAPIC mode http://bugzilla.kernel.org/show_bug.cgi?id=1440 Also allow IRQ balancing in PIC mode if "acpi_irq_balance" http://bugzilla.kernel.org/show_bug.cgi?id=1391 [ACPI] add warning to thermal shutdown (Pavel Machek) JFS: Fix broken return code checking in ACL code [ACPI] set APIC ACPI SCI OVR default to level/low http://bugzilla.kernel.org/show_bug.cgi?id=1351 [ACPI] replace multiple flags with acpi_noirq -- ala 2.4 [ACPI] revert two fixes in preparation for ACPICA merge [ACPI] update Linux to ACPICA 20031029 (Bob Moore) Fixed a problem where a level-triggered GPE with an associated _Lxx control method was incorrectly cleared twice. Fixed a problem with the Field support code where an access can occur beyond the end-of-region if the field is non-aligned but extends to the very end of the parent region (resulted in an AE_AML_REGION_LIMIT exception.) Fixed a problem with ACPI Fixed Events where an RT Clock handler would not get invoked on an RTC event. The RTC event bitmasks for the PM1 registers were not being initialized properly. Implemented support for executing _STA and _INI methods for Processor objects. Although this is currently not part of the ACPI specification, there is existing ASL code that depends on the init-time execution of these methods. Implemented and deployed a GetDescriptorName function to decode the various types of internal descriptors. Guards against null descriptors during debug output also. Implemented and deployed a GetNodeName function to extract the 4-character namespace node name. This function simplifies the debug and error output, as well as guarding against null pointers during output. Implemented and deployed the ACPI_FORMAT_UINT64 helper macro to simplify the debug and error output of 64-bit integers. This macro replaces the HIDWORD and LODWORD macros for dumping these integers. Updated the implementation of the Stall() operator to only call AcpiOsStall(), and also return an error if the operand is larger than 255. This preserves the required behavior of not relinquishing the processor, as would happen if AcpiOsSleep() was called for "long stalls". Constructs of the form "Store(LocalX,LocalX)" where LocalX is not initialized are now treated as NOOPs. Cleaned up a handful of warnings during 64-bit generation. Fixed a reported error where and incorrect GPE number was passed to the GPE dispatch handler. This value is only used for error output, however. Used this opportunity to clean up and streamline the GPE dispatch code. [ACPI] Update Linux to ACPICA 20031203 (Bob Moore) Changed the initialization of Operation Regions during subsystem init to perform two entire walks of the ACPI namespace; The first to initialize the regions themselves, the second to execute the _REG methods. This fixed some interdependencies across _REG methods found on some machines. Fixed a problem where a Store(Local0, Local1) could simply update the object reference count, and not create a new copy of the object if the Local1 is uninitialized. Implemented support for the _SST reserved method during sleep transitions. Implemented support to clear the SLP_TYP and SLP_EN bits when waking up, this is apparently required by some machines. When sleeping, clear the wake status only if SleepState is not S5. Fixed a problem in AcpiRsExtendedIrqResource() where an incorrect pointer arithmetic advanced a string pointer too far. Fixed a problem in AcpiTbGetTablePtr() where a garbage pointer could be returned if the requested table has not been loaded. Within the support for IRQ resources, restructured the handling of the active and edge/level bits. Fixed a few problems in AcpiPsxExecute() where memory could be leaked under certain error conditions. Improved error messages for the cases where the ACPI mode could not be entered. [ACPI] delete old _TRA code formerly used just by IA64. (Bjorn Helgaas) The current approach is to walk the _CRS in pcibios_scan_root() using acpi_walk_resources(). [ACPI] /proc/acpi files appear in /proc if acpi=off (Shaohua David Li) [ACPI] set acpi_disabled=1 on failure for clean /proc http://bugzilla.kernel.org/show_bug.cgi?id=991 [Bluetooth] Disable credit based flow control by default The credit based flow control must be disabled by default for compatibility with Bluetooth 1.0b devices. This patch makes CFC a session attribute, introduces CFC states and cleans up the CFC logic. [Bluetooth] Always use two ISOC URB's This patch modifies the USB Bluetooth driver to use two ISOC URB's per RX and TX transfer paths. This is needed for in time transfer of SCO audio packets over HCI. [Bluetooth] Add support for the Digianswer USB devices The Digianswer USB Bluetooth devices uses a bRequestType of 0x40 for HCI commands, but the Bluetooth specification says that the correct value is 0x20. This patch sets the needed value according to the vendor and product id's of the Bluetooth device. [Bluetooth] Add support for an old ALPS module This patch adds the specific vendor and product id's for an old ALPS module which don't uses the USB Bluetooth class id. [Bluetooth] Update HCI security filter This patch is a very big update to the HCI security filter. It consists of every forgotten commands/events from Bluetooth 1.1 and also the new parts from the Bluetooth 1.2 specification. [Bluetooth] Support inquiry results with RSSI The Bluetooth 1.2 specification defines a new event for returning inquiry results. This patch converts this event into the standard event and add its information to the inquiry cache. [Bluetooth] Remove USB zero packet option This patch removes the USB zero packet option from the HCI USB Bluetooth driver, because it is useless. It also corrects the config name of the SCO audio support. [Bluetooth] Support for AVM BlueFRITZ! USB This adds a driver for the AVM BlueFRITZ! USB devices. The devices from AVM do not follow the Bluetooth specification part H:2 and thus they need their own driver. [Bluetooth] Correct the module alias for the network family The module alias for PF_BLUETOOTH was placed in the BNEP module, but it has to be in the Bluetooth core module. [Bluetooth] Add module aliases for the Bluetooth protocols This patch adds the missing module alias definitions for the various Bluetooth protocols. [Bluetooth] Update the Kconfig entry for the BlueFRITZ! USB driver The BlueFRITZ! USB driver must use "select" to enable the firmware loader, because the option "enable" is deprecated. [Bluetooth] Add CAPI message transport protocol support This adds support for the CAPI message transport protocol (CMTP) to the Bluetooth subsystem. [Bluetooth] Add missing maintainer entries for the Bluetooth subsystem This patch adds the missing maintainer entries for the CAPI message transport protocol and the BlueFRITZ! USB drivers. [Bluetooth] Improve blacklist handling This patch uses the default ID list to ignore the Broadcom BCM2033 devices without firmware. If it not handles a device or a interface it now returns ENODEV to not fill the kernel log with unneeded errors. [Bluetooth] Support for Broadcom Blutonium This adds a driver for the the Broadcom Blutonium USB devices. The devices with Broadcom chips need a firmware loading sequence before they can work like any other Bluetooth H:2 USB device. [libata sata_sil] unmask interrupts during initialization Prudent in general, and needed for Adaptec BIOSes. [VIDEO]: kbuildify the promcons_tbl and logo source files [Bluetooth] Convert interrupt handlers to use irqreturn_t This patch changes the interrupt routines to make use of the irqreturn_t return values. [WATCHDOG] 2.6.0-rc1 - iminor(inode).patch get rid of unnecessary iminor(inode) code in watchdog's open and close functions. [WATCHDOG] 2.6.0-rc1 expect_close.patch Made the behaviour and syntax of expect_close the same for all watchdog-drivers [WATCHDOG] 2.6.0-rc1 i810-tco.c.nowayout.patch Fix nowayout handling to the way all other watchdog-drivers do it [WATCHDOG] 2.6.0-rc1 _is_open.patch Make _is_open code consistent for all watchdog-drivers [WATCHDOG] 2.6.0-rc1 cleanup-spaces-tabs.patch Cleanup of trailing spaces, tabs, ... [WATCHDOG] 2.6.0-rc1 -ENOIOCTLCMD.patch Make the default return value for the ioctl commands that don't exist = -ENOIOCTLCMD ia64: fix potential deadlocks due to printk() Remove all debug printk() for routines which are called with a runqueue lock held, since those could trigger a deadlock. [WATCHDOG] 2.6.0-rc1 ib700wdt-version-comment.patch remove "for Linux 2.4.x" in the ib700wdt.c driver [WATCHDOG] 2.6.0-rc1 amd7xx_tco.module_param.patch Made nowayout a module_parameter [WATCHDOG] 2.6.0-rc1 spelling-fixes-whether.patch Spelling fixes - whether ia64: Skip zero-length resources in PCI root bridge _CRS. This fixes some ugly messages that used to show up on Tiger and other Intel boxes: alloc 0xffffffff-0x0 from PCI mem for PCI Bus 0000:02 failed alloc 0xffffffff-0x0 from PCI mem for PCI Bus 0000:08 failed alloc 0xffffffff-0x0 from PCI mem for PCI Bus 0000:08 failed alloc 0xffffffff-0x0 from PCI mem for PCI Bus 0000:08 failed alloc 0xffff-0x0 from PCI IO for PCI Bus 0000:08 failed alloc 0xffffffff-0x0 from PCI mem for PCI Bus 0000:09 failed alloc 0xffffffff-0x0 from PCI mem for PCI Bus 0000:0f failed Many files: ia64: Cleanup EXPORT_SYMBOL usage This cleans up the use of EXPORT_SYMBOL in ia64_ksyms.c by moving most of them to the place where the symbol is defined. Ideally, only symbols defined in assembler sources should remain here, but there are some cases where an EXPORT_SYMBOL is missing outside the arch/ia64 tree. I did not change them for now. Also, EXPORT_SYMBOL_NOVERS is obsolete. [WATCHDOG] 2.6.0-rc1 amd7xx_tco.c-nowayout.patch Fix compile error in amd7xx_tco.c after latest nowayout change [PATCH] fix inia100 driver John W Fort helped me debugging the brown paperbag bugs, the patch below makes it work. [PATCH] Initio 9100u The attached patch adds the cpu_to_le32 calls just in case. It was built against my previous patch. 64 bit updates for Workbit NinjaSCSI driver From: GOTO Masanori Thanks for your report. I compiled and exactly I saw some warnings on amd64 machine. I checked all warnings, and these warnings are trivial, they can be easily fixed. I attached the patch to fix warnings. Nsp32 is PCI device driver, so it should also work on amd64 architecture. [libata sata_svr] fix DRV_NAME to reflect actual driver filename [libata sata_sil] add support for adaptec 1210sa, 4-port sii 3114 USB: add legotower driver to main usb makefile [PATCH] USB: add a new pl2303 device id. Thanks to Stefan Verkoyen for the information. [PATCH] USB: add goku_udc driver (Toshiba TC86C001 USB device) This patch implements the "USB Gadget" API using the "Goku-S" (TC86C001) full speed usb device controller. It's passed testing with Gadget Zero, g_ether (full CDC Ethernet support), gadgetfs, and most interestingly Alan Stern's "File Storage Gadget" (FSG, talking to Linux or Windows as a usb-storage device) to give the halt processing a good workout. Control-OUT works. Tested mostly on x86, with reported success on MIPS. As well as being directly useful with that hardware, I think this is small and simple enough to be useful as an example of how to write a USB controller driver. (There will be many more controller drivers than gadget drivers, I suspect ...) Please merge this to the next 2.6 release that takes new drivers. Corresponding updates for kbuild and the various gadget drivers will be coming (not in a flood). [PATCH] USB: fix kfree in usb-skeleton.c >> if (dev->bulk_in_buffer != NULL) >> kfree (dev->bulk_in_buffer); > > > Yes that one check can go away. Care to send me a patch? Actually all those checks should go away ... [PATCH] USB: fix bug in bMaxPower sysfs file, it should be * 2 Also cleaned up the string files. Thanks to Mark Smith for pointing this out. [PATCH] USB: add test for B4000000 to ir-usb driver to fix build issue on some archs USB: add gadget serial driver from Al Borchers [XFS] Remove debug source file from kernel tree; useless without kdb and dropping it cuts down on merge noise. Simplifies the Makefile too. [XFS] Rename pagebuf debug option (ie. pagebuf tracing) into a generic XFS tracing option for the other XFS trace code to use too (once fixed). SGI Modid: 2.5.x-xfs:slinx:159717a [XFS] Fix compiler warning after change to xfs_ioctl interface. SGI Modid: 2.5.x-xfs:slinx:159720a [XFS] Implement dm_get_bulkall SGI Modid: 2.5.x-xfs:slinx:159760a [XFS] Add some IO path tracing, move inval_cached_pages to a better home to help. SGI Modid: 2.5.x-xfs:slinx:160171a [XFS] Fix ktrace code - dont build unilaterally, and do earlier init for pagebuf use. SGI Modid: 2.5.x-xfs:slinx:160172a [XFS] Fix log tracing code so it is independent of DEBUG like other traces. SGI Modid: 2.5.x-xfs:slinx:160178a [XFS] Fix build fallout from reordering xfsidbg headers for tracing fixes. SGI Modid: 2.5.x-xfs:slinx:160225a [XFS] Rename the vnode tracing macro to be consistent with the other trace code SGI Modid: 2.5.x-xfs:slinx:160241a [XFS] Enable tracing in the quota code if requested SGI Modid: 2.5.x-xfs:slinx:160242a [XFS] Fix exports for tracing symbol access in idbg code. SGI Modid: 2.5.x-xfs:slinx:160243a [XFS] When tracing extended attribute calls, only access the buffer when it exists. SGI Modid: 2.5.x-xfs:slinx:160244a [XFS] Fix build with tracing enabled, couple of portability macros, move externs into headers. SGI Modid: 2.5.x-xfs:slinx:160245a [XFS] Enable the tracing options in XFS Makefiles. SGI Modid: 2.5.x-xfs:slinx:160246a [XFS] Dont build objects which are not linked into the kernel ever. SGI Modid: 2.5.x-xfs:slinx:160314a [XFS] Fix compiler warning due to mismatched types. SGI Modid: 2.5.x-xfs:slinx:160445a [XFS] Remove duplicate FILP_DELAY_FLAG macro SGI Modid: 2.5.x-xfs:slinx:160504a [XFS] Fix warnings when tracing enabled on 64 bit platforms SGI Modid: 2.5.x-xfs:slinx:160622a [XFS] Add a stack trace to _xfs_force_shutdown. SGI Modid: 2.5.x-xfs:slinx:160899a [XFS] Fix test for large sector_t when finding max file offset SGI Modid: 2.5.x-xfs:slinx:160900a [XFS] Fix an infinite writepage loop under a combination of low free space, and racing write/unlink calls to the same file. SGI Modid: 2.5.x-xfs:slinx:161773a [XFS] Fix error code sign on forced shutdown in iomap; sync iomap code up between 2.4 and 2.6 versions. SGI Modid: 2.5.x-xfs:slinx:161902a [XFS] Enable pagebuf lock tracking with debug config option. SGI Modid: 2.5.x-xfs:slinx:161903a [XFS] Cleanup the page buffers loop in writepage (no goto, like 2.4 variant). SGI Modid: 2.5.x-xfs:slinx:161999a [XFS] move the iomap data structures out of pagebuf SGI Modid: 2.5.x-xfs:slinx:162048a [XFS] Merge page_buf_locking routines in with the rest of page_buf. SGI Modid: 2.5.x-xfs:slinx:162155a [XFS] Switch to using the BSD qsort implementation. SGI Modid: 2.5.x-xfs:slinx:162158a [XFS] Change pagebuf to use the same ktrace implementation as XFS, instead of reinventing that wheel. SGI Modid: 2.5.x-xfs:slinx:162159a [XFS] Seperate the NFS reference cache code out from xfs_rw.c to simplify management of different kernel versions. SGI Modid: 2.5.x-xfs:slinx:162241a [XFS] Trivial/whitespace changes to sync up different trees a bit. SGI Modid: 2.5.x-xfs:slinx:162245a [XFS] Set proper device for realtime files in linvfs_get_block_core SGI Modid: 2.5.x-xfs:slinx:143006a [XFS] Remove assertion that we do not hold a lock - no lock ownership state available. SGI Modid: 2.5.x-xfs:slinx:162250a [XFS] Fix sysctl handlers to expect ints SGI Modid: 2.5.x-xfs:slinx:162288a [XFS] Move the stack trace wrapper into a kernel-version-specific location. SGI Modid: 2.5.x-xfs:slinx:162317a [XFS] Use iomap abstraction consistently. SGI Modid: 2.5.x-xfs:slinx:162327a [XFS] Abstract sendfile operation out, supporting multiple kernels more easily. SGI Modid: 2.5.x-xfs:slinx:162329a [JFS] allow resize option with no parameter The resize option is valid both with and without a parameter. When cleaning up the parsing code to use match_token(), the ability to specify resize without a parameter was lost. [XFS] Use xfs_statfs type to statfs operation, to support multiple kernels more easily. SGI Modid: 2.5.x-xfs:slinx:162331a [XFS] Fix some incorrect debug code after buftarg changes. SGI Modid: 2.5.x-xfs:slinx:162334a [XFS] Make kmem shaking interface consistent between kernel versions. No code change here, mainly symbol names. SGI Modid: 2.5.x-xfs:slinx:162379a [XFS] Fix comment in xfs_rename.c SGI Modid: 2.5.x-xfs:slinx:162760a [XFS] Prevent log ktrace code from sleeping in an invalid context. SGI Modid: 2.5.x-xfs:slinx:162768a [XFS] Use vnode timespec modifiers for atime/mtime/ctime, keeps last code hunk in sync. SGI Modid: 2.5.x-xfs:slinx:162783a [XFS] Update xfs_showargs to reflect all current mount options SGI Modid: 2.5.x-xfs:slinx:163102a [XFS] No need to initialise struct xfs_trans field to null after a zalloc. SGI Modid: 2.5.x-xfs:slinx:163115a [XFS] Remove some spurious double semi-colons. SGI Modid: 2.5.x-xfs:slinx:163116a [XFS] Fix async pagebuf I/O tracing at the bottom of pagebuf_get. SGI Modid: 2.5.x-xfs:slinx:163118a [XFS] Fix a small pagebuf memory leak and keep track of slab pages ourselves. SGI Modid: 2.5.x-xfs:slinx:163124a [XFS] Fix an XFS release_page case where unwritten extents may cause I/O incorrectly. SGI Modid: 2.5.x-xfs:slinx:163128a [XFS] Cleanup bdevname conditional code in xfs_buf headers. SGI Modid: 2.5.x-xfs:slinx:163365a [XFS] Rework some extended attributes code to make it more easily extended. SGI Modid: 2.5.x-xfs:slinx:163383a [XFS] Fix some inconsistent types SGI Modid: 2.5.x-xfs:slinx:155637a [XFS] Fix one more fsid_t type. SGI Modid: 2.5.x-xfs:slinx:155873a [XFS] Work around gcc 2.96 bug in _lsn_cmp. SGI Modid: 2.5.x-xfs:slinx:156280a [XFS] Trivial and whitespace changes to sync trees. Remove no-longer-used headers. [SPARC64]: In early bootup, BUG() if cannot find TLB entry for remapping. [SPARC]: Fix PMD masking in SRMMU code. [SPARC]: Use spinlock to protect IRQ action management. [NET]: Use size_t for size argument in {send,recv}msg callchain. [IPV4/IPV6]: Use size_t for size in {send,recv}msg. [BLUETOOTH]: Use size_t for size in {send,recv}msg. [PPPOE]: Use size_t for size in {send,recv}msg. [APPLETALK DDP]: Use size_t for size in {send,recv}msg. [ATM]: Use size_t for size in {send,recv}msg. [AX25]: Use size_t for size in {send,recv}msg. [IPX]: Use size_t for size in {send,recv}msg. [DECNET]: Use size_t for size in {send,recv}msg. [NETLINK]: Use size_t for size in {send,recv}msg. [ECONET]: Use size_t for size in {send,recv}msg. [IRDA]: Use size_t for size in {send,recv}msg. [LLC]: Use size_t for size in {send,recv}msg. [NETROM]: Use size_t for size in {send,recv}msg. [ROSE]: Use size_t for size in {send,recv}msg. [UNIX]: Use size_t for size in {send,recv}msg. [X25]: Use size_t for size in {send,recv}msg. [ATM]: br2684 incorrectly handles frames recvd with FCS (by Alex Zeffertt ) [NETFILTER]: Align nulldevname properly in ip_tables. [IRDA]: Proper calculation for F-timer. Improve interoperability. [IRDA]: Fix a potential dealock in sir-dev state machine. Also, make sir-dev locking compatible with irport. From Martin Diehl. [IRDA]: Fix sir-dev 'raw' mode for sir dongles that need it. From Martin Diehl. [IRDA]: Add module alias for IrCOMM pseudo serial device. From Martin Diehl. [IRDA]: Fix compiler warning in af_irda.c [SPARC64]: Add option to define default command line to kernel, ala PPC. [SPARC64]: Update defconfig. [AGPGART] The RadeonIGP 345M device ID is 0xcbb2, not 0xcbb Spotted by Matteo Croce [PATCH] USB: add new usb led driver. [XFRM]: SHA2-256 should be truncated to 96 bits, not 128. [ARM PATCH] 1712/1: pxa2xx_udc (1/5) add INIT_MACHINE Patch from David Brownell This adds a mechanism for a per-machine initcall, one that's guaranteed to run only to initialize a kernel running on that specific hardware. It's not strictly necessary, but it does eliminate the need for certain boilerplate in machine-specific support, to ensure it's only running on the right hardware: /* in arch/arm/mach-xxx/MYMACHINE.c */ ... static int __init init_MYMACHINE(void) { if (!mach_is_MYMACHINE()) // often forgotten!! return -EINVAL; ... declare and customize platform devices ... return 0; } arch_initcall(init_MYMACHINE); An init_MYMACHINE() call still exists, but it'd be declared as part of the machine definition. [ARM PATCH] 1710/1: pxa2xx_udc (2/5) mach-pxa/idp.c uses INIT_MACHINE Patch from David Brownell This just makes the IDP initialization code use this initcall, so that it won't run unless it's actually on IDP hardware. Depends on the INIT_MACHINE patch (#1 this series). [PATCH] qla1280 I am attaching the latest version of the qla1280 driver for inclusion in the next 2.6.x release. It is mostly based on Christoph's cleanup work and a couple of changes of my own. I don't know if it is too late for 2.6.1, but otherwise it would be nice to get it into 2.6.2. I have built and tested this using 2.6.0-test11 on an ia64, but I don't think there were any major SCSI changes since then. [PATCH] fix a few missing return value checks in scsi The attached patch adds a few error checks for the pci dma_mask setting routines, which after all can fail and thus need their return code checked. [PATCH] Call slave_destroy in scsi_alloc_sdev error path This patch fixes a potential memory leak in scsi_alloc_sdev. If slave_alloc kmallocs memory and the get_device() (around line 245) fails then we goto the error path. The error path never calls slave_destroy. [PATCH] Re: 2.6.1-rc1: SCSI: `TIMEOUT' redefined On Tue, Jan 06, 2004 at 07:33:25PM +0100, Adrian Bunk wrote: > On Wed, Dec 31, 2003 at 12:36:49AM -0800, Linus Torvalds wrote: > >... > > Summary of changes from v2.6.0 to v2.6.1-rc1 > > ============================================ > >... > > Patrick Mansfield: > > o consolidate and log scsi command on send and completion > >... > > This adds a #define TIMEOUT to scsi.h conflicting with a different > TIMEOUT #define in drivers/scsi/eata_generic.h: Sorry Adrian, here is a patch renaming TIMEOUT to TIMEOUT_ERROR. Still not a good name for the usage in SCSI core, but it does not conflict, and matches the other names for the IO completion results (SUCCESS, FAILED, etc., they and others should really be prefixed with at least SCSI). eata does not use the TIMEOUT it defines, but there are enough defines of TIMEOUT that it could be a problem in other drivers. Only compile tested for eata driver. SCSI: atp870u update From: Zwane Mwaikambo [PATCH] Kernel oops in 2.6.1 when loading aha152x_cs.ko Attached patch removed the references to the legacy stuff from the driver. I'm not sure if that is all that needs to be done though, and I could only test it for the non-pcmcia case, but that works here. [netdrvr 3c527] remove cli/sti Richard Procter and I worked to remove cli/sti to add proper SMP support (I did the original stuff and Richard did the actual current code :)). Besides that, Richard did a great jog improving the perfomance of the driver quite a bit: - Improve mc32_command by 770% (438% non-inlined) over the semaphore version (at a cost of 1 sem + 2 completions per driver). - Removed mutex covering mc32_send_packet (hard_start_xmit). This lets the interrupt handler operate concurrently and removes unnecessary locking. It makes the code only slightly more brittle Original post: http://marc.theaimsgroup.com/?l=linux-netdev&m=106438449315202&w=2 Since it didn't apply cleanly against 2.6.0-test6, I forward ported it. Patch attached. Jeff, please consider applying, Thanks. [netdrvr natsemi] janitor: insert missing iounmap(), add error handling From: Leann Ogasawara Patch inserts a missing iounmap(). Implements a cleanup path for error handling as well. [PATCH] smctr - get rid of MOD_INC/DEC Get rid of warning now that module refcounting now done by network code not drivers. Not tested on real hardware. [netdrvr 3c527] whitespace changes (sync up with maintainer) [netdrvr 3c527] fix race [netdrvr] Remove never-referenced 68360enet.c [netdrvr 3c527] applied missing pieces of Richard Proctor's 3c527 SMP update Minor stuff... remove unused constants, and mark non-experimental and non-broken in Kconfig. SCSI sg,st block layer TCQ fix Usually, the mid layer ends the block tag (if one was in use) early to release the resources. However, things like sg and st don't go through the code path that does the release, so put a fallback release in __scsi_release_request() for them. [PATCH] more ne2k-pci clone boards [netdrvr] add "forcedeth" driver for nVidia nForce NICs [wireless airo] Fix PCI registration [PATCH] get rid of MOD INC/DEC for farsync Get rid of leftover MOD INC/DEC in this driver. Ref counting now done by network core. Jeff, please apply to net-drivers-2.5-exp [PATCH] pc300 - get rid of MOD_INC/MOD_DEC Remove old style mod inc/dec from this WAN driver. [wan] add new pc200syn driver [PATCH] sk98lin-2.6: Kernel Update to Driver Version v6.21 Patch 1/4 (Update to version 6.21) * Add: Common module update * Add: New function for PCI initialization (SkGeInitPCI) * Add: Yukon Plus changes (ChipID, PCI...) * Add: Code for DIAG tool * Fix: Problems while unloading the linux driver * Fix: PrefPort=B not allowed on single NICs * Fix: Fixed Linux System crash when using vlans * Fix: Remove useless register_netdev * Fix: Initalize Board before network configuration * Fix: Modifications regarding try_module_get() and capable() [PATCH] sk98lin-2.6: Readme Update to Driver Version v6.21 Patch 2/4 (Update to version 6.21) * Fix: Readme changes [PATCH] sk98lin-2.6: Kconfig Update to Driver Version v6.21 Patch 3/4 (Update to version 6.21) * Add: Update of the Vendors list Cset exclude: shemminger@osdl.org|ChangeSet|20040110194048|37013 Revert skfp_probe patch... better patch coming. [wireless orinoco_pci] add Vaio PCI id [netdrvr starfire] remove dup include [SPARC]: Wrap some includes with __KERNEL__ check in asm-sparc/elf.h. aacraid warning fix From: Christoph Hellwig Fix: drivers/scsi/aacraid/aachba.c:1409: warning: `flag' might be used uninitialized in this function repair oops in aic7xxx_old proc_info From: "Randy.Dunlap" another aic7xxx_old proc fix from 2.6.1-mm2 [netdrvr forcedeth] alloc fixes [wireless atmel] various updates Below is a patch against 2.6.1-rc1 which has that fix and quite a few other components. viz: * Bumped version to 0.9 * Dmitry Torokhov's skb-leak and netif_carrier patches. * Added a couple of fields to /proc/driver/atmel * Fixed failure to call unregister_netdev in a couple of error-unwind paths. I think this fixes the unregister_netdevice: waiting for eth1 to become free. bugs, but I don't have definative proof. * Remove floating-point constants just in case the compiler doesn't. * Fixed bug in scanning. * Added firmware versioning, driver will search through different available versions of firmware 'till it finds an available one. * Changed firmware URL in configure help to a directory rather than a file, so I can release new named versions. * Added support for later releases of the firmware, which are WPA aware. Firmware verion is automatically detected, so users who upgrade their kernel but not their firmware won't have problems. The PCI support and possible WPA support will have to wait for another day. [PATCH] Mark IBM TR driver as not 64 bit clean This driver doesn't seem to be 64bit clean judging from the warnings on x86-64. Mark it as !64BIT. -Andi [tokenring olympic] use memset_io to fix certain platforms Prefer a single memset_io() to buggy writel/writew/writeb loops. Bug found and fixed by IBM. sym2 speed selection fix From: Alex Tomas without following patch I couldn't get 160MB from my disk. removed line restores previous clocking value (0 in my case). so, driver thinks disk isn't DT-capable ... Fix sym2 Ultra160 mode From: Anton Blanchard Update Mac ESP SCSI From: Geert Uytterhoeven Mac ESP SCSI: Update argument parsing (from Matthias Urlichs) Mac SCSI fixes (from Matthias Urlichs) From: Geert Uytterhoeven Mac SCSI fixes (from Matthias Urlichs): - Inline functions need to be defined before being used. - out_8() takes an address and a value, not the other way round. ncr53c7xx: Cleanup prototypes From: Geert Uytterhoeven ncr53c7xx: Cleanup prototypes for ncr53c7xx_init() BVME6000 SCSI: Fix typos From: Geert Uytterhoeven Amiga NCR53c710: Coalesce all configuration options into one From: Geert Uytterhoeven Amiga NCR53c710: Coalesce all Amiga NCR53c710 SCSI host adapter configuration options into one config option, as suggested by Matthew Wilcox. NCR53C9x SCSI: Kill bogus inline From: Geert Uytterhoeven [BK] add two helper scripts to Documentation/BK-usage cpcset: copy changset from one repository to another gcapatch: Generate GNU diff of local changes, versus latest upstream (well, GCA...) [NET] fix leak in sch_teql Also note the fact that we're calling functions that may block, while holding a local spinlock. [netdrvr forcedeth] kfree -> free_netdev [PATCH] qla1280.c doesn't compile On Wed, Jan 07, 2004 at 11:28:31PM -0800, Andrew Morton wrote: >... > Changes since 2.6.1-rc1-mm2: >... > -qla1280-update.patch > +qla1280-update-2.patch > > Updated qlogic patch >... I got the following compile error when trying to compile this driver statically into a kernel with hotplug enabled: <-- snip --> ... drivers/scsi/qla1280.c:4849: error: `qla1280_remove_one' undeclared here (not in a function) drivers/scsi/qla1280.c:4849: error: initializer element is not constant drivers/scsi/qla1280.c:4849: error: (near initialization for `qla1280_pci_driver.remove') make[2]: *** [drivers/scsi/qla1280.o] Error 1 <-- snip --> Since I don't see a good reason why qla1280_remove_one is #ifdef'ed out in the non-modular case the patch below fixes this problem by removing two #ifdef's. [SERIAL] request resources for ACPI & HCDP ports Patch from: Bjorn Helgaas This patch against 2.6.1-rc3 sets UPF_RESOURCES so the appropriate ranges will show up in /proc/ioports and /proc/iomem. ia64: add generic defconfig file Here's a generic_defconfig that works on all the ia64 platforms I'm aware of, and we can always update it if it's missing a driver or two. Compile tested 'make compressed' and 'make modules', and boot tested on sn2, and I think Alex boot tested on an HP machine. [PATCH] ia64: HP IOTLB startup msg This patch adds a little noise on the console. I like to see this info because it matches up with the AGPGART aperture info later on. [PATCH] ia64: sn2 defconfig update Just a quick update for the sn2_defconfig file now that some more config options have been added. [PATCH] ia64: __ia64_memcpy_fromio() may be missing from kernel When building a highly modular, non-generic kernel it can happen that arch/ia64/lib/io.o is not included in the image because nothing built-in needs __ia64_memcpy_fromio, etc., yet it may be called from a module. We should force it to be linked in. ia64: Minor fix for get_order() so it works even for insanely large arguments. ia64: Turn on CONFIG_EFI unconditionaly (even for HP Ski simulator). [PATCH] ia64: sba_iommu update This patch does a couple things: * Allows iommu page size different than PAGE_SIZE. This was largely done by Bjorn. The motivation for this is that sx1000 hardware officially only supports use of the iommu with a 4k page size. Thus the default is now 4k for sx1000 and PAGE_SIZE for zx1. * Cleanup the runtime statistics gathering such that we can turn it on for some info w/o impacting runtime performance. ia64: Avoid use of cast expressions as lvalues. They're ugly and may be dropped from GCC at some point in the future. [PATCH] variable number of dummy devices Uses the new module_params that nobody else uses now. ia64: Fix bad patch breakage: move generic-defconfig to where it belongs. Dosemu actually wants to do a zero-sized source mremap to generate the duplicate area at 0x0000 and 0x100000. There's no downside to it, so allow it even though it's a tad strange. [Bluetooth] Fix CMTP reference counting This patch fixes the module reference counting which was done wrong while porting this driver to the 2.6 kernel series. [Bluetooth] Use R2 for default value of pscan_rep_mode The only possible default value for pscan_rep_mode, if there is no entry in the inquiry cache, can be R2. [Bluetooth] Set disconnect timer for incoming ACL links In general a Bluetooth stack that creates an ACL link should also take care of its termination, but some Bluetooth devices think otherwise. The problem is that the Bluetooth specification don't defines an ownership of an ACL link and if nobody cares about it, two devices stay connected even if there is no need. To avoid leftover ACL links the disconnect timer must also be used for incoming connections, but it is set twice the default disconnect timeout so the other side get enough time to clean everything by itself. [SPARC64]: Disable PCI ROM address OBP sanity check for now. [COMPAT]: Mark SIOCSIFNAME as compatible ioctl. [Bluetooth] Fix reference counting for incoming connections The L2CAP reference counting must be increased by the RFCOMM module if an incoming connection is accepted. If this is not done, it will be decreased one time to often if the connection is terminated. [COMPAT]: Support wireless ioctls, with help from Clint Adams. [IPV4]: Check for netdev alloc failure in ipmr.c [IPV4/IPV6]: In MLD, add new filter first, then delete old one. [BRIDGE]: Use dev_base_lock while traversing netdev list. [NET]: Convert /proc/net/dev_mcast to seq_file. [NET]: Add SIOCSIGNAME wildcarding and name validation, with help from Jean Tourrilhes. [NETFILTER]: Add config help texts for IP_NF_ARP{TABLES,FILTER} [ATM]: [nicstar] convert to new style pci module (by "Jorge Boncompte [DTI2]" ) [NET]: When registering a new notifier, rebroadcast REGISTER and UP events. [IPV6]: Notifier replay changes Change IPV6 to handle the new case where netdev events are replayed on registration: * change code ordering so address configuration is ready before registration (this was actually a bug in existing code) * take out code that capture's existing devices, this is now done in the replay * make notifier code local to addrconf.c so it can be have smaller scope [X25]: Remove pre-existing device discovery loop Remove duplicate/conflicting code now that netdev_register_notifier replays the device registration events. [BPQETHER]: Remove pre-existing device discovery loop Remove duplicate/conflicting code now that netdev_register_notifier replays the device registration events. Reorder initialization to avoid having to simplify error unwind if /proc creation failed. [LAPBETHER]: Remove pre-existing device discovery loop Remove duplicate/conflicting code now that netdev_register_notifier replays the device registration events. [XFS] Remove a no-longer-used pagebuf source file. [IPCOMP]: Set x->km.state to XFRM_STATE_DEAD in ipcomp_tunnel_create(). Otherwise we can trigger the BUG trap in __xfrm_state_destroy() when xfrm_state_put() finds this is the last reference. [AF_KEY]: In pfkey_get(), do not dereference xfrm_state after it is put. [XFRM]: Fix two bugs in xfrm_lookup() - the found or allocated xfrm_states are not passed correctly to xfrm_bundle_create (and to the subsequent frees in case of create failing) if the first xfrm_tmpl_resolve failed and the second one succeeded. - error handling is wrong. [XFRM_USER]: xfrm_state_construct() needs to set x->km.state to XFRM_STATE_DEAD. Otherwise this can lead to the BUG_TRAP in __xfrm_state_destroy when xfrm_state_put() finds this is the last reference. [XFRM]: In xfrm_lookup(), schedule() before retrying template resolution. [PATCH] Re: Building sym 2.1.18f on linux/alpha On Tue, Jan 13, 2004 at 06:02:08PM +0300, Sergey Tikhonov wrote: > The final kernel could not pass linking stage with 2.1.18f version > (included into 2.6.1 kernel patch). > The linker complains that : > drivers/built-in.o(.init.text+0x8cec): In function 'sym2_probe': > : undfined reference to 'local symbols in discarded section .exit.text' > > I compared arch/alpha/kernel/vmlinux.lds.S with one from the i386 tree. > The '.exit.text' and '.exit.data' > sections were moved out of DISCARD attributes in the i386 version. I did > the same with alpha version > and it helped. Thanks for this report; you uncovered a real bug. Actually two real bugs; one is that parisc is not discarding the .init.text and .exit.text sections (so I didn't notice this bug) and the other is that sym_detach is marked __devexit, yet called from a __devinit function. [PATCH] ia64: header cleanup I fixed the code to compile with CONFIG_ACPI_NUMA and !CONFIG_DISCONTIG since it's actually possible to compile that configuration as well as cleaned up the #include usage a litte. [Bluetooth] Start inquiry if cache is empty If the inquiry cache is empty it makes no sense to return zero number of inquiry result even if the age of cache is not outdated. [PATCH] ia64: system type Kconfig cleanup Fix system type selection to workaround menuconfig bug (select "HP", get "HP-simulator"). [PATCH] I2C: module_parm fixes for i2c-piix4.c [PATCH] I2C: documentation update > > They should be converted. From module.h: > > /* DEPRECATED: Do not use. */ > > #define MODULE_PARM(var,type) \ > > ... > > Note that realistically, it's not going away in 2.6, so mass migration > doesn't really win anything. However, I never implemented mixing old > and new style in the same module, so if you're adding a parameter, it > makes sense to convert them all. OK, I don't have much time for a mass conversion anyway. Greg, could you please apply the following patch to the "porting-clients" document so that at least the new drivers don't need to be converted afterwards? ia64: Patch by Bjorn Helgaas: acpi_register_irq() must be exported to enable modular ACPI device drivers. [PATCH] I2C: Add ported sensor chip driver: asb100 This patch adds support for the ASB100 Bach sensor chip, which is found on some Asus mainboards. The port corresponds to lm_sensors CVS revision 1.5. The patch applies to and was tested against 2.6.1-rc1. [PATCH] I2C: link asb100 in the proper order * Jean Delvare [2004-01-09 22:58:58 +0100]: > Shouldn't the asb100 be listed first, the same way the w83781d is, since > it has subclients? I would even put asb100 before w83781d, since for now > the w83781d driver will try to handle ASB100 chips too, thus preventing > the asb100 driver from being used if both drivers are built-in. You're right, thanks * * * * * This patch fixes the link order for asb100 sensors chip driver. [PATCH] I2C: IBM IIC compile fix please apply this trivial one-liner. It fixes compilation of IBM IIC driver. [PATCH] I2C: saa7146.h doesn't need i2c.h [Bluetooth] Change maintainer role of the Bluetooth subsystem This patch updates the CREDITS and MAINTAINERS files to reflect the change of the maintainer role for the Bluetooth subsystem. [PATCH] ia64: move HCDP under serial console #ifdef Currently you can select HCDP independent of serial console. This doesn't seem very useful, and makes the setup_serial_hcdp() reference unresolved if the serial driver is built as a module. CONFIG_SERIAL_8250_CONSOLE is only selectable if the serial core is built in (SERIAL_8250=y), so this patch makes sure we don't try to call setup_serial_hcdp() unless it is actually built in to the kernel. (I think we should also make HCDP selection dependent on SERIAL_8250_CONSOLE=y in Kconfig; I'll send a separate patch for that since it's not ia64-specific.) [PATCH] I2C: Typo in i2c/busses/Kconfig Another simple patch for your collection. BTW I don't think that i2c-rpx can be used in 2.6 since it relies on an algorithm that hasn't been ported yet. [PATCH] I2C: i2c-rpx.c doesn't need ioports.h nor parport.h One more simple patch... These headers are useless as far as I can see. [PATCH] I2C: New parport bus drivers These are replacements for the i2c-philips-par, i2c-elv and i2c-velleman drivers, as well as for the i2c-old i2c-parport driver as found under drivers/media/video in linux 2.4. My reason for writing them, as already discussed on the sensors and linux-kernel mailing-lists, is that all these drivers basically do the same thing, so I thought it would be easier to maintain a single driver instead of four. As Simon Vogl pointed out that using a direct I/O access (as done in i2c-elv and i2c-velleman) could be prefered over clean parport access (as done in i2c-philips-par) on embedded devices, I finally wrote two drivers instead of one. But both drivers support all devices, it's just a matter of how they are accessed (and wether the driver depends on the parport driver). I made it so that the definition of the adapters (i.e. how to set and get SDA and SCL, basically) is completely separated from the code itself. Thus, adding support for a new adapter is simply adding a new set of data to the definition table, describing how the adapter works, in a single file. This means that all simple parallel port adapters are virtually supported. The i2c-pport driver we have in i2c CVS isn't supported yet because it works a bit differently, but I believe that extending the current driver(s) to support it should be possible (although it can be discussed wether it's worth it). You'll have to pass the type parameter that is correct for your board: 0 = Philips 2 = Velleman 3 = ELV 4 = ADM evaluation board I could only test with my ADM eval board, and it worked OK with both drivers. If they are confirmed to work, we could get rid of all other parallel port i2c drivers in 2.6. *** I think we should mark the i2c-philips-par, i2c-elv and i2c-velleman drivers as "deprecated" in i2c/busses/Kconfig. Is there a standard way to do so (like there is "&& EXPERIMENTAL" for new drivers)? Thanks. [PATCH] ia64: quiet down SMP boot messages This patch gets rid of some superfluous printk's which get tedious on machines with insane number of CPUs. The virtual/physical address bit info is already available via /proc/pal, so there is no need to print it at boot- time. [PATCH] I2C: New chip driver: lm90 This is my LM90/ADM1032 i2c chip driver ported to Linux 2.6 [PATCH] I2C: Fix w83781d temp This patch fixes the temperature handling in the w83781d driver: 1* Fix bad magnitude. 2* Use MMH's lm75.h. 3* Allow negative temperatures. [PATCH] I2C: Fix debug bug in lm83 driver The following patch fixes lm83 failing to compile if DEBUG is set. [PATCH] I2C: Kconfig cleanups This patch attempts to reduce the number of inappropriate questions being asked by menuconfig. [PATCH] USB: add support for the Clie PEG-TJ25 device Thanks to BOUCNIAUX Benjamin for the information. [IEEE1394]: Update OUI database as of Dec 31, 2003. [IEEE1394]: Spelling fix from Dominik Brodowski. [IEEE1394]: Convert to cdev API. Retire our char device dispatching logic. With the 2.6 cdev API we can register much smaller device number regions, so we use that instead. [IEEE1394]: Use the right length when deregistering raw1394 char device. [IEEE1394]: Fix compilation when CONFIG_COMPAT is enabled (32/64 systems). This was broken by the last commit for cdev stuff which removed the "int ret;" that these routines used. [IEEE1394]: Per-host address space patch from Steve. [IEEE1394]: Fix test in ohci_soft_reset(), and handle hot-unplugged cardbus cards better. input: Move keycode definitions around to get as close to 2.4 compatibility as we can at the moment. This also kills KEY_103RD, because PS/2 keyboards don't have it and everyone is expecting to get KEY_BACKSLASH anyway. Fix rawmode generation for PrintScreen key, too. [IEEE1394]: Rework highlevel list locking to avoid blocking under spinlocks. input: Add support for Logitech MX700 mouse. input: Expect only one character in interrupt in i8042.c, this eases the load on the controller (only one status read per interrupt). Also do polling only some time after an interrupt happened. [libata sata_sil] cleaner, better version of errata workarounds No longer unfairly punishes non-errata Seagate and Maxtor drives. [IEEE1394]: Sync file revisions. [libata sata_sil] add pci id for Silicon Image 3512 [libata sata_svw] cleanup, better probing * use fewer magic numbers * probe all 4 ports, using standard SATA SCRs * limit udma mask to 0x3f * clean up PPC-specific procfs stuff [NET]: net/flow.h needs asm/atomic.h [ATM]: better behavior for sendmsg/recvmsg during async closes [IRDA]: Migrate TIOCMGET and TIOCMSET ioctls in IrCOMM to the new TTY API. Patch from Russell King. [netdrvr forcedeth] include linux/interrupt.h Fixes build on some platforms. [ATM]: CLIP device discovery on init is not needed. [DECNET]: Fix initialization race. Decnet exposes itself to proc and packets before it has finished initializing. This was always a race, but the notifier replay might expose it worse. [NET]: dev_alloc_name() returns the number of the slot used, so comparison needs to be < 0 [IPV6]: Implement MIB:ipv6InterfaceTable [IPV6]: Add notification for MIB:ipv6Prefix events. [NET]: Fix uninlinable __sock_put call in net/sock.h g_NCR5380 - 2.6.0 - problem with reloading module From: "Randy.Dunlap" The problem is that the detect function requests an IO region of 16 bytes (at least when a command line override parameter is used) but the release function only tries to release 8 bytes, and this request isn't done because it doesn't match any allocated IO region. [NCR53C400 extensions are not enabled, so NCR5380_region_size is 8, not 16, but the request uses NCR5380_region_size regardless.] Fix: save the allocated region size in instance->n_io_ports and release that size only; Import qla2xxx driver From: "Andrew Vasquez" With additional changes from: "James Bottomley" , "Christoph Hellwig" This is the qlogic driver version 8.00.00b7 with the ioctl and failover code stripped out and a few associated fixes put in. input: Add informational printk()s to atkbd.c Fix qla2xxx Kconfig dependency problem [PATCH] ips 2/2: minor fixes This patch fixes two minor bugs. It allows zero length write commands through to devices. It also prevents the writing of any '\0' characters at the end of version numbers to ips's /proc/scsi files. [PATCH] ips fix for large mem 64bit machines This patch fixes DMA bugs on x86-64 and ia64 machines. The driver was using commands that only support 32bit addresses in places that could return 64bit addresses. One place was DMAing off the stack. The other place was causing problems on x86-64 machines by calling pci_map() functions on a region allocated by pci_alloc_consistent(). [PATCH] I2C: move the Kconfig "source..." out of the drivers/char/ location input: Add IBM GamePad to the BADPAD list. input: Add backslash and 102nd key to amikbd.c list of scancodes. input: i8042.c: Add exists=0 into an error path, change the mux/aux init order to make some of the probing code (second irq probe) unnecessary. [AF_PACKET]: Fix bind()/setsockopt(PACKET_RX_RING) bug and socket leak. This problem was the bug of packet_set_ring(). packet_set_ring() removes the hook for preparation of ring buffer, but it didn't restore. Also it's leaking the refcount of sk. input: Move devfs entries for joystick into /dev/input input: Fixes and updates of the USB ForceFeedback drivers. Added Logitech MOMO FF steering wheel ID. [ACPI] change hard-coded IO width to programmable width http://bugzilla.kernel.org/show_bug.cgi?id=1349 from David Shaohua Li and Venatesh Pallipadi [IPV6]: Allow per-device max addresses configurable via sysctl. [IPV6]: Do not change DEVCONF_xxx indexed based upon kernel config. [NET] remove both incorrect and unneeded spinlock from sch_teql The spinlock was held while calling functions that could block, while simultaneously being at all times inside the context of module init/exit. Thanks to DaveM. JFS: Creating large xattr lists may cause BUG The bug was caused by a flag being or'ed against an unitialized value, rather than setting the flag correctly. [ATM]: Kill unused declaration in clip.c [PATCH] I2C: remove CONFIG_ISA dependancy for I2C_ISA as x86_64 does not have CONFIG_ISA ia64: Replace unwcheck shell-script with a Python script which works correctly even on 32-bit hosts. As an added bonus, it's faster, too. Run "unwcheck" by default, but for now, don't let unwcheck errors cause the kernel build to fail. [netdrvr forcedeth] linux/interrupt wasn't enough :) include asm/irq.h too Thanks to DaveM. [PATCH] I2C: restore correct vaio handling in eeprom driver Here is a patch to the eeprom driver in 2.6.1 that changes the way Vaio eeproms are handled. In 2.6.1, the eeprom is readable only by root, which isn't consistent with the 2.4 driver which simple hides (i.e. fills it with zeroes) the first row (16 bytes) of the eeprom to regular users. The patch restores a similar behaviour in the 2.6 driver. ia64: If GAS can handle .align inside code, enable it via TEXT_ALIGN(). [PATCH] fix pdeath_signal SMP locking Obviously almost noone uses the pdeath_signal feature, since this has gone unnoticed for quite some time. This patch calls the function that does the right locking for the context of this call (inside exit_notify). The names of the signal.c entrypoints are a little confusing. input: Alt-arrow console switch is routinely dropped under high load. This patch fixes it: alt-arrow has to start from console _we want to switch to_, if switch is already pending. Cset exclude: mashirle@us.ibm.com|ChangeSet|20040115231022|51079 input: Added BUS_BLUETOOTH definition for BlueTooth HID devices. [ALPHA] Tidy ELF_HWCAP and ELF_PLATFORM. Provide all relevant platform identifiers up to ev67. [ALPHA] Tidy buglets in sigreturn paths: Don't pretend support for _NSIG_WORDS > 1. Don't verify_area on more memory than we actually care about. Don't fiddle stack_t in do_rt_sigreturn. [SCTP] ADDIP: Handle T4 RTO timer expiry. [SCTP] Fix bugs in byte order conversion while processing address related SCTP socket options. [QLOGICPTI]: Fix SMP locking, tested by Chris Ricker. [SERIAL] make HCDP dependent on serial console Patch from Bjorn Helgaas I propose the following HCDP Kconfig patch. It makes HCDP selectable only when serial console has been selected. One desirable side effect is that both are then available only when statically compiled in (i.e., not built as a module). The HCDP support doesn't actually depend on IA64, but I left that in for now because nobody else implements support for it and I don't want people confused by a selectable option that doesn't do anything. Maybe a "depends on EFI" or something will be useful eventually. [SERIAL] make ACPI serial module unload work Patch from Bjorn Helgaas This patch makes ACPI serial ports work right when the serial driver is built as a module. Previously, loading worked fine, but we didn't clean up on module removal. [PATCH] I2C: clean up ISA dependancies Quoting myself: > 1* Elektor depends on ISA. > 2* ELV and Velleman do not depend on ISA. > 3* i2c-isa is M by default, and has an additional help text > 4* via686a autoselects i2c-isa > 5* i2c-isa doesn't depend on ISA Here's the patch: [PATCH] I2C: i2c-i801 help [PATCH] I2C: speed up eeprom driver by a factor of 4 Basically, I divide the eeprom in 8 32-byte slices. Each of it has a "valid" boolean (combined together into a bitfield) and a jiffies counter. Eeprom_update_client() is added a new parameter to specify which slice to update. Code updated accordingly. Finally, the read function updates only slices that need to be. The code is heavily inspired from what was done in the CVS driver, of course. Three additional notes: 1* This fixes a bug in eeprom_update_client()'s refresh condition. We used to check jiffies before valid, although jiffies are not defined if valid isn't true. That was already fixed in our CVS driver but for some reason the fix did not go into 2.6 yet. 2* This also skips the update if the read if out of bounds. I think this is the thing to do. 3* It can be discussed wether eeprom_update_client() should take two slice parameters instead of one (start slice, end slice). This would make things slightly faster when consecutive slices are requested. Maybe the code would even be clearer. It wasn't done so far because the CVS driver wouldn't benefit from it (because the EEPROM's contents are split over several "output" files in that version of the driver) but I'll probably give it a try in 2.6. [PATCH] USB Storage: patch to unusual_devs.h for Pentax Optio 330GS camera I was unable to get my Pentax Optio 330GSrecognised by the 2.6.0 kernel until I applied the patch below that I found posted some months ago on the German Debian mailing list. I have attributred it to the original poster. [PATCH] USB storage: unusual_devs.h change On Tue, 23 Dec 2003, sledgedog wrote: > USB Mass Storage support registered. > hub 3-0:1.0: new USB device on port 2, assigned address 2 > usb-storage: This device (090c,1132,0100 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h > Please send a copy of this message to Thank you for sending this in. Greg, here is the patch for unusual_devs.h, both 2.4 and 2.6. [PATCH] USB Storage: another unneeded unusual_devs entry On Fri, 2 Jan 2004, Oliver Neukum wrote: > Hi Alan, > > you seem to like them. Here it is: > > usb-storage 3-1:1.0: usb_probe_interface > usb-storage 3-1:1.0: usb_probe_interface - got id > usb-storage: This device (0686,4014,0001 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h > Please send a copy of this message to > scsi1 : SCSI emulation for USB Mass Storage devices > Vendor: MINOLTA Model: DIMAGE CAMERA Rev: 1.00 > Type: Direct-Access ANSI SCSI revision: 02 Thanks Oliver. Interestingly, it looks as though the unneeded SubClass and Protocol values were the only reason for keeping this entry, so now it can be deleted in both 2.4 and 2.6. [PATCH] USB Storage: another unusual_devs entry On Fri, 2 Jan 2004, Eric Lussard wrote: > <5>usb-storage: This device (05e3,0701,0002 S 02 P 50) has an unneeded > Protocol entry > in unusual_devs.h > <4> Please send a copy of this message to > Yet another unusual_devs change! I really should stick to a policy of reading through all the new email before sending any replies... [PATCH] USB Storage: unusual_devs.h update On Wed, 14 Jan 2004, Marcin Juszkiewicz wrote: > After running "MS Import" on my Sony Clie SJ30 palmtop I got: > > hub 3-0:1.0: new USB device on port 2, assigned address 6 > usb-storage: This device (054c,006d,0100 S 05 P 00) has unneeded SubClass and Protocol entries in unusual_devs.h > Please send a copy of this message to Thanks for sending this. The updated information will appear in an upcoming kernel. [PATCH] USB: add another PID to ftdi_sio This patch adds a new product ID to the list of devices using the FTDI232BM chip. It applies cleanly against vanilla 2.6.0. [PATCH] USB: Missing patch for ftdi_sio.c On Sat, 2004-01-10 at 05:07, Greg KH wrote: > On Thu, Dec 18, 2003 at 10:28:24PM +0100, Rasmus Rohde wrote: > > I wrote to you earlier about a missing patch to ftdi_sio.c that appeared > > in > > > > http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.5/usb-ftdi_sio-2.5.68.patch > > > > It has to do with the introduction tiocmset and tiocmget. > > This patch was dropped in > > > > http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.5/usb-ftdi_sio-2.5.75.patch > > > > which unfortunately breaks the driver. > > Hm, sorry about that. Care to send me a patch to fix it up? [PATCH] USB: add Driver for Emagic A6-2 (formerly known as EMI 6|2m) this patch which applies against Linux-2.6.0 (and also 2.6.1) adds support for the Emagic A6-2 USB-Audio-Interface. Note that the selection of either MIDI or SPDIF is actually done by ifdefs in the driver, this behaviour should clearly be changed to MODULE_PARAM in the future. See for details. [PATCH] USB: fix up compiler warnings and other stuff in the emi62 driver. [PATCH] USB: update the cyberjack driver [PATCH] USB Storage: Old patches (as129 and as141) There's a couple of old patches floating around still that you might want to apply. I have reproduced them below. as129 handles the situation where a command error causes us to do a device reset, but the SCSI layer times out and aborts the command during the reset delay. It clears a flag that otherwise will prevent us from sending the clear-halt messages following the reset. as141 is the DMA buffer alignment patch. You asked me to remind you about it eventually. There shouldn't be any harm at all in applying it without waiting for the corresponding SCSI part of the patch to be applied. Without that other part, this will essentially do nothing. Alan Stern [PATCH] USB: usbnet on 2.6.0 -- needs ax8817x_ethtool_ops On Tue, 2003-12-23 at 22:49, David Brownell wrote: > > This patch should take care of it. Additionally, I had to fold one of > > my patches that's in the queue for 2.6.1 (ethtool link check fix) into > > this as the other would not apply due to changes. > > It looks fine, though it didn't apply against Greg's usb-devel-2.6 > tree ... which has a few more methods added. > > I guess I'll just add this one to my tree, and let you merge this > with those additional ax8817x changes. > > - Dave > Re-diffed against the usb-2.6-devel tree. [PATCH] USB: EHCI support on MIPS From Darwin Rambo, These get rid of 8 and 16 byte PCI access, which don't work on some MIPS platforms. [PATCH] USB: high speed iso maxpacket is 1024 not 1023 Someone sent this around mixed with an EHCI patch which should not be applied (there's a different patch on the way). I lost their name, sorry. It lets 1024 byte ISO packets be used. [PATCH] ia64: fix cast in irq_lsapic.c This patch just updates the cast in irq_lsapic.c to use the cpumask_t type for the noop cast assignment to smp_affinity. [PATCH] ia64: kill some more warnings Kills a warning and a false sense of safety by removing the volatile qualifier on cpu_to_node_map[] and node_to_cpu_mask[]. Also fix the printk for total processors since num_online_cpus() can return an int or a long depending on the value of NR_CPUS. [PATCH] USB: ehci update: 1/3, misc This is minor "obvious" fixes plus two tweaks to help later patches: - Interrupt QH has a link to the device, needed to implement schedule trees (like OHCI does today) that are TT-aware (essential for most keyboards and mice). - Export the macros that do high bandwidth packetsize stuff. They're also needed for high bandwidth ISO transfers. It also morphs some existing "too much debug info" urb tracing so it's kicked in by a manual #define EHCI_URB_TRACE. If some generic version of that gets added to usbcore, this sort of debug code can vanish (from all hcds). [PATCH] USB: ehci update: 2/3, microframe scanning This patch is needed to make high bandwidth ISO streams behave, but could resolve some other scanning glitches. Current users of periodic transfers (interrupt transfer modes for hubs, mice, and keyboards) shouldn't even notice this change. It makes the periodic schedule scan handle cases where a given frame's schedule slot reports completions in several different microframes. So far that's been uncommon, but it's typical for high bandwidth iso (or even with busier interrupt trees than this driver has supported yet). It also starts to remove the assumption that each ITD only uses one microframe; but most of those changes are in the next patch. And it fixes a bug where some status bits were mis-interpreted as significant bits in the ITD transfer length. [PATCH] USB: ehci update: 3/3, highspeed iso rewrite This is an updated version of a patch submitted to me from Michal Sojka , basically providing a much-needed rewrite of the highspeed ISO support. I updated the scheduling and made it a closer match to how OHCI works; and also tested it a bunch. So far it seems most of the requests for highspeed ISO support have been for realtime data collection -- custom apps, nothing a mainstream kernel would ship with. The USB Video class is now defined; highspeed video will also need these updates. Key changes: - Define an "iso_stream" head for iso endpoints. This acts enough like a QH that endpoint_disable() works. It holds the queue of ITDs, and the endpoint's current schedule state. And it's easy to find (spinlocked array access), no search. - Uses a temporary "itd_sched" while submitting each URB, with not-yet-linked ITDs and request-specific metadata. There's a per-stream cache of ITDs, so resubmitting ISO urbs (to achieve a "ring" of transfers) is typically cheap. - Scheduling for most URBs is almost a NOP: just a sanity check to make sure there's no need to reschedule, and then just link into the schedule at the current schedule slot. (The previous code was a gross hack that didn't even work reasonably with more than two URBs queued.) - Is a reasonable model to use with full speed ISO transfers. (They need additional TT scheduling hooks, most of which are already written but not merged.) - Handles several cases the previous code didn't, including high bandwidth transfers (loads up to 24 MByte/sec) - Has had more testing than the old code, including 20+ hour successful IN+OUT runs, more varied transfer intervals and maxpacket sizes. (Using net2280 and a gadgetfs driver.) So it's worth replacing the existing code with this; there aren't too many rough edges, and it's much more fixable than the previous version. p.s. Many thanks, Michal! [PATCH] USB: fix whiteheat problems > CC [M] drivers/usb/serial/whiteheat.o > drivers/usb/serial/whiteheat.c: In function `firm_setup_port': > drivers/usb/serial/whiteheat.c:1209: `CMSPAR' undeclared (first use in this function) > drivers/usb/serial/whiteheat.c:1209: (Each undeclared identifier is reported only once > drivers/usb/serial/whiteheat.c:1209: for each function it appears in.) [PATCH] USB: powermate-payload-size-fix.patch Thomas has a newer variant of this device, which sends more data. [PATCH] USB Storage: Remove non s-g pathway from subdriver READ/WRITE This patch does what you suggested. The read/write routines from the updated subdrivers are changed so they don't bother to differentiate between transfers that do or do not use scatter-gather. The low-level usb_stor_access_xfer_buf routine will Do The Right Thing regardless, and there probably won't ever be more than a few non s-g calls. (What about filesystem I/O requests to access metadata?) It turns out that in addition to removing some comments and a few tests, this change allowed me to remove the buffer and use_sg arguments passed to the read/write routines as well. So the simplification ended up being a bit bigger than I expected. While writing this patch, I noticed spots in several drivers that still need to be changed -- they slipped past me before. These drivers handle things like READ-CAPACITY or REQUEST-SENSE by copying the data directly to srb->request_buffer, which is obviously wrong if s-g is being used. I'll send in changes next week that convert them to use the usb_stor_set_xfer_buf function. Like you said, it's going to be handy in more places than originally intended! [PATCH] USB Storage: Scatter-gather fixes for non READ/WRITE in datafab These patch fixes the scatter-gather usage in the datafab driver for commands other than READ or WRITE. It also tidies up the MODE-SENSE handler considerably and reports more command failures correctly. [PATCH] USB Storage: Fix scatter-gather for non READ/WRITE in jumpshot These patch fixes the scatter-gather usage in the jumpshot driver for commands other than READ or WRITE. It also tidies up the MODE-SENSE handler considerably and reports more command failures correctly. [PATCH] USB Storage: Fix scatter-gather for non READ/WRITE in sddr09 This patch (from Alan Stern as157) fixes the non-READ/WRITE paths of the sddr09.c driver to be compliant to the requirements of scatter-gather. It also cleans up MODE_SENSE processing and reports errors a little better. This patch also makes MODE_SENSE_10 commands report an error. The old code claimed to support both 6- and 10-byte versions, but really only supported 6-byte. Bad data was returned for the 10-byte case, so it was removed. A patch to follow in a few minutes fixes this. [PATCH] USB Storage: Fix scatter-gather for non READ/WRITE in sddr55 These patch fixes the scatter-gather usage in the sddr55 driver for commands other than READ or WRITE. It also tidies up a few other commands. [PATCH] USB Storage: fix mode-sense handling for 10-byte commands This patch fixes sddr09 and sddr55 to suppor the MODE_SENSE_10 commands, which are the only variants used by sd.c [PATCH] USB Storage: add sysfs info attribute This patch adds a sysfs attribute to the usb-storage SCSI devices. This attribute (read-only) is basically a clone of the information available in /proc/scsi/scsi -- since that interface is going away, adding a new sysfs attribute seemed like a good idea. [PATCH] USB: W996[87]CF driver update This patch contains updates and one bug fix. input: Key 89 is RO, not ROMAJI. [PATCH] fix qla2xxx build for older gcc's drivers/scsi/qla2xxx/qla_def.h:1139: warning: unnamed struct/union that defines no instances drivers/scsi/qla2xxx/qla_iocb.c:440: union has no member named `standard' Older gcc's don't understand anonymous unions. aha152x PCMCIA fix From: Thomas Schlichter the attached patch fixes a link error of the kernel module 'drivers/scsi/ pcmcia/aha152x_cs.ko' because of two module_init() and two module_exit() functions. Now the module links but I did not test it further... [PATCH] MPT Fusion x86-64 boot fix [IEEE1394]: Fix highlevel reset, which was using the wrong list to iterate. [PATCH] Fix error path when adding sysfs attributes Stop adding sysfs attributes after we call scsi_remove_device() when we encounter an error. Also a small whitespace cleanup and removing a useless "return". [PATCH] scsi_eh_flush_done_q return status This patch fixes a bug in scsi_eh_flush_done_q when the allowed count has been exceeded and the command errored for a timeout. The bug is that the result will be left at zero and the command finished. patched-scsi-misc-2.7-andmike/drivers/scsi/scsi_error.c | 28 +++++++--------- 1 files changed, 13 insertions(+), 15 deletions(-) [IEEE1394]: Re-add init_hpsb_highlevel() call to highlevel_add_host. [ACPI] ACPICA 20040116 from Bob Moore The purpose of this release is primarily to update the copyright years in each module, thus causing a huge number of diffs. There are a few small functional changes, however. Improved error messages when there is a problem finding one or more of the required base ACPI tables Reintroduced the definition of APIC_HEADER in actbl.h Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h) Removed extraneous reference to NewObj in dsmthdat.c input: Bugfixes in atkbd and psmouse-base probing. (use unsigned char param[] in atkbd_event, like everywhere else, use param[0] instead of *param at the same place, properly set serio->private to NULL if probe fails in both atkbd and psmouse, and fix preinitializing of the return buffer in *_command() funcitons.) input: Add support for HP PARISC keyboards to atkbd.c input: Always wait for hid request completion in hiddev before returning to the caller process. [PCMCIA] Add refcounting to struct pcmcia_bus_socket If you perform the following commands in order: # cardctl eject # rmmod yenta_socket # insmod drivers/pcmcia/yenta_socket.ko # killall cardmgr the rmmod ends up freeing the pcmcia_bus_socket while the wait queue is still active. The killall cardmgr cases the the select() to complete, and users to be removed from the "queue" - which ends up writing to freed memory. The following patch adds refcounting to pcmcia_bus_socket so we won't free it until all users have gone. We also add "SOCKET_DEAD" to mark the condition where the socket is no longer present in the system. Note that we don't wake up cardmgr when we remove sockets - unfortunately cardmgr doesn't like receiving errors from read(). Really, cardmgr should treat EIO from read() as a fatal error for that socket, and stop listening for events from it. [PCMCIA] Get rid of racy interruptible_sleep_on() ds.c uses interruptible_sleep_on() without any protection. Use wait_event_interruptible() instead. In addition, fix a bug where threads waiting for cardmgr events to complete were left waiting if cardmgr exited. [PCMCIA] Remove write-only socket_dev No need for a local pointer for the struct device, especially when it is only ever written. If necessary, the device can be accessed using s->parent->dev.dev [PCMCIA] Remove unused variable warnings. Remove unused variable 'i' in fops methods. Fix debug macros which were the sole consumers of this variable. [PATCH] cleanup IDE multicount PIO write code Noticed by Christophe Saout . This code has been dead since kernel 2.4.2 and it is bogus too. [PATCH] remove IDE packet taskfile placeholders This dead code was introduced in kernel 2.4.19 and hasn't been updated since. Fix minor bug in handling of compressed directories that fixes the erroneous "du" and "stat" output people reported. [PATCH] qla1280 update I am attaching the latest patch for qla1280, which includes Andrew's and James' patches (modulo the 64 bit enable part) as well changes to make it handle pci_set_dma_mask() correctly and switch to only use one of the two SCSI command issuing versions depending on whether the driver is compiled for 64 or 32 bit DMA. The old code effectively did this anyway, but with this change it is no longer compiling in the part not used. [PATCH] No LUNs detected with qla2xxx / qla2300 The problem is during the removal of the failover and IOCTL code from the scsi-qla2xxx-2.6 tree, one critical piece of code (a one-liner) was inadvertently removed that effectively disables the drivers ability to bind fcports (devices found in the loop or fabric) to the SCSI nexus (h/b/t/l). [PKTGEN]: Fix divide by zero and get integer precision at very short time intervals. ia64: arch/ia64/Kconfig URL update: www.linux-on-laptops.com [SUNRPC]: Handle copy_*_user and put_user errors [NET]: Fix linux-on-laptops URL in net driver Kconfig. [NET]: Include sysctl.h in neighbour.h regardless of config. [PATCH] SH Merge From: Paul Mundt Here's a rather large update for SH (this is a bit large mainly since a number of things have piled up, and Linus didn't want any of this during feature freeze time). All of these changes are specific to the SH platform, and as such, shouldn't effect any other platforms. [PATCH] kyrofb support From: Paul Mundt This patch adds support for the Kyro graphics boards (STG4000/PowerVR 3/etc= .) to 2.6. This is a direct port and substantial cleanup / rewrite of the 2.4 driver that's available in the sh64 tree at linux-sh.bkbits.net. Some of the overlay code and the STG4000 bits are still a bit ugly, so be forewarned. [PATCH] radeonfb line length fix From: Benjamin Herrenschmidt Fix the calculation of screenpitch and line lengths. [PATCH] loop: fix hard sector size From: Ben Slusky We need to set the hardsect_size of the loop device to that of the real device. The loop device advertises a block size of 1024 even when configured over a cdrom. When burning a ext2 on a cd, and mounting it directly, I get: blocksize=2048; when I losetup /dev/loop0 /dev/cdrom, and then try to mount, I get: blocksize=1024; and then misaligned transfer; this results in not being able to read the superblock. The loop device should be changed to export the same blocksize of the underlying device [PATCH] loop: fix file refcount leak - Fix an error-path file refcount leak - Remove unnecessary get_file()/fput() pair. - Clean up error handling a little [PATCH] bdev: open() changes The first of a series which move us toward blockdev hotplug support. After these we have achieved the following: a) For "normal" (not bdevfs) inodes of block devices we never look at ->i_mapping. b) For the same inodes we only look at ->i_bdev in bd_acquire() where it's used only as "here's what we'd found the last time" sort of cached value. If it's NULL, we just recalculate it. c) Lots of messy expressions had been trimmed down, while we are at it. (a) and (b) allow us to start doing proper block hotplug - we can destroy the association between inode and bdev at any time, unhash bdev in question and have new open() do everything from scratch, without waiting for old opened files to close. The goal is to be able to say "revoke everything over that gendisk"/"revoke that partition" and have it do the right thing. This patch: Where the old code called (block device) ->open(inode, file), use ->open(inode->i_bdev->bd_inode, file). Changes in drivers: * none to those that only used inode->i_bdev and inode->i_rdev in their ->open() (bdev->bd_inode->i_bdev == bdev, so we are OK) * floppy.c and floppy98.c used to call permission(inode, ...) in floppy_open(). Switched to permission(file->f_dentry->d_inode, ...) [PATCH] bdev: blkdev_put() cleanup From: viro@parcelfarce.linux.theplanet.co.uk Trivial cleanup in blkdev_put() - replace bdev->bd_inode->i_bdev with bdev. [PATCH] bdev: presto conversion From: viro@parcelfarce.linux.theplanet.co.uk presto_journal_close() switched to passing struct presto_file_data * instead of bogus struct file *. The only field of struct file we used to look at was file->private_data and most of the callers allocated on-stack struct file, assigned file.private_data and passed the sucker to presto_journal_close(). Idiocy removed. Looks like they started with case where the data they wanted all along was, indeed, in ->private_data of already available struct file, so they just passed pointer to struct file. And when they found that they need to call it in other places where there was no such struct file, they'd done it the dumb way instead of fixing the prototype... [PATCH] bdev: add file.f_mapping From: viro@parcelfarce.linux.theplanet.co.uk New field of struct file - ->f_mapping. We maintain the following: file->f_dentry->d_inode->i_mapping == file->f_mapping for all opened files. [PATCH] bdev: switch to f_mapping From: viro@parcelfarce.linux.theplanet.co.uk A lot of places used to use ->f_dentry->d_inode->i_mapping all over the place. Replaced with use of ->f_mapping. For now - just the places where we literally could do search-and-replace. [PATCH] bdev: use correct mapping's i_sem From: viro@parcelfarce.linux.theplanet.co.uk In a bunch of places we used file->f_dentry->d_inode->i_sem to protect fdatasync et.al. Replaced with corrent file->f_mapping->host->i_sem - the object we are protecting is address_space, so we want an exclusion that would work for redirected ->i_mapping. For normal files (not coda, not bdev) it's all the same, of course - there we have file->f_mapping->host == file->f_dentry->d_inode and change above is an equivalent transfromation. [PATCH] bdev: move i_mapping -> f_mapping conversions From: viro@parcelfarce.linux.theplanet.co.uk More uses of ->i_mapping switched to uses of ->f_mapping - stuff that was not caught by the earlier f_mapping conversion. [PATCH] bdev: generic_osync_inode() conversion From: viro@parcelfarce.linux.theplanet.co.uk generic_osync_inode() got an extra argument - mapping and doesn't calculate inode->i_mapping anymore. Callers updated and switched to use of ->f_mapping. [PATCH] bdev: bd_acquire() cleanup From: viro@parcelfarce.linux.theplanet.co.uk bd_acquire() made static, switched to returning the block_device it had found. Callers updated. [PATCH] bdev: generic_write_checks() cleanup From: viro@parcelfarce.linux.theplanet.co.uk generic_write_checks() had lost the first argument (inode) - it can be calculated from the second one (file). [PATCH] bdev: add I_BDEV() From: viro@parcelfarce.linux.theplanet.co.uk For bdevfs inodes (ones created along with struct block_device by fs/block_dev.c) we have inode->i_bdev equal to &BDEV_I(inode)->bdev (i.e. it's at the constant offset from inode). New helper added for such inodes (I_BDEV(inode)). A bunch of places (mostly in block_dev.c) switched to use of that helper. A bunch of places that used file->f_dentry->d_inode->i_bdev->bd_inode switched to file->f_mapping->host - those expressions are equal whenever the former is valid. [PATCH] cramfs: use pagecache better From: viro@parcelfarce.linux.theplanet.co.uk Patch switches cramfs_read() to direct use of pagecache and eliminates all messing with buffer_heads. Fixes the interaction with ramdisk (there set_blocksize() simply killed the ramdisk contents) and gets code less brittle overall. [PATCH] raw.c refcounting fix From: viro@parcelfarce.linux.theplanet.co.uk raw.c has a refcounting bug (patch attached). As for the theory... If you have a pathname - use filp_open() or open_bdev_excl() and be done with that. bdget() et.al. are OK only if you really have nothing better than device number and that's a situation that should be avoided unless you really have no choice. Said that, we have the following primitives: * lookup_bdev(): takes a pathname, returns a reference to block_device. * bdget(): takes a number, returns a reference to block_device. * blkdev_get(): takes a reference to block_device and opens it. If open fails - drops the reference to block_device passed to it. * blkdev_put(): takes a reference to block_device and closes it. The reference is dropped. * bdput(): drops a reference to block_device. Note that behaviour of blkdev_get() and blkdev_put() is such that it makes for minimal cleanup code. bd_claim()/bd_release() is the exclusion mechanism - that's what mount, swapon, open with O_EXCL, etc. are using to avoid stepping on each others toes. bd_claim() claims bdev for given owner; if it's already owned and not by the same owner you'll get -EBUSY. bd_release() reverts the effect of bd_claim(). Note that if you claim the thing N times (with the same owner, obviously), you'll need N bd_release() before it stops being owned. raw.c grabbed a reference to bdev only after blkdev_get(). If blkdev_get() failed (e.g. media being absent), you've got an unbalanced bdput(). [PATCH] Input: smooth out mouse jitter From: Dmitry Torokhov When calculating deltas for touchpads that generate absolute events use average over the last 3 packets to remove jitter [PATCH] mousedev PS/@ emulation fix From: Dmitry Torokhov correctly perform PS/2 (mousedev) emulation for touchpads generating absolute events (do not stop with the first client) [PATCH] input: i8042 suspend From: Dmitry Torokhov Add suspend methods to restore original controller state on suspend as some BIOS don't like the state we leave it in. Also synchroniously delete the polling timer on module exit. [PATCH] input: i8042 option parsing From: Dmitry Torokhov With Vojtech's approval adjusted i8042 option names by dropping i8042_ prefix. If i8042 is compiled as a module new option names are: direct, dumbkbd, noaux, nomux, reset, unlock. If i8042 is build in the kernel the prefix "i8042." is required in front of an option, like "i8042.reset" [PATCH] input: psmouse option parsing From: Dmitry Torokhov With Vojtech's approval adjusted psmouse option names by dropping psmouse_ prefix. If psmouse is compiled as a module new option names are: proto, rate, resetafter, resolution, smartscroll If psmouse is built in the kernel the prefix "psmouse." is required in front of an option, like "psmouse.proto" Also, since we are changing all names, killed psmouse_noext completely [PATCH] input: atkbd option parsing From: Dmitry Torokhov Convert atkbd to the new style of option parsing. If compiled as a module new option names are: set, softrepeat, reset. If built into the kernel options must be prepended with "atkbd." prefix, like "atkbd.softrepeat" [PATCH] input: missing module licenses From: Dmitry Torokhov Add missing MODULE_LICENSEs [PATCH] Kconfig Synaptics help From: Dmitry Torokhov Kconfig help section update - Suggest psmouse.proto=imps option to Synaptics users who do not want installing native XFree driver but want tapping work [PATCH] input: SiS AUX port From: Dmitry Torokhov Do not ignore AUX port if chipset fails to disable it (SiS seems to have trouble disabling AUX port, other than that the port works fine). [PATCH] Fix compile error in 98busmouse.c module From: Dmitry Torokhov Fix 98busmouse compile error - have interrupt routine return IRQ_HANDLED [PATCH] Convert mouse drivers to use module_param From: Dmitry Torokhov Convert the rest of mouse devices to the new way of handling kernel parameters and document them in kernel-parameters.txt [PATCH] Convert tsdev to use module_param From: Dmitry Torokhov Convert tsdev to the new way of handling parameters and document them in kernel-parameters.txt [PATCH] ppc64: clean up WARN_ON backtrace From: Anton Blanchard clean up WARN_ON backtrace [PATCH] ppc64: revert IRQ_INPROGRESS change From: Anton Blanchard revert IRQ_INPROGRESS change [PATCH] ppc64: Build the zImage by default From: Anton Blanchard Build the zImage by default [PATCH] ppc64: add automatic check for biarch compilers From: Anton Blanchard add automatic check for biarch compilers [PATCH] ppc64: ptrace.h PT_FPSCR fixup, from Will Schmidt From: Anton Blanchard ptrace.h PT_FPSCR fixup, from Will Schmidt [PATCH] ppc64: HvCall_writeLogBuffer called with too large of a buffer From: Anton Blanchard HvCall_writeLogBuffer called with too large of a buffer [PATCH] ppc64: support for ibm,phandle OF property, from Dave Engebretsen: From: Anton Blanchard Upcoming partition firmware requires the use of the ibm,phandle property for matching device nodes. Add a new field in device_node to contain this data. [PATCH] ppc64: New Open Firmware device tree API, from Nathan Lynch From: Anton Blanchard This is an adaptation of the new Open Firmware device tree traversal API from ppc32, originally written by Benjamin Herrenschmidt. This patch is against 2.6.0-test3, but should apply ok to the latest 2.5 ameslab tree. These functions are meant to be SMP-safe alternatives to the current set of query/traversal routines (find_devices, find_type_devices, et al). [PATCH] ppc64: Change to new OF device tree API, from Nathan Lynch From: Anton Blanchard Attached is a patch which replaces all the uses of the old device tree API in arch/ppc64. Patch is against 2.6.0-test5 (cset 1.1328) from ameslab bk, plus the patch from my previous message. I've tested this on a pSeries LPAR. [PATCH] ppc64: vty updates, from Hollis Blanchard From: Anton Blanchard vty updates, from Hollis Blanchard [PATCH] ppc64: hvc_console can only handle vty nodes compatible with "hvterm1", from Hollis Blanchard From: Anton Blanchard hvc_console can only handle vty nodes compatible with "hvterm1", from Hollis Blanchard [PATCH] ppc64: use device_is_compatible() instead of manual strcmp, from Hollis Blanchard From: Anton Blanchard use device_is_compatible() instead of manual strcmp, from Hollis Blanchard [PATCH] ppc64: Make IPI receivers survive a late arrival after the sender has given up waiting, from Olof Johansson From: Anton Blanchard Make IPI receivers survive a late arrival after the sender has given up waiting, from Olof Johansson [PATCH] ppc64: support for runtime updates of /proc/device-tree, from Nathan Lynch From: Anton Blanchard support for runtime updates of /proc/device-tree, from Nathan Lynch [PATCH] ppc64: base support for dynamic update of OF device, tree from Nathan Lynch From: Anton Blanchard base support for dynamic update of OF device, tree from Nathan Lynch [PATCH] ppc64: various trivial patches From: Anton Blanchard various trivial patches [PATCH] ppc64: Open Firmware device tree manipulation support, from Nathan Lynch From: Anton Blanchard Implementation of /proc/ppc64/ofdt, for manipulation of Open Firmware device tree (/proc/device-tree). Supports addition and removal of OF device nodes. [PATCH] ppc64: Mem-map I/O changes, from Mike Wolf From: Anton Blanchard Mem-map I/O changes, from Mike Wolf [PATCH] ppc64: extended flash changes, from Mike Wolf From: Anton Blanchard extended flash changes, from Mike Wolf [PATCH] ppc64: cputable update, from Dave Engebretsen From: Anton Blanchard Sync 2.4 & 2.6 cputable code. Adds 970 and Power5 processor support plus new firmware features. [PATCH] ppc64: cputable cleanup, from Dave Engebretsen: From: Anton Blanchard Formatting cleanup, fix for firmware_features init, use cpu_features to display processor names. [PATCH] ppc64: iSeries fixups, from Stephen Rothwel From: Anton Blanchard iSeries fixups, from Stephen Rothwel [PATCH] ppc64: Add some rtas calls, from John Rose From: Anton Blanchard Added functions for 3 RTAS calls get-power-level get-sensor-state set-indicator [PATCH] ppc64: rename the rtas event classes to avoid namespace collisions, from John Rose From: Anton Blanchard rename the rtas event classes to avoid namespace collisions, from John Rose [PATCH] ppc64: fix sign extension bug in NUMA code From: Anton Blanchard The ppc64 NUMA code has a sign extension problem. We would sign extend tmp1 when assigning it to start. Fix this by making tmp1 unsigned. [PATCH] ppc64: Add exports and change some __init to __devinit for dynamic OF and pci hotplug, from John Rose and Linda Xie From: Anton Blanchard Add exports and change some __init to __devinit for dynamic OF and pci hotplug, from John Rose and Linda Xie [PATCH] ppc64: Add _syscall6, from Olaf Hering From: Anton Blanchard Add _syscall6, from Olaf Hering [PATCH] ppc64: fix sched_clock, from Paul Mackerras: From: Anton Blanchard Currently the sched_clock implementation for PPC64 is bogus. It just reads the timebase register, which counts at some fixed rate, typically around 100MHz. This patch adds code to calculate a suitable multiplier from the timebase frequency, and use that in sched_clock(). [PATCH] ppc64: compat layer update, from Paul Mackerras, Olaf Hering and myself From: Anton Blanchard - Switch to using the new compat aio syscalls - add compat timer/clock syscalls - use compat_statfs64 - add compat fadvise64_64 [PATCH] ppc64: add rtas syscall, from John Rose From: Anton Blanchard Added RTAS syscall. Reserved lowmem rtas_rmo_buf for userspace use. Created "rmo_buffer" proc file to export bounds of rtas_rmo_buf. [PATCH] ppc64: shared processor support, from Dave Engebretsen From: Anton Blanchard Initial round of code to add shared processor support into 2.6. This adds h_call interfaces, paca/VPA fields, and vpa register. Add adds new idle loop code. [PATCH] ppc64: SMT processor support and logical cpu numbering, from Dave Engebretsen From: Anton Blanchard And SMT processor support & move back to a logical cpu numbering in support of DLPAR work. [PATCH] ppc64: UP compile fixes, from Paul Mackerras From: Anton Blanchard Minor fixes to make the UP case compile, export cpu_possible_map, fix up whitespace etc. [PATCH] ppc64: Add VMX registers to sigcontext, from Steve Munroe From: Anton Blanchard Add VMX registers to sigcontext, from Steve Munroe [PATCH] ppc64: one instruction fix for synchronization bug found during cpu DLPAR development, from Joel Schopp From: Anton Blanchard one instruction fix for synchronization bug found during cpu DLPAR development, from Joel Schopp [PATCH] ppc64: NVRAM error logging/buffering patch, from Jake Moilanen From: Anton Blanchard This is a port of the nvram buffering/error logging code from 2.4 to 2.6. It includes moving /proc/rtas to /proc/ppc64/rtas and making /proc/rtas a symlink to /proc/ppc64/rtas. It also splits up the /dev/nvram device read/write functions from the basic nvram access functions, and adds ppc_md fields for the nvram access functions. [PATCH] ppc64: preliminary iseries support, from Paul Mackerras From: Anton Blanchard Preliminary iSeries support. Still a bit hackish in parts but it does compile. The viodasd driver is almost completely untested so don't trust it with your data. [PATCH] ppc64: Add additional hypervisor call constants, from Dave Boutcher From: Anton Blanchard Add additional hypervisor call constants, from Dave Boutcher [PATCH] ppc64: iSeries fixes, from Stephen Rothwell From: Anton Blanchard iSeries fixes, from Stephen Rothwell [PATCH] ppc64: fix a couple small OF device tree bugs which were overlooked, from Joel Schopp From: Anton Blanchard fix a couple small OF device tree bugs which were overlooked, from Joel Schopp [PATCH] ppc64: Tidy up various bits of the iSeries code. No significant code changes, from Stephen Rothwell From: Anton Blanchard Tidy up various bits of the iSeries code. No significant code changes, from Stephen Rothwell [PATCH] ppc64: Small cleanups to iSeries virtual ethernet driver, from Dave Gibson From: Anton Blanchard Small cleanups to iSeries virtual ethernet driver, from Dave Gibson [PATCH] ppc64: add hcall interface From: Anton Blanchard add hcall interface [PATCH] ppc64: VIO support, from Dave Boutcher, Hollis Blanchard and Santiago Leon From: Anton Blanchard Add virtual I/O support. These routines provide the infrastructure needed by virtual SCSI, virtual ethernet, virtual serial on IBM pSeries servers [PATCH] ppc64: Get native PCI going on iSeries, from Paul Mackerras From: Anton Blanchard Get native PCI going on iSeries, from Paul Mackerras [PATCH] ppc64: add/forward port of lparcfg, from Will Schmidt From: Anton Blanchard add/forward port of lparcfg, from Will Schmidt [PATCH] ppc64: Update the surveillance boot parameter to allow all valid settings of the surveillance timeout, from Nathan Fontenot From: Anton Blanchard Update the surveillance boot parameter to allow all valid settings of the surveillance timeout, from Nathan Fontenot [PATCH] ppc64: fix POWER3 boot From: Anton Blanchard Binutils uses the recent mtcrf optimisation when compiling for a POWER4 target. Unfortunately this causes a program check on POWER3. We required compiling for POWER4 so the tlbiel instruction would be recognised. For the moment we hardwire the tlbiel instruction, longer term we can use the binutils -many flag. [PATCH] ppc64: VMX (Altivec) support & signal32 rework, from Ben Herrenschmidt From: Anton Blanchard VMX (Altivec) support & signal32 rework, from Ben Herrenschmidt [PATCH] ppc64: Fix {pte,pmd}_free vs. hash_page race by relaying actual deallocation with RCU, from Ben Herrenschmidt From: Anton Blanchard Fix {pte,pmd}_free vs. hash_page race by relaying actual deallocation with RCU, from Ben Herrenschmidt [PATCH] ppc64: __hash_page rewrite, from Ben Herrenschmidt From: Anton Blanchard Rewrite __hash_page function in assembly in such a way we don't need the page table lock any more. We now rely on a BUSY bit in the linux PTE on which we spin on when doing an update of the PTE [PATCH] ppc64: Tidy up the mf_proc code, from Stephen Rothwell From: Anton Blanchard Tidy up the mf_proc code, from Stephen Rothwell [PATCH] ppc64: prom_panic(), from Todd Inglett From: Anton Blanchard prom_panic(), from Todd Inglett [PATCH] ppc64: Check range of PCI memory and I/O accesses on iSeries, from Stephen Rothwell From: Anton Blanchard Check range of PCI memory and I/O accesses on iSeries, from Stephen Rothwell [PATCH] ppc64: Fix a compile error and a warning in the iSeries code, from Stephen Rothwell From: Anton Blanchard Fix a compile error and a warning in the iSeries code, from Stephen Rothwell [PATCH] ppc64: Use an atomic_t instead of a volatile unsigned long, from Stephen Rothwell From: Anton Blanchard Use an atomic_t instead of a volatile unsigned long, from Stephen Rothwell [PATCH] ppc64: Makefile fixes From: Anton Blanchard - remove old checks target, no longer used - add -mtraceback=none, we dont use traceback tables any more - add check for -mcpu=power4, older toolchains dont support this option [PATCH] ppc64: vmlinux.lds fixes, from Alan Modra From: Anton Blanchard - Remove a bunch of unnecessary sections - Always declare section labels inside the section (bug found on ppc32) - Rearrange sections to waste less space [PATCH] ppc64: setup_cpu must be called on boot cpu From: Anton Blanchard setup_cpu was being called for the boot cpu after all other cpus had been spun up. The init thread can sleep during secondary cpu spinup (eg migration thread init) and sometimes the init thread would switch to another cpu at this time. The end result was setup_cpu was called twice on one cpu and never on the boot cpu. The original fix called setup_cpu on the boot cpu before all others but that wont work for G5, so we now use cpu affinity calls to enforce it. [PATCH] ppc64: correct epoll syscall names From: Anton Blanchard correct epoll syscall names [PATCH] ppc64: cp_compat_stat should copy nanosecond fields From: Anton Blanchard Looks like glibc is using stat in some places, so we should modify it to copy the nanosecond fields. Also speed up stat by only checking the region once instead of each put_user call. [PATCH] ppc64: xmon breakpoint and single step on LPAR fixes from John Rose From: Anton Blanchard Xmon changes to make breakpoints and single-stepping work on pSeries LPARs. Also changed help text to reflect obsolete cmds. [PATCH] ppc64: Fixed rtas_extended_busy_delay_time() to calculate correct value, from John Rose From: Anton Blanchard Fixed rtas_extended_busy_delay_time() to calculate correct value, from John Rose [PATCH] ppc64: early BSS clear, from Ben Herrenschmidt From: Anton Blanchard Gone are the days of initialising stuff we touch in prom_init just to keep it out of the BSS. There are a few things the hypervisor writes to in the iseries case, hard code them into the data segment and add a comment. Remove the -fno-zero-initialized-in-bss hack, it was required when gcc got smart and put zero initialised stuff into the BSS [PATCH] ppc64: vio fixup From: Anton Blanchard vi fixup [PATCH] jffs: use daemonize() Use daemonize() rather than open-coding half of it. (I don't know if this has been tested - it has been in -mm for three months). [PATCH] Fix IO scheduler regression From: Nick Piggin Randy has just reported that this fixes up his regression. Its now as good as test5 in his tests with this patch. He is also seeing quite large increases (above test5) when IO scheduler barriers are disabled (this patch doesn't do that). Perhaps something is using them too liberally. Anyway, this reverts AS back to defaulting to not anticipate IO for a program that submits its first request (this really hurts find | xargs grep sort of things). I am working on something to fix this up properly. That can go in after 2.6.0 anyway. [PATCH] AS: request poisoning From: Nick Piggin I have tested this on my disks and cdroms, but they don't represent what all drivers might do. I have asked Jarkko Lehti with his dvd writing problem to try it... [PATCH] AS: request poisining fix From: Nick Piggin [PATCH] AS fixes From: Nick Piggin This fixes all known bugs with as in mm2. That constitutes small fixes for 2 WARNs getting triggered. It looks like Prakash's lost interrupt problem was due to as spewing bazillions of warnings, and he must have had his kernel.printk configured not to show them or something. I have to just get final confirmation from him that this final cut of the patch fixes his problem too. [PATCH] AS: new process estimation From: Nick Piggin This one gathers better statistics about the new process problem. It improves estimation for initial process IO. That is, better calculations for whether it will be worth waiting after a process submits its first read. This is done with a per queue average thinktime and seek time for a second read submitted from a process. When combined with 3/3, numbers are around the same as mm1 for most long lived tasks, but much better for things like the top 4 benchmarks. Probably wants rwhron and the OSDL database guys to give it some testing. test 2.6.0-test9-mm1 2.6.0-test9-mm1-np Cat kernel source during seq read 0:26.89 0:24.75 Cat kernel source during seq write 9:17.80 0:23.48 ls -lr kernel source during seq read 0:11.03 0:14.68 ls -lr kernel source during seq write 0:49.95 0:08.06 contest no_load 143s 0 loads 144s 0 loads contest io_load 193s 40.2 loads 193s 40.1 loads contest read_load 186s 11.6 loads 190s 10.5 loads contest list_load 201s 5.0 loads 200s 5.0 loads pgbench 1 client 31.3TPS 31.5TPS pgbench 4 clients 37.7TPS 37.5TPS pgbench 16 clients 42.1TPS 48.1TPS [PATCH] AS: thinktime improvement From: Nick Piggin Sometimes a processes thinktime shouldn't be measured on how soon it submits its next request, but how soon any close request is submitted. Some processes, such as those in make -j, find | xargs blah, etc. Should be waited upon even if they never submit another request, because they work with cooperating or child processes. This helps to take that into account. [PATCH] AS tuning From: Nick Piggin The big regression from deadline is tiobench random reads with TCQ disks, however it is present in -linus as well, and would have been since day 1 of AS, but nobody has complained too loudly. http://developer.osdl.org/judith/tiobench/4CPU/rr.html This problem is probably a distilation of what causes lower database throughput, because I have only ever seen it with TCQ drives, and pgbench and OraSim are actually getting higher throughput here with a non TCQ drive. That is not to say that TCQ is useless, it obviously can provide a very real and significant boost. What I might do in the (near) future is get AS to detect TCQ and turn itself off indefinitely unless/until the a sysfs flag is set, and default that flag to off. This patch changes the AS tunables a bit to be more on par with deadline. It lowers the threshold for random reading processes to be considered unsuitable for anticipation, and it slightly rearranges and comments the "cooperative seek distance" logic. With this patch, AS is now very competitive with deadline on the single IDE and SCSI (non TCQ) disks here. In fact, I don't have any regressions anywhere. Even when TCQ is on, although throughput can be lower, AS still has benefits because of its much better read vs write latency and general tendancy to keep number of outstanding tags smaller. [PATCH] PPC32: Export consistent_sync_page. From: Tom Rini We must export the consistent_sync_page symbol. It is used by inline functions which implement the PCI DMA API. [PATCH] PPC32: Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c From: Tom Rini PPC32: Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c - Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c [PATCH] PPC32: Select arch/ppc/kernel/head.S on CONFIG_PPC_STD_MMU. From: Tom Rini PPC32: Select arch/ppc/kernel/head.S on CONFIG_PPC_STD_MMU. - Don't pick a head*.S by default, instead select head.S on CONFIG_PPC_STD_MMU. This is more consistent with how we case things in this file. [PATCH] PPC32: Minor cleanups to IBM4xx and MPC82xx headers. From: Tom Rini PPC32: Minor cleanups to IBM4xx and MPC82xx headers. - Make sure that if is included on !40x && !440, there is no real effect. - Delete arch/ppc/platforms/mpc82xx.h - Make sure that if CONFIG_8260 isn't set, there is no effect in . - Add a __ASSEMBLY__ test around the extern for __res in . [PATCH] fix gcc-3.4 warning in percpu code From: Rusty Russell It's complaining about: #define per_cpu(var, cpu) ((void)cpu, per_cpu__##var) There are several ways of fixing this, but the simplest is: #define per_cpu(var, cpu) (*((void)cpu, &per_cpu__##var)) [PATCH] Fix oops when modifying /sys/block/dm-0/queue/nr_requests From: Mike Christie DM, MD, rd and loop use blk_alloc_queue and blk_queue_make_request to initialize their queue, because they only use the make_request_fn. The attached patch prevents the queue from being registered if only blk_alloc_queue was called. [PATCH] ATAPI MO drive support From: Pascal Schmidt The below patch is needed to support ATAPI MO drives in 2.6. ide-scsi doesn't work any more for this, so ide-cd has to take over the job of running the MO drive. Without this, there is no way to write to an ATAPI MO drive. This patch has been discussed with Linus and Jens already around test9 time and it was agreed this is the right way to go about it. I have rediffed it against 2.6.0. Compiles, runs, works just fine for me. [PATCH] mt rainier support From: Jens Axboe Following patch adds mt rainier support to the cdrom uniform layer (it works with atapi and scsi/usb). [PATCH] ATAPI MO support update From: Jens Axboe Update the ATAPI MO support code to reflect the reorganisations and cleanups which the Mt Ranier support patch added. DESC cdrom_open fix EDESC From: Jens Axboe [PATCH] Make ppp_async callable from hard interrupt From: Paul Mackerras Since there are serial drivers (particularly the USB serial driver) that call the line discipline receive_buf and write_wakeup routines at hard interrupt level, I have changed the ppp_async code to cope with that. It now uses a tasklet so that it calls the generic PPP code at soft interrupt level even if its receive_buf and write_wakeup entries are called at hard interrupt level. This patch has been lightly tested here with a keyspan USB serial adaptor and also with the built-in modem on my tibook, which uses the pmac_zilog driver (which hooks into the drivers/serial infrastructure). [PATCH] make try_to_free_pages walk zonelist From: Rik van Riel In 2.6.0 both __alloc_pages() and the corresponding wakeup_kswapd()s walk all zones in the zone list, possibly spanning multiple nodes in a low numa factor system like AMD64. Also, if lower_zone_protection is set in /proc, then it may be possible that kswapd never cleans out data in zones further down the zonelist and try_to_free_pages needs to do that. However, in 2.6.0 try_to_free_pages() only frees pages in the pgdat the first zone in the zonelist belongs to. This is probably the wrong behaviour, since both the page allocator and the kswapd wakeup free things from all zones on the zonelist. The following patch makes try_to_free_pages() consistent with the allocator, by passing the zonelist as an argument and freeing pages from all zones in the list. I do not have any numa systems myself, so I have only tested it on my own little smp box. Testing on NUMA systems may be useful, though the patch really only should have an impact in those rare cases where kswapd can't keep up with allocations... As a side effect, the patch shrinks the kernel by 2 lines and replaces some subtle magic by a simpler array walk. [PATCH] CardServices() removal from pcmcia net drivers From: Andres Salomon Replace the various CardServices() calls w/ their pcmcia_* function. The pcmcia functions fit better with kernel conventions, and don't have the nasty var args stuff. These patches also fix a few places where the args supplied to CardServices were either not supplied, or dealt with in non-obvious ways. [PATCH] CardServices removal for ide-cs From: Arjan van de Ven [PATCH] remove CardServices() from drivers/net/wireless From: Andres Salomon This wraps up drivers/net/wireless. Still remaining: - sound/pcmcia/vx - drivers/{bluetooth,isdn,parport,telephony} - drivers/mtd/maps - drivers/scsi/pcmcia - drivers/char/pcmcia/synclink_cs.c [PATCH] Remvoe CardServices() from drivers/serial From: Russell King Ok, this is the last patch for removal of CardServices() [PATCH] serial_cs CardServices removal fix From: Russell King [PATCH] remvoe CardServices from axnet_cs From: Andres Salomon Anyways, this removes the last of the CS calls. [PATCH] final CardServices() removal patches From: Andres Salomon Remove calls to CardServices(); final. This removes the CardServices() calls the rest of the tree, as well as CardServices itself from cs.c and cs.h. My previous patches, along w/ Arjan's patch for ide-cs.c and Russell's patch for serial_cs.c should remove all traces of it. I've attached a gzipped tarball to hopefully make things easier. Files touched: = 201-cs_remove.patch:+++ mod/sound/pcmcia/vx/vx_entry.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/bluecard_cs.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/bt3c_cs.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/btuart_cs.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/dtl1_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hardware/avm/avm_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hisax/avma1_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hisax/elsa_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hisax/sedlbauer_cs.c 204-cs_remove.patch:+++ mod/drivers/parport/parport_cs.c 205-cs_remove.patch:+++ mod/drivers/telephony/ixj_pcmcia.c 206-cs_remove.patch:+++ mod/drivers/mtd/maps/pcmciamtd.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/aha152x_stub.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/fdomain_stub.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.h 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/qlogic_stub.c 208-cs_remove.patch:+++ mod/drivers/char/pcmcia/synclink_cs.c 209-cs_remove.patch:+++ mod/drivers/pcmcia/cs.c 209-cs_remove.patch:+++ mod/include/pcmcia/cs.h [PATCH] fix for tridentfb.c usage on CRTs. From: Bram Stolk All modes that exceed the native resolution of a flatpanel are discarded. However, a CRT has native resolution set to 0, and therefore, tridentfb.c cannot be used with a CRT. [PATCH] CONFIG_EPOLL=n space reduction From: Davide Libenzi CONFIG_EPOLL=n space reduction in struct file. [PATCH] kill_fasync speedup From: Manfred Spraul fasync_helper and kill_fasync are helpers for managing F_SETFL fcntl calls that change FASYNC and sending the necessary signals. The locking uses one global rwlock that's acquired for read in all kill_fasync calls, and that causes cache line trashing. This is not necessary: if the fasync list is empty, then there is no need to acquire the rwlock. Tests with reaim on a 4-way pIII on STP showed an 80% reduction of the time within kill_fasync. [PATCH] O21 for interactivity 2.6.0 From: Con Kolivas A non-critical corner case has come up for interactivity that I believe needs to be addressed. It is only extensive testing and examination that revealed this, as this interactivity work is in maintenance mode. Description: It is possible for a highly interactive task (like X) to cause large latencies in tasks that are less 'niced' (eg negative nice number compared to X which should normally run at nice 0) if they are fully cpu bound. This occurs due to expiration of the cpu bound tasks. This patch addresses this by not reinserting interactive tasks into the active array if there is a better static priority task running but has been placed on the expired array. This causes a substantial reduction in the maximum scheduling latency a task with a less nice value can have. This also has the positive side effect of maintaining better cpu% proportions for tasks of different nice levels. Testers will only be able to discern a difference with highly cpu bound tasks of normal scheduling policy at different nice levels. Test cases are doing something cpu intensive relatively -niced in the presence of an interactive load (eg capturing and encoding video at nice -10 while using X nice 0, or something nice 0 vs nice +10) and so on. Because of the crossover of 10 'nice' levels of dynamic priorities between interactive and cpu bound tasks this patch will have a more noticable effect as the nice difference is greater, especially 11 or more. [PATCH] Relax synchronization of sched_clock() From: Ingo Molnar - relax synchronization of sched_clock() [PATCH] can_migrate_task cleanup From: Ingo Molnar - minor can_migrate_task cleanup [PATCH] CPU scheduler cleanup From: Ingo Molnar - move scheduling-state initializtion from copy_process() to sched_fork() (Nick Piggin) [PATCH] sched.c style cleanups From: Ingo Molnar - sched.c style cleanups (no code change) [PATCH] Make for_each_cpu() Iterator More Friendly From: Rusty Russell Anton: breaks PPC64, as it needs cpu_possible_mask, but fix is already in Ameslab tree. The for_each_cpu() and for_each_online_cpu() iterators take a mask, and noone uses them that way (except for arch/i386/mach-voyager, which uses for_each_cpu(cpu_online_mask). Make them more usable iterators, by dropping the "mask" arg. This requires that archs provide a cpu_possible_mask: most do, but PPC64 doesn't, so it is broken by this patch. The other archs use a #define to define it in asm/smp.h. Most places doing loops over cpus testing for cpu_online() should use for_each_cpu: it is synonymous at the moment, but with the CPU hotplug patch the difference becomes important. Followup patches will convert users. [PATCH] Use for_each_cpu() Where It's Meant To Be From: Rusty Russell Some places use cpu_online() where they should be using cpu_possible, most commonly for tallying statistics. This makes no difference without hotplug CPU. Use the for_each_cpu() macro in those places, providing good examples (and making the external hotplug CPU patch smaller). Some places use cpu_online() where they should be using cpu_possible, most commonly for tallying statistics. This makes no difference without hotplug CPU. Use the for_each_cpu() macro in those places, providing good examples (and making the external hotplug CPU patch smaller). [PATCH] Change cryptic description and help for CONFIG_PDC202XX_FORCE From: Stephan Maciej The description and the help text for this option has bothered me long enough... I hope the new strings are more self-explanatory than the ones before. [PATCH] Missing end tags in kernel-locking kerneldoc From: Rusty Russell From: Adam Kropelin The new-and-improved kernel-locking kerneldoc seems to be missing some end tags which causes 'make foodocs' to die. I'm not sure if it's because of my not-bleeding-edge docbook utils or if it's a genuine error. Since most ending tags are present I tend to think it's an error. [PATCH] C99 change to rcupdate.h From: "Art Haas" Replace the GNU initializers with C99 initializers. [PATCH] M68k floppy selection From: Geert Uytterhoeven Floppy: On m68k, PC-style floppies are used on Q40/Q60 and Sun-3x only. Sun-3x floppy is currently broken (needs I/O abstractions) [PATCH] M68k head console From: Geert Uytterhoeven M68k: Use function macros and local macro for console functions (from Roman Zippel) [PATCH] M68k head unused From: Geert Uytterhoeven M68k: Remove unused console_video_virtual (from Roman Zippel) [PATCH] M68k head comments From: Geert Uytterhoeven M68k: Update some comments (from Roman Zippel) [PATCH] M68k head pic From: Geert Uytterhoeven M68k: Make console functions position independent (from Roman Zippel) [PATCH] M68k head white space From: Geert Uytterhoeven M68k: Remove trailing white space (from Roman Zippel) [PATCH] M68k cache mode From: Geert Uytterhoeven M68k: Use a constant m68k_supervisor_cachemode only if we know it's safe, otherwise use the value from head.S (from Roman Zippel) [PATCH] M68k RMW accesses From: Geert Uytterhoeven M68k: Avoid bus fault for certain RMW accesses (from Roman Zippel) [PATCH] Atari Hades PCI C99 From: Geert Uytterhoeven Atari Hades PCI: Use C99 struct initializers [PATCH] Amiga sound C99 From: Geert Uytterhoeven Amiga sound: Use C99 struct initializers [PATCH] BVME6000 RTC C99 From: Geert Uytterhoeven BVME6000 RTC: Use C99 struct initializers [PATCH] M68k symbol exports From: Geert Uytterhoeven M68k: Export missing symbols (from Matthias Urlichs) [PATCH] M68k math emu C99 From: Geert Uytterhoeven M68k math emulator: Use C99 struct initializers [PATCH] MVME16x RTC C99 From: Geert Uytterhoeven MVME16x RTC: Use C99 struct initializers [PATCH] Q40 interrupts C99 From: Geert Uytterhoeven Q40 interrupts: Use C99 struct initializers [PATCH] Sun-3 ID PROM C99 From: Geert Uytterhoeven Sun-3 ID PROM: Use C99 struct initializers [PATCH] Mac ADB IOP fix From: Geert Uytterhoeven Mac ADB IOP: Fix improperly initialized request struct in the reset code, causing a bogus pointer (from Matthias Urlichs) [PATCH] Macfb setup From: Geert Uytterhoeven Macfb: Update setup routine (from Matthias Urlichs) [PATCH] Mac ADB From: Geert Uytterhoeven ADB: Disable the ADB clock code when CONFIG_ADB is not selected (from Matthias Urlichs). [PATCH] Amiga Gayle IDE cleanup From: Geert Uytterhoeven Amiga Gayle IDE: Kill old test code for the IDE doubler [PATCH] Amiga Gayle E-Matrix 530 IDE From: Geert Uytterhoeven Amiga Gayle IDE: Add support for the IDE interface on the M-Tech E-Matrix 530 expansion card [PATCH] Zorro sysfs/driver model From: Geert Uytterhoeven Zorro bus: Add support for sysfs and the new driver model [PATCH] Amiga debug fix From: Geert Uytterhoeven Amiga: Fix `debug=mem' (record all kernel messages in ChipRAM): virt_to_phys() no longer works for Zorro II memory space, we must use ZTWO_PADDR() [PATCH] Mac II VIA From: Geert Uytterhoeven Mac II VIA: Don't include directly [PATCH] M68k asm/system.h From: Geert Uytterhoeven M68k: Add missing #ifdef __KERNEL / #endif (from Christian T. Steigies) [PATCH] Amiga core C99 From: Geert Uytterhoeven Amiga core: Use C99 struct initializers [PATCH] M68k has no VGA/MDA From: Geert Uytterhoeven M68k has no VGA or MDA consoles [PATCH] M68k thread From: Geert Uytterhoeven M68k: Don't forget to initialize the thread_info member in INIT_THREAD() (from Roman Zippel) [PATCH] M68k thread_info From: Geert Uytterhoeven M68k: Fix (unused) definition of init_thread_info (from Roman Zippel) [PATCH] M68k extern inline From: Geert Uytterhoeven M68k core: Replace (variants of) `extern inline' by `static inline' [PATCH] Cirrusfb extern inline From: Geert Uytterhoeven Cirrusfb: Replace `extern inline' by `static inline' [PATCH] Genrtc warning From: Geert Uytterhoeven Genrtc: Move code to kill warning if CONFIG_PROC_FS is disabled [PATCH] M68k Documentation From: Geert Uytterhoeven M68k Documentation: framebuffer.txt no longer exists in the m68k directory (from Nikita Melnikov) [PATCH] Amiga Buddha/CatWeasel IDE From: Geert Uytterhoeven Buddha/CatWeasel IDE: Make sure the core IDE driver doesn't try to request the MMIO ports a second time, since this will fail. [PATCH] generalise net_ratelimit (printk_ratelimit) From: Anton Blanchard Generate a global printk rate-limiting function, printk_ratelimit(). Also, use it in the page allocator warning code. Also add a dump_stack to that code. Later, we need to switch net_ratelimit() over to use printk_ratelimit(). [PATCH] parintk_ratelimit fix From: Anton Blanchard [PATCH] MODULE_ALIAS for freevxfs From: Christoph Hellwig Now that modutils don't have built-in aliases anymore this is needed to make mount -t vxfs autload the module. [PATCH] reindent trident OSS sound driver From: Muli Ben-Yehuda Reindent the trident OSS sound driver [PATCH] trident OSS sound driver fixes From: Muli Ben-Yehuda - switch lock_set_fmt() and unlock_set_fmt() from macros to inline functions. Macros that call return() are EVIL. - simplify lock_set_fmt() and implement it via test_and_set_bit() rather than a spinlock protecting an int. - fix a bug wherein we would do an up() on a semaphore that hasn't been down()ed if a signal happened after timeout in trident_write(). - fix a bug where we would not release the open_sem on OOM. - make the arguments for prog_dmabuf clearer (int -> enum), and add two wrapper functions around it, one for record and one for playback. - fix a bug where we would call VALIDATE_STATE after lock_kernel(). Since VALIDATE_STATE does 'return' if validation fails, bad things can happen. Thanks to Dawson Engler and the Stanford checker for spotting. - remove the calls to lock_kernel() from trident_release() and trident_mmap(). trident_release() appears to be covered by the open_sem, and trident_mmap() is covered by state->sem. - s/TRUE/1/, s/FALSE/0/ [PATCH] trident: use pr_debug instead of home-brewed TRDBG From: Muli Ben-Yehuda Yet another sound/oss/trident cleanup patch. This one replace the TRDBG debugging macro with the standard pr_debug. Patch is from Eugene Teo , slightly modified by me to apply against 2.6.0-rc1-mm1 with the other cleanup patches applied. [PATCH] selinux: Add resource limit control From: James Morris This patch adds controls to the SELinux module over the setting and inheritance of resource limits. With these controls, the ability to set hard limits can be limited to specific processes such as login, and when an untrusted process invokes a more trusted program, soft limits can be reset, thereby avoiding failures in the trusted program due to malicious setting of the soft limit by the untrusted process. Roland McGrath provided input and feedback on the patch, which was implemented by Stephen Smalley . [PATCH] selinux: add netif controls From: James Morris This patch adds netif access controls for SELinux, which allows network traffic to be controlled on the basis of associated network interface. Similar functionality was present in earlier SELinux implementations; this is a rework within the constraints of the LSM hooks present in the mainline kernel. [PATCH] selinux: Add node controls From: James Morris This patch adds 'node' access controls for SELinux, which allows network traffic to be controlled on the basis of remote address. Like the previous patch, similar functionality was present in earlier SELinux implementations; this is a rework within the constraints of the LSM hooks present in the mainline kernel. [PATCH] selinux: Add node_bind control From: James Morris This patch adds a new SELinux access control, node_bind, which can be used to restrict the local IP address to which an application may bind. [PATCH] selinux: socket_has_perm cleanup From: James Morris This is a cleanup for the SELinux code, which converts all remaining appropriate socket hooks over to using socket_has_perm(). [PATCH] selinux: Add SO_PEERSEC socket option and getpeersec LSM hook. From: James Morris This patch adds a new option for Unix sockets, SO_PEERSEC, and an associated LSM hook, getpeersec. The SELinux handler is also included. The purpose of this is to allow applications to obtain each others security credentials, analagously to the existing SO_PEERCRED option. Examples of use are Security Enhanced D-BUS and Security Enhanced X. This patch was previously approved in principle by David, and has been updated with feedback from Chris Wright and extended to cover all architectures. [PATCH] selinux: Add dname to audit output when a path cannot be generated. From: James Morris This patch adds dname to audit output when a path cannot be generated. This makes analysis of SELinux audit logs easier. Patch by Stephen Smalley . [PATCH] selinux: Makefile cleanup From: Stephen Smalley Use obj-$(CONFIG_FOO) instead of `ifeq'. [PATCH] selinux: improve skb audit logging From: James Morris This patch is a rework of the skb audit logging code in SELinux. Rather than relying on skb header pointers, it parses the skb for specific protocols (TCP and UDP for IPv4 at this stage). This is safer for the case of locally generated raw packets, which can be malformed. It also now takes fragmented skbs into account. The new code allows the caller to parse the skb so that parsed information can be more readily re-used. [PATCH] Add SEND_MSG and RECV_MSG controls From: James Morris This patch implements two new access controls for SELinux: SEND_MSG and RECV_MSG, providing mediation of network packets based on destination port (IPv4 only at this stage). [PATCH] NFS: fix bogus setattr calls From: Trond Myklebust If users set the execute bit on a file, and then write to it, remove_suid() causes a flood of SETATTR calls (one per write() syscall) with no arguments to be sent down the wire. The server will in any case clear the suid bit itself without any prompting from us, so the following patch simply filters away all SETATTR requests with empty or unsupported ia_valid fields. [PATCH] nfs: Optimize away unnecessary NFSv3 COMMIT calls. Currently, when calling nfs_commit_file(), we check the range argument, and only commit NFS write requests that fall within the given range. This is silly, since all servers use fsync(), to honour a COMMIT call, and so will sync all pending writes to stable storage. The following patch ensures that if at least one NFS write falls within the range specified by the call to nfs_commit_file(), then we commit all outstanding writes on that file. This fixes a sometimes severe inefficiency when combining reads and writes: nfs_wb_page() is used to clear out writes prior to scheduling a read(), and can end up calling COMMIT for each page to be read. [PATCH] nfs: Fix an open intent bug From: Trond Myklebust The following patch fixes a bug when initializing the intent structure in sys_uselib(): intents use the FMODE_READ convention rather than O_RDONLY. It also adds a missing open intent to open_exec(). This ensures that NFS clients will do the necessary close-to-open data cache consistency checking. [PATCH] nfs: Fix readonly mounts From: Trond Myklebust The nfs_permission() code needs to check for "local" mount flags such as "ro" *before* it decides to optimize away any permissions tests. [PATCH] nfs: Fix a possible client deadlock From: Trond Myklebust Fix a bug in the NFS write code whereby writepage() may end up deadlocking on clear_inode(). [PATCH] nfs: Fix an Oops in the RPC debug code... From: Trond Myklebust Enabling rpc_debug can currently result in an Oops due to an incorrect pointer check. [PATCH] allow for building module support for m68knommu architecture From: gerg@snapgear.com Allow for building of module support for m68knommu architecture. [PATCH] add module support for m68knommu architecture From: gerg@snapgear.com Add module support for m68knommu architecture. [PATCH] sched_clock() for m68knommu architectures From: gerg@snapgear.com Implement the sched_clock() function for m68knommu architectures. [PATCH] m68knommu include fix From: gerg@snapgear.com Remove include of non-existant net/module.h in m68knommu architecture specific checksum code. [PATCH] fix cpu stats in m68knommu entry.S From: gerg@snapgear.com Fix cpu stats code to match changes to higher level kstat data structure for m68knommu ColdFire CPU architectures. This fixes all ColdFire sub-architecture CPU types. [PATCH] use m68k/types.h for m68knommu From: gerg@snapgear.com Remove m68knommu types.h, use m68k types.h instead. At this level there is no difference between the basic m68k types and the m68knommu types, no point having 2 versions of the same file. [PATCH] implement find_extend_vma() for nommu From: gerg@snapgear.com Implement a null find_extend_vma() function for non-MMU architectures. It is called from a couple of places, so needs to be present. [PATCH] s390: general update From: Martin Schwidefsky - Add console_unblank in machine_{restart,halt,power_off} to get all messages on the screen. - Set console_irq to -1 if condev= parameter is present. - Fix write_trylock for 64 bit. - Fix svc restarting. - System call number on 64 bit is an int. Fix compare in entry64.S. - Fix tlb flush problem. - Use the idte instruction to flush tlbs of a particular mm. - Fix ptrace. - Add fadvise64_64 system call wrapper. - Fix pfault handling. - Do not clobber _PAGE_INVALID_NONE pages in pte_wrprotect. - Fix siginfo_t size problem (needs to be 128 for s390x, not 136). - Avoid direct assignment to tsk->state, use __set_task_state. - Always make any pending restarted system call return -EINTR. - Add panic_on_oops. - Display symbol for psw address in show_trace. - Don't discard sections .exit.text, .exit.data and .eh_frame, otherwise stabs information for kerntypes will get lost. - Add memory clobber to assembler inline in ip_fast_checksum for gcc 3.3. - Fix softirq_pending calls for the current cpu (cpu == smp_processor_id()). - Remove BUG_ON in irq_enter. Two irq_enters are possible. [PATCH] s390: common i/o layer From: Martin Schwidefsky - Make blacklist busid-aware. Add "all" keyword and ! operator to cio_ignore kernel parameter. - Add state change notify function for ccw devices (not mandatory) and introduce the "device disconnected" state. - Remove auto offline from remove function for ccw devices to be able to distinguish between user initiated offline and implicit offline due to device removal. - Store pointer to subchannel structure in the (hardware) subchannel intparm and remove the ioinfo array (hurray...). Remove intparm parameter of cio_start. - Use busid instead of subchannel number for debug output. - Use an opm mask to track which paths are logically online for a subchannel. - Pathgroup every device it was requested for, even single path devices. - Give i/o on a logically switched off path a grace period to complete, then kill the i/o to get the path offline. - Correctly initialize all spin_locks with spin_lock_init. - Handle status pending/busy while disabling subchannel. - Set busid already in cio_validate_subchannel. - Add s390_root_dev_{register,unregister} functions. - Do stcrw() inside a kernel thread. Add crw overflow handling. - Use subchannel lock directly instead of ccw device lock pointer in ccw_device_recognition to avoid accessing an already free structure. - Take/release ccw device lock in ccw_device_console_enable. - Don't wipe out the busid field in ccw_device_console_enable. - Call ccw_device_unregister() directly on a notoper event - delaying it via queue_work is harmful (subchannel may be removed before ccw_device). - Handle not opertional condition in ccw_device_cancel_halt_clear. - Correct status pending handling: don't collect pending status directly but wait for the interrupt to show up. - Enable subchannel when trying a steal lock operation. - Introduce doverify bit for delayed path verification. - Fix locking in __ccw_device_retry_loop/read_conf_data/read_dev/chars. - Make SPID retry mechanism more obvious. - qdio: check return code of ccw_device_{halt,clear} in qdio_cleanup. Don't try to wait for an interrupt we won't get. - qdio: fix shared indicators. - qdio: add code to handle i/o killed by cio with active queues. - qdio: don't do a shutdown on timeout in interrupt context. - Update cio documentation. [PATCH] s390: console driver. From: Martin Schwidefsky - 3215: Adapt to notify api change in cio. - 3215/sclp: move copy_from_user out of locked code. [PATCH] s390: dasd driver From: Martin Schwidefsky - Fix interrupt status examination. - Make dasd device attributes dependent on the devmap structure instead of the device structure to make them persistent and to be able to modify them in the offline state. - Allow changing the readonly attribute while dasd is online. - Add (diag) option to dasd= paramter. - Add missing spin_lock_init call. - Increase ref_count in dasd_device_from_cdev and add matching dasd_put_device pairs. - Adapt to notify api change in cio. - Fix bug in 3990 error recovery for cable pulls on ESS. - Replace kmap by page_address (no highmem on s/390). - Set correct default cache mode on ESS for eckd devices. - Change dasd names from "dasdx" to "dasd__". [PATCH] s390: tape driver. From: Martin Schwidefsky - Add module license gpl. - Add debug messages. - Make blocksize persistent after close. Limit blocksize to 64k. - Check tape state against TS_INIT/TS_UNUSED for special case of medium sense and assign. - Assign tape as soon as they are set online and unassign when set offline. - Correct implementation of MT_EOD. - Add backward compatible tape.agent hotplug support (to be removed as soon as a full blown tape class is implemented). - Add state to differentiate between character device and block device access. - Make tape block device usable. - Add 34xx seek speedup code. - Fix device reference counting. - Fix online-offline-online cycle. - Add timeout to standard assign function. - Correct calculation of device index in tape_get_device(). - Check idal buffer for fixed block size reads and writes. - Adapt to notify api change in cio. - Add sysfs attributes for tape state, first minor, current operation and current blocksize. [PATCH] s390: network drivers From: Martin Schwidefsky - ctc/iucv: Add module author/description/license to fsm.c - ctc/lcs/iucv/qeth: Remove dst_link_failure calls because they can trigger a BUG in icmp.c. - ctc/iucv/qeth: Use s390_root_dev_{register,unregister} to fix reference counting for the group device sysfs root object. - ctc/lcs/qeth: Fix ccwgroup behaviour, remove should not imply offline. - ctc: Adapt to notify api change in cio. - ctc: Remove duplicate put_user. - iucv: Fix oops with empty netiucv peer name. - iucv: Use GFP_ATOMIC for kmalloc from tasklet. - iucv: Fix removal of attritubes. - qeth: Use correct length in clearing of MAC address. - qeth: Queue multicast and broadcast packets into the last queue on HiperSocket. - qeth: Reenable send control data after i/o error. - qeth: Find correct recbuf in qeth_send_control_data. - qeth: Handle VM startlan disabled. - qeth: Set flags for vipa entries. - qeth: Correct netmask on vipa setting. - qeth: Fix spinlock problems ("scheduling while atomic"). - qeth: Avoid setting multicast IP addresses several times. - qeth: Fix /proc/qeth format. - qeth: Fix race on device removal. [PATCH] s390: zfcp host adapter From: Martin Schwidefsky - Adapt to notify api change in cio. - Add missing unregister_reboot_notifier() for error path. - Fix infinite error recovery escalation for certain port failures. - Fix reference counting. - Use GFP_ATOMIC for kmalloc while holding a spinlock. - Don't open adapter/port if unit/port is removed from configuration after it has already been closed. - Don't establish qdio queues if a port/unit is going to be removed. - Shutdown ports and units before removing them. - Use schedule_work for scsi_add_device. - Don't reopen nameserver port when an rscn was received. - Don't call scsi_done twice in zfcp_fsf_send_fcp_command_task_handler. - Get rid of scsi fake queue, scsi_reqs_active and scsi_reqs_active_wq. - Get rid of unused adapter status. - Allow enabling of scsi devices at boot time with zfcp_dev parameter. - Change name prefix from sg to sg_list for functions which work with the struct sg_list. - Don't call scsi_add_device from zfcp error recovery thread to avoid a deadlock if a scsi command sent during scsi_add_device fails. - Fix scsi i/o stall due to missing local-link-up event. [PATCH] zfcp host adapter patch cleanup From: Martin Schwidefsky Remove all occurrences of __setup and #ifdef MODULE from the zfcp driver. [PATCH] s390: new 3270 driver. From: Martin Schwidefsky New 3270 device driver. [PATCH] s390: 32 bit emulation fixes. From: Martin Schwidefsky - Add emulation for sys_fadvise64 and sys_fadvise64_64. - Use common code wrapper for sys_sched_setaffinity and sys_sched_getaffinity. - Remove unused put_rusage. - Add ssize_t checks for iovec lengths in do_readv_writev32. - Add emulation for posix timer system calls. [PATCH] s390: 32 bit ioctl emulation fixes. From: Martin Schwidefsky - audit all 32 bit pointer accesses and make them use compat_ioctl(), because of the necessary conversion on s390 - introduce ULONG_IOCTL() which is used instead of COMPATIBLE_IOCTL() for all ioctls that have their argument encoded in 'arg' instead of the memory pointed to by arg. Same reason as above. - remove most #ifdefs in : They don't make any sense if the respective handlers in fs/compat_ioctl.c are not disabled as well and they are potentially harmful (the CONFIG_BLK_DEV_DM e.g. was insufficient). - comment out COMPATIBLE_IOCTL(SIOCSIFBR) and COMPATIBLE_IOCTL(SIOCGIFBR), they appear to require a handler - implement copy_in_user for s390, as needed for many handlers in fs/compat_ioctl.c - get rid of all duplicate stuff in arch/s390/kernel/compat_ioctl.c that is also in fs/compat_ioctl.c [PATCH] s390: tlb flush optimization. From: Martin Schwidefsky On the s/390 architecture we still have the issue with tlb flushing and the ipte instruction. We can optimize the tlb flushing a lot with some minor interface changes between the arch backend and the memory management core. In the end the whole thing is about the Invalidate Page Table Entry (ipte) instruction. The instruction sets the invalid bit in the pte and removes the tlb for the page on all cpus for the virtual to physical mapping of the page in a particular address space. The nice thing is that only the tlb for this page gets removed, all the other tlbs stay valid. The reason we can't use ipte to implement flush_tlb_page() is one of the requirements of the instruction: the pte that should get flushed needs to be *valid*. I'd like to add the following four functions to the mm interface: * ptep_establish: Establish a new mapping. This sets a pte entry to a page table and flushes the tlb of the old entry on all cpus if it exists. This is more or less what establish_pte in mm/memory.c does right now but without the update_mmu_cache call. * ptep_test_and_clear_and_flush_young. Do what ptep_test_and_clear_young does and flush the tlb. * ptep_test_and_clear_and_flush_dirty. Do what ptep_test_and_clear_dirty does and flush the tlb. * ptep_get_and_clear_and_flush: Do what ptep_get_and_clear does and flush the tlb. The s/390 specific functions in include/pgtable.h define their own optimized version of these four functions by use of the ipte. I avoid the definition of these function for every architecture I added them to include/asm-generic/pgtable.h. Since i386/x86 and others don't include this header yet and define their own version of the functions found there I #ifdef'd all functions in include/asm-generic/pgtable.h to be able to pick the ones that are needed for each architecture (see patch for details). With the new functions in place it is easy to do the optimization, e.g. the sequence ptep_get_and_clear(ptep); flush_tlb_page(vma, address); gets replace by ptep_get_and_clear_and_flush(vma, address, ptep); The old sequence still works but it is suboptimal on s/390. [PATCH] s390: physical dirty/referenced bits. From: Martin Schwidefsky this is another s/390 related mm patch. It introduces the concept of physical dirty and referenced bits into the common mm code. I always had the nagging feeling that the pte functions for setting/clearing the dirty and referenced bits are not appropriate for s/390. It works but it is a bit of a hack. After the wake of rmap it is now possible to put a much better solution into place. The idea is simple: since there are not dirty/referenced bits in the pte make these function nops on s/390 and add operations on the physical page to the appropriate places. For the referenced bit this is the page_referenced() function. For the dirty bit there are two relevant spots: in page_remove_rmap after the last user of the page removed its reverse mapping and in try_to_unmap after the last user was unmapped. There are two new functions to accomplish this: * page_test_and_clear_dirty: Test and clear the dirty bit of a physical page. This function is analog to ptep_test_and_clear_dirty but gets a struct page as argument instead of a pte_t pointer. * page_test_and_clear_young: Test and clear the referenced bit of a physical page. This function is analog to ptep_test_and_clear_young but gets a struct page as argument instead of a pte_t pointer. Its pretty straightforward and with it the s/390 mm makes much more sense. You'll need the tls flush optimization patch for the patch. Comments ? [PATCH] s390: tlb flush race. From: Martin Schwidefsky I think I found a potential race in install_page/install_file_pte. The inline function zap_pte releases pages by calling page_remove_rmap and page_cache_release. If this was the last user of a page it can get purged from the page cache and then get immediatly reused. But there might still be a tlb for this page on another cpu. The tlb is removed in the callers of zap_pte, install_page and install_file_pte, but this is too late. I admit that its a very unlikely race but never the less.. I fixed this by using the new ptep_clear_flush function that is introduced with the tlb flush optimization patch for s/390. [PATCH] s390: rmap optimization. From: Martin Schwidefsky while working on my mm patch for s390 I played with rmap a bit, adding BUG statements and the like. While doing so I noticed some room for improvement in rmap. Its minor stuff but anyway... The first observation is that the pte chain array doesn't have holes, meaning that from the pte_chain_idx() of the first array every slot of all following pte chain arrays are full. That is there can't be NULL pointers. The "if (!pte_paddr)" check in try_to_unmap() can be removed and if the loop in page_referenced() is started from pte_chain_idx(pc) then the "if (!pte_paddr)" in page_referenced() can be removed as well. The second observation is that the first pte array of a pte chain has at least one entry. Empty pte chain arrays are always freed immediatly after the last entry was removed. Because of that victim_i can be calculated in a simpler way. Instead of setting victim_i to -1 and then check in each loop iteration against -1 victim_i can just be set to the pte_chain_idx of the first pte chain array. [PATCH] rmap page refcounting simplification From: Martin Schwidefsky Ok, its just the revert of the page_cache_release delta. [PATCH] s390: superflous flush_tlb_range calls. From: Martin Schwidefsky while searching for a s390 tlb flush problem I noticed some superflous tlb flushes. One in zeromap_page_range, one in remap_page_range, and another one in filemap_sync. The patch just adds comments but I think these three flush_tlb_range calls can be removed. [PATCH] s390: endless loop in follow_page. From: Martin Schwidefsky Fix endless loop in get_user_pages() on s390. It happens only on s/390 because pte_dirty always returns 0. For all other architectures this is an optimization. In the case of "write && !pte_dirty(pte)" follow_page() returns NULL. On all architectures except s390 handle_pte_fault() will then create a pte with pte_dirty(pte)==1 because write_access==1. In the following, second call to follow_page() all is fine. With the physical dirty bit patch pte_dirty() is always 0 for s/390 because the dirty bit doesn't live in the pte. [PATCH] const vs. __attribute__((const)) confusion From: "H. Peter Anvin" Declaring a function to return a const scalar value is pretty meaningless. These functions are really trying to say that they don't alter any external state. Fix that up by using __attribute__((const)), if the compiler supports that. [PATCH] sn: Some hwgraph code clean up From: Pat Gefre Some hwgraph code clean up [PATCH] sn: copyright update From: Pat Gefre copyright update [PATCH] sn: namespace cleanup: ioerror_dump->sn_ioerror_dump From: Pat Gefre namespace cleanup: ioerror_dump->sn_ioerror_dump [PATCH] sn: kill big endian stuff From: Pat Gefre kill big endian stuff [PATCH] sn: kill $Id$ From: Pat Gefre kill $Id$ [PATCH] sn: remove unused enum From: Pat Gefre remove unused enum [PATCH] sn: serial update From: Pat Gefre Jesse Barnes [PATCH] sn: Kill nag.h From: Pat Gefre Kill nag.h [PATCH] sn: Kill the arcs/*.h files From: Pat Gefre Kill the arcs/*.h files Some general clean up on klconfig.h [PATCH] sn: Delete invent.h From: Pat Gefre Delete invent.h Delete sgi_if.c Cleaned up some of the NEW/DEL calls [PATCH] sn: General code clean up of sn/io/io.c From: Pat Gefre General code clean up of sn/io/io.c [PATCH] sn: machvec/pci.c clean up From: Pat Gefre machvec/pci.c clean up Other clean up related to above [PATCH] sn: General clean up of xbow.c From: Pat Gefre General clean up of xbow.c [PATCH] sn: Remove the bridge and xbridge code - everything not PIC From: Pat Gefre Remove the bridge and xbridge code - everything not PIC [PATCH] sn: Fix the last patch - missed an IS_PIC_SOFT and needed the CG definition From: Pat Gefre Fix the last patch - missed an IS_PIC_SOFT and needed the CG definition [PATCH] sn: Fix the last patch - missed an IS_PIC_SOFT and needed the CG definition From: Pat Gefre Fix the last patch - missed an IS_PIC_SOFT and needed the CG definition Header file clean up Added some __init definitions for functions that were init only Removed some 'porting' code - replaced it with linux calls/defintions Cleaned up some of the types we were using (ones that had been added) Fixed include files that had the wrong path in their ifdef'd names [PATCH] sn: New code for Opus and CGbrick From: Pat Gefre New code for Opus and CGbrick More minor clean up [PATCH] sn: klgraph.c clean up From: Pat Gefre klgraph.c clean up [PATCH] sn: More klgraph.c clean up From: Pat Gefre More klgraph.c clean up Remove is_specified [PATCH] sn: General module.c clean up From: Pat Gefre General module.c clean up [PATCH] sn: shubio.c cleanup From: Pat Gefre shubio.c cleanup [PATCH] sn: General xtalk.c clean up From: Pat Gefre General xtalk.c clean up [PATCH] sn: irq clean up and update From: Pat Gefre irq clean up and update [PATCH] sn: code pruning - a couple of adds due to the clean up From: Pat Gefre Mostly code pruning - a couple of adds due to the clean up [PATCH] sn: Fix a couple of compiler warnings From: Pat Gefre Fix a couple of compiler warnings [PATCH] sn: hcl.c clean up for init failures and OOM From: Pat Gefre hcl.c clean up for init failures and OOM [PATCH] sn: Some small bte code clean ups From: Pat Gefre Some small bte code clean ups [PATCH] sn: Moved code out of pciio and into its own file - snia_if.c and renamed the functions From: Pat Gefre Moved code out of pciio and into its own file - snia_if.c and renamed the functions pciio clean up [PATCH] sn: A few small clean ups From: Pat Gefre A few small clean ups [PATCH] sn: Some more minor clean up From: Pat Gefre Some more minor clean up [PATCH] sn: Remove __ASSEMBLY__ tags from shubio.h From: Pat Gefre Remove __ASSEMBLY__ tags from shubio.h [PATCH] sn: Small check for invalid node in shub ioctl function From: Pat Gefre Small check for invalid node in shub ioctl function [PATCH] sn: More code clean up - this time ioconfig_bus.c From: Pat Gefre More code clean up - this time ioconfig_bus.c [PATCH] sn: Code changes for interrupt redirect From: Pat Gefre Code changes for interrupt redirect [PATCH] sn: Forget to check in the _reg file From: Pat Gefre Forget to check in the _reg file [PATCH] sn: Merged 2 files into another (sgi_io_sim and irix_io_init into sgi_io_init) From: Pat Gefre Merged 2 files into another (sgi_io_sim and irix_io_init into sgi_io_init) [PATCH] sn: Support for the LCD From: Pat Gefre Support for the LCD [PATCH] sn: Missed an include file in the last patch From: Pat Gefre Missed an include file in the last patch [PATCH] sn: One less panic From: Pat Gefre One less panic [PATCH] sn: SAL interface clean up From: Pat Gefre SAL interface clean up [PATCH] sn: Fixes for shuberror.c From: Pat Gefre Fixes for shuberror.c [PATCH] sn: Need a bigger max compact node value From: Pat Gefre Need a bigger max compact node value [PATCH] sn: Use numionodes From: Pat Gefre Use numionodes [PATCH] sn: Change the definition and usage of iio_itte - make it an array From: Pat Gefre Change the definition and usage of iio_itte - make it an array [PATCH] sn: Debug clean up in pcibr_dvr.c From: Pat Gefre Debug clean up in pcibr_dvr.c [PATCH] sn: New pci provider interfaces From: Pat Gefre New pci provider interfaces [PATCH] sn: Fix IIO_ITTE_DISABLE() args From: Pat Gefre Fix IIO_ITTE_DISABLE() args [PATCH] sn: Added a missed opus mod and oom mod From: Pat Gefre Added a missed opus mod and oom mod [PATCH] sn: Added cbrick_type_get_nasid() function From: Pat Gefre Added cbrick_type_get_nasid() function [PATCH] sn: Clean up the bit twiddle macros in pcibr_config.c From: Pat Gefre Clean up the bit twiddle macros in pcibr_config.c [PATCH] sn: Fixed an oom in pci_bus_cvlink.c From: Pat Gefre Fixed an oom in pci_bus_cvlink.c Also added slot to flush code [PATCH] sn: Remove the pcibr_wrap... functions From: Pat Gefre Remove the pcibr_wrap... functions [PATCH] sn: printk cleanup From: Pat Gefre printk cleanup [PATCH] sn: pci dma cleanup From: Pat Gefre pci dma cleanup [PATCH] sn: Make pcibr debug variables static From: Pat Gefre Make pcibr debug variables static [PATCH] sn: Include file clean up in pcibr_hints.c From: Pat Gefre Include file clean up in pcibr_hints.c [PATCH] sn: Added call to pcireg_intr_status_get From: Pat Gefre Added call to pcireg_intr_status_get [PATCH] sn: More code clean up = mostly pcibr_slot.c From: Pat Gefre More code clean up = mostly pcibr_slot.c [PATCH] sn: pcibr_rrb.c cleanup From: Pat Gefre pcibr_rrb.c cleanup [PATCH] sn: Minor code clean up of pcibr_error.c From: Pat Gefre Minor code clean up of pcibr_error.c [PATCH] sn: sn_pci_fixup() clean up or is it fix up ??? From: Pat Gefre sn_pci_fixup() clean up or is it fix up ??? [PATCH] sn: Remove irix_io_init - replace with sgi_master_io_infr_init From: Pat Gefre Remove irix_io_init - replace with sgi_master_io_infr_init [PATCH] sn: Don't call init_hcl from the fixup code From: Pat Gefre Don't call init_hcl from the fixup code Delete reference to hwgraph_path_lookup() [PATCH] sn: Error devenable not used - delete defs From: Pat Gefre Error devenable not used - delete defs [PATCH] sn: Delete unused code in pcibr_slot.c From: Pat Gefre Delete unused code in pcibr_slot.c [PATCH] sn: Delete unused pciio.c code (???_host???_[sg]et) From: Pat Gefre Delete unused pciio.c code (???_host???_[sg]et) [PATCH] sn: Minor clean up for ml_iograph.c From: Pat Gefre Minor clean up for ml_iograph.c [PATCH] sn: Simulator check in pci_bus_cvlink.c From: Pat Gefre Simulator check in pci_bus_cvlink.c [PATCH] sn: Mostly printk clean up and remove some dead code From: Pat Gefre Mostly printk clean up and remove some dead code [PATCH] sn: A little re-formatting From: Pat Gefre A little re-formatting Added pcibr_lock() [PATCH] sn: cleanups and error checking From: Pat Gefre - hwgfs cleanup - some oom checks and proper error returns - killed some dead code [PATCH] Document EFI zero-page usage From: "Randy.Dunlap" Add x86 EFI zero-page usage to i386 docs. [PATCH] v4l: videodev update From: Gerd Knorr This patch fixes some v4l2 ioctl #defines which have wrong _IO* macros. It also adds a function which maps the old numbers to to new ones to maintain binary backward compatibility. [PATCH] v4l: v4l2 update From: Gerd Knorr This patch is a v4l2 update. Changes: * added new ioctls (VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY) to give v4l apps priorities for tuning and other controls. Main purpose is that backgrounds applictions like nxtvepg which are fishing informations from /dev/vbi (teletext, epg, ...) can run at lower priority than interactive tv apps and thus the user isn't annonyed with unexpected channel switches. * add a set of helper functions to handle priorities to the v4l2-common module. * minor fixes in the v4l1-compat module. * minor header file fixes. [PATCH] v4l: video-buf update From: Gerd Knorr This patch contains video-buf fixes, mainly remove videobuf_lock() and videobuf_unlock() functions. They are not needed as get_user_pages() locks down the pages anyway. [PATCH] v4l: bttv driver update From: Gerd Knorr bttv driver update. Changes: (1) Added a new, sysfs-based interface to allow access to the bt878 gpio lines from other kernel modules (new bttv-gpio.c file), which fixes alot of problems the old interface has (which still is in bttv-if.c, to be removed in 2.7). (2) moved the i2c code from bttv-if.c to bttv-i2c.c. (3) created a new "struct bttv_core" and moved some of the entries from "struct bttv" to the new one. This is needed for (1) and makes the patch pretty big, althrough there is no actual code changes. (4) first cut for suspend support (S1 works for me). (5) usual batch of new/updated tv card list entries. (6) minor fixes. [PATCH] v4l: add infrared remote support From: Gerd Knorr This patch adds a module with some helper functions to handle infrared remotes using the linux input layer. It doesn't do any useful stuff alone, but the saa7134 and bttv drivers will use that to support the remotes shipped with some TV cards. [PATCH] v4l: misc i2c fixes From: Gerd Knorr This is a collection of misc i2c tv helper module fixes. [PATCH] v4l: tuner update From: Gerd Knorr This is a i2c tuner module update. Changes: * adds support for more tunes (mt2050, atsc, ...) * some reorganization, uses function pointers to branch to different functions for different tuner types. [PATCH] v4l: add bttv IR input support. From: Gerd Knorr This patch adds linux input layer based support for infrared remote controls. It adds two new modules: * ir-kbd-i2c supports i2c-based IR receivers. * ir-kbd-gpio supports IR receivers connected to the bt878 gpio pins. This patch depends on the ir-input patch and the bttv driver update. [PATCH] v4l: saa7134 driver update From: Gerd Knorr This is a saa7134 driver update. Changes: * add infrared remote support. * add support for more TV cards. * misc minor fixes. This patch depends on the ir-input patch. [PATCH] v4l: add conexant 2388x driver. From: Gerd Knorr This patch adds a experimental driver for Conexant 2388x based TV cards. DESC cx88-video compile fixes for older gcc EDESC Fix some gcc-3.xisms. [PATCH] Use request_list as indicator that req originated from ll_rw_blk From: Mike Christie , Jens Axboe It's cleaner and more correct to look at req->rl to determine whether this request got from the block layer requests lists instead of using req->q. It's handy to always have req->q available, to lookup the queue from the request. [PATCH] modules: skip debug sections From: Tom Rini Skip debug sections of modules - taking 12 minutes to load the ipv6 module is a bug. :) [PATCH] update OProfile maintainer From: John Levon Please apply the below and accept patches directly from Philippe for OProfile in the future, as necessary. (Philippe is the other main developer of OProfile) [PATCH] kNFSd: Fix problem with stale filehandles. From: NeilBrown nfsd_setuser was not called until after filehandle lookup was done, so filehandle lookup would use the wrong userid, and so the permission checking in nfsd_acceptable would be bogus. [PATCH] kNFSd: Convert error status for failed lookup("..") properly. From: NeilBrown We weren't converting the -E* error code to an nfserr_* error code as we should. [PATCH] kNFSd: Fix incorrect call for follow_up From: NeilBrown follow_up doesn't check that the passed dentry is at the root of the mounted file system, so we have to do that, to avoid calling follow_up too many times. [PATCH] kNFSd: Make sure dnotify events happen for NFS read and write. From: NeilBrown Based on code from Terje Malmedal [PATCH] kNFSd: Honour SUN NFSv2 hack for "set times to server time. From: NeilBrown From: Greg Banks , see comment in code. [PATCH] kNFSd: Move SVCFH_fmt from being 'inline' to being 'extern'. This way, the "static char buf" is defined only once instead of once per file. [PATCH] 3c59x: module loading fix 3c59x has a tunable `rx_copybreak'. But it's declared const, so recent gcc's rub it out altogether, and modprobe says `3c59x: falsely claims to have parameter rx_copybreak'. [PATCH] load_elf_binary() oops fix If we detect an error late in this function, local variable `interpreter' can be NULL. Don't try to fput() it in that case. [PATCH] siimage.c: remove a gcc warning when !CONFIG_PROCFS From: Luiz Fernando Capitulino , Randy.Dunlap input: Add a missing space in atkbd warning message. [PATCH] I2C: Fix lm90.c with DEBUG The recent patch that fixes lm83.c with DEBUG also applies to lm90.c. No wonder since I used the first as a template when porting the second. Patch follows. [PATCH] I2C: Fix i2c-core.c with DEBUG At the moment, i2c-core.c fails compiling with DEBUG. Following patch should fix that. [PATCH] I2C: Fix i2c busses warnings with DEBUG Two bus drivers (i2c-via and scx200_acb.c) generate warnings when the whole i2c subsystem is compiled with -DDEBUG. Suggested changes follow. [PATCH] I2C: New driver: w83l785ts Here is a patch that adds a new chip driver to Linux 2.6.1 (+ previous patches). The w83l785ts driver handles a single chipset, the Winbond W83L785TS-S. I am the author of the original driver as found in lm_sensors 2.8.3. Wolfgang Ziegler AKA fago made an initial port to Linux 2.6, which I reviewed, and here it is. [PATCH] I2C: Autoselect i2c algos I replaced all dependancies on algos with dependancies on I2C + select algo. There are some cases outside of the i2c subdirectory. Also note that I slightly altered the condition to display the PCILynx comment. I think it's more logical that way. Without it, the user could get the message he/she needs I2C, go to enable it, come back and still not see the option. [PATCH] I2C: only select I2C_ITE if we are a MIPS system input: Make scancode for a Sun5 type keyboard one of those not ignored because of protocol nastiness. [PATCH] I2C: add I2C_DEBUG_CORE config option and convert the i2c core code to use it. This cleans up the mismatch of ways we could enable debugging messages. [PATCH] I2C: add I2C_DEBUG_CHIP config option and convert the i2c chip drivers to use it. This cleans up the mismatch of ways we could enable debugging messages. [PATCH] I2C: add I2C_DEBUG_BUS config option and convert the i2c bus drivers to use it. This cleans up the mismatch of ways we could enable debugging messages. [PATCH] I2C: remove unneeded CVS Id: lines. [PATCH] kobject: make kobject hotplug function public make kobject hotplug mechanism public so that others may call it. [PATCH] Driver Core: add device_find() function Greg KH wrote: > > How about just adding a device_find() function to the driver core, where > you pass in a name and a type, so that others can use it? Something like this? [PATCH] Driver Core: add class_simple support This patch adds a struct class_simple which can be used to create "simple" class support for subsystems. It also adds a class_release() callback for struct class, as it is needed to properly handle the reference counting logic. [PATCH] TTY: clean up sysfs class support for tty devices This patch ports the existing tty class support to the class_simple interface, saving a lot of code in the process. [PATCH] Input: add sysfs class support for input devices This patch adds sysfs support for all input devices. It also provides the "device" and "driver" symlink for all Input devices that specify it. [PATCH] LP: add sysfs class support for lp devices Add sysfs class support for lp devices. Based on a patch from Hanna Linder [PATCH] MEM: add sysfs class support for mem devices This adds class/mem/ for all memory devices (random, raw, null, etc.) [PATCH] MISC: add sysfs class support for misc devices This adds class/misc/ for all misc devices (ones that use the misc_register() function). [PATCH] OSS: add sysfs class support for OSS sound devices This patch adds support for all OSS sound devices. This patch is based on a work originally written by Leann Ogasawara [PATCH] ALSA: add sysfs class support for ALSA sound devices This patch adds support for all ALSA sound devices. The previous OSS sound patch is required for this one to work properly. This patch is based on a work originally written by Leann Ogasawara [PATCH] Kobject: prevent oops in kset_find_obj() if kobject_name() is NULL Thanks to Hollis Blanchard for pointing this out. [SCSI_ACARD]: atp870u.c needs linux/init.h [IPV6]: Fix array size and missing sentinal in sysctl table of addrconf.c [NET]: Fix dst_gc_timer initialization. [PATCH] cpu_sibling_map fix From: "Nakajima, Jun" Restore the HT detection algorithm. Make the processor package mapping subarch-specific so that it can reflect the APIC ID info provided by BIOS if required. [PATCH] fix page counting for compound pages From: "Bryan O'Sullivan" For compound pages, page_count needs to be sure to reference the head page. This affects code that plays tricks with memory mappings into userspace, which would mostly involve video drivers. [PATCH] MAINTAINERS update From: "H. Peter Anvin" MAINTAINERS update [PATCH] s3 sleep: Kill obsolete debugging code From: Pavel Machek wakeup.S includes some rather nasty, and unneccessary debugging code. (It used to try to flush caches/tlbs; now its totally useless). [PATCH] swsusp/sleep documentation update From: Pavel Machek This kills outdated docs, and adds some helpful docs about video issues with suspend. [PATCH] ext2_new_inode nanocleanup We've cached EXT2_SB(sb) in local variable `sbi'. Use it. [PATCH] ext2: s_next_generation locking There is no locking around the increment of this per-filesystem counter. Create a new lock, just for this. [PATCH] ext3: s_next_generation fixes - Add missing locking around s_next_generation increment - Correctly set the initial value of s_next_generation. [PATCH] Remove x86_64 leftover SIMNOW code From: Pavel Machek This is obsolete x86-64 code. [PATCH] Fix softcursor From: Pavel Machek Softcursor was broken for half of 2.5 series. This fixes it by first hiding cursor _then_ hiding softcursor. Very simple mistake... [SPARC64]: Update defconfig. [PATCH] ext2: fix build when EXT2_DEBUG is set Fix warnings and build errors under EXT2_DEBUG. [PATCH] Fix weird placement of inline From: Jesper Juhl I'm compiling 2.6.1-rc1-mm1 with "-W -Wall" to look for potential problems and minor stuff to clean up. One of the things that enabling the extra warnings turn up is errors about the placement of the inline keyword. [PATCH] do_timer_gettime() cleanup - Make it static - It is larger and has two callsites: uninline it. [PATCH] set_cpus_allowed locking From: Nick Piggin , Rusty Russell Prevents a race where sys_sched_setaffinity can race with sched_migrate_task and cause sched_migrate_task to restore an invalid cpu mask. [PATCH] module removal race fix From: Rusty Russell Vatsa spotted this: you can remove a module while it's being initialized, and that will be bad. Hole was opened when I dropped the sem around the init routine (which can probe for other modules). [PATCH] Remove Intel check in i386 HPET code From: Andi Kleen The i386 HPET time setup code would explicitely check for the Intel vendor ID. That is bogus because other chipset vendors (like AMD) are implementing HPET too. Remove this check. [PATCH] jbd: start_this_handle() return value fix From: Alex Tomas start_this_handle() returns 0 always. because of this journal_start() may return handle with h_transaction = NULL [PATCH] remove old Eicon isdn driver From: Armin The new driver for Eicon ISDN cards is in drivers/isdn/hardware/eicon. The old driver is still in drivers/isdn/eicon and I would like to remove this old driver from the 2.6 kernels. The attached patch removes the references to this driver, but in addition the directory drivers/isdn/eicon should be removed. [PATCH] Eicon isdn driver hardware access fix From: Armin It fixes access to hardware memory of wrong size and therefore removes a compiler warning. The hardware trap variable must be read as 32bit value. [PATCH] Eicon isdn driver alloc buffer size fix From: Armin - Allocate buffer of correct size. - Fix possible buffer overflow. - Use correct debug level for double registered application. [BRIDGE]: Fix br_netfilter.c build with CONFIG_SYSCTL disabled [PATCH] do_no_page leak fix We leak a page in do_no_page() if pte_chain_alloc fails. [PATCH] allow SGI IOC4 chipset support From: jbarnes@sgi.com (Jesse Barnes) The 'depends' directive for SGI IOC4 support is too restrictive. Just make it depend on ia64. [PATCH] OSS dmabuf deadlock fix Spotted by From: Christian Borntraeger dma_reset_input() takes dmap->lock, so call it without that lock held. [PATCH] Remove redundant code in workqueue.c From: Rusty Russell It turns out that run_workqueue never has signal_pending(), since setting the handler to SIG_IGN means "don't make zombies, I'm ignoring them". Fix the comment, don't allow the signal, and remove the unused waitpid loop. This also allows simpler conversion of workueues to the kthread mechanism, which uses signals to indicate it's time to stop. [PATCH] tridentfb documentation fix From: Bram Stolk Fixes for Documentation/fb/modedb.txt and Documentation/fb/tridentfb.txt [PATCH] Optimize proc_pid_lookup From: Manfred Spraul readdir on /proc has two problems: reading all entries is O(N^2), and entries are overlooked if tasks die in the middle of readdir: the readdir implementation remembers the offset into the task list, and if a task (actually: process) that was returned by previous readdir calls exits, then a random entry is dropped. The attached patch fixes the O(N^2) by using f_version to store the pid of the task that should be returned next. This speeds up reading /proc to O(N). Additionally, it mitigates the effects of dying tasks: Tasks are skipped only if the task whose pid is stored in f_version exits, all other task deaths have no effect. Unfortunately the code has a bad worst case behavior: if the targeted task exits and a new task with the same pid is created, then all entries in the task list between old and new position are dropped. This should be rare. [PATCH] clarify meaning of bio fields in the end_io function From: Christophe Saout The intent of these are to clarify the meaning of the bio fields in the bi_end_io function (since we are already mostly there). After these small modifications bio->bi_idx and the corresponding bio_iovec(bio)->bv_offset point to the beginning of the completed data, together with the nr_bytes argument you know exactly what data was finished, e.g. when you can't track it otherwise (or it would be unnecessary expensive). Apart from that it's a nice-to-have. The first mini-patch moves the update of bio_iovec(bio)->bv_offset and ->bv_len after the call of bi_end_io where bi_idx gets updated so they get updated together. Ok with Jens. The second part of the patch modifies the multwrite hack in PIO non- taskfile ide disk code. It modifies the bi_idx field to walk the bios and doesn't reset it correctly before ending the request. The patch uses the segment counter in the request field to correctly restore the bi_idx field before ending the request. Can't possibly break anything since it's working on the local request copy ("scratchpad") anyway. Also does this in legacy/pdc4030.c (similar code). The code modified here is going to die anyway any trying to fix it would be too invasive. Ok with Bartlomiej. [PATCH] RTC leaks. From: Russell King, Tom Rini, Dave Jones As plugged in 2.4 recently. Fix some leakage of uninitialised memory to userspace via rtc reads. [PATCH] Simplify node/zone field in page->flags From: Matthew Dobson This patch does the following: 1) Rename ZONE_SHIFT to NODEZONE_SHIFT. This value is the number of bits to shift page->flags to get the node/zone part of the bitfield. 2) Add a macro called NODEZONE which takes a node number and zone number and returns a 'nodezone', a bitshifted composition of the two. 3) Create page_zonenum & page_nodenum, inline functions to return the node/zone a page belongs to with some simple bit twiddling, no pointer dereferences necessary. 4) Modify page_zone() and set_page_zone() to use the new NODEZONE_SHIFT. 5) Modify memmap_init_zone() & free_area_init_core() to use the new NODEZONE macros. 6) Fix up some comments to reflect the above changes. [PATCH] Identify RADEON Yd in radeonfb From: Bernardo Innocenti Identify a recent Radeon video card in radeonfb. [PATCH] Relocation overflow with modules on Alpha From: Ivan Kokshaysky Larger modules fail to load with the message "Relocation overflow vs section 17", or some other section number. This failure happens with GPRELHIGH relocation, which is *signed* short, but relocation overflow check in module.c doesn't take into account the sign extension. [PATCH] ppc32: OF bootwrapper support From: Tom Rini Re-add support to the bootwrapper for talking with OF on PReP machines. This fixes memory detection of some machines. [PATCH] Fix Documentation/SubmittingPatches to use -p From: "Martin J. Bligh" Patches are a damned sight easier to read if people use the '-p' option to diff ... this generates output that looks like this: "@@ -323,6 +323,7 @@ void put_dirty_page(struct task_struct *" for each block. This patch simply adds that to the documentation file, in the hope of steering new users in the right direction. [PATCH] Kconfig: use range for NR_CPUS From: Adrian Bunk The 2.6 Kconfig language allows to set the range for integer questions. The patch below adds a range line on all architectures that have a NR_CPUS question except ia64. The help text on ia64 didn't suggest any values. Could someone tell the correct values for ia64 (and if it's only a minimum value of 2)? [PATCH] bio documentation update From: Jens Axboe Although it was an established part of the current bio api, it was never documented that bio_add_page() and merge_bvec_fn() must accept to add at least one page to an empty bio. [PATCH] vmscan: initialize zone->{prev,temp}_priority From: Nikita Danilov This patch initializes zone->{prev,temp}_priority to DEF_PRIORITY. Otherwise they are left zeroed, and first run of VM scanner thinks that zones are under enormous stress. [PATCH] readahead part-backout From: Ram Pai Remove the up-front readahead code from the core pagecache read function: it's really bad for large reads. [PATCH] revert lazy readahead From: Trond Myklebust The following reversion is what fixes my regression. That puts the sequential read numbers back to the 2.6.0 values of ~140MB/sec (from the current 2.6.1 values of 14MB/second)... We were triggering I/O of the `ahead' when we hit the last page in the `current' window. That's bad because it gives no pipelining at all. So go back to full pipelining. It's not at all clear why this change made a 10x difference in NFS throughput. [PATCH] kconfig: fix menuconfig exit code From: Sam Ravnborg If the user decides to not write the config file out, menuconfig exits with a non-zero code. This causes make to allege that there was an error. [PATCH] fix up CPU detection in p4-clockmod From: Dominik Brodowski Too many users use the p4-clockmod cpufreq driver instead of the more advanced speedstep-centrino, speedstep-ich or even acpi drivers. All of the latter (usually) provide voltage scaling, while the p4-clockmod driver only offers a variant of frequency scaling. So, warn users if they try out this driver instead. Also, instead of using a local copy, use the speedstep_lib infrastructure for detecting the processor speed. Adding the Pentium-M get_frequency function to that module only costs about 200 bytes in object size. [PATCH] suspend/resume support for PIT From: Pavel Machek This adds proper suspend/resume support for PIT. That means that clock are actually correct after suspend/resume. [PATCH] Alpha: make prefetch_spinlock() a no-op on UP From: Ivan Kokshaysky When CONFIG_SMP is not set, spinlock_t is an empty structure, so its address has arbitrary alignment. The prefetch instructions with unaligned address don't have visible side effects on alphas with SRM console (except performance degradation) - the PALcode handles unaligned traps caused by prefetch instructions internally. However, on old AlphaBIOS/MILO boxes unaligned prefetch leads to unhandled alignment trap and kernel panic. [PATCH] Fix statically declare FIXMAPs From: Anton Blanchard , me. Two uses of the FIXADDR_USER_START/END things are problematic: a) ppc64 wants the FIXADDR area to be at a different location on 32bit and 64bit tasks. On 32bit we want it just below 4GB but that gets in the way on 64bit. By putting both right at -(some small amount) we can also use some ppc tricks to get there real quickly (single instruction branches). b) We assume that FIXADDR_USER_START and FIXADDR_USER_END are constants. This breaks the UML build. Fixes: - Call it all gate. We currently have half the stuff called fixmap and the other gate, lets be consistent. - Create in_gate_area(), get_gate_vma() and use it in both places - Provide defaults for in_gate_area/get_gate_vma, allowing an arch to override it. (I used CONFIG_* but am open to better suggestions here) - The /proc/pid/maps vma wasnt marked readable but the get_user vma was. That sounds suspicious to me, they are now both the same VMA and so have the same (read,exec) permissions [PATCH] tmpfs readdir does not update dir atime From: mark@borgerding.net Access times of tmpfs dirs do not get updated on readdir. This can cause empty dirs to get tmpwatch'd too early, b/c atime never changes even though the dir is in use. [PATCH] Add bdev private field From: Christoph Hellwig Currently xfs has a per-bdev (and XFS filesystem uses up to three underlying block devices) object that Al complained about loudly that it should be gone. But for that to happen without rewriting half of XFS (and changing layering in a way that we don't really want) we need an additional fs-private variable in struct block_device. [PATCH] ext3: fix determination of inode journalling mode The test for whether an inode is using journalled, ordered or writeback data is incorrect and can lead to ext3_set_aops() giving the inode the wrong set of address_space_operations. Fix. (Spotted by Jan Kara). [PATCH] Arrange for EFI-related code to be compiled away From: David Mosberger There is some EFI-related code which is present in the ia64 build but is not needed: variable efi_enabled is always zero. The patch fiddles with the efi_enabled definition to arrange for `efi_enabled' to be constant zero or constant one in those situations where this can be guaranteed. [PATCH] make gcc 3.4 compilation work From: David Mosberger With gcc-3.4 we need "attribute((used))" declarations to get "make modules_install" to work. Otherwise these sections get dropped from the final image (I assume). [PATCH] if ... BUG() -> BUG_ON() From: Adrian Bunk four months ago, Rolf Eike Beer sent a patch against 2.6.0-test5-bk1 that converted several if ... BUG() to BUG_ON() This might in some cases result in slightly faster code because BUG_ON() uses unlikely(). [PATCH] sysrq_key_table_key2index() fixlets - It's using & where it meant to use &&. (Randy Dunlap) - It has two callsites - uninline it. [PATCH] setscheduler fix From: Joe Korty task_running(rq,p) is equivalent to (rq->curr == p) only for some architectures. [PATCH] isapnp modem addition From: David Sanders Patch adds support for another pnp modem in 2.6 kernel. [PATCH] fix error case in binfmt_elf.c:load_elf_interp From: Roland McGrath Julie DeWandel noticed that in the error case where elf_map has failed, load_elf_interp will (at the out_close: label) return the `error' variable, but that will contain the result of a prior operation and not the error number from elf_map. [PATCH] remove null-ilizers From: Jes Sorensen The following patch removes a couple of null-ilizers of global variables. Not a big deal, but every byte helps in the .data segment ;-) [PATCH] ppc cond_syscall fix From: Matt Mackall Experimenting with trying to use cond_syscall for a few arch-specific syscalls, I discovered that it can't actually be used outside the file in which sys_ni_syscall is declared because the assembler doesn't feel obliged to output the symbol in that case: weak.c: #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall"); cond_syscall(sys_foo); $ nm weak.o U sys_ni_syscall One arch (PPC) is apparently trying to use cond_syscall this way anyway, though it's probably never been actually tested as the above test was done on a PPC. After trying a bunch of tricks to get it to work nicely, I decided there are basically two alternatives: make weak versions of sys_ni_syscall wherever they're wanted or put the arch-specific cond_syscalls in kernel/sys.c where sys_ni_syscall is defined. The former approach is a bit crufty and doesn't actually do the right thing in practice as you'll get multiple copies of sys_ni_syscall in your final image. The latter introduces some slight arch-pollution in sys.c, but as arch-specific cond_syscalls aren't all that frequent, it should be pretty minor. So here's a patch to move the current offender to sys.c: [PATCH] cleanup single_open usage in dma.c From: Jeff Muizelaar The attached patch lets the seq_file api take care of buffer allocation instead of doing it by hand. [IPV4]: Fix URL mentioned for IP_ROUTE_NAT. [PATCH] rq_for_each_bio fix From: Xavier Bestel Within the body of this macro we are accessing rq->bio, but `bio' is an arg to the macro. If someone uses this macro with some variable which is not named `bio' it won't compile. So use a more-likely-to-be-unique identifier for the macro. [PATCH] remove spurious strdup From: James Morris AFS has an unused strdup() implementation. [PATCH] sgiioc4.c cleanup weak symbol and error numbers From: Jes Sorensen The included patch removes the usage of weak symbols from sgiioc4.c now that we have the Kconfig issue sorted as well as cleans up the error no handling (instead of return 1 on error) and adds a check for the return value on snia_pci_endian_set as suggested by Christoph. [PATCH] rxrpc update From: David Howells Here's a patch to fix some bugs in my RxRPC code, including the fix for the transport initialisation failure recovery spotted by Pete Zaitcev. It also inserts some extra spaces in a few places. [PATCH] AFS upgrade From: David Howells Here's a patch to improve the AFS linux support. It: (1) Includes Pete's patch to skip the colon in the volume name, compile directly into the kernel, and not try to access non-existent caching routines. (2) Changes if (...) BUG() to BUG_ON() (3) Gets rid of typedefs. (4) Changes list_for_each() into list_for_each_entry(). (5) Adds more whitespace and wraps lines to please the CodingStyle sticklers. [PATCH] ALI M1533 audio hang fix From: risto.sandvik@helsinki.fi Everything freezes when trying to play sounds using the alsa driver opl3sa2 (kernel supplied or 1.0.0rc2) on an Acer Extensa series laptop with the Ali M1533 PCI to ISA bridge. Problem exists both in the 2.6 and 2.4 series of kernels. Adding AL_M1533 to drivers/pci/quirks.c fixes the problem for both. This has been a known problem since 2.2.x (see http://www.mfn.unipmn.it/~sitta/linux503.html) [PATCH] kbuild: Maintainers update From: Sam Ravnborg Modify MAINTAINERS to reflect the reality in maintainership for kbuild. This is ack'ed with Michael Elizabeth Chastain and Kai Germaschewski. I removed the list and web-site since they are not actively used today. [PATCH] Remove CLONE_DETACHED From: Andries.Brouwer@cwi.nl Remove obsolete CLONE_DETACHED [PATCH] uninline bitmap functions - A couple of them are using alloca (via DECLARE_BITMAP) and this generates a cannot-inline warning with -Winline. - These functions are too big to inline anwyay. [IPV6]: Add missing sentinel to ipv6_route_table. [PATCH] work around gcc bug in bitmap.c gcc miscompiles this. Scary. [PATCH] video-buf.c cleanup Remove now-unused 2.4 back-compat code. [PATCH] reiserfs v3 should throttle writers From: Chris Mason The v3 reiserfs_file_write func doesn't do any write throttling, which leads to a variety of problems. Here's a patch that makes reiserfs_file_write call balance_dirty_pages_ratelimited, and exports that func for module usage. This removes the old Eicon ISDN driver. The config entries etc were already removed earlier. [AX25]: Check error return from memcpy_fromiovec() [IRDA]: Check error return from memcpy_fromiovec() [NETROM]: Check error return from memcpy_fromiovec() [ROSE]: Check error return from memcpy_fromiovec() [IPV6]: Set flow protocol correctly in SIT driver route lookups. [NET]: Add proc_dointvec_userhz_jiffies, use it for proper handling of neighbour sysctls. [IPV6]: Stricter checks on link-locals in bind and sendmsg When binding to a link-local address, inet6_bind() and raw6_bind() only check that an interface is specified and that the address exists, but they don't check if it actually exists on the specified interface. Similarly, in datagram_sent_ctl() we don't check for the possibility of a link-local address when we receive the source address from userspace. [PATCH] pdc202xx_old.c: fix PIO autotuning This fixes bugzilla bug #1431. Always tune controller PIO timings. This fixes lockup during PIO access (ie. 'cat /proc/ide/hda/identify') when Promise BIOS is disabled. [PATCH] pdc202xx_old.c: fix enabling 66MHz clock for modes > UDMA2 drive->id is now always present even if no device is attached, therefore check for drive->present instead. [PATCH] pdc202xx_old.c: sanitize 66MHz clock use Sanitize 66MHz clock use: "enable" 66MHz clock before starting UDMA3/4/5 read/write transfer and "disable" it after finishing transfer. - fixes timings for non-UDMA3/4/5 operations (correct 33MHz timings are used) - allows using UDMA3/4/5 modes on a capable drive even if non-UDMA3/4/5 drive is present on the same channel - fixes corner case when one drive on the channel was using UDMA66/100 + LBA48 (so clock was enabled/disabled for each read/write) and other one was using UDMA66/100 + LBA28, it could happen that request on LBA48 drive disabled 66MHz clock and it was not enabled for the next transfer on LBA28 drive [PATCH] Restore missing ppc64 hash_low.S file This went missing somewhere. Here's a patch which puts it back. [PATCH] sort exception tables This patch arranges for the exception tables to be sorted on most architectures. It sorts the main kernel exception table on startup and the module exception tables when they get loaded. The main table is sorted reasonably early - just after kmem_cache_init - but that could be moved even earlier if necessary. There is now a lib/extable.c which includes the sort_extable() function from arch/ppc/mm/extable.c and the search_extable() function from arch/i386/mm/extable.c, which had been copied to many architectures. On many architectures, arch/$(ARCH)/mm/extable.c became empty and so I have removed it. There are four architectures which do things differently from i386: alpha, ia64, sparc and sparc64. Alpha and ia64 store the offset from the offset from the exception table entry to the instruction, and sparc and sparc64 have range entries in the table. For those architectures I have added empty sort_extable functions. The maintainers for those architectures can implement something better if they care to. As it is they are no worse off than before. Although it is a moderately sizable patch, it ends up with a net reduction of 377 lines in the size of the kernel source. :) I have tested this on x86 and ppc with a module that uses __get_user in an init function, deliberately laid out to get the exception table out of order, and it works (whereas it oopsed without this patch). Make sure we don't access "cmd" in ide-scsi after having started the command - it may not exist any more. In particular, load the host early in order to do proper locking without having to access the command structure later. Noted by Andries Brouwer. [SPARC64]: Move setting of current_thread_info()->cpu to smp_prepare_boot_cpu() [ARM] Add PXA MCI resources and device structure. [ARM PATCH] 1711/1: pxa2xx_udc (3/5) add udc platform_device, platform_data Patch from David Brownell This declares the pxa2xx_udc platform device, defines the platform_data made available to that driver, and allows different machines to customize that platform_data. Same idea as in the FB driver. Be careful of patch conflicts applying to other kernels, mostly due to different platform devices being listed. [ARM PATCH] 1713/1: pxa2xx_udc (4/5) mach-pxa/lubbock.c updates Patch from David Brownell This adds basic lubbock-specific customization for the UDC driver, and makes it use INIT_MACHINE. Depends on the INIT_MACHINE patch and the UDC platform_data patches (#1, #3 in this series). Be careful of patch conflicts applying to other kernels, mostly due to different platform devices being listed. [ARM PATCH] 1714/1: pxa2xx_udc (5/5) pxa2xx_udc driver Patch from David Brownell This patch adds the UDC driver itself. Depends on the udc platform_data patch (#3 this series) and on 1659/1 (kconfig/kbuild support). SUPERCEDES patch 1658/1 (against test5) [ARM PATCH] 1717/1: Add German umlauts to Acorn console font Patch from Peter Teichmann This adds German Umlauts (ÄÖÜäöüß) and some other Characters to the Acorn 8x8 console font. [ARM PATCH] 1741/1: Add ARM710T processor functions Patch from Tony Lindgren Following patch adds ARM710T processor support to proc-arm720.S. The preferred way to add support was discussed on the Linux-arm-kernel mailing list in December, with a link to the thread here: http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2003-October/017596.html NEC ARM710T is used in Psion Windermere architecture, and possibly other systems. 710T works fine with the 720T functions, except the high_mapping does not work for vectors_base(). Even if the high bit register is set, the vectors stay at 0x00000000 instead of 0xffff0000. input: Properly recompute initial values upon recalibration in joydev. [PATCH] Prevent false positives in non-fatal MCE check. non-fatal didn't get the same change that k7.c did a few months back, so it reads from banks that actually _cause_ MCEs. This patch also adds a bunch of copyright headers whilst we're in that neighborhood. [SPARC64]: Add CONFIG_DEBUG_BOOTMEM option. [SPARC64]: Correctly mask the physical address for remapping the kernel TLB's [ARM PATCH] 1735/1: correct memcpy return value on ARM Patch from Nicolas Pitre [ARM PATCH] 1703/1: SA Cerf update (cleanup) Patch from Frank Becker Crud removal. Updated cerf doc. The SA CerfPDA/CerfPOD have long been gone. I see no community activity. The last official release was 2.4.9. Removed ifdefs for CERF_CPLD (which referred to the PDA/POD), go figure. Removed keyboard driver. Removed default configs for PDA/POD. Removed PDA/POD related LCD stuff. [PATCH] USB UHCI: fix broken data toggles for queued control URBs This patch fixes a long-standing (albeit unidentified) problem in the queueing code for the UHCI HCD. The code propagates data toggle settings between messages in a queue for control transfers just the same as bulk and interrupt transfers. That is a mistake, since control messages always restart with data toggle 0. With this patch, the UHCI driver now passes test 10 (control URB queueing) in David Brownell's usbtest suite. The patch appears to change more than it really does, because it alters the indentation level of a large section of code. USB: hook up the HID device's struct device to the input system properly. [PATCH] USB: hook up the other (non-HID) input devices to the input system properly. [PATCH] USB: hiddev HIDIOCGREPORT not blocking in 2.6 I've noticed in 2.6 kernels that HIDIOCGREPORT does not wait for io completion before returning to the caller. This creates a few unpleasant issues for userspace: First, code sequences such as... ioctl(fd, HIDIOCGREPORT, &rinfo); ioctl(fd, HIDIOCGUSAGE, &uinfo); ioctl(fd, HIDIOCGSTRING, &sdesc); ...that used to work in 2.4 now fail in 2.6 if the device takes more than a few milliseconds to respond to HIDIOCGREPORT. (I'm seeing this issue on APC UPSes, FWIW.) Second, userspace code can easily flood the kernel with control messages since the kernel provides no "backpressure". The result is a lot of "hid-core.c: control queue full" errors and lost reports. 2.6 hid-core.c appears to submit the request and return immediately. Although the 2.4 code differs significantly, I traced the call path to usb-core.c, which seems to block with a timeout, so the code supports my userspace observation. (Assuming I didn't misread it.) [PATCH] USB Storage: Notify the SCSI layer about device resets According to James Bottomley, we need to notify the SCSI midlayer whenever we issue a driver-initiated device reset. That can happen in several places, most notably following a transport error. This patch adds code to the reset routine to take care of it. (Notifying about resets requested by the midlayer itself is unnecessary but harmless.) Alan Stern On 15 Dec 2003, James Bottomley wrote: > It looks like the driver sent a reset to the device on its own without > reporting it to the mid-layer. > > There's an expecting_cc_ua flag in the scsi_device. It gets set on > error recovery actions, or if the device does something to detect or > trigger a reset (that's the scsi_report_device_reset() and > scsi_report_bus_reset() API's). > > James [PATCH] USB Storage: Sysfs attribute file for max_sectors After much discussion with the SCSI folks, here's a patch to export max_sectors as a sysfs attribute. Turning this down makes some people's devices more stable, but at a significant cost in performance. Now, users can adjust it without recompilation. This is YAASP (yet another Alan Stern patch). [PATCH] USB: fix memory bug in usb-skeleton.c [PATCH] USB Storage: unusual_devs.h patch for Trumpion MP3 player This patch is needed for the USB storage subsystem to recognize the Trumpion MP3 player as a valid USB mass storage. T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=090a ProdID=1200 Rev= 1.00 C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=256mA I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=01 Prot=01 Driver=usb-storage E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=255ms [PATCH] USB: Band-aid for mct_u232 in 2.6.1 On Sun, 18 Jan 2004 00:37:44 -0800 Pete Zaitcev wrote: > My Magic Control Technology adapter causes an oops in the following way. > Connect the thing, run "cat < /dev/ttyUSB0", disconnect, kill cat with ^C. > The result looks like this: I played with it a little more, and pretty much got everything working, thus fixing two Fedora bugs. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=112889 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=113700 [PATCH] Fix for 32-bit execve() error path From: David Gibson The patch below fixes a bug in ppc64's 32-bit execve() path. It duplicates logic already in the normal fs/exec.c do_execve() to avoid dropping a NULL mm. The bprm.mm becomes NULL once the exec passes the "point of no return". Without this patch a failure past that point (e.g. mmap() failure) will cause an oops, with it just a killed process. [PATCH] get PPC64 iSeries closer to building From: Stephen Rothwell This patch allows iSeries to come much closer to building. This is a precurser to my trying to merge the virtual device drivers for iSeries (console, disk and cdrom). [PATCH] ppc64: Bug fix for hugepages on ppc64 From: David Gibson Currently the flag indicating whether or not hugepages are allowed below 4GB is not correctly propagated across fork(), which can lead to oopses. The patch below fixes this. [PATCH] ppc64: iSeries virtual console From: Stephen Rothwell This is a forward port of a 2.4 driver that has been present in a couple of (enterprise) distributions for some time. It works for me :-), I even get console output :-) This makes the machine almost usable - next we will get virtual disk. It has been considerably tidied up, but if you have any further worries with it, let me know. [PATCH] Asus L5 framebuffer fix From: Pontus Fuchs I need the following patch for radeonfb to work on my Asus L5. See http://bugs.xfree86.org/show_bug.cgi?id=561 for more info. (benh confirmed this with ATI). [PATCH] loop needs MODULE_ALIAS_BLOCK From: Erik van Konijnenburg There are two issues here: - absense of a MODULE_ALIAS_BLOCK in loop.c - mismatch between the patterns used in the MODULE_ALIAS_BLOCK define and the modprobe invokation in request_module. (acked by Rusty) [PATCH] loop: trivial error number fix From: OGAWA Hirofumi This patch fixes the error number when invalid file is passed (neother S_ISBLK nor S_ISREG is true). We should return -EINVAL. [PATCH] One-shot support for epoll From: Davide Libenzi The attached patch implements the one-shot support for epoll. Because of the way epoll works (hooking f_op->poll()) the ET behavior is not really ET because it might happen that, while data is still available to read (for the EPOLLIN case), another chunk will become available triggering another event. While those conditions can be easily be handled in userspace, the absolute triviality of the patch and the avoidance of user/kernel space switches and f_op->poll() calls, make IMHO worth doing this inside epoll itself. [PATCH] RAID-6 From: "H. Peter Anvin" RAID6 implementation. See Kconfig help for usage details. The next release of `mdadm' has raid6 userspace support. [PATCH] check for truncated modules From: Rusty Russell I *do* want to add a check for a truncated module, since that's probably the most common case (^C on "make modules_install"). But I don't want to double the size of module.c with every check I can think of. tested with: # bs=0; while [ $bs -lt 3764 ]; do dd if=dummy.ko bs=$bs count=1 2>/dev/null | insmod -; bs=`expr $bs + 1`; done [PATCH] md: fix return code in set_disk_faulty() From: NeilBrown Following are 10 patches for md in 2.6.1-lastest. 1-6 are simple bugfixes that I am confident should be in 2.6.2. 7 is a bugfix that is fairly important, but could probably do with a bit more testing first. It is not impossible that it could deadlock, though I think I have caught and fixed all the problems. 8-10 are code simplication. So maybe 7-10 should only go in -mm for now, but if it is a while before 2.6.2, then maybe they can go in a 2.6.2-pre. From: Mike Tran If cannot find the device, return error (ENODEV) Otherwise, return success (0) [PATCH] md: Don't allow raid5 rebuild to swamp raid5 stripe cache From: NeilBrown raid5 rebuild takes stripes so agressively that other access cannot get a look-in. With this patch, the rebuild pauses slightly if there is a shortage of stripes to let other processes have a chance. akpm: I was worried about starvation due to the harsh semantics of yield() in 2.6. But Neil has performed specific testing for that and things seem OK. If people do note CPU starvation problems we will need to replace the yield() with a schedule_timeout(1). [PATCH] md: Make sure an interrupted resync doesn't seem to have completed. From: NeilBrown If the raid1 or raid5 thread gets to run md_check_recovery after the recovery thread has been interupted, but before do_md_stop completes, a spare drive can be incorporated into an array befure it is up-to-date. This patch corrects the relevant test. [PATCH] md: Fix typo in comment From: NeilBrown Thanks dann frazier [PATCH] md: Make sure md recovery happens appropriately. From: NeilBrown Currently if there are two failed drives, and two spares are added, then recovery starts onto the first spare, but never notices the second spare. To cope, we set RECOVERY_NEEDED when recovery finishes so that we re-check. [PATCH] md: Don't do_md_stop and array when do_md_run fails. From: NeilBrown Current code calls do_md_stop to clean up if do_md_run fails, but this is a/ not needed as do_md_run cleans up itself b/ bad as it could try to clean up after an -EBUSY error !!! [PATCH] md: Small fixes for timely writing of md superblocks. From: NeilBrown Currently a raid0 superblock is only written when the array is stopped, so a crash between creation and stop can lose your data. This patch marks a superblock 'dirty' at creation and forces a dirty superblock to be written when the array is started. Previously we would prod the per-array thread at this point, but as it avoids certain chores when the array is locked, and the array is locked at this point, that isn't guaranteed to do the right thing. Instead we prod the thread whenever the array is unlocked. Finally, only write the superblock at array stop if it is needed to mark the array as 'clean'. raid0 which is never dirty, doesn't need this. [PATCH] md: Remove the 'disks' array from md which holds the gendisk structures. From: NeilBrown Move the pointers into mddev. The reduces dependance on MAX_MD_DEVS. [PATCH] md: Discard the mddev_map array. From: NeilBrown We only need it occasionally to map unit number to mddev, and we can use a linear search for that. This reduces dependance on MAX_MD_DEVS [PATCH] md: Use bd_disk->private data instead of bd_inode->u.generic_ip From: NeilBrown ..to access 'mddev' from the inode pointer. This is already set up for us. [PATCH] Move XATTR_SECURITY_PREFIX macro to common location From: Chris Wright Move the XATTR_SECURITY_PREFIX macro to the xattr.h header so that it's in a common location. (Acked by Stephen Smalley) [PATCH] Default hooks protecting the XATTR_SECURITY_PREFIX namespace From: Chris Wright Add default hooks for both the dummy and capability code to protect the XATTR_SECURITY_PREFIX namespace. These EAs were fully accessible to unauthorized users, so a user that rebooted from an SELinux kernel to a default kernel would leave those critical EAs unprotected. (Acked by Stephen Smalley) [PATCH] Fix x86-64 ptrace From: Andi Kleen The EFLAGS checking was not correct. This also fixes some problems with 32bit gdb who would sometimes make the kernel BUG. [PATCH] sendfile calls lock_verify_area with wrong parameters From: Manfred Spraul sendfile supports reading from a given start offset for in_file, like pread. But for the locks_verify_area call, in_file->f_pos is always used, even if a start offset is used. Result: wrong area is checked for mandatory locks. [PATCH] pc300_tty.c is broken From: Russell King Russell was unable to correctly migrate this driver to the new modem-control-signal API because TIOCMBIS/TIOCMBIC do not control only the DTR signal, but also the RTS, OUT1 and OUT2 signals, or even maybe nothing at all. Plus, these IOCTLs are no longer passed down to the driver. Instead, drivers should implement tiocmget and tiocmset driver methods. so mark it as broken so as to not break allmodconfig/allyesconfig. [PATCH] dbv: update documentation From: Michael Hunold - update contributors - documentation update for recent DVB TTUSB driver changes [PATCH] dvb: update saa7146 driver From: Michael Hunold - fix memory leak in page table handling - minor coding style changes - add simple resource management for video dmas (borrowed from saa7134) - use resource management to lock video and vbi access which sometimes share the same video dmas - honour return codes of extension functions in various places, when resources could not be locked - remove remains of dead code which were commented out anyway - add new flag FORMAT_IS_PLANAR to indicate planar capture formats, needed for resource allocation [PATCH] dvb: update core From: Michael Hunold - demux: fix nasty bug where setting multiple filters resulted in ts packet duplication - frontend: merge frontend improvements from 2.4 DVB tree: - schedule_timeout(1) in dvb_frontend.c after setting frontend and before waking up frontend thread - do FE_RESET in each iteration of frontend thread if !FE_HAS_LOCK - use aquire_signal flag to call FE_RESET only after tuning until FE_HAS_LOCK has been signalled, and not when FE_HAS_LOCK drops out for short periods of time later - follow frontend changes in ves1x93 driver [PATCH] dvb: av7110 driver splitup From: Michael Hunold - after the firmware removal, split av7110.c into separate modules: - av7110.c: initialization and demux stuff - av7110_hw.c: lowlevel hardware access and firmware interface - av7110_ca.c: CI and ECD - av7110_av.c: audio/video MPEG decoder and remuxing stuff - av7110_v4l.c: v4l interface - av7110 fixes that were notcies during splitup - rename some non-static functions to enhance readability - lots of coding style & whitespace fixes - return -ERESTARTSYS from ci_ll_read/write() if interrupted - use time_after() for timeouts - added some comments about firmware interface - removed some unused fields from struct av7110, retabbing - follow driver splitup in Makefile [PATCH] dvb: TTUSB driver update From: Michael Hunold - TTUSB-DEC update by Alex Woods: - fix USB timeout bug under 2.6 - change some variable names to make it clearer what we are dealing with (PVA). - support DEC2540-t and add info on it to the ttusb-dec docs. - add model number returned from DEC2540-t firmware. - add a module option to get the raw AVPES packets from the dvr device. - send audio packets to their filter rather than the videos. - handle the new empty packets that appear with the 2.16 firmware. - extra error checks. - handle the new firmwares that change the devices' USB IDs. - tidy up the STB initialisation process a little. - apply Hans-Frieder Vogt's patch for calculating firmware CRCs. - make TTUSB budget card depend on USB subsystem [PATCH] amd74xx: fix for !CONFIG_PROCFS From: "Randy.Dunlap" From: Luiz Fernando Capitulino this patch fixes this warning: drivers/ide/pci/amd74xx.c:80: warning: `amd_udma2cyc' defined but not used when !CONFIG_PROC_FS. [PATCH] APM: handle kernel_thread failure From: "Randy.Dunlap" From: Eugene TEO [PATCH] MCA: handle bus failure From: "Randy.Dunlap" From: Eugene TEO Handle OOM in mca_init() [PATCH] md: fixes for !CONFIG_PROCFS From: "Randy.Dunlap" From: Luiz Fernando Capitulino It fixes these warnings when !CONFIG_PROC_FS: drivers/md/md.c: In function `md_geninit': drivers/md/md.c:3481: warning: unused variable `p' drivers/md/md.c: At top level: drivers/md/md.c:3007: warning: `md_seq_fops' defined but not used [PATCH] vm overcommit documentation corrections From: "Randy.Dunlap" From: Patrick McLean [PATCH] spell Unix98 the same everywhere From: "Randy.Dunlap" From: Andreas Beckmann Patch is for consistency in spelling Unix98 (vs. Unix 98). This matches the other 20 or so occurrences of it. [PATCH] md: remove unneeded ifdef/endif From: "Randy.Dunlap" From: Luiz Fernando Capitulino This #ifdef/#endif is not necessary. [PATCH] remove unused flags arg from fs/stat64* From: "Randy.Dunlap" From: Michael Still Viro and Andi Kleen agreed. The argument isn't used at all and cannot be used safely in the future. remove third arg from all 3 fs/stat.c stat64() calls since it's not used and there's no way to use it safely; [PATCH] correct floppy outb() macro arg names From: "Randy.Dunlap" This patch changes no code, just swaps macro arg names to match reality. [PATCH] ext3: update a_ops when running `chattr +j' From: Jan Kara Journalled-data files need a different set of address_space_operations, so we need to update the file's aops when someone runs `chattr +j' on the file. [PATCH] exception table search fix The exception table search code currently fails if addresses differ by more than 2G. This is only a problem when using the 4g/4g address space split, but it's more robust this way. Also, shuffle the comparison order n there so the least likely case comes last. [PATCH] reiserfs: cleanup_bitmap_list() check for NULL argument. From: Nikita Danilov fs/reiserfs/journal.c:cleanup_bitmap_list() can be called to cleanup reiserfs_list_bitmap that was only partly initialized. Check that jb->bitmaps array was actually allocated, before trying to free its elements. [PATCH] Document problems with USB legacy support From: Vojtech Pavlik [PATCH] drivers/isdn/Kconfig URL update: caltech.edu From: Petri Koistinen Little URL fix. Server requires www in front of URL, no automatic forwarding. [PATCH] ratelimit I/O error printk's Ratelimit a couple of potentially-stormy printk's in the writeback code. [PATCH] dquot: fix i_blocks accounting and locking From: Jan Kara A patch which fixes a problem that i_blocks are not updated for quota files (when quota turned on) in 2.6.1. The patch also fixes possible unlock of not locked spin_lock. [PATCH] smbfs: remove noisy printk's These printk's come out during normal usage, when accessing locked system files on the windows machines. [PATCH] NFS/RPC modprobe -r sunrpc causes an oops From: Steve Dickson Here is a patch for the 2.6.1 kernel that fixes an oops that occurs when the sunrpc module is unloaded. The problem was the RPC cache_register() call was not saving entry pointers to the procfs entries it was creating. So when it came time to dismantle the entires, a BUG_ON() was tripped in remove_proc_entry() since the tree was not broken down completely. (acked by neilb) [PATCH] afs: avoid ifdef inside macro expansion From: David Howells Eliminate the printing of the cache token if present: using cpp conditionals inside macro expansions is not legal and some gcc's fail it. [PATCH] do not use shared extable code for ia64 From: Jes Sorensen The new sort_extable and shared search_extable code doesn't work on ia64. I have introduced two new #defines that archs can define to avoid the common code being built. ARCH_HAS_SEARCH_EXTABLE and ARCH_HAS_SORT_EXTABLE. [PATCH] new module args for ir-kbd-*.c From: Gerd Knorr Use module_param() rather than the deprecated MODULE_PARM() in this driver. Linux 2.6.2-rc1 [SPARC64]: Fix 32-bit execve out_mm error path. Do not pass a NULL mm to mmdrop(). [TTUSB]: ttusb_dec.c needs linux/init.h [SPARC64]: Update defconfig. input: Allow Synaptics packet rate to be controlled by the psmouse_rate= option. input: If we get a byte with timeout or parity flags in psmouse.c, we take the appropriate action. (throw the byte away, reset byte counter, return NAK if acking, and complain). [PATCH] selinux build fix trivial one: uses __init and thus needs linux/init.h [PATCH] video4linux driver documentation update This updates / adds documentation for the bttv, saa7134 and cx88 video4linux drivers. [PATCH] Check for MCE ability before checking registers. Here's a novel idea, check the CPU has machine check capabilities before we start polling registers. I was wondering why my VIA C3 was starting this. Who knows it may solve some of the random crashes I saw there. [PATCH] ia64: Kconfig cleanup, part 1 [PATCH] ia64: i2c config fix ia64 needs to include i2c by hand [PATCH] Elvis^H^H^H^H^HPaul has left the building > Paul Mackerras: > o sort exception tables And as more proof that Paul is leaving us ppc32 folks, *sniff*, the following is needed for PPC32 to compile: [NET]: Do not mark dummy_free_one() __exit in dummy.c driver. [IPV6]: Fix link-local address check in datagram.c [IPV6]: More missing sysctl table sentinels in addrconf.c [IPV6]: Explicity set *dst to NULL at top of ip6_dst_lookup(). [ATM]: [horizon] avoid warning about limited range of data type [SPARC64]: Add missing sched_balance_exec() to 32-bit compat execve(). [IPV6]: Add and use new 'strict' parameter to ip6_chk_addr(). RFC 2461 requires that the source address of Neighbor Discovery messages is an address assigned to the sending interface. Duplicate Address Detection should also be interface specific. We don't, for example, want a node to DoS itself just because it has two interfaces on the same link and both happen to listen to the same multicast group. If there is a true duplicate on the link, the interface doing DAD will notice it anyway. The attached patch adds a 'strict' parameter to ip6_chk_addr() and ip6_get_ifaddr() to allow link-local protocols like ND and DAD to do strict address checks even on addresses with greater scope than link-local. [PATCH] RAID-6 fixes From: "H. Peter Anvin" As expected, when it hit mainline I started getting real bug reports... the attached patch does the following: - Fixes a few x86-64 specific bugs; - Removes MMX and SSE-1 from x86-64 (if we have x86-64 we have SSE-2); - Slightly astracts the integer code to make it easier to add architecture-specific optimizations later (e.g. IA64 once gcc gets better IA64 intrinsics support); - Resurrects the user-space testbench, and makes it not output the known false positive of the D+Q case (D+Q is equivalent to a RAID-5 recovery, so I didn't implement it in the user-space testbench.) [PATCH] document RAID-6 support in mdadm-1.5.0 From: "H. Peter Anvin" This is purely a doc patch saying RAID-6 support is available in mdadm-1.5.0 and the patch is no longer necessary. [PATCH] ppc64: add missing sched_balance_exec() call From: Anton Blanchard We were missing the sched_balance_exec call. Could explain some NUMA scheduling weirdness we were seeing. [PATCH] ppc64: include i2c in config ppc64 doesn't use drivers/Kconfig (it should) so it needs to include i2c by hand. [IPV6]: addrconf_sysctl_forward_strategy() needs to invoke rt6_purge_dflt_routers() too. Fix APIC timer initialization. We used to write fields that were marked RESERVED and that are apparently some old stale timer base. Stop doing that. Verified with Mikael Pettersson, and confirmed to fix ACPI boot-time lockups for a few people. [NET]: Simplify net/flow.c per-cpu handling. The cpu handling in net/core/flow.c is complex: it tries to allocate flow cache as each CPU comes up. It might as well allocate them for each possible CPU at boot. [PATCH] ia64: replace inline assembly in sn2 code [PATCH] non-integrated local APIC LVTT init compatibility Add back the old i82489DX bits to use timer scaling for the old non-integrated APIC setup. It's possible these bits don't need to be set on i82489DXs, but not having this HW for testing I elected to maintain the old behaviour on these old machines. [XFS] In xfs_bulkstat, we need to do the readahead loop always. SGI Modid: xfs-linux:xfs-kern:164517a [XFS] Fix for large allocation groups, so that extent sizes will not overflow pagebuf lengths. SGI Modid: xfs-linux:xfs-kern:164827a [PATCH] LSI Logic MegaRAID3 PCI ID From: Chris Meadors Add a missing PCI ID. [PATCH] RAID-6 fix for IA-64 From: "H. Peter Anvin" Fix for RAID-6 on IA-64, from Bjorn Helgaas, and verified by me. [PATCH] ppc32: Fixes to the signal context code From: Benjamin Herrenschmidt This patch (which has been in my tree for some time now) does 2 things to the ppc32 signal code: - The new sys_swapcontext() syscall that we added recently (and which is _not_ yet used by glibc, so it's ok to change it slightly at this point, glibc kernel version check will limit us to 2.6.2 or 2.6.3) gets a new context size argument, so we can deal with future context size changes. - When ucontext is get/set/swapped using the above syscall, the TLS (r2) is preserved (it's still saved/restored on signal entry & return though). The equivalent of this patch is already in the ppc64 signal32.c emulation, and it has no effect until glibc is updated to use the new syscall, which should happen soon now, so please apply. [PATCH] Fix rq_for_each_bio() macro again From: Rusty Russell Looks like an obvious typo. Works fine if "bio" is the name of the iterator. [PATCH] PCI probing typo [PATCH] OOSTORE needs MTRR. The centaur CPU init code gets linking errors without it. [PATCH] Reduce stack usage in w9966 driver. 2KB onstack allocation. Nasty. [PATCH] Restore 2.4 MTRR feature. If the CPU doesn't support MTRRs, don't create a /proc/mtrr [PATCH] logic error in aty128fb Negate the expression not the register seems more sensible? [PATCH] Remove unused CONFIG symbol. Grep of the tree only turned up these two uses. [PATCH] Reduce stack usage in ttusb driver. ARM_PACKET_SIZE is 4KB. Ouch. [PATCH] Correct CPUs printout on boot. This currently prints out the maximum number of CPUs the kernel is configured to support, instead of the actual number that the kernel brought up. Which results in odd displays that look like you have more CPUs than you do. [PATCH] Remove useless cruft from ATM HE driver. Echoing changes done in 2.4. (It now has a pci_pool_create backport). [PATCH] logic error in radeonfb. Looks like another instance of a ! in the wrong place. [PATCH] logic error in XFS Yet another misplaced ! by the looks.. [PATCH] DMI updates from 2.4 A lot of the blacklists never made it forward, here's what I found still lying around in my old 2.5 tree when I brought it up to date. I think 2.4 has had more updates since then (and there may be some entries languishing in vendor 2.4 trees), I'll take a peek when I get some spare cycles. [PATCH] Update post-halloween doc url. I did a s/2.5/2.6/ a while ago, as it made more sense when 2.6 appeared. The old URL will continue to work (symlink to the new file). If I move this again, whack me. Fix up he.c misuse of pci_pool_create() that slipped in. [PATCH] md: Fix possible hang in raid shutdown. From: NeilBrown If a raid array was syncing on shutdown, it would hang on shutdown, constantly re-entering md_enter_safemade. This fixes it. ia64: Drop copyright notices on header files which are either entirely trivial or ended up being trivial variations of another file. Fix some missing attributions and rephrase existing attributions for specifity. [PATCH] Fix CPU hotplug in networking The code directly accessed the "cpucontrol" semaphore used for CPU hotplug. That doesn't work all that well, since the semaphore doesn't even exist on UP. [SUNZILOG]: Fix locking in cases where UART layer has grabbed the lock already. ia64: Fix typo in comment in asm-ia64/posix_types.h. [PATCH] ia64: add platform_timer_interrupt() hook [PATCH] ia64: remove MCA (MicroChannel) cruft MCA_bus is now referenced only when CONFIG_MCA is set, so we should be able to remove the definition from ia64. ia64: Patch by Jesse Barnes: remove unnecessary set_affinity handler. [PATCH] USB storage: remove info sysfs file as it violates the sysfs 1 value per file rule. [PATCH] USB: fix up emi drivers Kconfig dependancy [PATCH] USB gadget: net2280 controller updates A variety of fixes: - Resolves some problems with DMA chaining. It should stream a lot better now; but not all the funky cases are handled yet. - Now "use_dma_chaining" is a module parameter not a #define. It also defaults to false. Some gadget drivers will work fine with this enabled, getting some IRQ reduction and increased I/O parallelism (given deep I/O queues); others won't. - Handle isochronous transfers (from Mark Huang at Broadcom) - Some of the chiprev 0100 workarounds weren't quite right. Neither were buffer allocations on dma-incoherent systems. - Handle bulk endpoint halts better, for file_storage gadget driver. - Handle the hardware device status bits better: * selfpowered by default, clearable with the API; * remote wakeup disabled by default, host must enable it. - Fix a shutdown problem seen in some statically linked configs. Needed to use the new file_storage gadget without disabling DMA. [PATCH] USB gadget: add File-backed Storage Gadget (FSG) (From Alan Stern.) The File-backed Storage Gadget provides support for the USB Mass Storage protocol. It causes a gadget to appear to the host as a USB disk drive, using a regular file or a block device to provide the necessary storage somewhat like the "loop" device. The driver supports up to 8 Logical Units, appearing to the host as multiple disks, each configurable independently for read-write or read-only access. The settings for the Logical Units are available through sysfs attribute files. The driver has a testing version, selectable by a kernel configuration option. The test version includes many additional module parameters, allowing the USB protocol, subclass, vendor, product, and release values to be set. It also has an option to emulate removable media, and the sysfs interface allows the backing files and the read-only settings to be switched on-the-fly. In both versions several logging and debugging levels are available. They provide a nice way of seeing exactly what commands a USB host is sending to the gadget. [PATCH] USB gadget: config/build updates This updates and simplifies the kernel config for the gadget drivers. It also adds build support for three new drivers: two controllers (goku_udc, pxa2xx_udc) and one gadget driver (file_storage). [PATCH] USB gadget: zero config updates Use new boolean CONFIG_* symbols. [PATCH] USB gadget: ethernet config updates Autoconfigure ep0 maxpacket size, and simplify configuration for device power consumption. Use new boolean CONFIG_* symbols. SuperH UDC support. [PATCH] USB gadget: serial driver config update There's a properly assigned vendor/product ID pair for this; use it. Use new boolean CONFIG_* symbols. For PXA/IXP, use the first two endpoints. [PATCH] USB: fix whiteheat doing DMA to stack the whiteheat driver in two places does DMA to the stack by usb_bulk_msg(). [PATCH] USB: fix dma to stack in ti driver you cannot use usb_bulk_msg() on buffers on the stack. [PATCH] USB Storage: unusual_devs update On Mon, 19 Jan 2004, Simon Levitt wrote: > Hi, > > In order to get the card reader on my Epson Stylus Photo 875DC working in > linux I've added the following to unusual_devs.h - like the Epson 785EPX it > returns Sub=0xff. Greg, this can be applied to 2.4 and 2.6. [PATCH] USB: fix up whiteheat syntax errors from previous patch. [PATCH] I2C: i2c-piix4.c bugfix This patch fixes a "Trying to release non-existent resource" error that occurs during rmmod when the device isn't actually present. It includes some other cleanups too: error paths, whitespace, magic numbers, __devinit. [PATCH] I2C: undo documentation change Undo a recent change to the i2c documentation. The change belongs to 2.7. [PATCH] I2C: Fix bus reset in i2c-philips-par This patch fixes the bus reset in i2c-philips-par when it is loaded with type!=0. For now, the reset is always made as is type==0. I guess that this driver will be abandoned in a while, but it probably doesn't hurt to fix that. ia64: Fix merge error: remove duplicate NR_CPUS. [PATCH] remove mt rainier warning A debug printk was left in there by mistake, it'll get printed for every non-mrw drive. So kill it. [PATCH] Fix up 'linux-dvb' maintainers entry We've created a new e-mail address which is currently an open mailing-list anybody can subscribe to. It's currently watched by the main developers. If spam takes over the list, we might change it to "moderated" or even route it to one single person. [ACPI] acpi_bus_add() ignored _STA's return value from Bjorn Helgaas ia64: remove old sn1 machvec header file [IRDA]: Update dongle api. From Martin Diehl. * change dongle api such that raw r/w and modem line helpers are directly called, not virtual callbacks. [IRDA]: Update actisys-sir driver. From Martin Diehl. * convert to de-virtualized sirdev helpers * improve error path during speed change [IRDA]: Update esr-sir driver. From Martin Diehl. * convert to de-virtualized sirdev helpers * add probably missing dongle power-up operation [IRDA]: Update tekram-sir driver. From Martin Diehl. * increase default write-delay to 150msec * convert to de-virtualized sirdev helpers [IRDA]: Add litelink-sir driver. From Eugene Crosser. * converted for new api from old driver From Martin Diehl. * convert to de-virtualized sirdev helpers * set dongle to 9600 in case of invalid speed instead leaving it in unknown configuration [IRDA]: Add act200l-sir driver. From Martin Diehl. * converted for new api from old driver [IRDA]: Add girbil-sir driver. From Martin Diehl. * converted for new api from old driver [IRDA]: Add ma600-sir driver. From Martin Diehl. * converted for new api from old driver [IRDA]: Add mcp2120-sir driver. From Martin Diehl. * converted for new api from old driver [IRDA]: Add old_belkin-sir driver. From Martin Diehl. * converted for new api from old driver [IRDA]: Kconfig changes to enable new drivers into the build, from Martin Diehl. [PATCH] Fix for aacraid and high memory on 2.6.1 Here is an update to use pci_set_consistent_dma_mask. But since dma_alloc_coherent uses dma_mask instead of consistent one, I left in setting dma_mask as well until the alloc routine changes. drivers/scsi/Kconfig URL update: resource.cx From: Petri Koistinen aic7xxx parallel build From: Justin T. Gibbs [PATCH] aha1542 warning fix Fix this: drivers/scsi/aha1542.c:74: warning: unsigned int format, different type arg (arg 5) [MULTICAST]: multicast loop with include filters fix When sending a multicast and using looping back a copy to the local machine, the interface filter checks can be done before the source address is specified. For an INCLUDE filter, this won't match the allowed sources and the packets won't be delivered locally, even when the ultimate source address chosen is in the allowed list. The patch below fixes the filter checks for both IGMPv3 and MLDv2 to only apply when a source address is available. Thanks to Steven Hessing for reporting the problem and providing a test case for reproducing it. [NET]: Return 'unsigned char *' from *skb_pull*() routines. [IPSEC]: Guard against potentially fatal stack usage for auth_data. [IPV6]: Fix several comment spelling errors and typos. [PATCH] x86-64 merge Mainly lots of bug fixes and a few minor features. One change is that it uses drivers/Kconfig now like i386. This requires a few minor changes in outside Kconfig files which I am sending separately. - Tighten/fix some code in NUMA node discovery - Fix oopses in threaded 32bit coredumps and read correct registers. - Merge with 2.6.2rc1 - Sync arch/x86_64/Kconfig with i386. Uses drivers/Kconfig now. - Remove bcopy export - Fix check for signal stack for 32bit signals - Fix bcopy and exit prototypes for gcc 3.4 - Fix asm contraint in usercopy.c for gcc 3.4 - Use rt_sigreturn, not sigreturn for rt sigreturns. - Pass si_fault address to 32bit - Truncate si_error to 16bit in 32bit emulation to match i386 - Move IA32 flag switching for 32bit executables to flush_thread (code copied from ppc64/sparc64) - Print exception trace for strace too, share code. - Default to 3GB address space for a.out executables - Fix security hole in ptrace. Also fixes some problems with 32bit gdb. - Sync mmap address selection algorithm with mm/mmap.c version - Disable a.out coredumps completely - Fix bug in sigaltstack 32bit emulation. Kylix IDE now works. - Move errata 93/BIOS workaround into fault handler. This should work around USB legacy BIOS bugs too, although not completely (we cannot fix faults injected by SMM into user space 64bit processes) - Quieten some unimplemented 32bit syscall warnings and avoid repeated warnings. - Set LDT segment limit correctly (fixes problems with some modify_ldt user) - Remove obsolete ldt rw lock. - Remove sys32_modify_ldt. The standard sys_modify_ldt is equivalent. - Remove traces of old kgdb support - Merge CFI changes from Jim Houston and some other smaller changes The kernel assembly functions are described with dwarf2 unwind information now, which makes it easier for debuggers to make sense of stack backtraces. The code is only enabled with CONFIG_DEBUG_INFO. Note this implies that when you use CONFIG_DEBUG_INFO you may need an binutils update. - defconfig updated - Readd sleep support code (Pavel Machek) - Drop fusion and flush workarounds from IOMMU code - Add iommu=nofullflush option - Rewrite 32bit emulation for siginfo conversion (Joe Korty) - Allow remapping of scatterlists after unmap. This fixes some problems with the SCSI layer retrying previously mapped sg lists when iommu merging was enabled (it's disabled now by default) - Port HPET rtc device emulation code from i386 [PATCH] Kconfig fixes for x86-64 x86-64 using drivers/Kconfig requires some minor changes. Mostly to disable drivers that do not work. - Mark paride bpck6 not 64bit clean - Disable I2O on 64bit - Mark PNP dependent on ISA - Mark NSP32 driver as not 64bit clean [PATCH] IDE build fix From: Arkadiusz Miskiewicz Both drivers/ide/legacy and drivers/ide/ppc broke because they can no longer include drivers/ide/timing.h. Fix. (Acked by Bart) [PATCH] pdc202xx_new.c: fix PDC20270/1 init on the Xserve Apple machines From: Bartlomiej Zolnierkiewicz From: Benjamin Herrenschmidt Fix initialization of the PDC20270/1 chipsets on the Xserve Apple machines. [PATCH] Array overindexing in w9968cf From: Jean Delvare There are 24 members of this array. [PATCH] DMI update fix From: Dave Jones Fix typo in the recent 2.4 DMI sync-up. [PATCH] The RAW_GETBIND compat_ioctl fails From: James Cross The RAW_GETBIND compatibility ioctl call does convert properly between the 32bit/64bit version of raw_config_request due to a trivial error, and the ioctl call fails. [PATCH] request_firmware(): use del_timer_sync() Avoid a possible timer deletion race. [PATCH] Graphire3 support I got a Wacom Graphire3 for my birthday and unfortunately it didn't work. After some playing around, I noticed the 2.6 kernel needs a few small modifications to make it work. This simple patch adds support for the Wacom Graphire 3. [netdrvr 8139cp] fix NAPI race Andreas Happe writes: > my notebook (hp/compaq nx7000) still crashes when using 8139cp (runs > rock solid with 8139too driver). The computer just locks up, there is no > dmesg output. This has happened since I've got this laptop (around > november '03). It seems 8139cp.c has the race condition of rx_poll and interrupt. NOTE, since I don't have this device, patch is untested. Sorry. [PATCH] Make xircom cardbus handle shared irq Current driver doesn't do shared irq properly. When testing on a laptop here irq 3 get shared between pcmcia slot and tty/IRDA [SERIAL] Eliminate a couple of redundant tests There is no way that tty can be NULL in uart_put_char() and uart_write(). Eliminate these redundant tests. [SERIAL] Fix missing NULL check tty->driver_data or state->port may end up being NULL in uart_close. Make sure that we correctly clean up in this case, rather than oopsing. [SERIAL] Use tty_name() when printing the tty name. [PATCH] i8042 timer fix From: Jim Collette There's an exit path in i8042_interrupt() which forgets to rearm the timer. It can make the mouse die when X is started. [IDE]: Fix compilation warning Linux 2.6.2-rc2 [TG3]: Fix DMA test failures. 1) Do not reset subcomponents. GRC reset takes care of it. 2) Improve test by verifying the data on the card too. 3) Do not set DMA_RWCTRL_ASSERT_ALL_BE on chips where the meaning of this bit is different. [PATCH] Fix error checking in IPC_SET The LSM changes broke the error checking for queue lengths in IPC_SET. The LSM check would set set err to 0, but the next check expected it to still be -EPERM. Result was that no error was reported, but the new parameters weren't correctly set. [PATCH] USB: add ohci support for OMAP controller Patch came from the omap kernel tree at http://linux-omap.bkbits.net/ [ACPI] fix ACPI spec URL in comment - from Randy Dunlap [ACPI] on SCI allocation failure, don't mistakenly free IRQ0 from Jes Sorensen [IPV6]: Fix TCP socket leak, do not grab socket reference when adding to main hashes. [ACPI] move zero initialized data to .bss from Jes Sorensen [PATCH] Fix CONFIG_DEBUG_SPINLOCK on UP The spinlock debugging feature is supposed to work even on uniprocessor kernels. So we need to instantiate kernel_flag regardless of CONFIG_SMP. [PATCH] kbuildL fix cscope index generation From: Sam Ravnborg cscope expect to find the list of files used for the database in a file named cscope.files. Generate this file as part of 'make cscope'. This solves http://bugme.osdl.org/show_bug.cgi?id=1948. [IRDA]: Mark init/exit functions of drivers static to fix build. [ACPI] handle system with NULL DSDT and valid XDSDT from ia64 via Alex Williamson [PATCH] fbdev booting fix. [FBCON] Fixed the order of which driver is used for the console. Before the api change the last driver loaded became the default one. Now this is not the case. [PATCH] fbdev documentation patch This updates the framebuffer docs to reflect the requirement that all driver names must end in fb. ia64: Fix ptrace infrastructure some more so that strace'd sigreturn() works without trashing any registers. [PATCH] ia64: Fix xbow.c compilation This fixes a conflicting declaration in xbow.c. [PATCH] ia64: enable PIOW/DMAR relaxed ordering on ZX1 [PATCH] USB: fix suspicious pointer usage in kobil_sct driver. [PATCH] usb: remove some sleep_on's sleep_on must die.... and it fixes a few races too ;) [PATCH] ia64: fix icc compilation [PATCH] USB Storage: revert freecom dvd-rw fx-50 usb-ide patch This is not needed, and messes up working devices. Move exception table sorting much earlier. [PATCH] I2C: Add ADM1025EB support to i2c-parport The following patch adds support for the ADM1025 evaluation board to the i2c-parport (and i2c-parport-light) driver(s). In fact, it happens that it was already supported as an ADM1032 evaluation board, so it is just a matter of documenting it correctly. [PATCH] USB: Don't dereference NULL actconfig This patch fixes a simple error in a couple of utility routines. They will no longer try to dereference a NULL actconfig pointer. Also, they will work a little better if the configuration is changed while they are running (which should never happen anyway). [PATCH] USB: Fix DMA coherence when reading device descriptor [PATCH] Remove sn2 debug printk I accidentally left a debug printk in the sn2 timer_interrupt(). head.S: Add comment for HdrS ver 0x201 [ARM PATCH] 1744/1: SA Cerfboard/cube update (flash) Patch from Frank Becker Minor updates to cerf flash partitioning. [ARM PATCH] 1747/1: MIssing export for cpufreq Patch from Frank Becker cpufreq compiled as module complains: *** Warning: "sa11x0_getspeed" [drivers/cpufreq/cpufreq_userspace.ko] undefined! [ARM PATCH] 1748/1: SA Cerfcube update (base+pcmica) Patch from Frank Becker Resubmit with updates according to review notes from 1701/1. [ARM PATCH] 1749/1: Remove warnings in csumpartialcopygeneric.S Patch from Dirk Behme Remove the following warnings from csumpartialcopygeneric.S: arch/arm/lib/csumpartialcopygeneric.S: Assembler messages: arch/arm/lib/csumpartialcopygeneric.S:142: Warning: shift of 0 ignored. arch/arm/lib/csumpartialcopygeneric.S:216: Warning: shift of 0 ignored. arch/arm/lib/csumpartialcopygeneric.S:268: Warning: shift of 0 ignored. arch/arm/lib/csumpartialcopygeneric.S:322: Warning: shift of 0 ignored. arch/arm/lib/csumpartialcopygeneric.S:328: Warning: shift of 0 ignored. This new patch is reviewed by Nicolas Pitre. [PATCH] USB: Update sound/usb/usbaudio.c On Tue, 27 Jan 2004, Greg KH wrote: > Hm, can you send me a patch to fix up snd_usb_extigy_boot_quirk() in > sound/usb/usbaudio.c now that this patch broke that code? :) Here it is. The problem with changing things in the core is always that you may miss some of the repercussions. In this case the patch will restore the code's original functionality. However the whole thing looks a bit creaky to me. Changing device descriptors and who knows what else without informing usbcore isn't a good idea. What this code _really_ appears to need is some form of usb_device_reenumerate(). Such a function would fit very nicely into the framework I've worked out for the revised usb_device_reset(); maybe I'll add it in there. It would do essentially the same thing as device_reset except for skipping the actual port reset. [PATCH] I2C: Bring lm75 and lm78 in compliance with sysfs naming conventions Here is a patch that brings the lm75 and lm78 drivers in compliance with sysfs naming conventions. The drivers as found in existing 2.6 kernels do not have a digit appended to the temperature-related files names as the sysfs naming conversion recommends (obviously because they each have a single temperature channel). As a result, libsensors won't find the files. It was discussed on the list wether a '1' should be appended in this case, and our conclusion was that it would be better to do so because it helps automatic processing of the sysfs exported files. Please apply if you agree with this. [PATCH] I2C: remove printk() calls in lm85, and clean up debug logic. [PATCH] USB: fix gadget config - Fix kconfig botch (bk automerge can be rather flakey) - The gadgetfs patches going with the kconfig cleanups [SPARC64]: Changes to accomodate booting from non-phys_base memory [SPARC64]: Add _end and _start to list of sections ia64: Implement exception-table sorting for real. [SUNSAB]: Fixup sunsab_receive_chars for when serial console isn't open (no tty) [PATCH] Fix two warnings on x86-64 From: Andi Kleen Just fix two warnings on x86-64 that were recently introduced (one by me and the other by the sort extable changes) [PATCH] Fix kernel_flag again From: Christoph Hellwig Put kernel_flag back to where it used to be, near its comment and its EXPORT_SYMBOL. [PATCH] pmdisk.c needs utsname.h From: Torsten Duwe pmdisk.c uses struct new_utsname, so give it the header. [PATCH] cpufreq: fix cpufreq_update_policy From: Dominik Brodowski This brown paper bag patch is needed to assure cpufreq_update_policy works correctly. Please apply, else the next ACPI patch will cause trouble with thermal management [it needs cpufreq_update_policy to work properly]. Fix a horribly wrong memcpy instruction in cpufreq_update_policy which caused it to oops. [SPARC64]: Remove interruptible_sleep_on() usage, with help from Tom Callaway. [PATCH] Prevent PCI driver registration failure oopsing Greg, As discussed about six or so months ago, we agreed to hold off this patch until fairly late, due to its ability to catch duplicate PCI driver names. Please note that I haven't attempted to reproduce the problem with recent kernels, and that all ARM kernel patches released since then have had this patch in. I'm guessing this will actually be 2.6.1 material since it probably doesn't show for PCI drivers which are part of the kernel tree. If pci_register_driver fails, the register the PCI driver structure will not be registered with the driver model. pci_register_driver returns with negative value, and we then attempt to unregister the driver structure. This leads to an oops in the driver model. The driver model does not return the number of devices it successfully bound the driver to, and neither does pci_register_driver() return this information. Therefore, all of the code below is redundant. (There's a little redundancy left in drivers/pci/pci-driver.c but it is harmless unlike this block.) [PATCH] PCI Hotplug: Fixup pcihp_skeleton.c The functions are not named *_skel_*, so it seems useful not to call them with this. [PATCH] PCI Hotplug: Better reporting of PCI frequency / bus mode problems for acpi driver When plugging a 33MHz card into a bus that's running at 66MHz, I'd like to see a better error message than: acpiphp_glue: notify_handler: unknown event type 0x5 for \_SB_.SBA0.PCI4.S2F0 The following patch would give us: Device \_SB_.SBA0.PCI4.S2F0 cannot be configured due to a frequency mismatch which I think is clearer. [PATCH] PCI: add pci_bus sysfs class This is needed to show pci bus topology to userspace properly. [PATCH] PCI: add pci_get_slot() function tg3.c has a bug where it can find the wrong 5704 peer on a machine with PCI domains. The problem is that pci_find_slot() can't distinguish whether it has the correct domain or not. This patch fixes that problem by introducing pci_get_slot(). [PATCH] PCI: add .owner field to the config sysfs file to be "correct" This is in case others copy this code (which has already happened...) [PATCH] PCI: fix pci_get_slot() bug On Wed, Dec 17, 2003 at 04:24:44PM -0800, Greg KH wrote: > I've applied the pci portions of this patch to my trees and will send it > on after 2.6.0 is out. James Bottomley found a bug in it; could you also apply: [PATCH] PCI Hotplug: Trivial warning fix This just gets rid of a stupid compile warning. [PATCH] PCI Hotplug: add address file and fix acpiphp bugs This is the pending patch that adds 'address' file to show PCI-address and a few other minor fixes. As 2.6.0 is out, I'm resending the patch. Would you mind taking this? > > > Thanks. I had a little time to try your patch today. Sorry > > > to report that it isn't working for me. > > > > > > I first powered off (successfully the 1st time) a populated slot > > > and removed and reinserted the card into the same slot. The slot > > > powered back up but I was then unable to power it off. I believe > > > the following instruction that still exists in power_off_slot() > > > may be preventing the slot from being powered off more than once. > > > func->flags &= (~FUNC_EXISTS); > > > > > > I then tried to insert an adapter in an un-populated slot. For > > > some reason (which I don't understand yet) there was an enabling > > > error which I believe caused enable_device() to exit via a path > > > that bypassed the instruction that sets the FUNC_EXISTS flag. > > > I was then unable to power off the slot which I believe was due > > > to the FUNC_EXISTS flag not being set. > > > > > > I didn't have time to definitely confirmed the above theories. > > > I'll take a closer look at this tomorrow unless you are able > > > to diagnose using my vague clues :) > > > > It turns out that both of the above mentioned problems happened > > because the call to acpiphp_configure_slot() from enable_device() > > failed after inserting the card. When this happens enable_device() > > exits without setting the FUNC_EXISTS flag for any of the slot > > functions. Subsequent attempts to power off the same slot fail > > when power_off_slot() is unable to locate a function with both > > FUNC_HAS_EJ0 and FUNC_EXISTS flags set. > > > > The patch works okay when using a card that allows > > acpiphp_configure_slot() to succeed but I believe it should > > be improved to allow the slot to be powered off following > > device enablement errors. > > Thanks for testing and comments. > I really appreciate it. > > This problem turned out to be somewhat fragile state > transition: > > a lifecycle of a slot is (if there's no error) > > function state > ---------------------------------------------------- > 0 nothing > 1 power_on_slot() -> SLOT_POWERDON > 2 enable_device() -> SLOT_POWEREDON + SLOT_ENABLED > 3 disable_device() -> SLOT_POWEREDON > 4 power_off_slot() -> nothing > > but if any error occur during enable_device(), slot will remain > SLOT_POWERDON, but some functions on the card may not have > FUNC_EXISTS flags, which will eventually prevents powering > off in power_off_slot(), state transition from 1 to 4 directly. > I.e, the FUNC_EXISTS flag introduced more states to > complicate things. > > The FUNC_EXISTS flag was introduced after some discussion > between me and Irene Zubarev, but it has no more meaning > than that the function has corresponding 'pci_dev' structure. > So I eliminated the usage of FUNC_EXISTS and the result is > the patches attached to this mail (for both 2.4 and 2.6. > I think Greg already applied the 2.4 'cleanup' patch to his tree, > but it's not in Marcelo's release so I'm re-attaching to > this mail for anyone interested in this topic. It's identical > to the one I posted earlier). > These patches don't include Gary's patch in his post last week, > so please apply separately. > > Please note that current acpiphp driver cannot handle a > PCI card that has a PCI-to-PCI bridge on it (support > for such cards is incomplete). But if it's treated as > an error, it should be recoverable anyway. [PATCH] PCI Hotplug: add unlimited PHP slot name lengths support [PATCH] PCI: fix probing for some mips systems [PATCH] PCI hotplug: pcihp_zt5550.c ioremap/iounmap audit insert missing iounmap() [XFS] Christoph has signed over copyrights SGI Modid: xfs-linux:xfs-kern:165037a [PATCH] PCI: Allow pci hotplug drivers to initialize individual devices. This lets the PPC pci hotplug driver initialize single devices, not just entire slots. [PATCH] PCI: name length change - Changes gen-devlist.c to truncate long device names rather than reject the database - Changes PCI_NAME_SIZE to 96 (and PCI_NAME_HALF to 43) to allow all current pci.ids names to fit - Modifies gen-devlist.c to truncate at 89 characters rather than 79 - allows for two digit instance numbers to be added to the name as well while staying within the 96 characters allocated. No names in the current pci.ids are any longer than this. - Modifies names.c to no longer limit device name length when displaying both vendor and device name; the truncation is done by gen-devlist.c. [PATCH] PCI: pci.ids update - Replaces pci.ids with a snapshot from pciids.sf.net from 14 Jan 2004 [PATCH] PCI: fix compiler warning in probe.c cause by PPC patch. [XFS] Fix a warning from some gcc variants after recent flags botch. SGI Modid: xfs-linux:xfs-kern:165646a [XFS] Move bits around to better manage common code. No functional change. [XFS] Small ktrace fixes SGI Modid: xfs-linux:xfs-kern:164115a [XFS] Simplify pagebuf_rele / pagebuf_free SGI Modid: xfs-linux:xfs-kern:165500a [XFS] Revert botched merge where KM_NOFS check was unintentionally dropped. SGI Modid: xfs-linux:xfs-kern:165631a [XFS] Add the security extended attributes namespace. SGI Modid: xfs-linux:xfs-kern:165638a [XFS] Don't fail pagebuf allocations SGI Modid: xfs-linux:xfs-kern:165648a [XFS] Stop using sleep_on SGI Modid: xfs-linux:xfs-kern:165673a [XFS] Plug a pagebuf race that got bigger with the recent cleanup SGI Modid: xfs-linux:xfs-kern:165722a [XFS] Remove no-longer-needed debug symbol exports. [XFS] Sync up some missing header updates from local XFS tree. [PATCH] [APM] Is this the correct way to fix suspend bug introduced This fixes my APM problems (without them my laptop, Acer TravelMate 210TEV (Celeron 700, 128 MB RAM), hangs after resuming from APM since 2.6.0-test4). Modified based on comments from Pavel Machek , who has acked the updated patch. [ARM] Eliminate tsk->used_math Remove usage of tsk->used_math on ARM, moving the status to an array of co-processor usage. (ARM can have up to 15 co-processors providing various extra facilities such as SIMD, VFP or FP.) [ARM] Fix bitops pointer qualifiers. According to x86, the pointers for bitops are supposed to be qualified with volatile. Make ARM bitops reflect this. [ARM] Add comments for newish functions in cacheflush.h [PATCH] Validate ACPI CPU frequency values This is a simple fix for some of the problems with bad ACPI frequency values: Abort if the frequency field in _PSS is zero, as we're having a completely broken ACPI table then. A more complete overhaul of the acpi-cpufreq driver (where the cause of the problem lies) is in the latest acpi-test tree, but that's definitely something to be delayed for 2.6.3 -- and the same is true for the yet-to-be-written do_div64 conversion. [PATCH] dvb subsystem and saa7146 v4l fixes This fixes some issues in the dvb subsystem and some nasty things in the v4l saa7146 driver. [DVB] - dvb-core: aquire -> acquire spelling fix - nxt600 frontend: don't send zero-byte messages when probing the PLL type - Kconfig: add a note that says that the CI of the budget-CI card is not actually supported by the budget-CI driver - ttusb-dec: Check for presence of crc32 function. Make unknown types of packet less likely to cause packet loss. [V4L] - saa7146: use kernel mint_t()/max_t() instead of homebrewn stuff - saa7146: disable video clipping before capturing for sure to prevent black pictures - saa7146: make sure to disable the right video dma upon device close - saa7146: don't free resources if disabling an already disabled video overlay [ARM] Remove FP work-arounds. We used to have code to allow binaries linked against glibc to run, when glibc itself contained some FP instructions (for PCS stack frames for functions like printf and scanf) thereby allowing FP emulators like nwfpe to be built as modules. This has proved to be unreliable with later compilers, so support for this was dropped a while ago. Since no one complained, we can finally remove the dead code. (NB. a klibc based module-init-tools shouldn't suffer from this problem.) Fix sha256 padding block initializer to be static. Jakub points out that having an automatic array is not only bad for performance (and stack usage), gcc has also historically had lots of bugs here, and gcc-3.2.3 seems to miscompile it otherwise. [SPARC64]: Fix wakeup races in power.c, with help from Andrew Morton. [PATCH] PC300 update This forward ports a few important fixes from the 2.4 driver. This changes have been well tested. Changelog: - Update maintainer email address - Mark pci_device_id list with __devinitdata. - Set correct protocol type on packet receive (this caused the kernel to drop all packets received) - Add #ifdef DEBUG around debug printk() - ioctl: Add missing size checks before copying data from userspace. Linux 2.6.2-rc3 [PATCH] sk98lin: Reset Xmac when stopping the port * Clear the Xmac fifo before stopping the port [PATCH] ppc32: watchdog definition fixes From: Tom Rini Correct the defines for MC146818 RTCs, reg c is interrupts, reg d is not watchdog (it's valid time & nvram). [PATCH] ppc64: add missing include guards, from Nathan Lynch From: Anton Blanchard add missing include guards, from Nathan Lynch [PATCH] ppc64: lparcfg_write From: Anton Blanchard Add lparcfg_write() for changing SPLPAR system parameters [PATCH] ppc64: fixes for compile with CONFIG_PROC_DEVICETREE=n, from Nathan Lynch From: Anton Blanchard - nop out proc_device_tree_add_node if CONFIG_PROC_DEVICETREE=n - stubs for procfs-related functions when CONFIG_PROC_DEVICETREE=n [PATCH] ppc64: missing set_fs(KERNEL_DS) in ppc32_timer_create, from Marcus Meissner From: Anton Blanchard Small obvious fix to ppc32_timer_create. Since sys_timer_create access structures we pass on the stack, we need set_fs(KERNEL_DS). [PATCH] ppc64: defconfig update From: Anton Blanchard [PATCH] ppc64: Use preferred_console to select a reasonable default console From: Anton Blanchard Lets make a decent attempt to find out where your console is. The new preferred_console stuff is pretty nice. [PATCH] ppc64: add/remove config.h From: Anton Blanchard [PATCH] ppc64: export memchr and csum_partial From: Anton Blanchard [PATCH] ppc64: fix && vs & bugs in lparcfg, from Julie DeWandel From: Anton Blanchard [PATCH] ppc64: SLB rewrite From: Anton Blanchard The current SLB handling code has a number of problems: - We loop trying to find an empty SLB entry before deciding to cast one out. On large working sets this really hurts since the SLB is always full and we end up looping through all 64 entries unnecessarily. - During castout we currently invalidate the entry we are replacing. This is to avoid a nasty race where the entry is in the ERAT but not the SLB and another cpu does a tlbie that removes the ERAT at a critical point. If this race is fixed the SLB can be removed. - The SLB prefault code doesnt work properly The following patch addresses all the above concerns and adds some more optimisations: - feature nop out some segment table only code - slb invalidate the kernel segment on context switch (avoids us having to slb invalidate at each cast out) - optimise flush on context switch, the lazy tlb stuff avoids it being called when going from userspace to kernel thread, but it gets called when going to kernel thread to userspace. In many cases we are returning to the same userspace task, we now check for this and avoid the flush - use the optimised POWER4 mtcrf where possible [PATCH] ppc64: use CONFIG_MAGIC_SYSRQ around xmon sysrq code From: Anton Blanchard [PATCH] Trivial cleanups to hugepage support From: David Gibson These are some trivial cleanups to the hugepage ppc64 support [PATCH] s390: general update. From: Martin Schwidefsky s390 general update: - Add archhelp for "make image". - 32-bit execve fix. - Export some symbols: sys_ioctl, put_files_struct & ccw_device_work. - Minor cleanups in arch/s390/mm/init.c & drivers/s390/net/ctctty.c. [PATCH] s390: inline assembly constraints. From: Martin Schwidefsky s390 inline assembly bug-fixes: - Add memory barriers to spinlocks, atomic variable functions and to test_and_{set,clear,change}_bit. - Add "=m" and "m" contraints to tell gcc that the content of a variable is in fact used. - Replace "+m" constraints by "=m" on the output and "m" on the input list. - Use c-implemtation for ffz and __ffs. - Use generic c-implemtation for ffs and fls. [PATCH] s390: sclp bug fixes. From: Martin Schwidefsky SCLP console/tty fixes: - Fix incorrect state change of SCLP_RUNNING flag in interrupt handler - Suppress emission of empty buffers to prevent stack overflow - Fix off by one error in sclp_write (used to return # of chars written + 1) - Prevent sclp_tty_write_string from waiting in interrupt (during flush) - Fix deadlock after TIOCSCLPSNL ioctl - Fix sclp_tty_chars_in_buffer calculation [PATCH] RAID-6: x86-64 crash workaround From: "H. Peter Anvin" Apparently, on x86-64, the stack isn't always aligned properly (16 bytes) in the kernel at the moment. This causes the RAID-6 code to crash the system. This patch is a workaround for that; the right thing is to muck with the assembly entrypoints to enforce proper stack alignment. However, that's not anything I feel comfortable doing in an evening, especially since I don't have a machine on which I can test the resulting kernels. Upgrade x86 defconfig to something less ancient. [PATCH] ppc32: MBX MAC address fix From Tom Rini On the MBX the kernel made an assumption about where the MAC address would be in the VPD (Vital Product Data). However, the documentation for the firmware (EPPC-Bug) describes the format of the VPD and makes no guarrantees about the location of any VPD record. It does however describe the format of each record type and the MAC address record will be of type '08' and of size 6. This changes the code so that instead of assuming a position, it searches for the record, which I assume is also what EPPC-Bug does. Make EHCI have a 20ms power-on to power-good timeout. This should fix some picky USB devices. IEEE1394(r1112): Adds a "ieee1394_guid" attribute to the scsi device for sbp2. IEEE1394(r1116): Make sure to unregister addr space when a driver is removed. [PATCH] fix the build for NR_CPUS > 4*BITS_PER_LONG You can't just cast cpumasks. It doesn't compile if NR_CPUS is greater than 4 * BITS_PER_LONG. [PATCH] fix issues with loading PCI IDE drivers as modules From: Davin McCall Set hwif->chipset to ide_forced if it was forced by kernel parameters. Set hwif->chipset to ide_generic for hwifs controlled by generic IDE code, so they wont be taken by setup_pci.c:ide_match_hwif(). Patch also fixes /proc/ide/ideX/model to report "generic" instead of "(none)" for default hwifs. This has been in -mm since 2.6.1-mm1. [COMPAT]: Fix TUNSETIFF ioctl compat, it takes an ifreq ptr not an int. Thanks to Eric Brower for spotting this. [PATCH] fix/improve modular IDE This has been in -mm since 2.6.1-mm5 - IDE can be used as module again (compiles and works), this fixes bugzilla bugs #576 and #1700 - separate module for probing is no longer required - generic/default host driver is available as ide_generic module This contains the build fixes by Adrian Bunk and Andrew Morton. [SPARC32]: Align pkmap properly. Align the pkmap area on a 4MB region so that a single large pagetable can be used. Fixes random killing of processes which used high memory. [SPARC32]: Copy full soft PMD in vmalloc fault handler. sparc_do_fault assumes that pmd_val(*pmd) = pmd_val(*pmd_k) will duplicate a PMD entry. With large soft-PMDs this doesn't work. [SPARC32]: Kill spurious newline in dmesg output [TG3]: Only fetch NVRAM_CMD reg if TG3_FLAG_NVRAM. [ACPI] proposed fix for AML parameter passing from Bob Moore http://bugzilla.kernel.org/show_bug.cgi?id=1766 [TG3]: Bump version and reldate. [NETFILTER]: Fix NAT leak with fragmented packets, missing conntrack put in ip_copy_metadata(). Warn loudly if somebody passes a negative value as the size to "vsnprintf()". That's a pretty clear case of overflow. Linux 2.6.2 aka "Feisty Dunnart" See http://www.cse.unsw.edu.au/~gernot/persona/hobbies/dunnart.html for more information about Dunnarts, in case you've never heard of them before. Courtesy of Gernot Heiser.