Summary of changes from v2.6.0-test3 to v2.6.0-test4 ============================================ update acpi= and acpismp= in kernel-parameters.txt ACPI: Fix intr on IA64 (davidm) ACPI: Better blacklist messages (Jasper Spaans) ACPI: Fix Kconfig for ia64 and SN2 (Jesse Barnes) ACPI: toshiba_acpi update (John Belmonte) ACPI: Allow irqs > 15 to use interrupt semantics other than PCI's standard active-low, level trigger. Make other changes as required for this. (Andrew de Quincey) ACPI: If notify handler fails to be removed properly, don't just return, but clean up other resources too (Daniele Bellucci) [PATCH] scsi_remove_device simplifications - change return value to void, returning errors from unregister doesn't make lots of sense - rename scsi_device_unregister to scsi_remove_device to kill a superflous level of layering [PATCH] fixes compile errors in cpqfc driver The attached path fixes the compile errors in the cpqfc driver caused by changes in scsi_cmnd. And, per Christoph and James's comments http://marc.theaimsgroup.com/?l=linux-scsi&m=105099392420649&w=2 I have removed the scsi_cmnd stack usage. I do not have the hardware, so I have only verified that it compiles. cpqfcTSinit.c | 35 +++++++++++++++++++++--------- cpqfcTSstructs.h | 1 cpqfcTSworker.c | 63 +++++++++++++++++++++++++++++++------------------------ 3 files changed, 61 insertions(+), 38 deletions(-) [PATCH] AHA152x driver hangs on PCMCIA On Mon, Jul 21, 2003 at 08:11:37AM -0600, Bhavesh P. Davda wrote: > David Hinds approves of this patch (Thanks, Dave!). Please apply to 2.4.22 And here's a 2.6 version. cciss scsi: fix use before check of possible null pointer From: Joilnen Leite Kill highmem_io flag in SCSI From: Jens Axboe Since conversion to the DMA API is a requirement in 2.6, the highmem_io flag (which told 2.4 that a driver had been converted) is unnecessary. Get rid of it SCSI: Introduce dma_boundary parameter From: Jens Axboe The block layer includes the ability to avoid merging if the merged segment would cross a particular boundary (by default, this boundary is set to 4GB which is the PCI DAC requirement). This patch makes the boundary tunable in SCSI for drivers that need different ones (usually because of card constraints) Correct email address in MAINTAINERS list [PATCH] recovered error forward port Forward port of Kurt Garloff's recovered error fix. http://marc.theaimsgroup.com/?l=linux-scsi&m=104470522312140&w=2 Also corrected some typos related to setting local scope variable by mistake. Signature without fix: Current sdc: sense key Recovered Error Additional sense: Failure prediction threshold exceeded end_request: I/O error, dev sdc, sector 1808 Buffer I/O error on device sdc, logical block 226 Signature with fix: scsi_debug: cmd 28 00 00 00 3f 10 00 00 f0 00 scsi_debug: ... <1 0 0 0> non-zero result=0x8000002 Current sdsdc: sense key Recovered Error Additional sense: Failure prediction threshold exceeded drivers/scsi/sd.c | 6 ++-- drivers/scsi/sr.c | 79 +++++++++++++++++++++++++++++++++++------------------- 2 files changed, 56 insertions(+), 29 deletions(-) [PATCH] scsi host / scsi device ref counting take 2 [1/3] This is a cleanup patch for scsi_host removal. - Addition of a shost_state member to the scsi_host strucuture to contain "state" of the host instance. - Added SHOST_ADD, SHOST_DEL, SHOST_CANCEL, SHOST_RECOVERY states for a scsi host - Addtion / rename of a new function scsi_host_cancel to cancel IOs in flight. - Usage of the shost_state member to stop scsi_host_get's and calls to LLDD queucommand under certain states. - Reordered some of the scsi host sysfs unregistration. drivers/scsi/hosts.c | 52 +++++++++++++++++++++++++-------------------- drivers/scsi/scsi.c | 37 ++++++++++++++++++++++++-------- drivers/scsi/scsi_debug.c | 5 ---- drivers/scsi/scsi_error.c | 7 ++---- drivers/scsi/scsi_lib.c | 5 ++-- drivers/scsi/scsi_proc.c | 12 +++++----- drivers/scsi/scsi_syms.c | 2 - drivers/scsi/scsi_sysfs.c | 43 ++++++++++++++++++++++++++----------- drivers/scsi/sg.c | 3 +- include/scsi/scsi_device.h | 3 +- include/scsi/scsi_host.h | 18 ++++++++++++--- 11 files changed, 121 insertions(+), 66 deletions(-) [PATCH] scsi host / scsi device ref counting take 2 [2/3] Align usb storage shutdown with changes in the shost shutdown. drivers/usb/storage/usb.c | 14 +------------- 1 files changed, 1 insertion(+), 13 deletions(-) [PATCH] scsi host / scsi device ref counting take 2 [3/3] This is a cleanup patch for scsi_device removal. - Addition of sdev_state member to the scsi_device strucuture to contain "state" of the device instance. - Added SDEV_ADD, SDEV_DEL, SDEV_CANCEL, SDEV_RECOVERY states for a scsi device - Built on previous patch that renamed scsi_set_device_offline to scsi_device_cancel to use SDEV_CANCEL value. - Usage of the sdev_state member to stop scsi_device_get's and final cleanup on access_count going to zero. - Added newer release functions and reordered scsi device sysfs unregister. drivers/scsi/scsi.c | 36 +++++++++++++++++++---- drivers/scsi/scsi_priv.h | 1 drivers/scsi/scsi_scan.c | 4 +- drivers/scsi/scsi_sysfs.c | 70 ++++++++++++++++++++++++++++++++++----------- include/scsi/scsi_device.h | 15 +++++++++ 5 files changed, 100 insertions(+), 26 deletions(-) qla1280 driver update To version 3.23.33 From: Jes Sorensen [PATCH] qla3.23.34 Here's a patch to upgrade 3.23.33 to 3.23.34. Reintegrate qla1280 fixes [PATCH] Correct removal of procfs host enteries [1/2] This is a refresh of a patch by Alan Stern to correct the removal of scsi procfs host enteries http://marc.theaimsgroup.com/?l=linux-scsi&m=105545175600506&w=2 drivers/scsi/hosts.c | 4 +-- drivers/scsi/scsi_priv.h | 4 +++ drivers/scsi/scsi_proc.c | 49 ++++++++++++++++++++++++++++++----------------- 3 files changed, 38 insertions(+), 19 deletions(-) [PATCH] Correct removal of procfs host enteries [2/2] This patch reduces the user of scsi_host present. aic79xx_osm and aic7xxx_osm are 2.4 code. ioctl_probe has side effect of needing present value. drivers/scsi/NCR53c406a.c | 5 +++-- drivers/scsi/aacraid/linit.c | 1 - drivers/scsi/scsi_module.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) [PATCH] Start cleaning up sym2 Start cleaning up the sym2 driver. - Remove ifdefs for 2.2/2.3/2.4 support -- if we want to backport this driver, we can have a sym_24glue.c or something. - Remove own PCI layer abstraction and use Linux's directly. [PATCH] Convert sym2 to be hotplug-capable This patch is on top of the patch I posted yesterday. It.. - Stops using Scsi_Cmnd etc typedefs - Removes the unused Scsi_Host_Template argument from sym53c8xx_pci_init - Converts sym53c8xx_2 to be a hotplug-capable driver It boots for me on a box with 4 dual 1010 cards, but I'd appreciate other feedback. NOTE: This does not even attempt to preserve existing controller ordering. But given how much I've seen symbios controllers move around under the current setup (what? you plugged in an 875 that happens to have NVRAM on it? Oh well then, let's just renumber all your other cards!), I really don't care. revert dc395x changes Cset exclude: aliakc@web.de|ChangeSet|20030802141539|54778 [PATCH] dc395x - 1/3 remove-static-eeprom-struct Move the eeprom details from a static struct indexed by adapter number into the adapter information block of the adapter. This removes the fixed size static array and removes the need to count the number of adapters. [PATCH] dc395x - 2/3 remove-static-adapter-list Remove the static list of adapters and the code related to keeping this up to date. The only remaining use for the static list was for the proc info function to find the scsi_host, but that's passed as a parameter anyway. [PATCH] dc395x - 3/3 fix-failures Handle the case where scsi_add_host fails and update the removal function to correctly unregister everything. kbuild: Move generation of vmlinux.lds.s into arch/.../kernel Currently, vmlinux.lds.s is generated by the top-level Makefile. Unfortunately, this causes the automatic CONFIG dependencies to not work correctly, the reason being that make caches the timestamps of include/config/* so even after split-include updated the timestamps, make still uses the cached stamps to decide whether to rebuild vmlinux.lds.s. The simple fix is to move generation of vmlinux.lds.s into the arch/$(ARCH)/kernel subdirectories, where we build other files for the final link (like head.o) anyway. This also means some special code in the top-level Makefile for preprocessing can go away, since we now just use the standard rules during the recursive phase. This patches fixes up all archs for this change (untested). [PATCH] some left highmem_io instances From Christoph Hellwig [power] Fix compilation error when CONFIG_PREEMPT=y [XFS] get version 1 directories back into action SGI Modid: 2.5.x-xfs:slinx:155149a [power] Fix some incorrect comments. From Pavel Machek. [power] Fix #ifdef in ACPI sleep code. Remove dependency on CONFIG_SOFTWARE_SUSPEND, since CONFIG_ACPI_SLEEP is sufficient. From Pavel Machek. [power] Move pm.c and mark functions depcrecated. - Move kernel/pm.c to kernel/power/pm.c - Move poweroff sysrq registration to kernel/power/poweroff.c - Mark pm_* functions deprecated to prevent new uers. [power] Split device PM functions - Create drivers/base/power/ - Move drivers/base/power.c there. - Split into shutdown.c suspend.c and resume.c [sysfs] Add attribute groups Attribute groups provide the ability to register a set of sysfs attributes for a kobject all at once, and optionally create a subdirectory to hold them. The constructs are simple: struct attribute_group { char * name; struct attribute * attrs; }; int sysfs_create_group(struct kobject *, struct attribute_group *); void sysfs_remove_group(struct kobject *, struct attribute_group *); If ->name is not NULL, then we create a subdirectory of that name to hold the attributes. We then iterate over ->attrs and create a file for each, in the subdirectory if we created one. This prevents one from having to register a kobject (and define a new kobj_type) to create a subdirectory for a group of attributes. Attributes currently defined in that way can be converted to use attribute_groups easily, with one caveat: The attributes that are added for a kobject, even if in a subdirectory, must be declared as the high-level attribute type (with an embedded struct attribute) for the kobject, and conform to the kobj_type's calling convention for reading/writing attributes. The kobject that you're creating attributes for owns the directory, and will assume ownership of the subdirectory. sysfs will reference this kobject, and it's kobj_type, when the attribute file is opened to determine the methods for reading/writing the attribute. sysfs will call the kobj_type's show()/store() methods, which will convert the kobject into a high-level object type, and convert the attribute into a high-level attribute type, which (depending on the kobj_type) is expected to have a show() and/or store() method. Note that this makes it only slightly easier to create attributes en masse, though it is a bit technically superior, since it doesn't require a new kobj_type and kobject register. More will come in this area.. [power] Add PM info structure to struct device and PM registration functions. - struct device_pm_info - Defined in include/linux/pm.h. - Statically allocated in struct device (->power) - Body is empty if CONFIG_PM=n - deivce_pm_{add,remove} - Called from device_{add,del} respectively. - Adds device to internal list of power managed objects and creates attribute group for device. (Group currently empty, but placeholder directory is created for now) - Are defined as empty statc inline's when CONFIG_PM=n. [AGPGART] Kill off agp_try_unsupported module parameter. Based on a patch from Christoph Hellwig. Now that we have the new_id stuff in sysfs, we don't need this method of trying the generic routines. [XFS] clean up the flush logic some more, make the inode flush path less lossy since we now depend on it. Add a sync_fs callout which waits for flush to be done. SGI Modid: 2.5.x-xfs:slinx:155186a [XFS] fix 64bit build SGI Modid: 2.5.x-xfs:slinx:155262a [XFS] Add versioning to the on disk inode which we increment on each flush call. This is used during recovery to avoid replaying an older copy of the inode from the log. We can do this without versioning the filesystem as the pad space we borrowed was always zero and will be ignored by old kernels. SGI Modid: 2.5.x-xfs:slinx:155189a [XFS] use the 2.5 version of the arguments on sync_fs SGI Modid: 2.5.x-xfs:slinx:155267a [XFS] Fix a logic error allowing pages to marked uptodate when not all attached buffers were uptodate. SGI Modid: 2.5.x-xfs:slinx:155219a [netdrvr] add ethtool_ops to struct net_device, and associated infrastructure Contributed by Matthew Wilcox. add missing cifs quota support part 1 [power] Improve device suspend/resume sequence. - Split calls into - device_pm_suspend() [ Saving device state. ] - device_pm_power_down() [ Powering devices down. ] - device_pm_power_up() [ Powering devices up. ] - device_pm_resume() [ Restoring device state. ] - Walk local dpm_active list when suspending devices, and move devices to dpm_suspended list when ->suspend() is called. - Walk dpm_suspended list to power down devices (with interrrupts enabled.) - Try to power down devices with IRQs on. - If they succeed, move them to dpm_off list. - If they return -EAGAIN, move them to dpm_off_irq list. - Disable interrupts and suspend devices needed interrupts off. - Do converse on resume - power on devices that need interrupts off and move them to dpm_suspended. - Enable interrupts. - Power on all other devices and move them to dpm_suspended. - Restore state of all devices and move them to dpm_active. [NET]: Add unlikely tag to skb_pull(). [AGPGART] Fix logic bug. Silly thinko caught by Nicolai Haehnle [TUN]: Driver not cleaning up on module remove. [PPP]: Fix two bugs wrt. compression/decompression. This patch fixes two bugs that were stopping PPP compression (and in particular, Deflate compression) from working. The first bug was pointed out by Richard Moats. In the conversion to use pskb_may_pull, we ended up with a bogus test which basically meant that the kernel driver never saw the CCP conf-ack packets and thus never enabled compression. The second bug crept in with the change of DEFLATE_MIN_SIZE from 8 to 9. Changing that definition had the unfortunate side-effect of changing the way that the code interpreted the encoded Deflate parameter bytes. This meant that we were using the wrong window size, twice what we had actually negotiated with the peer. [netdrvr tg3] convert to using ethtool_ops [netdrvr] add SET_ETHTOOL_OPS back-compat hook [hw_random] update documentation to reflect reality [XFRM_USER]: Add inner family field to all SAs and templates. [IPSEC]: Use xfrm_rcv for xfrm tunnel packets. [IPV6]: Fix bugs in ip6ip6_tnl_xmit(). - ip6_tunnel must give its own getfrag function to ip6_append_data() - fix dst leakage when encapsulated packet too bit [IPV6]: Fix clearing in ah6 input. This patch fixes zero-clear in ah6_input. If calling pskb_expand_head, the kernel clears wrong memory. [IPV6]: Fix authentication error with TCP, with help from Joy Latten (latten@austin.ibm.com). This patch makes the kernel consider extension header length in a dst. [IPV6]: Make sure errors propagate properly in {udp,raw} sendmsg. [power] Get rid of internal spinlock. We don't need the spinlock to protect the lists (at least not now), since we have a semaphore to synchronize all operations device PM operations. [IPV4]: Fix setting net.ipv4.conf.all.forwarding via sysctl() system call. [IPV6]: Fix typo in linux/ipv6.h [NET]: Fix tun driver to use private linked lists. [SPARC64]: Delete fop->read stub in riowatchdog driver. [NET]: Allow XFRM subsystem to be optional. [IPV4]: Fix IPVS build with IP_VS_PROTO_TCP disabled. [WATCHDOG] sbc60xxwdt.c patch general cleanup of trailing spaces and comments fix possible wdt_is_open race add KERN_* to printk's changed watchdog_info to correctly reflect what the driver offers added WDIOC_GETSTATUS, WDIOC_GETBOOTSTATUS, WDIOC_SETTIMEOUT, WDIOC_GETTIMEOUT, and WDIOC_SETOPTIONS ioctls made timeout (the emulated heartbeat) a module_param made the keepalive ping an internal subroutine added MODULE_AUTHOR and MODULE_DESCRIPTION info [WATCHDOG] sbc60xxwdt patch2 report default timeout as a number [WATCHDOG] sbc60xxwdt patch3 make wdt_stop and wdt_start module params [WATCHDOG] sbc60xxwdt patch4 added extra printk's to report what problem occured [WATCHDOG] sbc60xxwdt.c patch5 some last clean-ups [WATCHDOG] advantechwdt.c patch2 some small clean-ups (use PFX + report default timeout as it's value in the MODULE_PARM_DESC) [WATCHDOG] w83877f_wdt patch cleanup comments and trailing spaces eliminate extra spin_unlock add KERN_* tags to printks added extra printk's to report what problem occured [WATCHDOG] w83877f_wdt.c patch2 add CONFIG_WATCHDOG_NOWAYOUT support changed watchdog_info to correctly reflect what the driver offers added WDIOC_GETSTATUS, WDIOC_GETBOOTSTATUS and WDIOC_SETOPTIONS ioctls use module_param [WATCHDOG] w83877f_wdt.c patch3 (add timeout features) added WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT ioctls made timeout (the emulated heartbeat) a module_param made the keepalive ping an internal subroutine [WATCHDOG] sbc60xxwdt.c patch6 some small clean-ups: do correct errorhandling [PATCH] Fix usb interface change in hisax st5481_* This makes the HISAX ST5481 driver build again with 2.6.0-test3 where the usb_host_config structure has changed. [PATCH] PATCH 2.6: fix X86_VENDOR_ID offset in head.S While reviewing my 2.4 backport of the 2.6 cpu capabilities (including the Via RNG support), Mikael Pettersson noticed a bug in both my backport, and 2.6: when NCAPINTS (x86_capability array size) is increased, one must adjust the offset in arch/i386/kernel/head.S also. Contributed by Mikael Pettersson. [PATCH] PowerMac: Ground work for new driver model This provides the necessary infrastructure for PowerMac specific drivers (and actually some Open Firmware platform drivers on non-PowerMacs as well provided somebody port them) to be properly probed & referenced via the new driver model and be part of sysfs. As-is, this patch doesn't break anything nor change any driver. I'll send you individual driver patches as I clean them up & get them tested on as many machines as possible, though I don't expect much problems. [PATCH] Re: Linux 2.6.0-test3: logo patch The following patch has been floating around forever. It is required for several ARM framebuffer drivers, and several other drivers. James has indicated that this is the correct fix back in May. [IPV4] IPVS: fix the dependence of IP_VS_FTP in Kconfig [IPV6]: strategy handler for net.ipv6.conf.* forwarding. [NET]: Kill EXPORT_NO_SYMBOLS from meth.c ACPI from 2.4: build: add ACPI_HT, delete ACPI_HT_ONLY boot: add acpi={force, off, ht}; delete "noht", "acpismp=" add DMI blacklist from UnitedLinux [NET]: Set NLM_F_MULTI in answer of RTM_GETADDR dump answer. ACPI: this delta should have been included in previous cset ACPI -- CONFIG_ACPI_HT ACPI -- CONFIG_ACPI_HT -- this delta should have been in previous cset [WATCHDOG] sc520_wdt.c patch cleanup comments and trailing spaces add KERN_* tags to printks added extra printk's to report what problem occured [WATCHDOG] sc520_wdt.c patch2 changed watchdog_info to correctly reflect what the driver offers added WDIOC_GETSTATUS, WDIOC_GETBOOTSTATUS and WDIOC_SETOPTIONS ioctls [WATCHDOG] sc520_wdt.c patch3 added WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT ioctls made timeout (the emulated heartbeat) a module_param made the keepalive ping an internal subroutine [WATCHDOG] alim7101_wdt.c patch cleanup comments and trailing spaces added extra printk's to report what problem occured added MODULE_DESCRIPTION [WATCHDOG] alim7101_wdt.c patch2 changed watchdog_info to correctly reflect what the driver offers added WDIOC_GETSTATUS, WDIOC_GETBOOTSTATUS and WDIOC_SETOPTIONS ioctls [WATCHDOG] alim7101_wdt.c patch3 added WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT ioctls made timeout (the emulated heartbeat) a module_param made the keepalive ping an internal subroutine [SPARC]: Handle switches out of graphics mode properly in sbusfb drivers. [SPARC]: Fix typos in leo/cg14 fixes. [PATCH] make sym2 scan devices again It needs a call to scsi_scan_host to find devices. Also remove the superflous scsi_set_device call - scsi_add_host does that for us. [power] Add PM usage counting - Add ->pm_users and ->pm_parent fields to struct dev_pm_info. - Add function device_pm_set_parent() The default power parent for a device is the device's physical parent, but a driver may change it to represent a tranversal power dependency. Though it's not incorporated into the suspend/resume sequences yet, the core will respect the power tree, rather than the physical/electrical one. Also added is a power usage count for devices, which indicates how many devices are dependent on that one for power (how many children it has in the power tree). The core will use this count to determine whether or not a device can be put into a low power state or not. [sysfs] Convert struct attribute_group to take array of pointers. From Stephen Hemminger. Needed to use attribute groups effectively. PPC32: Fix compile error on SMP - asm-ppc/smp.h needs linux/threads.h. blocksize getting overwritten in construct dentry [XFS] remove an impossible code path from mkdir and link paths, spotted by Al Viro. SGI Modid: 2.5.x-xfs:slinx:155518a [PATCH] I2C: Fix for i2c-piix4 with on some boards Hello all. On some boards with an Intel PIIX4 the BIOS (such as the one found on a Force CPCI-735) will incorrectly configure the chipset, and leaves a register in an undefined state causing i2c to behave strangley. The following patches (first vs lm_sensors-2.8.0 and then vs 2.6.0-test3) fixes the issue. [PATCH] i2c: user/kernel bug and memory leak in i2c-dev [PATCH] i2c: fix up "raw" printk() call. [PATCH] USB: ttusb_dec.c: another case of GFP_KERNEL in interrupt - in interrupt usb_submit_urb must use GFP_ATOMIC [PATCH] USB: return to old timeout handling it seems that I've broken usblp. This reverts to the old behaviour. Please apply. - revert to old timeout handling [PATCH] USB: correct error handling in usb_driver_claim_interface() this function races with itself, doesn't return errors and races with releasing interfaces. This patch fixes it by changing the function prototype, introducing locking and having a correct order in releasing interfaces. - API change to check errors in usb_driver_claim_interface and fix a race condition between releasing and reclaiming an interface [PATCH] USB: correct error handling in usb_driver_claim_interface() - comment - update commentary [PATCH] USB: error check for claiming second interface in usbnet - fail if second interface is already claimed [PATCH] USB: genelink_tx_fixup fails to check for memory allocation failure this can oops. - check for mem alloc failure i2c: move w83481d to top of link order due to chip address takeover ability. Fixes http://bugme.osdl.org/show_bug.cgi?id=1066 [PATCH] USB: dabusb doesn't claim every ez-usb an21xx device This resolves the annoyance that dabusb claims devices it shouldn't (and hotplugs for them), because of wrongly including the device IDs used by an21xx devices that don't have an ID prom. Mostly affects developers. Deti OK'd such a patch ages ago. [PATCH] add usb_reset_configuration() Unfortunately, usb_set_configuration() is widely mis-used as a lightweight device reset. That's trouble because setting a configuration must sometimes involve things that don't relate at all to a light reset, and can't be done in contexts like driver probe() calls. This patch updates most usb_set_configuration() users to use a call that provides more appropriate functionality: - Adds a new usb_reset_configuration() call, which never needs to change very much usbcore state. - Uses it to replace most usb_set_configuration() calls, in many serial drivers, hisax, dvb, irda, and so on. - Modifies usb_reset_device() so it issues the control request directly. It's both more of a reset (hides a USB reset) and less of one (altsettings are unchanged). - Makes usbfs return the error code instead of discarding it. Once this goes in, then usb_set_configuration() can be made to work properly (including from sysfs). [CRYPTO]: Add cast5, integration by jmorris@intercode.com.au [IPV6]: Missing break in switch statement of rawv6_getsockopt(). [IPV4]: /proc/net/pnp dumps items marked initdata. [SUNRPC]: Remove duplicate access_ok(). [NETFILTER]: Fix masquerade routing check. Alexey says: Unrelated: giving out->ifindex is a bug, by the way. It can screw up the things a lot. In this context, if you want to be sure that packet will go out expected interface you do plain lookup and drop packet if it gave you some strange route. [NET]: Update bpqether for 2.6 This patch fixes several issues with drivers/net/hamradio/bpqether.c in 2.6.0-test3. 1. Fix encapsulation of net_device structure relative to private data (bpqdev) 2. Convert from single-linked list to the list macros. 3. Convert to using seq_file for the /proc interface 4. Fix up locking by switching to RCU and the rtnl semaphore supplied by the network layer. 5. Fix removal cases of ethernet device and bpqether device to work without deadlock. 6. Get rid of MOD_INC/MOD_DEC 7. Get rid of bogus check_devices method of cleanup, just cleanup correctly when device changes state. [XFS] Use xfs_dev_t size rather than dev_t size in xfs_attr_fork initialization SGI Modid: 2.5.x-xfs:slinx:155551a [XFS] Fix up the default ACL inherit case, in the presence of failure during applying the default ACL (eg. from ENOSPC). SGI Modid: 2.5.x-xfs:slinx:155553a [sysfs] Mark some arguments const. From Stephen Hemminger [driver model] Change class functions to const arguments. From Stephen Hemminger: Several of the class_device functions don't modify their arguments and can take const pointers. [driver model] Check for probing errors in drivers/base/bus.c From Janice Girouard. Currently if an error is detected when probing a device, this error is not reported. Generally, an error value from errno.h will be returned when the driver->probe function fails. However, these errors are not logged, and the device fails silently. [power] Add hooks for runtime device power control. dpm_runtime_{suspend,resume} control the power state of a single device while the system is running. dpm_runtime_suspend() will save state of the device, then attempt to power it down. This happens with interrupts enabled, so if the device does not support that, the device's state is restored, and we continue on our merry way. dpm_runtime_resume() powers the device back on, then restores state of the device. dpm_set_power_state() simply notifies the core of the power state the device is in. Drivers can use this, since they are the only ones that can really tell. ACPI: merge andy-2.6 into lenb-2.6 [power] Begin to add sysfs files for controlling device power states. - Moves sysfs controls to drivers/base/power/sysfs.c - Creates dpm_sysfs_{add,remove} to add/remove sysfs attribute group. - Creates 'state' file in 'pm' directory that properly controls device power state at runtime. PPC32: Restrict when we enable IBM405_ERR{77,51}. Newer IBM40x cores have these problems fixed. ACPI dmi_scan.c: delete some incomplete code that broke !SMP + APIC build; add ACPI blacklist comment, move __i386__ out of do_mounts.c and into create mount_root_failed_msg() [AGPGART] Disable calibration cycle when not in AGP3 mode of operation on AGP3 chipset. [AGPGART] VIA AGP3 fixups. From folks at VIA. [BRIDGE]: Fix kfree(skb). [ATM]: Fix printk() warnings in LANAI driver (from mitch@sfgoth.com). [ATM]: Use likely()/unlikely() in many potential hot-paths of LANAI driver (from mitch@sfgoth.com). [ATM]: Cleanup/minor fixes to interrupt handler of LANAI driver (from mitch@sfgoth.com). [NET]: Add missing rcu_read_lock to bpqether. [NET]: Make lapbether work on 2.6.0-test3. - unneeded include (no proc here) - redundant fields in local device structure + convert to dynamic network device allocation - refcounts on local data are redundant, it is really part of network_device - excessive __inline__ + correctly manage references to underlying network device + cascade unregister + use RCU and RTNL to avoid deadlock + account for bytes as well as packets [power] Check device_suspend() return value in swsusp. From Pavel Machek. ACPI: Fix ACPI for IA64 on Big Sur machines (HJ Lu) [power] Minor cleanups. From Pavel Machek. [PATCH] USB: fix usb serial port release problem by untieing it from the usb_serial structure. This fixes the kobject messages when disconnecting a usb serial device that people have been complaining about. [PATCH] USB: fix up usb-serial drivers now that port[] is an array of pointers. ACPI: Update version so we can keep bugreports straight [AGPGART] Fix overflow on machines with >4GB From Marcelo E Magallon. [PATCH] PCI: add PCI_DEVICE() macro to make pci_device_id tables easier to read. [swsusp] Remove two panic()s. - Make software_suspend() return an int, so caller can tell what happened. - Do check for HIGHMEM and DISCONTIGMEM early in software_suspend() and fail gracefully, instead of checking far down the call chain and having to call panic(). [power] Various swsusp cleanups. - Move SMP check to software_suspend() (from software_resume()), so we will not even attempt to sleep with it enabled. - Make software_resume() a late initcall, removing the explicit call from prepare_namespace(). - Initialize software_suspend_enabled to 1, instead of doing it manually in software_resume(). - Don't explicitly initialzie resume_file. - Remove resume_status variable, as we can simply check for (non-) NULL resume_file string. - "noresume" setup function changed to simply zero first byte of resume_file string, simplifying logic. - Don't attempt to reset swap signature if noresume is specified. - Downstream function (bdev_write_page() wasn't implemented anyway, so we can just remove that also). If noresume is specified, there will still be a suspend image left on the swap partition. It may behoove us to never reset the swap signature, and always leave the image intact on the disk, since it is a valid snapshot that we can resume from at anytime. This unconditional behavior would force the user to add 'mkswap ' to their init scripts to reset the partition to swap use. IMO, this is better anyway. [PATCH] USB: fix usb class device sysfs representation. Again, I messed up the usage, now we are safe from devices being removed. This fixes a number of error reports from users. [PATCH] USB: ov511 sysfs conversion (1/3) This is the first in a series of three patches to convert the ov511 driver's /proc/video interface to sysfs. All V4L drivers must undergo this conversion now that /proc/video has been removed from the core. This patch removes ov511's /proc/video support, which allows it to compile again. [PATCH] USB: ov511 sysfs conversion (2/3) This patch converts ov511 to dynamically allocate struct video_device, using the new interfaces in videodev.[ch]. This is required to safely support sysfs without races. [PATCH] USB: ov511 sysfs conversion (3/3) This patch adds some read-only files to ov511's sysfs directory. The read/write attributes will be added in a future patch. For now, the read/write-related code is #if'd out to prevent warnings. [PATCH] USB: usb hcd-pci suspend/resume updates This patch has some updates to the hcd pci power management glue: - removes now-obsolete comments (driver model now exists) - better state transitions: * suspending "dead" controllers needn't oops * multi-resume case (pm bug) simplified * multi-suspend case likewise (not always a bug) * should handle transitions other than D0->D3{hot,cold} - prepares for usb remote wake up support, which will be wanting the driver model suspend/resume code to be ready. [PATCH] usb hc cleanup-after-death, oops fix Recently we've seen some oopses reported in code that cleaned up HCs after they died ... like pci-pm not letting ohci-hcd suspend until after the hardware was partly disabled, or users removing a Cardbus adapter with ehci-hcd. One root cause was that the cleanup called hcd->stop() too many times. This patch just does the cleanup that's reasonable to do before the (dead) root hub is cleaned up: it disconnects the other devices. And based on a suggestion from Pavel, a diagnostic always appears -- avoiding mystery. [sysfs] Don't add ->d_fsdata until dentrys are created. - For both files and directories, we were leaving ->d_fsdata set even when file and directory creation failed. This patch sets the field only after we've successfully created the dentry. [PATCH] USB: Add Minolta Dimage F300 to unusual_devs [PATCH] USB: bug in EHCI device reset through transaction This supports another special case: devices can revert to the "default" (address zero) state temporarily in usb_reset_device(). This is the quick fix; 2.6 could get rid of these special cases in ep0 hcd logic by disabling ep0, but 2.4 can't. [power] Make sure CONFIG_ACPI_SLEEP depends on CONFIG_PM [PATCH] ia64: is_headless_node fix Fix is_headless_node() macro to use node_to_cpumask(). ia64: Patch by Peter Chubb: Kill _syscallX macros that generate lots of warnings, in favour of inline syscalls for clone() and execve(), and direct calling of kernel functions for other system calls. [PATCH] ia64: Kill warnings in sys_ia32.c This patch kills compilation warnings in sys_ia32.c. [PATCH] ia64: Trivial 2.5 efivars.c whitespace cleanup Convert leading spaces to tabs. [PATCH] ia64: export EFI systab I know this probably needs to get exported somewhere other than /proc, but the rest of efivars is still in /proc and if somebody does convert efivars, they might as well do this systab bit at the same time. [PATCH] PCI: testing for probe errors in pci-driver.c Currently if __pci_device_probe locates the correct device driver, but receives an error from the static drv->probe function, this error is not reported. The attached patch reports the above error condition to the caller. Only when a match for the device in the static tables is not found, is the dynamic driver table searched. [PATCH] Enable OOSTORE on Geode. From Hiroshi Miura [PATCH] Don't refer to devel kernel in Kconfig option [PATCH] winchip3d can use same -march as winchip2 [PATCH] Fix x87 FPU exception status check From Dave Richards (drichards@mahinetworks.com) "While diagnosing an MMX/FPU problem I found a minor problem in the code which diagnoses and generates signals for FPU exceptions. On x86 Stack Fault Exception are a subclass of Invalid Operation. Thus, the FPU status register will have both the SF and IF bits set when a stack fault occurs. The code which turns FPU exceptions into signals was assuming IF would be clear". [PATCH] microcode driver sparse __user annotations. Plus with a little codeshuffling, we can do away with the prototypes. [PATCH] document easier bitkeeper option. Achieves the same result. From Lenz Grimmer at Mysql AG [PATCH] Remove duplicate ; at end of macro definitions [PATCH] DAC960 64bit fixup [PATCH] CCISS 64bit fixup. [PATCH] cpu_relax whilst in busy-wait loops. [PATCH] c99 initialisers for random.c [PATCH] Remove unneeded ; from macros in i8042 [PATCH] remove version.h from bttv [PATCH] misc 3c505 bits - Remove unneeded breaks - Fix double spin_unlock_irqrestore problem [PATCH] c99 initialisers for bttv [PATCH] FusionMPT 64bit fixup [PATCH] arcnet indentation fixup [PATCH] c99 struct initialisers for AMD8111e driver. [PATCH] boolean logic error in fpu emulation. [PATCH] CodingStyle fixes for drm_agpsupport [PATCH] c99 initiliasers for bttv (2) [PATCH] c99 for blkmtd [PATCH] sparse annotations for MSR driver [PATCH] PCMCIA copy_*_user fixes. These copies already did a verify_area above. [PATCH] missing copy_to_user check in tun driver. [PATCH] Missing copy_from_user check in comx driver [PATCH] missing copy_from_user check in comx_proto_lapb driver [PATCH] missing copy_to_user check in pc300 wan driver [PATCH] missing copy_from_user check in comx-proto-fr driver [PATCH] missing copy_*_user checks in sbni wan driver [PATCH] Missing spin_unlock_irqrestore from rrunner driver. [PATCH] missing copy_from_user check in munich driver [PATCH] missing copy_from_user check in mixcom driver. [PATCH] sync iocb wakeup if ki_users = 1, we don't do the wakeup, which seems wrong. [PATCH] BEFS 64bit fixup [PATCH] EFI 64bit fixup [PATCH] sparse annotations for page-writeback More to do, but its a beginning. [PATCH] LDM 64bit fixup [PATCH] correct tlb_remove_page comment. Remove prototype. It was wrong anyway. [PATCH] Remove useless assertions from reiserfs [PATCH] AD1848 claims a card it shouldn't. [PATCH] sparse annotations for page_alloc Again, more work to do here.. [PATCH] sparse annotations for ipc/sem [PATCH] logic error in gus_wave driver [PATCH] Disable APIC on reboot This disables the local APIC before reboot. This fixes BIOS reboot problems reported by a few people. disable_local_APIC() now checks if detect_init_APIC() enabled the local APIC via the APIC_BASE MSR, and if so it now disables APIC_BASE. Previously we would leave APIC_BASE enabled, and that made some BIOSen unhappy. The SMP reboot code calls disable_local_APIC(). On SMP HW there is no change since detect_init_APIC() isn't called and APIC_BASE isn't enabled by us. An SMP kernel on UP HW behaves just like an UP_APIC kernel, so it disables APIC_BASE if we enabled it at boot. The UP_APIC disable-before-suspend code is simplified since the existing code to disable APIC_BASE is moved into disable_local_APIC(). (Felix Kühling originally reported the BIOS reboot problem. This is a fixed-up version of his preliminary patch.) [PATCH] Clean up missing spin_unlock_irqrestore from rrunner driver This is a cleaner fix that avoids having two separate unlock operations. [PATCH] zap_other_threads() detaches thread group leader The change to detach the threads in zap_other_threads() broke the case where the non-thread-group-leader is the cause of de_thread(). In this case the group leader will be detached and freed before switch_exec_pids() is complete and invalid data will be used. This is a patch that makes sure that the group leader does not get detached and reaped. [PATCH] Fix protocol bugs with NFS and nanoseconds NFS with 2.5.75 as both client and server is broken with GNU Make. The nanosecond field of timestamps of newly touched files is often negative on the client, which is probably why Make fails. The value also bears no relation to the file's nanosecond field on the server. The culprit is htons() used where htonl() should be: - *p++ = htonl((u32) time->tv_sec); *p++ = htons(time->tv_nsec); + *p++ = htonl((u32) time->tv_sec); *p++ = htonl(time->tv_nsec); The rest of this patch corrects nfsd to use microseconds in NFSv2, not nanoseconds. (The client already gets this right, but I have optimised it slightly to avoid division when possible). [PATCH] fix trident.c lockup on module load 2.6.0-test2 This patch fixes a kernel lockup with 2.6.0-test2 when the trident.c OSS driver is loaded and the driver attempts to initialize the card. The problem is that in ali_ac97_get() we lock the card->lock spinlock, but never release it on the good path, only on the error path. This patch adds the missing spin_unlock_irqrestore(). This bug snuck in in a 2.4 sync from Alan, and 2.4 appears to suffer from the same problem. A patch for that will be send to Marcelo momentarily. [PATCH] Make SELinux security module compile on m68k [PATCH] x86-64 merge for 2.6.0test3 Without these changes an x86-64 NUMA kernel won't boot in many configurations. The main change is the improved IOMMU code which supports merging of mappings and has various bugfixes. - Update defconfig - Use argument ptregs in 32bit elf_core_copy_task_fpregs - Harden aperture fixup code: read aperture from the AGP bridge if needed, better error checking. - Support nmi_watchdog=panic to panic on watchdog trigger - IOMMU: Support panic on IOMMU overflow (iommu=panic) - IOMMU: Force SAC for mappings >40bits when iommu=force is active (this can potentially give better performance) - IOMMU: Cache northbridges for faster TLB flush - IOMMU: Fix SMP race in TLB flush - IOMMU: Merge pci_alloc_consistent and pci_map_single - IOMMU: Clean up leak tracing - IOMMU: Rewrite pci_map_sg, support merging of mappings On overflow fall back to piece-by-piece mapping. - IOMMU: Tell block layer to assume merging when iommu force is active (this gives better performance with MTP fusion, drawback is that the overflow/fragmentation handling of the IOMMU area is still a big dubious with that) - Fix/clean up per cpu data - Add 64bit clean time(2) - Export cpu_callout_map for IPv6 - Handle nodes with no own memory in NUMA discovery. This fixes boot on various newer Opteron motherboards where the memory is only connected to a single CPU. - Fix fallback path for failed NUMA discovery. numnodes has to be reset. - Check for enabled nodes in NUMA discovery (Eric Biederman) - Remove NUMA emunodes support. Has badly bitrotted. - Add __clear_bit_string for IOMMU code - Add new 32bit system calls to ia32_unistd.h - Remove duplicate default_do_nmi prototype - Make PCI_DMA_BUS_IS_PHYS dependent on no_iommu - Fix padding length of siginfo_t to match glibc - More pci direct access functions. [PATCH] Disable buggy raid5 handling of read-ahead raid5 tries to honour RWA_MASK, but messes it up and can return bad data. Just ignore RAW_MASK for now. [PATCH] Fix bug in sunrpc/server code. When a socket has a request ready it notifies a server thread. When the thread has 'received' the request it calls svc_sock_received to confirm the fact. In some cases, svc_sock_received would be called an extra time and this could lead to linked-list corruption and bad problems. [PATCH] hpt366 fix The HPT366 code is broken - it tries to set the interface to too high a speed, which leads to error messages at boot time and/or to data corruption. The typical effect at boot time is hde: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error } hde: set_drive_speed_status: error=0x04 { DriveStatusError } Fixed thus. [PATCH] IPMI updates for 2.6.0-test3 Here are some minor updates to the IPMI driver. They fix the following: * A missing check for copy_to_user() in the watchdog driver. * Removal of unnecessary check_region() calls. * Fixes for the ACPI configuration. The previous one would only work with memory addresses, this will work with memory addresses, ports, and hadle checking that the type is correct. [PATCH] Document mounting of binfmt_misc Patch by Ivan Gyurdiev. [PATCH] SCSI tape fix for oops in read with wrong block size This corrects the following problem: - release user buffer mapping early in read path (prevent oops in some HBA drivers) [PATCH] Email address update This updates my email address. [PATCH] Fix pd.c for new queue allocation From A1tmblwd@netscape.net Fix rename open file to better match standard unix semantics [XFS] Fix a race condition in async pagebuf IO completion, by moving blk queue manipulation down into pagebuf. Fix some busted comments in page_buf.h, use a more descriptive name for __pagebuf_iorequest. SGI Modid: 2.5.x-xfs:slinx:155788a [ARM] Add ARMv6 definitions. - Add section descriptor bit definitions. - Add control register bit definitions. - Add architecture number. [ARM] Add ARMv6 MMU context handling. Add MMU context ID handling. [ARM] Add ARMv6 TLB handling. [ARM] Add ARMv6 memory type table initialisation tweaks. [PATCH] Correct DEVPTS config help The help for CONFIG_DEVPTS_FS claims that devfs "is a more general facility". But that apparently hasn't been true since 2.5.68. This patch removes that claim, and adds a warning to the DEVFS_FS help. [PATCH] kill HDIO_GETGEO_BIG_RAW ioctl HDIO_GETGEO_BIG_RAW is an ide specific hack introduced in 2.3.99-pre3. There are no known programs using this ioctl. Its aim was to provide current CHS translation to the user-space, but very often it provides what driver thinks is a current translation (drive with LBA have to support only one physical translation, also drive may not support chosen translation and there is no return value check). hdparm -I can be used instead, it provides correct information (and bogus data is still accessible through /proc/ide/hdX/geometry). [PATCH] ide: disk geometry/capacity cleanups From Andries.Brouwer@cwi.nl. - kill redundant, never executed code in lba_capacity_is_ok() - add idedisk_supports_{hpa,lba48}() helpers - don't recalculate drive->cyl for drives using LBA addressing, we never fall-back to CHS, so its useless and confusing - remove wrong drive->head and drive->sect assignments for LBA-48 - don't overwrite id->lba_capacity and id->lba_capacity_2 [PATCH] ide: always store disk capacity in u64 From Andries.Brouwer@cwi.nl. - always use drive->capacity48 and kill drive->capacity I've changed drive->capacity48 to drive->capacity64 to avoid confusion. [PATCH] ide: limit drive capacity to 137GB if host doesn't support LBA48 Noticed by Andries.Brouwer@cwi.nl. Also: - kill probe_lba_addressing() wrapper - rename hwif->addressing to hwif->no_lba48 [PATCH] ide: more ide_unregister() fixes - more locking fixes - preserve gendev.parent of the old hwif in the new one [PATCH] ide: build fixes for ide-tape.c also add missing Kconfig help entry from 2.4.x [PATCH] ide: remove bogus bh->bio conversion from ide-tape.c and add stripped down buffer_head variant (struct idetape_bh). ide-tape is accessed by a char device (not a block one!), it uses block layer only to queue requests. [PATCH] ide: some CodingStyle fixes from 2.4.x for ide-tape.c makes 2.4->2.6 diff noticeable smaller [PATCH] Make modules work on ARM This patch allows modules to work for ARM, and is the one thing which prevents the standard tree from building for any ARM machine. After reviewing the /proc/kcore and kclist issues, I've decided that I'm no longer prepared to even _think_ about supporting /proc/kcore on ARM - it just gets too ugly, and adds too much code to make it worth the effort, the time or the energy to implement a solution to that problem. /proc/kcore should probably go away, but in the meantime this just allows ARM to ignore the issues. [PATCH] add compat_statfs64 Add compat_* functions for statfs64. The 32bit layout unfortunately does not match x86-64. [PATCH] add compat_utimes Add compat_sys_utimes for 32bit->64bit utimes conversion [PATCH] add posix timer compat functions Add 32bit->64bit conversion functions for POSIX timers. I kept timer_create architecture specific, because it does signal specific stuff which is not portable enough for generic compat. [PATCH] Make x86-64 use new compat support code Just call them from the x86-64 entry code. Also implement the x86-64 specific sys32_timer_create. [PATCH] Fix cryptoloop ECB mode cryptoloop won't oops anymore if ECB mode is requested. [PATCH] Fix cryptoloop disk corruption under CBC mode It was caused by improper IV calculation in loop.c [PATCH] Fix /sys///dev format: %04x -> %u:%u A part of the 64 bit kdev_t patch already got merged, and it changes the format of /sys/block//dev from %02x%02x to %u:%u. The partition could must also be changed. e.g. cat /sys/block/hda/hda5/dev should return 3:5 instead of 0305 Mark CLONE_DETACHED as being irrelevant: it must match CLONE_THREAD. CLONE_THREAD without CLONE_DETACHED will now return -EINVAL, and for a while we will warn about anything that uses it (there are no known users, but this will help pinpoint any problems if somebody used to care about the invalid combination). [driver model] Allow per-device shutdown or suspend on driver detach. - Add struct device::detach_state, which tells the core what state to put the device in when it's detached from its driver (on module removal). This is a value in the range of 0-4, with 0 being On and meaning 'Do Nothing', 4 being Off, meaing calling ->shutdown() for the device, and 1-3 being low-power states, meaning call ->suspend() for the device. - Add per-device sysfs file 'detach_state' to control the value of the field. - Add device_device_shutdown() function, and call it from bus.c:: device_detach_driver(). [driver model] Remove 'power' file in favor of 'power' directory. - Only present when CONFIG_PM=y. - Contains 'state' file for controlling power state with new PM infrastructure. DRI CVS update: document r128 and radeon version numbers DRI CVS update: bump i810 driver to 1.4. This fixes the DMA interface to be backwards compatible with older XFree86 versions, by looking at the I810_INIT_DMA parameters and figuring out old version semantics. [PATCH] I2C: i2c nforce2.c fixes This patch restores a line that was wrongly removed. There are also some trivial cleanups. It applies & compiles vs. 2.6.0-test3. It's untested (no hardware here). [PATCH] I2C: bugfix for initialization bug in adm1021 driver While initializing the adm1021 device, the driver is performing a conversion from fixed point to Celcius on values that were declaired as Celcius. On my Dell Precision 220 this results in a shutdown after a couple of minutes running. This is a very simple patch against the 2.6.0-test3 tree that just removes the conversion. [PATCH] I2C: fix up the wording for the pii4x bugfix. USB: handle overloading of usb-serial functions in a much cleaner manner. Qla1280 update to 3.23.24 From: Jes Sorensen with minor compile and rejection fixes This patch might make the qla1280 driver build again in Linus' bk tree. I don't have those sources here so I made the changes relative to 2.6.0-test2 and I am out of space on my laptop Only compile tested, but if it works it works ;-) [PATCH] USB: usbvideo cleanup on error Driver Core: remove struct device.name as it is not needed If a specific driver subsystem needs a name field, they should implement it for just that subsystem. Remove .name usage from floppy driver. Remove usage of struct device.name from ide core Remove usage of struct device.name from pcmcia layer Remove usage of struct device.name from bttv driver I missed this on the i2c series of patches. [PATCH] fix dc395x compile The recent update made it check the scsi_remove_host retval which is void now. [PATCH] nuke some junk from the pcmcia scsi drivers DEV_STALE_* is used for some crude hacks in pcmcia netdrivers and it seems people copied it blindly over to the scsi ones also it couldn't ever be triggered (dev_link_t.open is never incremented e.g.) [PATCH] place host-related LDM code directly in hosts.c This was in scsi_sysfs.c previously but given that it's not sysfs-related and the whole scsi code is built around the driver model now it's better to have it where it belongs. Also allows us to reduce the scsi_mod-wide globals. [PATCH] add sysfs attributes to scan and delete scsi_devices This patch against scsi-misc-2.5 adds a sysfs attribute to allow scanning (or rescanning) and deletion of scsi_devices. It also allows scanning of entire hosts, channels, or targets. It adds a per-host scan attribute, and a per scsi_device delete attribute. [power] Register PM subsystem, and create power/ directory in sysfs. - Add file 'state' which provides single point of entry for all PM transitions. File accepts a string specifying what state to enter, which is one of: "standby": Power-on Suspend (aka S1) "suspend": Suspend-to-RAM (aka S3) "hibernate": Suspend-to-disk (aka S4) The names do suck, because they are lifted from the ACPI spec. Better naming suggestions are welcome, though these names are relatively well- known. - Handler for file does little now, but will validate the passed string and call the appropriate functions. - Needs to be integrated with swsusp and ACPI S3 code. [NET]: Fixing kfree() in SLIP driver. [NETROM]: Fix sysctl initializers. [NETROM]: Expire sockets faster on close. [NETROM]: Free buffers in write queue on socket destroy. [NETROM]: Reserve space in socket header for AX25 header. [NETROM]: Lock sockets while doing protocol processing. [NETROM]: Better control over the AX25 devices. [NETROM]: Use hlist for the routing table information. Note: there is a call to ax25_cb_put commented out, that can be added back when ax25 refcount patches go in. [NETROM]: Make lists and locks static since they are only used in one file. [NETROM]: Convert to alloc_netdev(). Convert net_device's from array of structures to an array of pointers, so they can be freed individually on module exit. The net_device_stats are stored at dev->priv. [NETROM]: Convert /proc interface to seq_file. [NETROM]: Fix use after free in socket close. netrom would oops if one did: modprobe netrom ifconfig -a because the code in destroy was freeing the socket then release_sock was called. [NET]: Convert YAM driver to dynamic net_device. [NET]: Convert YAM driver to seq_file. [PATCH] fadvise(POSIX_FADV_DONTNEED) fix invalidate_mapping_pages() takes start/end, but fadvise is currently passing it start/len. [PATCH] sys_fadvise64_64 Alas, both POSIX and I got the fadvise() interface wrong. It needs to take a 64-bit length, not a 32-bit one. Because fadvise(POSIX_FADV_DONTNEED) on a 4TB file will require 1000 syscalls. Silly. There are glibc's in the wild which use the existing syscall, so we must make a new one. [PATCH] Fix raid "bio too big" failures From: Neil Brown Fix "bio too big" problem with md Whenever a device is attached to an md device, we make sure the sector limits of the md device do not exceed those of the added device. [PATCH] missing #if for 1000 HZ From: Albert Cahalan This should improve timekeeping a bit @ 1000 HZ. [PATCH] timer race fixes From: Ingo Molnar It unifies the functionality of add_timer() and mod_timer(), and makes any combination of the timer API calls completely SMP-safe. del_timer() is still not using the timer lock. this patch fixes the only timer bug in 2.6 i'm aware of: the del_timer_sync() + add_timer() combination in kernel/itimer.c is buggy. This was correct code in 2.4, because there it was safe to do an add_timer() from the timer handler itself, parallel to a del_timer_sync(). If we want to make this safe in 2.6 too (which i think we want to) then we have to make add_timer() almost equivalent to mod_timer(), locking-wise. And once we are at this point i think it's much cleaner to actually make add_timer() a variant of mod_timer(). (There's no locking cost for add_timer(), only the cost of an extra branch. And we've removed another commonly used function from the icache.) [PATCH] AS: remove hash valid stuff From: Nick Piggin The crazy HASH_VALID stuff now makes no difference now. It was there to try to enforce no merging over a barrier, but it turned out that requests can just be reordered. Jens picked this up a a while ago and fixed deadline (and I AS) by simply dispatching all reqs on the queue on encountering a barrier. The hash valid stuff didn't get cleaned up. [PATCH] AS: no trinary states From: Nick Piggin Gets rid of the silly (and undocumented) trinary stateness of ad->changed_batch. Kernel style flags field could now save 20 bytes per asd (request queue) and 4 per arq. But I figure that change can wait until I do autotuning... [PATCH] AS requeue implementation From: Mark Haverkamp Properly implement elevator_t..elevator_requeue_req_fn for the anticipatory scheduler. This fixes some rarely-occurring oops in the IO scheduler. [PATCH] standalone elevator noop From: Nick Piggin Following patch seperates elevator noop, and allows it to be treated like the other schedulers. [PATCH] pipe.c: don't write to readonly filesystems The pipe code's mtime and ctime updates are causing writes to read-only mounted filesystems. Fix that up by teaching inode_update_time() to honour readonly mounts, and call it from the pipe code. [PATCH] reiserfs: remove unneeded kunmap From: Oleg Drokin There is a leftover kunmap in reiserfs_unprepare_pages() which was not deleted after conversion to kmap_atomic. This path is virtually never executed, that's why it was not caught earlier. Please apply. [PATCH] reiserfs: Fix handling of some extended inode From: Oleg Drokin This patch fixes a problem in reiserfs' handling of immutable attribute, where every user (not just root) can unset it. Also it adds "append-only" attribute "support" (all the support is in VFS anyway, we only recognise the bit now). Also misleading comment in reiserfs_fs.h is removed. [PATCH] Set up P4 thermal interrupt vector on UP From: Zwane Mwaikambo The P4 thermal interrupt vector was only getting set on SMP builds. [PATCH] nbd: fix send/receive/shutdown/disconnect races From: Paul Clements Here's the updated patch to fix several race conditions in nbd. It requires reverting the already included (but incomplete) nbd-race-fix.patch that's in -mm5. This patch fixes the following race conditions: 1) adds an increment of req->ref_count to eliminate races between do_nbd_request and nbd_end_request, which resulted in the freeing of in-use requests -- there were races between send/receive, send/shutdown (killall -9 nbd-client), and send/disconnect (nbd-client -d), which are now all fixed 2) adds locking and properly orders the code in NBD_CLEAR_SOCK to eliminate races with other code 3) adds an lo->sock check to nbd_clear_que to eliminate races between do_nbd_request and nbd_clear_que, which resulted in the dequeuing of active requests 4) adds an lo->sock check to NBD_DO_IT to eliminate races with NBD_CLEAR_SOCK, which caused an Oops when "nbd-client -d" was called [PATCH] /proc/net/pnp oops fix ic_servaddr is accessible after boot via /proc/net/pnp. So it cannot be __initdata. davej says that other varibles there are treated the same way, so move them all into the regular data section. [PATCH] vt_ioctl warning fixes Several comparisons which can never be true because they're comparing u8's with numbers which are greater than 255. [PATCH] fix task struct refcount bug From: Manfred Spraul (We think this might be the mystery bug which has been hanging about for months) We found a [the?] task struct refcount error: A task that dies sets tsk->state to TASK_ZOMBIE. The next scheduled task checks prev->state, and if it's ZOMBIE, then it decrements the reference count of prev. The prev->state & _ZOMBIE test is not atomic with schedule, thus if prev is scheduled again and dies between dropping the runqueue lock and checking prev->state, then the reference it dropped twice. This is possible with either preemption [schedule_tail is called by ret_from_fork with preemption count 1, finish_arch_switch drops it to 0] or profiling [profile_exit_mmap can sleep on profile_rwsem, called by mmdrop()] enabled. [PATCH] probe UDF after reiserfs Bug 1065 (http://bugme.osdl.org/show_bug.cgi?id=1065) points out that there is a risk that UDF will accidentally mount a reiserfs partition, which would prevent a successful boot. Andries points out that probing is unreliable and that users/admins should always specify the root filesystem type on the kernel boot command line with "rootfstype=resierfs". But nobody does that, so we should be trying reiserfs before UDF. [PATCH] fix ide-scsi for ide_drive_t->queue change From: Mikael Pettersson This patch fixes ide-scsi.c for the ide_drive_t->queue type change in 2.6.0-test3. Without the patch you'll get these new warnings in -test3: drivers/scsi/ide-scsi.c: In function `idescsi_abort': drivers/scsi/ide-scsi.c:875: warning: passing arg 1 of `elv_queue_empty' from incompatible pointer type drivers/scsi/ide-scsi.c: In function `idescsi_reset': drivers/scsi/ide-scsi.c:902: warning: passing arg 1 of `elv_next_request' from incompatible pointer type [PATCH] BUG fix for drivers/bluetooth/hci_usb.c From: Vinay K Nallamothu The patch below fixes two pointer reference bugs (shows up as compile time warnings given below) which wrongly take the address of "struct usb_interface*". drivers/bluetooth/hci_usb.c: In function `hci_usb_probe': drivers/bluetooth/hci_usb.c:786: warning: assignment from incompatible pointer type drivers/bluetooth/hci_usb.c:810: warning: assignment from incompatible pointer type [PATCH] handle old-style "root=" arguments When we changed try_name() to handle new-style printable dev_t formatting we broke lots of people's setups. Lilo, grub, etc. Fix that by trying new-style formatting first, then fall back to old-style. People should generally use new-style %u:%u major:minor formatting in the future. [PATCH] firmware loader requires hotplug From: Ramn Rey Vicente Fix the config issue with the hotplug firmware loader. The firmware loader use hotplug, so this must be included as a dependency. [PATCH] devfs_mk_dir fix From: Andrey Borzenkov devfs_mk_dir freed wrong de and incorrectly passed to devfsd already freed de. Besides it did not even check if entry found was actually directory. [PATCH] _devfs_walk_path fix From: Andrey Borzenkov _devfs_walk_path does not check if de it is about to scan is a directory. Next step is spinlock on non-spinlock memory. It requires either artificial setup or really broken driver but fairly easy to reproduce once you know how. It is likely to exist in 2.4 as well. [PATCH] floppy_init fix From: Andrey Borzenkov The floppy driver doesn't remove /dev/floppy when floppy_init fails. [PATCH] Make MTRR init conform with recommended procedure From: Zwane Mwaikambo This is a patch to make the MTRR initialisation more conformant with what is stated in volume 3 of (10-36 Memory Cache Control). The most notable change is entering the no-fill cache mode before clearing the PGE bit in cr4. Intel also states that we should do the cache flush via the cr3 register shuffle. If there is a problem with the patch please don't hesitate to beat me vigorously with a clue-by-four. It has been tested on a 3x Pentium 133, 8x PIII Xeon 700, 1x Celeron 550 and 32x PIII 500 NUMAQ (hardware courtesy of OSDL) [PATCH] fix typo in hd.c From: Adrian Bunk hd.c contains a typo [PATCH] fix hugetlbfs slab corruption on umount From: Zwane Mwaikambo hugetlbfs was accessing super_block->s_fs_info after free'ing it. This was because it was being free'd prematurely. I have deferred free until ->put_super(). I have also removed hugetlbfs_kill_super since it now is simply a kill_litter_super. [PATCH] Kill warning in minix filesystem on 64-bit archs From: Peter Chubb On 64-bit architectures, ino_t is int, not long, so the attached patch is needed to prevent a warning. [PATCH] loop oops fix loop-on-file oopses during unmount. This is because lo_queue is now freed during lo_ioctl(LOOP_CLR_FD). I think the scenario is: 1: umount(8) opens /dev/loop0 2: umount(8) runs lo_ioctl(LOOP_CLR_FD) (this frees the queue) 3: umount(8) closes the /dev/loop0 handle. The blockdev layer syncs the blockdev, but its mapping->backing_dev_info now points into la-la-land. We shouldn't be freeing the queue until all refs to it have gone away. This patch gives the queue the same lifetime as the controlling loop_device itself. It also makes the loop driver's queue appear in sysfs again. It would be better to free the queue when the device is not in use, but I'm not sure how we can hook into the blockdev layer to do that. [PATCH] request_firmware fix From: Manuel Estrada Sainz - undo recent change, made in the believe that "buffer" was the size of the whole file, it is just PAGE_SIZE in size. This was causing kernel memory corruption. - Since files are allowed to have unknown sizes, by setting their size to 0, we can't preallocate a buffer of their size on open. - Adapt request_firmware() to the sysfs change. - Adapt drivers/pci/pci-sysfs.c to the sysfs change. [PATCH] Kill warning in drivers/input/misc/uinput.c on IA64 From: Peter Chubb Attached patch kills a warning when compiling on a 64-bit architecture (ssize_t is long, not int) [PATCH] kill warning in jbd/revoke.c From: Peter Chubb If you need a long long format, then cast to long long, not u64. u64 is long on 64-bit architectures. [PATCH] keyboard.c warning fix drivers/char/keyboard.c: In function `k_fn': drivers/char/keyboard.c:665: warning: comparison is always true due to limited range of data type I didn't want to just delete the code because one day the size of func_table may get smaller, or the type of `value' may get larger. When that happens, the test becomes valid again. [PATCH] fix [un]likely(), add ptr support From: Albert Cahalan 1. allows likely() and unlikely() to work for pointers 2. fixes likely() (in C, any non-zero value is true) [PATCH] ipmi_kcs_intf.c compile warning From: Zwane Mwaikambo drivers/char/ipmi/ipmi_kcs_intf.c: In function `acpi_find_bmc': drivers/char/ipmi/ipmi_kcs_intf.c:1088: warning: long unsigned int format, different type arg (arg 2) drivers/char/ipmi/ipmi_kcs_intf.c:1088: warning: long unsigned int format, different type arg (arg 2) [PATCH] hugetlbfs - 'recovering' too many blocks on failure From: Zwane Mwaikambo The code appears to be able to add too many blocks back to sbinfo->free_blocks in the failure path. We first do; len = vma->vm_end - vma->vm_start; sbinfo->free_blocks -= len; but then later do; len = (vma->vm_end - vma->vma_start) + (vma->vm_pgoff << HPAGE_SHIFT) error: sbinfo->free_blocks += len; [PATCH] more documentation for request_firmware() From: Manuel Estrada Sainz Add some higher level docs to Documentation/firmware_class/README. [PATCH] state request_firmware() maintainership. From: Manuel Estrada Sainz Add Manuel to MAINTAINERS for request_firmware(). [PATCH] jffs statfs fix From: Josh Boyer jffs was missed in the statfs64 conversions. [PATCH] Make 16-way x440's boot From: Matthew Dobson 16 proc x440 boxen aren't booting mainline kernels right now for many valid configs. This patch makes sure NUMA codepaths aren't executed for SMP configs. It also adds some sane error messages to the code, and cleans up some #ifdefs. [PATCH] Fix strncpy off-by-one error From: Yoshinori Sato It writes one too many zeroes when nulling out the destination. [PATCH] nls Makefile fix From: Todor Todorov A missig line fs/nls/Makefile prevents codepage 1250 from compiling and installing whatever the .config value. [PATCH] Fix DAC960 oops From: Dave Olien The dynamic queue allocation appears to have exposed a long-standing bug. [PATCH] Better argument size tracking in fs/exec.c From: Matthew Wilcox Introduce a new variable "arg_size" and set it appropriately in each arm of the CONFIG_STACK_GROWSUP. This patch fixes a bug for PA-RISC and makes the code cleaner for everyone. [PATCH] bugfix for initialization bug in adm1021 driver From: Rusty Lynch While initializing the adm1021 device, the driver is performing a conversion from fixed point to Celcius on values that were declaired as Celcius. On my Dell Precision 220 this results in a shutdown after a couple of minutes running. The latch simply removes the conversion. [PATCH] dnotify documentation update From: Stephen Rothwell Fix the dnotify documentation and code example to reflect reality. [PATCH] access_process_vm() needs to dirty the page If POKETEXT modifies the page it needs to tell the VM about it. [PATCH] Use mark_page_accessed() in follow_page() Touching a page via follow_page() counts as a reference so we should be either setting the referenced bit in the pte or running mark_page_accessed(). Altering the pte is tricky because we haven't implemented an atomic pte_mkyoung(). And mark_page_accessed() is better anyway because it has more aging state: it can move the page onto the active list. [PATCH] uinput oops and panic fix From: Aristeu Sergio Rozanski Filho verify maximum number of bits before using set_bit [PATCH] Docbook: Make mandocs output more terse From: Michael Still This patch takes into account requests from various LKML members for the mandocs output to be more terse. Information about the copyright, and formatting of the man page is moved into a comment at the start of the groff output. Sample output can be found at: http://www.stillhq.com/linux/mandocs/2.6.0-test3-bk1/ [PATCH] opl3 use-after-free fix From: Shawn Starr opl3 use-after-free fix [PATCH] SELinux inode security init From: Stephen Smalley This patch reworks the SELinux module code that handles inodes initialized before the policy is initially loaded to also cover the case where a pseudo filesystem such as selinuxfs or nfsd directly populate themselves. The list of inode security structures is split into per-superblock lists associated with each superblock security structure, and the initialization is performed by superblock_doinit. [PATCH] Add SELinux entry to MAINTAINERS From: Stephen Smalley This patch adds a SELINUX entry to the MAINTAINERS file. Don't add noisy "deprecated" things to PM. [PATCH] More timer race fixes Patch from Julie DeWandel. This patch has solved the crashes observed during TPC-C runs on the 16-way box. (I'm confident it will fix the other reported cases as well.) The race is the setting of timer->base to NULL, by del_timer() or __run_timers(). If new_base == old_base in __mod_timer() then we do not re-check timer->base after getting the lock. (the only case where we do not have to re-check the base is in the !old_base case, but the else branch also includes the old_base==new_base case.) The __run_timers() case made the lock_timer() patch not work fully - we cannot use lock_timer() in __run_timers() due to lock ordering. [PATCH] janitor: scsi/gdth error handling From: Daniele Bellucci [PATCH] janitor: scsi/qlogicfc error handling From: Leann Ogasawara [PATCH] janitor: scsi ioctl error handling From: Daniele Bellucci [PATCH] janitor: use -Evalues in cpufreq/speedstep From: Maximilian Attems [PATCH] janitor: [sound] don't init statics to 0 From: Leann Ogasawara Uninitialize static variables initialized to 0 so they are pushed to the .bss instead of .data. [PATCH] janitor: remove bogus locking From: Domen Puncer Matthew Wilcox wrote: > > This routine looks to be bogus to begin with. i'd just remove the > save_flags, cli and restore_flags calls entirely. [PATCH] janitor: ad1816: don't init statics to 0 From: Eugene Teo Removed initialisation to zero on static variables in sound/oss/ad1816.c. [PATCH] janitor: ite8172: don't init statics to 0 From: Eugene Teo Removed initialisation to zero on static variables. [PATCH] janitor: use pci_name in emu10k1 From: Eugene Teo Converted code to use pci_name instead of accessing slot_name directly. [PATCH] janitor: i810_audio: balance pci_alloc/free_consistent From: Leann Ogasawara [PATCH] janitor: es1370: pci_alloc_consistent error handling From: Leann Ogasawara [PATCH] janitor: input cleanups From: Daniele Bellucci [PATCH] janitor: input/evdev fix copy_user fault From: Daniele Bellucci [PATCH] janitor: handle locking in joydump same as in tmdc From: Domen Puncer Did it the way it is in drivers/input/joystick/tmdc.c [PATCH] janitor: add static/exit to some modules From: Domen Puncer (2 statics added by rddunlap) [PATCH] janitor: audit RTC From: Daniele Bellucci Audit create_proc_read_entry in rtc_init and fix coding style too. [PATCH] janitor: dvb: return register_chrdev value From: Daniele Bellucci [PATCH] janitor: floppy: use register_blkdev return value From: Daniele Bellucci On failure register_blkdev doesn't necessarly return -ENODEV .. it can return -ENOMEM too. This patch add a little better audit of register_blkdev. [PATCH] janitor: use request_module() From: Domen Puncer [PATCH] AS: update as_requeue_request() - Ensure that arq->state is always set (ie. even if io context allocation failed). - Call as_antic_stop() unconditionally - which checks for the same condition. There are other callers which make the same check and should be changed too... fix rename of open files [AGPGART] Merge ATI IGP GART driver. [AGPGART] Move ATI PCI IDs to pci_ids.h - sort some of the ATI entries. (note, there are dupes in there that could be fixed up at some point). - Rename PCI_DEVICE_ID_RADEON_IGP to ATI_RS100. RadeonIGP is the family, not the specific chip. [AGPGART] Kill off agp_try_unsupported for ATI. [AGPGART] Masks cleanup for ATI GART [AGPGART] Plug memory leak in failure path of ATI GATT allocator. [AGPGART] Kill compiler warnings for ATI GART driver. [AGPGART] Fix compiler warning. Need cacheflush.h for change_page_attr() [AGPGART] Check ioremap for failure in Serverworks GART driver. Based on patch from Randy Dunlap. [AGPGART] Remove duplicate agpgart: from printk's. [AGPGART] Another missing ioremap() failure check. Again, from Randy Dunlap [PATCH] thread coredump oops fix If ->group_leader of current thread already was exiting, group_leader's ->mm is NULL in fill_psinfo(). Then I got Oops. This uses current->mm instead of ->group_leader->mm to dump args. [AGPGART] Kconfig updates for the ATI GART [PATCH] USB: usb_start_wait_urb() rewrite The code that manges the synchronous control/bulk calls has been a mess for ages. This patch rewrites it using: - "struct completion" instead of a usb-internal clone therof, - prepare_to_wait()/finish_wait() instead of the tangled mess it now uses (or a new wait_event_timeout call, as in previous versions of this patch). It's a net code shrink and simplification. [PATCH] USB: usbnet.c - trailing 'else' that probably breaks net1080 A trailing else in the #ifdef CONFIG_USB_NET1080 block that would prevent it from properly filling the bulk URB. Remove usage of struct device.name from scsi core Driver Core: add warnings if .release functions are not set for objects. This has been in the -mm tree for a while and has helped a lot in finding lots of improper users of the driver core. It also moves the driver core code up quite a few levels on the "Rusty's guide to kernel APIs". fix incorrect length in rename by file handle frame I2C: add adapter and client name files as the driver core no longer provides them. [ARM] Remove struct device .name usage. [ARM] Fix cpu-sa1110.c gcc3 build error (multi-line asm statement) [ARM] Add Integrator IM/PD-1 module support for Integrator PP/2. oops in sd_shutdown From: Andries Brouwer I see an Oops in the SCSI code, caused by the fact that sdkp is NULL in sd_shutdown. "How can that be?", you will ask - dev->driver_data was set in sd_probe. But in my case sd_probe never finished. An insmod usb-storage hangs forever, or at least for more than six hours, giving ample opportunity to observe this race between sd_probe and sd_shutdown. (Of course sd_probe hangs in sd_revalidate disk.) Perhaps the obvious test is a good idea. Locking seems meaningless - sd_probe will never finish. entry.S: ia64: Fix prologue directives for sys_clone() and sys_clone2() ia64: Make things compile with gcc-pre3.4 and work on the simulator. Move patch from linux-ia64-2.5 to to-linus-2.5 repository. TotalDataCount field not getting set properly on the transact2 SetFileInfo rename network operation ACPI now honors "noapic" cmdline option config tweaks from Dominik Brodowski [IDE]: Fix alim15x3 build after ATI PCI ID changes. [IDE]: Use pci_name() in amd74xx driver. [INPUT]: Use pci_name() in pcips2 driver. Add fastfail to SCSI This is the preliminary version with no error indications or control over the types of failures. [PATCH] minor fix to sym2 hotplug conversion One problem we found when we hit a bad adapter, we need to use scsi_host_put. [PATCH] another fix to sym2 hotplug conversion In sym_attach we call sym_hcb_attach. If it fails we call sym_free_resources which will call sym_hcb_free. Unfortunately sym_hcb_attach also calls sym_hcb_free on failure. This results in a bunch of things being freed twice and it looks like the sym2 memory allocator adds them to the freelist twice. Sometime later on we allocate the memory twice, with weird consequences. [SCSI]: Use pci_name() in eata_pio.c [CPUFREQ] Fix up dumb thinko in powernow-k7 From John Clemens [SPARC64]: Use pci_name() in sparc64 PCI layer. [SPARC]: Add sys_fadvise64{,_64} syscall entries. [IPSEC]: Add support for Twofish and Serpent. This patch adds support for the use of twofish and serpent as ESP algorithms. The ESP index numbers given are in accordance with RFC2407, draft-ietf-ipsec-ciph-aes-cbc-00 (before Rijndael was selected), and KAME which assigns 253 to twofishcbc. Support for using twofish was requested on linux-kernel, and since I noticed serpent was missing too, included that as well. [NET]: ibmtr - get rid of MOD_INC/DEC. With the new module system MOD_INC/MOD_DEC are no longer necessary. Also changed to new module init/exit macros for function setup. The module exit code can sleep, so calling schedule_timeout is better than spinning. [NET]: Network device renaming sysfs fix. [CRYPTO]: Add CAST6 (CAST-256) algorithm. [IPV6]: Set owner on /proc/net/rt6_stats. [SCTP]: Fix typo in Kconfig. [IPV6]: Fix build with CONFIG_XFRM disabled. ips 1/4: lindent ips.c From: David Jeffery (with fix ups for rejections on CONFIG_HIGHIO) This patch has no code changes. It is only the result of running scripts/Lindent on drivers/scsi/ips.c in test3. Rather than use this patch, it may be advisable to just run sh scripts/Lindent drivers/scsi/ips.c The nasty 3-4 space indenting in ips.c has always made it a pain to read. The remaining patches in this patch set all assume ips.c has been lindented. [NET]: net-sysfs misc fixes. - define format strings once rather than N times - add GNU license that I forgot in original code - move read_lock out from format_address to show_address so device is alive test is inside of lock. [NET]: net-sysfs - use attribute group instead of kobject for statistics. Net statistics were in a kobject only because there was no better way to create a directory. Latest 2.6.0-test3 bk tree, has merged in Pat's change to provide 'attribute groups'. This patch converts netdevice's from a statistic's kobject to attribute group. This is cleaner and fixes some shutdown unload issues as well. Ps. it gets rid of of the object ips 2/4: 2.4 resync From: David Jeffery (with minor fixes for rejects) This patch is a resync with the 6.10 driver for 2.4 and updates the 2.4 compatability code. It adds a new wrapper function for differences between the 2.4 and 2.6 scsi proc interface, forces pci posting in 3 places, corrects using a meaningless constant of 0x80 to 0, and syncs comments that had changed. [NET]: Move code inline if short and used once. Now that unregister_sysfs got smaller, just eliminate it and call class_device_unregister directly. netdev_finish_unregister is called one place, therefore it is easier to understand if we just put those few lines into wait_allrefs state machine. [NET]: Add wireless statistics to sysfs. Add wireless statistics to /net/class/ethXX/wireless. [IRDA]: Get rid of useless hashbin in irtty. Working on converting IRDA to new netdevice semantics, this is the first of some of the small things I found. The irtty hashbin is created, maintained and never used. Motivation for removing is that the hashbin locking has problems with the locking assumptions in on network device removal. [IRDA]: Fix irtty line disc and module semantics. The irda tty line discipline does not handle the new module paradigm well. This patch fixes that: - initialize line discipline as data, not with code - set module owner - make prototype for irtty_ioctl match expected arguments from tty discipline - get rid of explicit MOD_INC/MOD_DEC [IRDA]: irda_device_setup should match ether_setup. irda_device_setup signature should match ether_setup so it can be used with alloc_netdev. No caller was checking the return value anyway. ips 3/4: use pci_dma APIs and remove GFP abuse From: David Jeffery (with minor reject fixes) This patch removes several places where we were using kmalloc flag tricks to always get memory <4GB instead of using the proper dma_alloc_consistent() API. It also no longer #errors on when compiled for x86-64 kernels. [IRDA]: irlap_open should take const string. irlap_open should take a constant string because it copies its argument. Therefore, irtty_net_open doesn't have to make a copy! [PATCH] ips 4/4: version resync This patch has no code changes. It is just a resync of all the version numbers with the 6.10 driver and bumping up the driver version number. [IRDA]: irlap hashbin can be private irlap hashbin is only used in one file, so make it private not global. [PATCH] ppa needs to scsi_unregister(host) When umounting a ppa device, I see (2.6.0-test3): Releasing ppa0 Iomega VPI0 (ppa) interface did not call scsi_unregister Call Trace: [] exit_this_scsi_driver+0xb6/0xfa [ppa] [] sys_delete_module+0x18d/0x1e0 [] do_munmap+0x136/0x1b0 [] sys_munmap+0x43/0x70 [] syscall_call+0x7/0xb so ppa needs to call scsi_unregister(). Is this all that's needed? -- ~Randy patch_name: scsi_ppa_unreg.patch patch_version: 2003-08-15.09:46:30 author: Randy.Dunlap description: ppa driver needs to call scsi_unregister(host); product: Linux product_versions: 260-815 maintainer: campbell@torque.net diffstat: = drivers/scsi/ppa.c | 1 + 1 files changed, 1 insertion(+) [PATCH] Re: scsi proc_info called unconditionally On Sat, Aug 16, 2003 at 10:44:09AM +0200, Olaf Hering wrote: > > Why is ->proc_info() called when the function pointer is NULL? Looks like the check for it's presence got lost in [PATCH] Correct removal of procfs host enteries [1/2] Here's a trivial patch to get it back: [PATCH] PATCH: (as70b) Update request_bufflen to match this_count This patch addresses a problem in both sd.c and sr.c. When a read/write command is initialized, the routines may reduce this_count (the number of sectors to transfer) if it exceeds the maximum allowed value (i.e., 0xffff for READ(10)). However, the code does not similarly alter scmd->request_bufflen and scmd->bufflen to match the change in the CDB value. scmd->request_bufflen is important for the usb-storage driver, which requires that it be exactly equal to the number of bytes transferred. scmd->bufflen is used in the rw_intr() routines, where it is passed to scsi_io_completion() as the number of sectors transferred if no errors occur. Another small change in the patch concerns the code in sr.c that checks whether the total of the scatter-gather area lengths matches scmd->request_bufflen. If they don't match, the patch bumps the kernel log message level up to KERN_ERR, and it takes the more conservative approach of adjusting scmd->request_bufflen only if the s-g length is smaller than the request length. [SPARC]: Fix TLS and thread ID handling. [SPARC64]: Fix typo in clone changes. [ALPHA] Disable some printks in bootp. From Jay Estabrook . [ALPHA] Make sure the bridge COMMAND register is correctly set after assigning resources. From Jay Estabrook . [ALPHA] Fix whitespace. [ALPHA] Tidy debugging of pci resources. [IPV4]: Fix rt_score() and usage when purging rtcache hash chains. [PATCH] Fix Driver Core fixes Firewire Damm, I keep forgetting about firewire, sorry. This should fix the ieee1394 code for the device.name removal, and for the i2c structure changes that happened in 2.6.0-test3. [MM]: Add and use offset_in_page() convenience macro. Based upon patches from Yoshfuji Hideaki [PATCH] Fix ide-scsi build with driver model change This fixes build of ide-scsi after removal of struct device.name [PATCH] PowerMac: Update for removal of device->name This fixes the build of PowerMac driver core with the removal of struct device "name" field. [PATCH] Fix incorrect pci_ids.h for Radeon A recent patch from James had incorrect PCI IDs for a few Radeon chips (the Radeon M9 chips Ld,Le,Lf and Lg, he used the IDs of the Id,Ie,If and Ig instead). This fixes that and group the properly by family (those got a bit shuffled around lately). [SPARC]: Add missing sys_tgkill syscall entries. [PCMCIA] kill remaining pcmcia release timers The scsi ones are already gone in jejb's tree, I'll post a patch to kill the struct fields once the scsi tree and this patch end up merged in mainline. [SPARC]: Add more missing system calls. [SPARC64]: Fix syscall table alignments. merge hch/gregkh scsi changes [PATCH] Remove remaining usage of device.name in PnP This removes three remaining instances of device.name. 1.) the isapnp driver 2.) the protocol management code 3.) the pnp serial driver A name field has been introduced to pnp_dev and pnp_card to store human readable names reported by pnp. Fix "no_idt" usage in reboot code, noticed by better asm typechecking in gcc-3.3.1. remove generic device name field from parisc SCSI devices zalon and lasi700 still use this; replace it with bus_id. [NET]: Small loopback.c cleanups. [ALPHA] Corrected testing for peer PCI bus root. From Jay Estabrook . [ALPHA] Forward port SRM restore code from 2.4. From Jay Estabrook . [ALPHA] Convert DEBUG_MCHECK define to runtime variable. From Jay Estabrook . [ALPHA] Fix stxncpy zapping bytes outside the string. From Ivan Kokshaysky . [PATCH] address update [PATCH] DAC960 fix for NULL dereference in open() This fixes a problem that's been hidden for a while. DAC960_open() will try to dereference a NULL pointer if an application opens (for example) /dev/rd/c0d12 when there has never been a logical device created for that file. [PATCH] fast AND correct strncpy This is Erik Andersen's excellent strncpy. It works like magic. That "if" isn't a jump; gcc uses a few integer instructions to wipe out all jumps except for the loop itself and the function call/return. This has been exhaustively tested against glibc. The existing code has 5 extra branches and is over twice as large. (my gcc, etc.) [netdrvr] clean up driver object name removal breakage Affected drivers: atmel_cs, olympic, 3c359 [arcnet com20020] check_region removal, ->name removal breakage fix [arcnet com20020] misc fixes * com20020_close expects two arguments (and actually uses the second argument), but the arcnet layer only passes one arg. Fun ensues. * Remove __devinit markers, this is a library module. * Move request_region up in com20020_found, to make the call occur before the first I/O access in the function. [arcnet com90io] replace check_region with temporary request_region, in probe phase. [wireless airo] Turns on spy code in wireless extensions v16 [wireless airo] Fix PCI unregister code [netdrvr hydra] janitor cleanups [PATCH] Make z8530.c build on 2.6 Either we need to mark this driver (and the parts that use them) as BROKEN, or at least get it building again. With this it builds, but of course, I don't have the real hardware. [PATCH] dc395x - list handling cleanups Here's another patch in the "try and make the driver readable" cleanup series. This one cleans up all of the list handling. Description: Replaced the various hand crafted scsi req lists (waiting and going in the dcb and free in the acb) and the dcb list (in the acb) with the generic linux lists. This makes all of the list related code a *lot* more readable then it was previously. [netdrvr] add sis190 gigabit ethernet driver (note: needs work) scsi.h uses "u8" which isn't defined. From: Muli Ben-Yehuda IMO, it's more correct to include in scsi.h, which will bring in u8 and make scsi.h compilable on its own (provided __KERNEL__ is defined, as it should be). [netdrvr sis190] Lindent sis190. zero code changes. [netdrvr sis190] manually clean up formatting a bit more Also, two trivial code changes: * add unlikely() to assert() definition * fix MODULE_AUTHOR email address brackets Add irq and softirq time accounting to the kernel Reserve the sys_prctl() numbers for and add the stub for allowing programs to select whether they use statistical time accounting or accurate timestamp based accounting. [netdrvr tulip] add pci id for 3com 3CSOHO100B-TX [netdrvr sis190] allocate RX/TX descriptors using PCI DMA API The RX buffers themselves still need to be converted. The three places that need fixing are marked with #warning. [PCMCIA] kill off last remains of the release timer update the previously missed atmel_cs driver and kill the struct member. [EISA] Update for moving "name" out of struct device. Make include the right headers and use the right types. Fix incomplete EISA device "name" conversion [PATCH] Recent i2c changes broke matroxfb The 'name' member of i2c clients & adapters moved again back to the i2c_* from generic device. Thanks to Petri Koistinen for bringing this to my attention. [PATCH] Move config tasks to kconfig/Makefile This fixes a bug with multiple targets. Olaf Hering reported that the build failed for PowerPc if used like this: make oldconfig zImage The reason for this was that .config was not present for any targets specified in arch/$(ARCH)/Makefile and below. That's because .config would not be included when oldconfig is present in the list of targets. The fix is to move handling of *config task to the kconfig/Makefile. Furthermore the logic in top-level makefile has changed a bit, creating a more logial structure. When building a fresh kernel, the user is now told that .config is missing, not an anonymous report that .config did not exist. The error has survided this long because the targets used in i386/boot in general does not use CONFIG_ symbols. Olaf Hering has tested this patch with success. Fix "make clean" in scripts/genksyms Don't prepend $(obj) to "targets", since the generic rules will do that for us, and doing it twice just makes things not work. [PATCH] Fix sb_card.c for "name" removal This will correct the sb_card compile error from removing "name" from "struct device". I also decided to read the name from the card structure instead of the device structure because, for isapnp devices, the card structure is more likely to contain an appropriate name. [PATCH] add missing export-symbol lines for ethtool_ops ethtool helpers need exporting. [PATCH] use simple_strtoul for unsigned kernel parameters The largest "unsigned int" value doesn't fit in a "long", on many machines. So we should use simple_strtoul, not simple_strtol, to decode these values. [PATCH] make NFS lockd port numbers assignable at run time When writing firewall rules, and you are serving NFS, it's really useful to know the port numbers of the various NFS services. nfsd has a standard value; mountd and statd are userspace daemons, and those ports are settable on the command line. The fiddly one is lockd. nlm_udpport and nlm_tcpport can be set on the kernel command line or at module load time, but after that it's a bit awkward (particularly as the lockd module can't be unloaded safely - "rmmod -f lockd" sometimes panics). This patch allows the port numbers and the other lockd parameters to be set through files in /proc/sys/fs/nfs/nlm_*. The port numbers take effect when lockd is next started or restarted. In order to install the sysctl table even when compiled into the kernel, it was necessary to update the initialisation code to the current methods, using module_init() et al. This patch does that and in so doing updates the module/kernel parameters to use the 2.6 module_param() method, as well as making the numeric range changes consistent between the two. [PATCH] another ethtool_ops quickie Let not my fingers type in haste. net/netsyms.c must include linux/ethtool.h, when exporting its symbols. [PATCH] Fix MCA for driver core update This should fix the MCA problems. I moved the name field to the struct mca_device because it was in such extensive use, and this approach caused the least impact. o atm/eni: use skb_queue_walk, not open coded equivalent More EISA/MCA fixups for removal of 'name' member in device struct. [ALPHA] Update for "name" out of struct device. [SCSI]: In dc395x.c, scsi_release_host() does not return a value. [TCP]: When socket route changes, do not forget to update ext2_header_len and sk_route_caps. Based upon a patch from Herbert Xu (herbert@gondor.apana.org.au). [SPARC64]: Fix syscall table base loading assembler. [SCSI]: Fix bugs in sym2 hotplug conversion. 1) Make sym2_template.module get setup properly. It was the scsi_module.c code taking care of this for us previously. 2) Zero out on-stack structures, in particular sym_dev not being zeroed out was causing sometimes-boots-sometimes-doesnt problems for me on sparc64 with sym2 non-modular. [IPV6]: Fix ip6_dst_lookup() route corruption. [IPV6]: Fix some dst cache leaks. 1) icmpv6_send() and icmpv6_echo_reply() never release dst. 2) ip6_{push,flush}_pending_frames() leak np->cork.rt. [IPV6]: Fix leaks of rt6_cow()d routes in route.c [CRYPTO]: Documentation bugfix. [IPSEC]: Fix oops using null ciper in CBC mode. [IPSEC]: Fix oops when destroying stillborn states. [IPV6]: Fix tunnel encap limit handling as per RFC2473. [CRYPTO]: Fix cast{5,6} build after cia_ivsize removal. [PATCH] Fix Acorn Eesox partition handling build Fix compile warning in AFS by passing around "const" types properly. Fix up ad1848 OSS driver for PnP 'name' move. Update scx200 i2c driver for 'name' move. Fix up riscom8 driver to use work queues instead of task queueing. This gets it potentially closer to working, if somebody could just test it... Fix up esp driver for task_queue -> work abstraction. This might bring the driver to a state where people who have hardware can try to fix the locking problems. Switch specialix driver from task-queues to work queues. Fix AGP device ID's - make them static, and fix bad ATI name confusion. Update isicom driver to work queue abstraction. Fix more drivers that broke due to losing the 'name' entry. [PATCH] C99 initialisers for sound/oss Here is a batch of C99 initialisers for sound/oss. [ATM]: make br2684 more net_device * centric (from shemminger@osdl.org ala mitch@sfgoth.com) [ATM]: remove MOD_* used as semaphore; convert others to new style Add proper header file for fewer warnings in blkmtd.c It's still broken, but now the silly warnings no longer hide the _real_ problems in this file. Add CONFIG_BROKEN (default 'n') to hide known-broken drivers. Make BLKMTD and MTD_PCMCIA broken. They are. Maybe somebody will stand up and un-break them. Fix broken x86_64 ioport code [PATCH] reduce diff between x86-64 & i386 This cleans up ioport.c to use BITS_PER_LONG, sizeof, and so on. This makes it easier to spot the differences that matter, and thus easier to find bugs. [power] Make sure we explicitly initialize pm_users. [PATCH] spelling fix Kernul proggrammers cant spel. [PATCH] PCI: add PCI_DEVICE_CLASS() macro to match PCI_DEVICE() macro. [power] Improve suspend functions. - Implement pm_suspend(), which is callable from anywhere in the kernel, and takes one of PM_SUSPEND_STANDBY PM_SUSPEND_MEM PM_SUSPEND_DISK and enters the appropriate state. - Change sysfs file to look for "standby" "mem" "disk" for what state to enter (rather than 'suspend' and 'hibernate' for the latter two). - Add pm_sem to block multiple suspend sequences happening at once. - Allocate a console and stop processes from common code before entering state. - Add pm_power_down() callback for platform drivers to implement. Will be called to actually enter the low-power state. [SPARC]: Kill bogus SHELL= lines in Makefiles. [SPARC64]: Update defconfig. [power] Improve suspend sequence. - Expand pm_power_down() into struct pm_ops, with ->prepare(), ->enter() and ->finish() methods, so the platform drivers get called to do start and stop work during suspend sequence. - Make sure devices are suspended/resumed in enter_state(), and that they are powered down in pm_suspend_mem() and pm_suspend_standby(). - Call ->prepare() in suspend_prepare() and ->finish() in suspend_finish(). [wireless airo] Replaces task queues by simpler kernel_thread [netdrvr 8139cp] fix h/w vlan offload It wants big endian vlan tags. IEEE, or just weird? [PATCH] cpumask_t: allow more than BITS_PER_LONG CPUs From: William Lee Irwin III Contributions from: Jan Dittmer Arnd Bergmann "Bryan O'Sullivan" "David S. Miller" Badari Pulavarty "Martin J. Bligh" Zwane Mwaikambo It has ben tested on x86, sparc64, x86_64, ia64 (I think), ppc and ppc64. cpumask_t enables systems with NR_CPUS > BITS_PER_LONG to utilize all their cpus by creating an abstract data type dedicated to representing cpu bitmasks, similar to fd sets from userspace, and sweeping the appropriate code to update callers to the access API. The fd set-like structure is according to Linus' own suggestion; the macro calling convention to ambiguate representations with minimal code impact is my own invention. Specifically, a new set of inline functions for manipulating arbitrary-width bitmaps is introduced with a relatively simple implementation, in tandem with a new data type representing bitmaps of width NR_CPUS, cpumask_t, whose accessor functions are defined in terms of the bitmap manipulation inlines. This bitmap ADT found an additional use in i386 arch code handling sparse physical APIC ID's, which was convenient to use in this case as the accounting structure was required to be wider to accommodate the physids consumed by larger numbers of cpus. For the sake of simplicity and low code impact, these cpu bitmasks are passed primarily by value; however, an additional set of accessors along with an auxiliary data type with const call-by-reference semantics is provided to address performance concerns raised in connection with very large systems, such as SGI's larger models, where copying and call-by-value overhead would be prohibitive. Few (if any) users of the call-by-reference API are immediately introduced. Also, in order to avoid calling convention overhead on architectures where structures are required to be passed by value, NR_CPUS <= BITS_PER_LONG is special-cased so that cpumask_t falls back to an unsigned long and the accessors perform the usual bit twiddling on unsigned longs as opposed to arrays thereof. Audits were done with the structure overhead in-place, restoring this special-casing only afterward so as to ensure a more complete API conversion while undergoing the majority of its end-user exposure in -mm. More -mm's were shipped after its restoration to be sure that was tested, too. The immediate users of this functionality are Sun sparc64 systems, SGI mips64 and ia64 systems, and IBM ia32, ppc64, and s390 systems. Of these, only the ppc64 machines needing the functionality have yet to be released; all others have had systems requiring it for full functionality for at least 6 months, and in some cases, since the initial Linux port to the affected architecture. Update x86 defconfig [docbook] Fix kernel-api reference to kernel/power/pm.c. [netdrvr 8139too] fix resume behavior [ia32] Note that X86_VENDOR_ID offset in head.S is dependent on NCAPINTS value found in include/asm-i386/cpufeature.h. [netdrvr] fix seeq8005 entry help text in Kconfig [netdrvr 8139too] add adapter to supported list, in docs [wireless atmel] minor updates 1) Add another card to the PCMCIA card database. 2) Fix a bug in wireless extensions. 3) Remove extra code for compilation without the firmware loader 4) force-enable CRC32 and FW_LOADER in Kconfig. [netdrvr de2104x] fix Kconfig help text to reflect reality [netdrvr eexpress] fix buglet in skb_padto conversion [PCMCIA] kill remaining cardservices version checking We know we have the right version because we were compiled in the same kernel tree.. [PATCH] Fix si_band type in asm-generic/siginfo.h From: Andi Kleen POSIX says si_band in siginfo_t must be long. glibc uses this, except for Alpha. This type must be correct on little endian machines, otherwise Konqueror does not get any events from dnotity for created/deleted files. Currenly asm-generic/siginfo.h uses int, which is wrong. This patch adds a new macro __ARCH_SI_BAND_T which is int for alpha and long for everybody else. This makes the type on x86-64 come out correctly [PATCH] signal handling race condition causing reboot hangs From: Ernie Petrides (I can't get anyone to review this, but I'm sure there's a bug in there, and Ernie's patch has been in -mm for some time). There is a long-standing locking hole in the kernel's handling of the signals related to stopping and resuming processes. When a process handles SIGSTOP, SIGTSTP, SIGTTIN, or SIGTTOU, the "sighand" lock is held while the signal is dequeued and appropriate masks are updated. But the "sighand" lock is dropped in several cases before the task's state is changed to TASK_STOPPED (or before a group-stop is initiated). If a process running on another cpu posts a SIGCONT or SIGKILL just after the "victim" process releases the lock but before its state is set to TASK_STOPPED, the corresponding wakeup will be lost and the victim will remain stopped despite the successive SIGCONT or SIGKILL. In this case, a repeated posting of SIGCONT or SIGKILL will have no effect, since the original one is already pending (and so causes a repeated posting to be discarded). The occurrence of a SIGSTOP/SIGKILL race where the victim has blocked all other signals will result in an unkillable process. Although a fabricated test program can reproduce a SIGSTOP/SIGCONT race hang in less than a minute (on a 2-cpu Dell Precision 450), the scenario that has been most frequently encountered is a hang during reboot or shutdown. This occurs because /sbin/killall5 brackets the scanning of /proc/* and associated signal posting to (most) of the processes still running with kill(-1, SIGSTOP) and kill(-1, SIGCONT) calls to temporarily freeze every process except for "init". Occasionally, its parent (running the /etc/rc6.d/S01reboot shell script) gets stuck in TASK_STOPPED state with pending SIGCONT and SIGCLD signals, but with no other process left to wake it up. In order to fix the race condition, the locking in do_signal_stop() and get_signal_to_deliver() needed reworking to close the hole. Due to lock ordering issues between the "sighand" lock and tasklist_lock, there are two cases where the former lock needs to be released and then reacquired, thus allowing a tiny hole for a SIGCONT/SIGKILL to be posted. These two cases are resolved by rechecking for a pending SIGCONT/SIGKILL after the locks are (re)acquired in the proper order. Anyone wanting a copy of the test program may e-mail me off-list. [PATCH] add ASUS l3800P to DMI black list From: Eric Valette The following patch integrated in 2.5.74, really enables the APIC even if BIOS disabled it. Unfortunately, enabling APIC really does not seem to work on this ASUS laptop and ACPI (which is mandatory) crash the kernel in ACPI code at boot time while "Executing all Devices _STA and_INIT methods" Unless someones find a bug in ACPI code related to APIC management, It is safer to add this machine in the DMI black list (along with DELL, IBM, ...). So, as suggested by the author of the problematic change, I added and entry in the DMI black list. But my guess is that most laptop will soon be present in this list.... [PATCH] Local APIC enable fixes From: mikep@csd.uu.se There has been a number of problem reports about local APIC interacting badly with ACPI on P4s due to the P4 local APIC force-enable change in 2.5.74, This patch reverts the 2.5.74 patch, so if the BIOS disables the local APIC on a P4, we don't enable it by default any more. The rescue the situation for those P4 systems where the local APIC _can_ be enabled safely, I've added two kernel parameters that can be used to override broken BIOSen: - "nolapic" prevents the kernel from enabling or using the local APIC. This is stronger than listing a machine in the DMI scan blacklist, since it also works for machines that boot with the local APIC already enabled. - "lapic" tells the kernel to force-enable the P4 local APIC if the BIOS disabled it. I haven't changed the logic for P6/K7 family processors, so we still force-enable those unless "nolapic" was passed to the kernel. The patch also includes a cleanup: the dont_use_local_apic_timer flag variable is not set any more since 2.5.74, so it's removed. [PATCH] async write errors: report truncate and io errors on From: Oliver Xymoron These patches add the infrastructure for reporting asynchronous write errors to block devices to userspace. Error which are detected due to pdflush or VM writeout are reported at the next fsync, fdatasync, or msync on the given file, and on close if the error occurs in time. We do this by propagating any errors into page->mapping->error when they are detected. In fsync(), msync(), fdatasync() and close() we return that error and zero it out. The Open Group say close() _may_ fail if an I/O error occurred while reading from or writing to the file system. Well, in this implementation close() can return -EIO or -ENOSPC. And in that case it will succeed, not fail - perhaps that is what they meant. There are three patches in this series and testing has only been performed with all three applied. [PATCH] async write errors: use flags in address space From: Oliver Xymoron This patch just saves a few bytes in the inode by turning mapping->gfp_mask into an unsigned long mapping->flags. The mapping's gfp mask is placed in the 16 high bits of mapping->flags and two of the remaining 16 bits are used for tracking EIO and ENOSPC errors. This leaves 14 bits in the mapping for future use. They should be accessed with the atomic bitops. [PATCH] async write errors: fix spurious fs truncate errors From: Oliver Xymoron Currently, a writepage() which detects that it is writing outside i_size (due to concurrent truncate) will abandon the write, returning -EIO. The return value will bogusly cause an error to be recorded in the address_space. So convert all those writepage() instances to return zero in this case. [PATCH] enable the ikconfig stuff in config From: Sean Estabrooks - fix space at end of line in config files; - add error check on put_user(); (Daniele Bellucci ) - add missing Kconfig piece for ikconfig; [PATCH] aio: fix error-path mm leak in ioctx_alloc From: OGAWA Hirofumi ioctx_alloc() leaks an mm->mm_count ref on an error path. [PATCH] Fix SELinux avc_log_lock From: Stephen Smalley This patch fixes a bug in the SELinux access vector cache code, which was incorrectly using spin_lock_irq rather than spin_lock_irqsave for the avc_log_lock. As this code can be called from hardirq (e.g. from the file_send_sigiotask hook), we need irqsave/restore here. [PATCH] SELinux check behavior value From: Stephen Smalley This patch fixes a bug in the SELinux module by adding a check of the filesystem labeling behavior value obtained from the policy. [PATCH] ymfpci oops fix If the driver fails partway through probing, the recovery code will call ac97_release_codec(NULL), which oopses. [PATCH] add locking to global list in ymfpci.c This driver has a global list of devices which has no locking. [PATCH] slab: drain_array fix From: Philippe Elie If drain_array_locked() is passed the `force' command, it must go in and empty the head array. [PATCH] loop: fix module unload oops From: Peter Osterlund It oopses on module unload in the kobject layer due to misordered destruction of things. And we need to initialise the unplug timer in blk_alloc_queue(), because we kill that timer in blk_alloc_queue()'s companion function, blk_cleanup_queue(). [PATCH] atp870u.c lockup fix Fix infinite loop in the device probe function. [PATCH] sysctl.h needs compiler.h From: Bernardo Innocenti sysctl.h needs compiler.h [PATCH] kNFSd: Make sure nothing happens to a dead rpc/tcp socket Just make sure that once SK_DEAD is set, nothing is attempted on the socket. [PATCH] kNFSd: Make sure nfsd replies from the address the request was sent to. This is important on multi-homes hosts. [PATCH] kNFSd: Release udp socket for next nfs request to arrive earlier From: Mark Hemment For RPC over UDP, after receiving a packet kick another thread as soon as possible. This helps NFS performance. [PATCH] EISA bus update - Don't leave resource name uninitialized if CONFIG_EISA_NAME is not set. - Print root device bus_id (so we know which bridge is probed). - From Zwane Mwaikambo : Add a release method to virtual root, so it stays quiet if probing fails (because some pci-eisa bridge have been found before). The default ARCH_SI_BAND_T should be "int", since that is what Linux historically has had. Only x86-64 uses anything else, so make the special case be _there_. [PATCH] Make x86-64 compile again Various compile fixes for x86-64 in the current BKCVS tree. - Use new information from acpi_pci_link_get_irq: handle edge and level triggered interrupts properly - Fixes for pci_dev->pretty_name Only changes x86-64 specific code. [PATCH] Fix ugly hole in x86-64 interrupt gates There was a quite nasty long standing bug in the x86-64 port. The interrupt gates had a DPL of 3, allowing user space to trigger any interrupt. I have not found a way to exploit it this to crash the kernel, but it definitely shouldn't happen. It could e.g. cause problems with drivers that do not handle shared interrupt properly. This also broke some programs who assumed that int causes a signal. [PATCH] Fix awe PnP probing This is a rewrite of the awe_wave detection code that will allow this driver to be compiled. It moves detection functions to a common location at the end of the file and makes the code driver-model compatible. Also it fixes a bug in which the driver could possibly write to incorrect ports when using isapnp cards. Unfortunantly I do not currently have an AWE32 to test these changes so I could only check for compilation and driver registration. [PATCH] correct local_dec on some architectures A small bug in local.h apparently got copied a few times. I noticed this because I copied the same bug to s390. This patch should fix the occurrences in BK, but there are others that are not merged yet, e.g. ppc64 in -mm3. [PATCH] fix make xconfig When the *config targets were moved to scripts/kconfig/Makefile the graphical configurator support broke. The following patch is a minimal fix, required to restore support of 'make xconfig' and 'make gconfig'. [PATCH] blkmtd for 2.6 This updates the blkmtd driver with the latest which has been in the MTD CVS for quite a while. It is a rewrite from the 2.4 version to work with the new block layer changes. [ARM] Remove redundant CONFIG_DEBUG_INFO. ARM had CONFIG_DEBUG_INFO for ages. Unfortunately, the new CONFIG_DEBUG_INFO was rather blindly applied across all architectures. This removes the duplication from the ARM architecture. [SPARC64]: Do not make sparc_{cpu,fpu}_type a NR_CPUS array. It is a big waste of space and there exists no existing configuration where these values can be different amongst cpus. [ARM] Add missing show_stack() This change seems to have been missed for some time. Remove __dump_stack(), and convert show_trace_task() to show_stack(). [SPARC64]: Only allocate cpu structs we really need in topology_init(). [SPARC64]: In solaris module use sparc64_get_clock_tick() to get cpu frequency. [ARM] Add missing IM-PD1 header file. Update the 32-bit Ninja SCSI driver from YOKOTA Hiroshi. Update the PCMCIA driver for the NinjaSCSI-3 by YOKOTA Hiroshi [NET]: Flush hw header caches on NETDEV_CHANGEADDR events. [SPARC64]: Kill prom_cpu_nodes, unused. [acpi] Fix broken Kconfig dependency. [acpi] Remove procfs sleep interface. Use /sys/power/state instead. [acpi] Convert sleep code to new PM infrastructure. - Define and fill acpi_pm_ops, and register it on startup with the PM core. - Fill methods with only ACPI-specific code, leaving device power down, etc up to the PM core. [power] Make sure we only have one CPU running before suspending. Yeah, it sucks for now. But, we'll get it right eventually. Update the newly merged Ninja-SCSI PCMCIA driver to recent cleanups (removal of link release timer and the STALE_CONFIG crud). [acpi] Update comments, copyright, and license in drivers/acpi/sleep/main.c [PATCH] don't export add_timer This removes EXPORT_SYMBOL(add_timer) since add_timer() became inline recently. [power] Add flag to control suspend-to-disk behavior. Suspend-to-disk can be handled in numerous ways, some we have control over, and others we don't. The biggest difference is whether or not the firmware is responsible for entering a low-power state or if the platform driver is. The two modes are incompatible, so we enable the platform driver tell the PM core when they register their pm_ops (via the ->pm_disk_mode) field. If the firmware is responsible, then it will also write memory to disk, while the kernel is otherwise responsible. However, a user may choose to use the in-kernel suspend mechanism, even if the system supports only the firmware mechanism. Instead of entering a low-power state, the system will turn off (or reboot for testing). A sysfs file -- /sys/power/disk -- is available to set the mode to one of: 'firmware' 'platform' 'shutdown' 'reboot' The latter two are settable any time, and assume that one is using swsusp. The other two are only settable to what the platform supports. [SPARC64]: Kill linux_cpus[]/linux_num_cpus, replace with cpu probe helpers. [acpi] Always handle requests for entering S4, not just for S4bios. [power] Add initial support for suspend-to-disk. - Add prototypes for split-up swsusp functions that can be called from PM core: save() write() read() restore() free() - Base PM core algorithm on existence of these functions, and allow graceful failure at each step. - Add pm_resume() function to be called on init to attempt to read swsusp image. - Add debugging. - Make sure we can handle all modes for suspend-to-disk. - Add empty split-up functions to swsusp. [PATCH] ia64: cleanup inline assembly [SPARC64]: Turn cpu_data into per-cpu data. [SPARC64]: Remove unused crap from asm/irq.h [SPARC64]: Make cpu_data present even on UP builds. [SPARC64]: Kill up_clock_tick, use cpu_data(). [SPARC64]: Always use cpu_data().udelay_val. [NET]: free_netdev - free network device on last class_device_usage This patch adds the free_netdev function and associated changes so that net_device structures are not freed until last reference to the network device class is released. [NET]: free_netdev - update documentation [NET]: free_netdev - drivers/net/* changes. Simple one line substitution of kfree with free_netdev for the bulk of the network drivers. [NET]: free_netdev - tokenring changes. s/kfree/free_netdev/ as appropriate for tokenring drivers. [NET]: free_netdev - pcmcia drivers. Replace kfree with free_netdev [NET]: free_netdev - misc drivers. s/kfree/free_netdev/ in cleanup routines of a bunch of different network drivers. [NET]: free_netdev - net/* drivers. Replace kfree with free_netdev in cleanup routines of protocols and network pseudo drivers. [NET]: free_netdev - destructors. Drivers that use kfree in destructor are easily converted to use free_netdev. [NET]: free_netdev - fix leaky drivers When doing the audit for this change, it was obvious that several drivers allocate but never free the net_device. This fixes these drivers. This patch is riskier than the earlier ones, because it isn't just a simple substitution and maybe there is a reason they never free. [NET]: free_netdev - define HAVE_FREE_NETDEV in linux/netdevice.h [NET]: Document ->stop() method netdevice semantics. [NET]: Kill unused first argument in dev_get_idx(). [IRDA]: Kill old irtty driver, as suggested by Jean and Jeff. [NET]: update STRIP driver. - set owner field on tty ldisc - allocate network device objects with alloc_netdev - use list_head macros and put locking around list of devices - convert to seq_file for /proc - use change_mtu hook rather than guessing at mtu changes [ATM]: atmdev api cleanup -- remove sg_send() and feedback() (mitch@sfgoth.com). [NET]: Make pktgen depend on procfs. [IRDA]: ircomm - set owner get rid of MOD_INC/MOD_DEC. Ircomm in 2.6.0-test3 can just set the owner field in the tty structure like other drivers, and not mess with MOD_INC/MOD_DEC. [IRDA]: Set owner field on /proc/net/irda sub entries. [IRDA]: Remove unused function prototype in irda_device.c [IRDA]: Remove hashbin from irlan. [IRDA]: Convert irlan to use alloc_netdev(). [IRDA]: Remove duplicate of irlan_state. Remove duplicate string definition. Same table already defined and exported in irlan_event.c [acpi] Fix compilation when CONFIG_SMP=n A recent slew of ACPI "fixes" completely broke the build when one built without SMP, IO APICs, or Local APICs. Bad Intel, no cookie. [IRDA]: Convert irlan to seq_file interface. [x86] Kill warning in dmi_scan.c - Wrap unused function in same #ifdef as caller. - Boggle as to WTF CONFIG_MOUNT_ROOT_FAILED_MSG is supposed to do. [IRDA]: style: Separate data from code in irlan_print_filter(). [NET]: Convert 802/tr to seq_file. [CPUMASK]: Prevent unused variable warnings on uniprocessor. [SPARC64]: Fix uniprocessor build. [power] Adapt swsusp to new PM core. Clean up heavily. - Split suspend/resume code into the four functions called from the PM core. - Remove now-duplicated code. - Make sure PM core frees memory and sync's disks before we shut down devices. - Remove software_suspend(), in favor of pm_suspend(). - Remove unused definitions from suspend.h [NET]: Export neigh_changeaddr. [power] Further swsusp cleanups. - Remove drivers_resume() and call from do_magic_resume2(). Handled by core. - When bringing devices back to life, call device_pm_resume() - Make sure we report the error from write_suspend_image() - Remove suspend_power_down() and call to it. Handled by PM core. - Move swap file resetting and freeing of pagedir to swsusp_free() - Remove extraneous in_atomic() checks. - Mark all resume functions __init. - Move resume_suspend_image() inside swsusp_read() and cleanup. - Make do_magic() report error. ia64: Fixes for the inline-asm cleanup patch so the tree builds and works again on the simulator (besides the real hw, of course). Also, clean up simulator bootloader code so it's all in a single place (arch/ia64/hp/sim/bootloader/). [power] Update device handling. - From conversations with Ben Herrenschmidt. Most devices should be able to handle powering down with interrupts enabled, which I already assume. But since suspending will stop I/O transactions before the call to power it off (making the device unusable anyway), there is no need to separate the calls - we may as well make it simpler for driver authors and require that driver authors do everything at the same time. There will always be devices that need to either power down or power up the device with interrupts disabled. They will get called with interrupts enabled, but may return -EAGAIN to be called again with interrupts disabled to do what they need to do. System devices are now always called only with interrupts disabled. Come on - they're system devices. Of course we need interrupts disabled. [power] Move suspend()/resume() methods. Instead of putting them in struct device_driver (which few, if any drivers use directly), put them in the controlling bus_type of the device (which are currently responsible for claiming the methods and forwarding the calls to the bus-specific driver anyway). This will save 8 bytes per driver instance, which isn't that much, but it's something. It also makes it more obvious to the reader what is going on. And, it makes for easier bus-level defaults in the case the device has no driver attached. The old calls remain until all instances have been fixed up. .del-fw-emu.S~94665166d94d93e: Delete: arch/ia64/boot/fw-emu.S ia64: Reapply lost patch due to bk breakage. [PATCH] Maintainer/Credit update - Roadrunner address is defunct - 3c501/Z85230 are no longer maintained - Update other stuff because I will be away for a year [power] Update PCI to set PM methods in bus_type Instead of setting them manually in each driver, as they are registered. [power] Update IDE to set suspend/resume methods in bus_type. Instead of having each driver set them in their own drivers. [acpi] Fix HT Kconfig option one last time. It should depend on X86, since we can boot more generic kernels on a P4. [power] Update documentation. Just the basics, more to come. [NET]: Fix IGMPv2/MLDv2 list handling OOPS. [IPV6]: Fix target address for (proxy/anycast) NA. [IPV6]: Protect proxied addresses against DAD. [PATCH] Support dentry revalidation under open(".") link_path_walk() currently treats the special filenames ".", ".." and "/" differently in that it does not call down to the filesystem in order to revalidate the cached dentry, but just assumes that it is fine. For most filesystems this is OK, but it the case of the stateless NFS, this means that it circumvents path staleness detection, and the attribute+data cache revalidation code on such common commands as opendir("."). This change provides a way to do such revalidation for NFS without impacting other filesystems. Note: the failure to revalidate the path here does not result in a call to d_invalidate() unlike (all?) other calls to d_revalidate(). It only results in an ESTALE error being returned to the caller. [VLAN]: Fix OOPS on module removal. The current code attempts to add a proc entry for each vlan device, however there is no check whether this attempt succeeded. When a device is unregistered it tries to remove the proc entry, if none was added the oops follows... [PATCH] IO port bitmap cleanups, x86-64 oops fix This patch brings x86-64 and i386 closer together, eliminating an oops that LTP test ioperm02.c causes on x86-64. An IO port permission bitmap must be followed by an extra 0xff. (Add comments to that effect, to avoid the problem in the future). ALSA CVS update D:2003/07/28 14:50:51 A:Takashi Iwai F:pci/rme9652/hdsp.c:1.41->1.42 L:added the support for rev 50 cards. ALSA CVS update D:2003/07/29 16:16:43 A:Jaroslav Kysela F:pci/ice1712/ice1724.c:1.12->1.13 L:Fixed 192kHz support ALSA CVS update D:2003/07/30 11:54:03 A:Takashi Iwai F:include/ac97_codec.h:1.30->1.31 F:pci/intel8x0.c:1.85->1.86 F:pci/via82xx.c:1.43->1.44 F:pci/ac97/ac97_codec.c:1.99->1.100 F:pci/ac97/ac97_patch.c:1.17->1.18 F:pci/ac97/ac97_patch.h:1.8->1.9 L:- added quirk type AC97_TUNE_AD_SHARING. L:- added mask field to snd_ac97_quirk. L:- new patch for AD1985. set more config bits for line/mic sharing. L:- rewritten quirk table in C99 init style. L:- more quirks for intel ICH5/AD1985 boards. ALSA CVS update D:2003/07/30 15:39:38 A:Takashi Iwai F:pci/intel8x0.c:1.86->1.87 L:- improved the probe/resume function. L: check only the valid codec bits in chip_init() during resume. ALSA CVS update D:2003/07/30 16:35:33 A:Takashi Iwai F:pci/es1968.c:1.44->1.45 L:added use_pm to the kernel boot parameter. ALSA CVS update D:2003/07/30 19:54:01 A:Jaroslav Kysela F:include/emu10k1.h:1.29->1.30 L:Fixed typos (GRP->GPR) ALSA CVS update D:2003/08/05 13:42:23 A:Takashi Iwai F:pci/emu10k1/emufx.c:1.36->1.37 L:fixed typos. ALSA CVS update D:2003/08/05 13:43:10 A:Takashi Iwai F:pci/es1968.c:1.45->1.46 L:- rewritten the pm whitelist as a static list. L:- added more pci subsystem ids to the whitelist. ALSA CVS update D:2003/08/05 13:45:12 A:Takashi Iwai F:pci/es1968.c:1.46->1.47 L:- fixed corruption of stream linked list in the interrupt handler. L:- clean up the unnecessary atomic_t and spinlocks. ALSA CVS update D:2003/08/06 12:13:57 A:Takashi Iwai F:Documentation/ALSA-Configuration.txt:1.13->1.14 L:more descriptions for vx drivers. ALSA CVS update D:2003/08/06 18:44:50 A:Takashi Iwai F:pci/es1968.c:1.47->1.48 L:removed buggy copy callback. L:the standard copy routine works properly. ALSA CVS update D:2003/08/06 18:45:09 A:Takashi Iwai F:core/oss/pcm_plugin.c:1.15->1.16 F:core/oss/pcm_plugin.h:1.4->1.5 L:removed unused functions. ALSA CVS update D:2003/08/07 15:18:56 A:Takashi Iwai F:pci/es1968.c:1.48->1.49 L:- hopefully fixed the capture. L:- align the buffers in 4k. L:- a bit code clean up. ALSA CVS update D:2003/08/11 10:20:00 A:Jaroslav Kysela F:pci/es1968.c:1.49->1.50 L:Removed bob_lock spinlock ALSA CVS update D:2003/08/11 13:37:36 A:Takashi Iwai F:pci/intel8x0.c:1.87->1.88 L:fix mixed up vendor/device ID's for Asus P4P800 ALSA CVS update D:2003/08/11 13:37:56 A:Takashi Iwai F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.12->1.13 L:fix typos ALSA CVS update D:2003/08/13 14:01:22 A:Takashi Iwai F:isa/opl3sa2.c:1.28->1.29 L:fixed the uninitialized spin_lock. ALSA CVS update D:2003/08/13 14:14:31 A:Takashi Iwai F:arm/sa11xx-uda1341.c:1.11->1.12 L:fixed missing spin_lock_init(). ALSA CVS update D:2003/08/14 11:55:18 A:Takashi Iwai F:pci/ymfpci/ymfpci_main.c:1.39->1.40 L:register dump in the proc file. ALSA CVS update D:2003/08/14 12:05:38 A:Takashi Iwai F:drivers/opl3/opl3_lib.c:1.17->1.18 F:isa/gus/gusclassic.c:1.10->1.11 F:isa/gus/gusextreme.c:1.10->1.11 F:isa/gus/gusmax.c:1.11->1.12 F:pci/azt3328.c:1.2->1.3 F:pci/cs4281.c:1.43->1.44 F:pci/ens1370.c:1.47->1.48 F:pci/es1938.c:1.26->1.27 F:pci/es1968.c:1.51->1.52 F:pci/sonicvibes.c:1.25->1.26 F:pci/via82xx.c:1.45->1.46 F:pci/cs46xx/cs46xx_lib.c:1.62->1.63 F:pci/ice1712/ice1712.c:1.32->1.33 F:pci/ice1712/ice1724.c:1.14->1.15 F:pci/trident/trident_main.c:1.45->1.46 F:pci/ymfpci/ymfpci_main.c:1.40->1.41 F:sparc/amd7930.c:1.6->1.7 F:sparc/cs4231.c:1.8->1.9 L:fixed the wrong order of object destruction: L: a released object is referred after the *_free() call. ALSA CVS update D:2003/08/14 17:05:13 A:Takashi Iwai F:pci/ac97/ac97_codec.c:1.100->1.101 L:fix by James Courtier-Dutton : L: L:Fixes ac3 passthru non-audio bit setting for AC97 codecs. L: L:I have :- L:Card: Intel ICH5 L:Chip: Avance Logic ALC650 rev 0 L: L:The problem I was having was that the spdif non-audio bit was not L:being set. L:This patch fixes that problem. ALSA CVS update D:2003/08/16 10:54:09 A:Jaroslav Kysela F:core/oss/pcm_oss.c:1.45->1.46 L:Fixed open for O_RDWR when capture is not available ALSA CVS update D:2003/08/20 10:59:59 A:Jaroslav Kysela F:usb/usbaudio.c:1.62->1.63 F:usb/usbaudio.h:1.20->1.21 F:usb/usbmixer.c:1.21->1.22 L:Synced USB audio driver with the latest 2.6 code ALSA update - updated documentation and timestamp Fix up DIGI driver for work-queue abstraction Fix up various small compile warnings in an effort at getting rid of the simple stuff that hides the serious things. [PATCH] Big zoran driver update This is a patch for the video4linux unified zoran driver that has been in the kernel since 2.4.5 or so. It fixes the compile issues in the current 2.6.0-test3 unified zoran driver (current one doesn't compile at all), and also updates its version to what we have in CVS. This adds support for new cards (e.g. LML33R10 from LinuxMediaLabs and DC30+ from Pinnacle), fixes bugs in cards that were already supported and generally improves capture reliability. Changes per file (in detail) are given below. i2c-id.h: add some new IDs for new i2c drivers pci_ids.h: add PCI IDs for each of the supported cards if it has any saa7111.c, saa7110.c, adv7175.c, bt819.c, saa7185.c, bt856.c: update to whatever we've got in our CVS. For most, these are just "easiness" fixes that either add some better debug output, or that make maintainance for both 2.6.x and 2.4.x simpler for me. There's also some specific changes. E.g., in saa7110.c, we enable the VCR mode bits so we get a better image from VCR input. In all of them, we make debugging an insmod option rather than a compile-time option (this makes debugging for users a *lot* easier). Point is that I just want our latest CVS in here. Maintainance is going to be a personal horror-story if it's not. vpx3220.c, saa7114.c, adv7170.c: new i2c ones (for respectively DC10/DC30, LML33R10 and again LML33R10) zr36067.c: removed, the driver is now spread over multiple source files. zoran*.[ch], zr36057.h spread-out source files. Also fixes lots of bugs, can't even start naming them all, you don't want that, neither do I. Just assume that it works better than it used to - it does. Nice things that aren't in the old driver: much more stable, supports DC30+, supports LML33R10, has proper locking/semaphores, supports multiple opens without races now, adapted to new i2c subsystem, v4l2 support, Xv (hardware-scaled) overlay support, and a lot more. Oh, and this one actually compiles. videocodec.[ch], zr360{16,50,60}.[ch]: new sublayer for the driver to unify how we handle the zr36060 chip (DC10(+)/LML33/LML33R10/Buz) and the zr36050/zr36016 (DC30(+)). MAINTAINERS: add me as maintainer (I am). Kconfig: add new cards, plus improve the descriptions. Makefile: d'oh. Zoran: documentation update. Others: I don't think there are any. Greg has gone over the i2c changes a long time ago, he agreed on all of them. Gerd is supposed to take care of the v4l part, he has never complained about any of them. Stability is good, we've fixed most issues (there's still some out there, but nothing serious), lots better than in the old driver. Also, the cards work much better than with the old driver. Fix video drivers for i2c 'name' move Fix jiffy handling: they are "unsigned long" Fix irda vlsi_ir.c for PCI device 'name' changes. Fix smctr.c warning for unused label. net/wan/sbni.c totally misused "pci_request_region()", thinking it was the same as the old request_region(). Not so. [PATCH] PCI: remove #include from some pci hotplug drivers. It's not needed. [PATCH] fix ioapic build breakage [PATCH] remove mount_root_failed_msg() This one snuck in... - debugging message for ACPI - Intel guys removed it from their 2.4 tree (at my request) - it's point-in-time specific (message becomes nearly useless after ACPI bug fixes) - b/c of the point-in-time issue, it's IMO much more appropriate for a vendor kernel (where the message, I agree, may be helpful) - can potentially mislead users to the correct cause of root mount failure - overall, I disagree with adding messages like this. The number one bug report, by far, for networking drivers is ACPI-related (no interrupts delivered). You don't see me adding "boot with acpi=off" messages to the net subsystem. [PATCH] PCI: undo recent pci_setup_bridge() change That patch went into mainline by mistake - it was initial variant of a fix for the problem with disabled P2P bridges. Which has already been fixed properly in -test3. [PATCH] PCI: add PCI_NAME_SIZE instead of using DEVICE_NAME_SIZE based on a patch from OGAWA Hirofumi Video: fix broken saa7111.c driver due to i2c structure changes. FB: fix broken tridentfb.c driver due to device.name change. [PATCH] ia64: IA-32 compatibility patch: FP denormal handling The following patch makes ia64 compatible with i386 with respect to siginfo.si_code on FP denormal operands. This is necessary for the correct emulation of manycat /r/napali/tmp/p7 |bk-applypatch adsharma unix-os.sc.intel.com ia64: [PATCH] ia64: fix bug in handling ERESTART_RESTARTBLOCK for IA-32 emulation Without this fix, OpenOffice crashes when trying to suspend it. Fix "jiffies" comparison in seeq8005.c: it's an unsigned long. aacraid: fix "flags" save value. aha1740: work around 'name' field removal. ultrastor.c: fix bitmap operation type USB serial console: fix compile warning fix white space [PATCH] misc fixes - nmi_watchdog documentation typo ("Randy.Dunlap" ) - ikconfig proc requires CONFIG_PROC_FS ("Randy.Dunlap" ) - visws build fix (Andrey Panin ) - VM lock ranking comment update [PATCH] ext3 block allocator cleanup This just reorganizes some ghastly goto-and-retry-spaghetti in the core of the ext3 block allocator. I wrote this ages ago in preparation for fixing the find_next_usable_block() CPU pigginess problem, but that proved to be quite nontrivial. The patch has been in -mm for a long time and Martin has recently confirmed that it introduces no performance regression in SDET and kernbench. [PATCH] vmscan: give dirty referenced pages another pass In a further attempt to prevent dirty pages from being written out from the LRU, don't write them if they were referenced. This gives those pages another trip around the inactive list. So more of them are written via balance_dirty_pages(). It speeds up an untar-of-five-kernel trees by 5% on a 256M box, presumably because balance_dirty_pages() has better IO patterns. It largely fixes the problem which Gerrit talked about at the kernel summit: the individual writepage()s of dirty pages coming off the tail of the LRU are reduced by 83% in their database workload. I'm a bit worried that it increases scanning and OOM possibilities under nutty VM stress cases, but nothing untoward has been noted during its four weeks in -mm, so... [PATCH] When a partition is claimed, claim the whole device From: NeilBrown Current devices can be 'claimed' by filesystems (when mounting) or md/raid (when being included in an array) or 'raw' or .... This stop concurrent access by these systems. However it is still possible for one system to claim the whole device and a second system to claim one partition, which is not good. With this patch, when a partition is claimed, the whole device is claimed for partitioning. So you cannot have a partition and the whole devices claimed at the same time (except if the whole device is claimed for partitioning). [PATCH] Allow O_EXCL on a block device to claim exclusive use. From: NeilBrown The blockdev layer has a concept of 'claiming' a device, so for example it can be claimed when a filesystem is mounted or when it is included into a raid array. Only one subsystem can claim it at a time. This patch matches this functionality available to user-space via the O_EXCL flag to open. This allows user-space programs to easily test if a device is currently mounted etc, and to prevent a device from being mounted or otherwise claimed. [PATCH] opl3sa2 uninitialised spinlock opl3sa2 forgot to initialise the spinlock. [PATCH] dscc4: commentary From: Francois Romieu Short comments so I can figure why things are done this way. [PATCH] dscc4: clock mode commentary From: Francois Romieu Clock modes on dscc4 are feature-rich enough to deserve some explanation. [PATCH] dscc4: debug messages From: Francois Romieu More conditional debug messages. [PATCH] dscc4: scc changes From: Francois Romieu - more #define for specific bits; - more scc_patchl use; - just say no to bozo programming: + SCC core _really_ disabled at startup; + Interrupts Mask Register setup and SCC core activation are done as late as possible (i.e. in dscc4_open()); + they are reverted if dscc4_open() fails; + as well as unconditionnaly in dscc4_close(); - more or less paranoid quirk in Xpr handler. [PATCH] dscc4: reset changes From: Francois Romieu Workaround for lack of true reset: - devices/ports are put in silent mode at ifconfig down time but some state is kept around to allow 'ifconfig up' issuing at a later time. Device specific structures are allocated when the pci asic is probed: dscc4_init_ring() moves from dscc4_open() to dscc4_found1(). - try to use reset related board-specific feature at module removal time if available. Comments in the code explain the whole story. Not a complicated feature but it is unavailable on the cards I own and no user gave me feedback -> currently untested. It shouldn't harm anyway. [PATCH] dscc4: CCR1 register fixes From: Francois Romieu CCR1 register voodoo: asic handles itself the flow control. [PATCH] dscc4: various From: Francois Romieu - silly indentation; - let's be more user-friendly with manufacturer specific (mis)feature: + s/CONFIG_DSCC4_CLOCK_ON_TWO_PORTS_ONLY/CONFIG_DSCC4_PCISYNC/ + KConfig adequate entry - broken warning message. [PATCH] dscc4: module refcounting From: Francois Romieu Recent MOD_{INC/DEC}_USE_COUNT removal missed a MOD_DEC_USE_COUNT. [PATCH] fix intel copy_to_user() A `cat /dev/kmem' oopses the kernel. This is because new Intel copy_to_user() doesn't handle segfaults against the kernel-side source address of the copy. It is not obvious how to fix read_kmem(), and handling faults on either source or dest is traditional behaviour, so fix it in the copy function by adding exception table entries for the reads as well as the writes. [PATCH] update Documentation/filesystems/Locking From: Matthew Wilcox Here's an update to Documentation/filesystems/Locking. [PATCH] dmi_scan warning fix dmi_dump_system() is only used if CONFIG_ACPI_BOOT. [PATCH] fix for htree corruption From: chrisl@vmware.com Fixes the "perl installer weirdness" problem which a few people have been reporting. The bug is triggered by creating the index. Coping out the index we assume the dirents start with the first entry after "." "..". It can make the first previous deleted entry reappear. In the past we set inode to zero for an empty entry so this is not a problem. That is not true any more. Also, there were a few places where we were altering inode times after running ext3_mark_inode_dirty(). We should be doing that beforehand. [PATCH] export device_suspend() and device_resume() apm.c (at least) needs these. [PATCH] missing io_apic.h inclusions From: Emilio Gallego Arias Apparently a couple of files now need io_apic.h. [PATCH] Fix CPU boot problem From: Dave Hansen Hmmm. This is looking like fallout from the massive wli-bomb. Here's the loop that controls the cpu booting, before and after cpumask_t: - for (bit = 0; kicked < NR_CPUS && bit < BITS_PER_LONG; bit++) + for (bit = 0; kicked < NR_CPUS && bit < MAX_APICS; bit++) apicid = cpu_present_to_apicid(bit); "kicked" only gets incremented for CPUs that were successfully booted, so it doesn't help terminate the loop much. MAX_APICS is 256 on summit, which is *MUCH* bigger than BITS_PER_LONG. cpu_2_logical_apicid[NR_CPUS] which is referenced from cpu_present_to_apicid() is getting referenced up to MAX_APICs, which is bigger than NR_CPUS. Overflow. Bang. garbage != BAD_APICID :) [PATCH] fix /proc mm_struct refcounting bug From: Suparna Bhattacharya The /proc code's bare atomic_inc(&mm->count) is racy against __exit_mm()'s mmput() on another CPU: it calls mmput() outside task_lock(tsk), and task_lock() isn't appropriate locking anyway. So what happens is: CPU0 CPU1 mmput() ->atomic_dec_and_lock(mm->mm_users) atomic_inc(mm->mm_users) ->list_del(mm->mmlist) mmput() ->atomic_dec_and_lock(mm->mm_users) ->list_del(mm->mmlist) And the double list_del() of course goes splat. So we use mmlist_lock to synchronise these steps. The patch implements a new mmgrab() routine which increments mm_users only if the mm isn't already going away. Changes get_task_mm() and proc_pid_stat() to call mmgrab() instead of a direct atomic_inc(&mm->mm_users). Hugh, there's some cruft in swapoff which looks like it should be using mmgrab()... NCR5380: don't play games with NCR5380_proc_info() - just mark it static unconditionally, to allow multiple built-in modules. Fix tridentfd for 'name' move, and avoid compile warnings [PATCH] v4l: remove stale CONFIG_VIDEO_PROC_FS * makes the three USB drivers not use the procfs stuff, also added a warning that they should converted to sysfs. * Removes the leftover, obsolete VIDEO_PROC_FS config option, that should catch any other build failures too (if any). PCI: added the pci_pretty_name() macro to pci.h as 2 arches already had it. [PATCH] keep cramfs silent, when it ought to be This removes the pointless cramfs message when booting with cramfs compiled in but not as the root filesystem. [power] Fixup device suspend/resume function names. - Revert names of functions back to device_{suspend,resume} since at least APM are still using them. [power] Make sure MTRR uses right methods in sysdev_driver. [PATCH] remove cramfs maintainership Dan hasn't been maintaining cramfs for some time. Mark it orphan until somebody else takes it up. [dmi] Ugh, fixup broken merge once and for all. - Didn't realize that mount_root_failed_msg() had been removed, so it was accidentally merged back in. It's gone again now, as well as the entire (unused) dmi_dump_system() function. [power] Make swsusp-only mm functions available when CONFIG_PM=y Calls were moved to the PM core, so they must be compiled in to use them. [acpi] Make a dummy mp_congig_ioapic_for_sci() function. [AX25]: Fix ax25_cb locking. - ax25_cb's use refcounting - the ax25_cb list uses hlists - Lots of socket locking. [AX25]: Use ->hard_header_len instead of some predicted worse case. [AX25]: Fix list usage and list locking in ax25_iface.c [NETROM]: Update wrt. ax25_cb refcounting changes. [TOKENRING]: Get rid of egregious typedef. [TOKENRING]: spin_lock consistency. Use spin_lock on hash table consistently, this code is only called from bottom half context, never from interrupt context so use spin_lock_bh. [TOKENRING]: mcast_addr need not be on stack. Multicast address value is put on stack and can just be static const. [TOKENRING]: better hash function. Rather than a simple for loop sum, use a better hash function for the mac address. Function repurposed from Lennert's bridge code. [TOKENRING]: fix the seq_file next operation. Better version of my seq_file next operation. Use current pointer to find next element. Should be more stable with changing list (no duplicate entries). [TOKENRING]: expire timer improvements. Cleanup the timer code. It works as is, but: - use timer_ macro's when working with jiffies. - cleanup the #define's - make timer run sooner (ie when next entry will expire) rather than waiting till the next 10 minute quanta. - print TTL value in seconds not jiffies - change formatting to linux style in code the area affected. [power] Fix locking in device_{suspend,resume} We don't need to protect against multiple suspend calls, since subsequent ones will happen on an empty (or at worst - short) list. [power] Update documentation. [power] Fix typo. [apm] Fix calls to device_{suspend,resume} [cpufreq] Update resume method. From Dominik Brodowski. - Can simplify, since the policy is already known, and we only need to kick the CPU. - Make sure we set the right method in the sysdev driver. [IPV6]: Fix dangling multicast device references. When addrconf_ifdown() calls ipv6_mc_destroy_dev(), it has NULL'd out dev->ip6_ptr, which means all in6_dev_get() calls will fail. So pass an explicit idev into ipv6_dev_mc_dec() in this case so that we don't leak the all-nodes multicast address reference to the idev. retry socket write on EAGAIN. Fix oops in write when tcp session dead. [NET]: Make sure interval member of struct tc_estimator is signed. ia64: perfmon update. Here is a ChangeLog for the patch: - The perfmon core will invoke the sampling module handler routine once for each overflowed PMD. When multiple PMDs overflow at the same time (with the same PMU interrupt), then up to 64 distinct calls can happen. A common timestamp parameter allows the module to identify this kind of entries. - Changed the module ovfl_ctrl arguments to simplify the reset field. Now it is a simple boolean. - Updated perfmon.h to convert the "set" field to ushort from uint. Other structure updates to get better layout. - Update perfmon_default_smpl.h to reflect the change in overflow processing mentioned above. - Cleanup some state checking code to use switch-case instead of if-then with macros. Make the code more readable and easier to optmize for gcc. Thanks to David for the suggestion. - Added extra safety checks on pfm_context_load() to verify that the task actually exists. - The default sampling format module now supports the fmt_restart_active callbacks. Patch from David. remove spurious logging of message on "create if file does not exist" case (without O_EXCL) when file exists [PATCH] OProfile: reduce allocations of MSR structs Andi Kleen pointed out the MSRs array was a massive bloat source. Reduce it somewhat by only allocating the amount actually needed for the CPU type. Untested on Pentium IV - I don't have a machine. [PATCH] OProfile: export kernel pointer size in oprofilefs Tell user-space how big kernel pointers are, as preferable to sniffing /proc/kcore. Improve the oprofilefs_ulong_to_user() prototype. [PATCH] OProfile: add a useful statistic Add a stat counting the (relatively common) case where a PC value is logged but there is no (longer) any executable mapping covering that address. [PATCH] OProfile: don't assume MSRs stay the same across CPU models The MSRs might change between CPU models, error out if we haven't met the CPU before. From Venkatesh Pallipadi [PATCH] Fix APIC ID handling Fix APIC ID lookup. In the bios_cpu_apicid[] case, it would walk off the end of bios_cpu_apicid[] and attempt to send APIC INIT messages to garbage without this patch, and in the NUMA-Q case, it would attempt to send NMI wakeups to destinations in the broadcast cluster (which is harmless, but very poor form) without this patch. Various RPC client fixes: - Ensure that we reset req->rq_received before resending if the server has sent us a garbage reply. - Whenever we grab the xprt_lock_write "semaphore" ensure that we reset req->rq_bytes_sent. - When resending a TCP request, do not interrupt in the middle of transmission even if we do get a reply from the server. - Protect the call to rpc_calc_rto() against modification while we are calculating If an RPC request has to be resent due to a timeout, it turns out that call_encode() may cause rq_rcv_buf to be reset despite the fact that a reply might be delivered at any moment by a softirq. This typically results in 'NFS: server cheating in read reply' error messages. Solve by adding rq_private_buf, which is updated atomically from rq_rcv_buf. Back out some congestion control changes that were causing trouble, among other things, for the "soft" mount option. Increase the minimum RTO timer value to 1/10 second. This is more in line with what is done for TCP. Signedness corrections when updating RTT. Be conservative when calculating RTO. Round up the residues. A request cannot be used as part of the RTO estimation if it gets resent since you don't know whether the server is replying to the first or the second transmission. However we're currently setting the cutoff point to be the timeout of the first transmission. This patch moves the cutoff point to the actual start of the retransmission. Fix a problem whereby READDIRPLUS was causing lookups to result in ESTALE errors. Add missing CIFS VFS entry to maintainers list Documentation for initramfs, klibc, and early userspace. The Intel Instruction set manual is wrong on how to test for a valid SEP bit. The errata has it right: you have to have at least model 3, stepping 3. Not "model >= 3 or stepping >= 3". Fix the test accordingly. [PATCH] h8300 support fix (1/2) o build script update o interrupt management fix o mtd support fix o signal handling fix [PATCH] h8300 support fix (2/2) o inline assembler funcs cleanup o machine depend header cleanup o interrupt management fix Fix problem with open(O_EXCL) not creating hashed dentries. Problem analysis and fix provided by Andries Brouwer. Cleanup of nfs_lookup() by me... Fix compiler warning about using a wrong type as the argument for nfsroot_mount(). [PATCH] sedlbauer_cs.c: remove release timer Remove the PCMCIA release timer that got missed in earlier patch. This is required for successful compilation of the driver. [PATCH] /proc/kallsyms problem From David Mosberger: > We definitely are seeing some strange crashes in get_ksymbol_core(). > I think the reason is the lack of iterator initialization. Yes, looks good: reset the iterator at allocation. VT requires INPUT support: make it be automatically included. From Christoph Hellwig Make USB storage select SCSI support automatically, instead of requiring users to select SCSI in order to see it. Linux 2.6.0-test4