Summary of changes from v2.5.69 to v2.5.70 ============================================ [PATCH] PCI Hotplug: cpqphp 66/100/133MHz PCI-X support After being put on hold for a while (needed fixes to CCISS driver, etc) I attached a patch that adds pci-x support to the cpqphp driver in 2.5.65. Changes: Adds 66/100/133MHz PCI-X support. Adds support for dynamically chaning frequency and mode. Changes code to also blink the power LED when powering down. Uses the IRQ from PCI config space if the ROM resource table doesn't provide one (would previously use the same interrupt as the hotplug controller which would lead to bad things when trying to update routing tables). Dan Zink should have the credit for this fix. Changes find_slot() to cpqhp_find_slot(). Uses sysfs to display speed/freq. Some documentation updates. [PATCH] patch: remove unnecessary proc stuff from controller struct [PATCH] PCI Hotplug: kernel-api docbook fix for now non-existant PCI hotplug Here is a trivial documentation fix for some of recent PCI hotplug changes that enables 'make htmldocs' to complete. Forward port of 2.4 ppc64 signal changes. Forward port of 2.4 ppc64 /proc/ppc64/systemcfg changes Catch illegal FP use within the kernel since it can cause data integrity errors in userland code. fix cpuid to physical id needed in 2.5 Need to turn on RI immediately after we get control from firmware as well as when secondary cpus are started. ppc64: add autofs ioctl and clean up a prototype ppc64: xics cleanup add #ifdef CONFIG_XMON around a XMON variable reference ppc64: clean up some cpu feature checks ppc64: add spinlock to chrp_progress ppc64: fix NR_syscalls slip up ppc64: fix for recent module changes [SCTP] Optimize SACK generation. Wanted to try out profiling, so brought up oprofile. Very suprising result of sctp_tsnmap_find_gap_ack() being one of the hot functions. This should not be! Short-circuit by not even calling if !has_gap. ppc64: return ENOSYS for unknown IPC call ppc64: restore hex progress code ppc64: Fix for outside of range sensor states, from John Rose [SCTP] Use Crypto API Rip out our own HMAC-SHA1 and replace with crypto API. Can now choose hmac-sha1, hmac-md5, or none with regards to what HMAC to use for cookie echo verification. [SCTP] Add wrappers for sctp with no crypto support. Change the callback argument for aic brace option parsing to u_long to avoid casting problems with different architectures. Aic79xx Driver Update (version 1.3.6) o Correct bus hang on SE->LVD/LVD->SE tranceiver changes o Close a race condition in handling bad scsi status that could allow the driver to modify the waiting for selection queue while selections were enabled. o Perform an audit on use of del_timer() and switch to del_timer_sync() where appropriate. o Remove the reboot notifier hook which is unused in 2.5.X. o Correct some driver unload bugs. Aic7xxx Driver Update (version 6.2.32) o Perform an audit on use of del_timer() and switch to del_timer_sync() where appropriate. o Remove the reboot notifier hook which is unused in 2.5.X. o Correct some driver unload bugs. [SCTP] Various code cleanup. More typedef removals and naming consistency. Remove sctp_association_t, sctp_endpoint_t, & sctp_endpoint_common_t. ppc64: segment misses from userspace must pass through do_page_fault ia64: Fix typos/whitespace related to serial code. [SCTP] Enable SctpChecksumErrors stat Aic79xx Driver Update o Correct failed-wait recovery code so that the controller's registers will not be accessed without pausing the controller first. [SCTP] Add a generic csum_copy for sctp. Do the sctp checksum while copying. [SCTP] short-circuit reassembly & ordering for best case. Short circuit normal case. First check if the chunk belongs at the end of the queue. If so, don't bother walking the entire list, just just put at end. ia64: Patch by Alex Williamson: forward port of the 2.4 sba_iommu. ia64: Merge Alex Williamson's sba_iommu patch. Various small 2.5.67 fixes. ia64: Make sba_iommu get detected early enough again. ppc64: use panic_on_oops sysctl ppc64: use dma-window from deepest device tree node, from Dave Engebretsen [SCTP] getsockname()/getpeername() support for TCP-style sockets. [SCTP] Allow private to global association. The sctp scoping rules try to prevent accidentally sending non-routable addresses to a peer as alternate addresses. However, the current implementation is way too strict in that one can't even try to send from a private address to a global address (a pretty common real world setup with host behind NAT) even when that's the _only_ address available. If we find no addresses available, try looking for a private address to send with, as a fallback. Additionally, if we are sending with only a single address, don't bother embedding this address in the INIT/INIT-ACK chunk. [SCTP] Use GFP_ATOMIC, while we holding the local_addr_lock. [PATCH] ia64: fix GENERIC build This fixes a couple problems with the generic target in the latest 2.5.67 kernel. First is simply a fix for the addition of readX in the machvec. The second gets things to link in roughly the same order when using a generic vs zx1 flavor. With the current code, sba_init() is called in the right place when using a zx1 flavor kernel, but happens way too early on a generic kernel. [PATCH] ia64: small ACPI fix This fix is needed to boot on Intel-based machines. [SCTP] Fix ipv6 addressing bug. We are incorrectly using the rt6->rt6i_dst as our destination address, resulting in bogus dst address when requiring a gateway. ia64: Update platform INIT handler to print a backtrace. [PATCH] ia64: don't waste irq vectors This patch fixes waste of interrupt vector pool by not allocating an interrupt vector to a GSI which has no corresponding IO SAPIC. ia64: Export hp_acpi_csr_space() for modules. ia64: Consolidate backtrace printing in a single routine (ia64_do_show_stack()). ia64: Fix _raw_read_lock() to not switch text sections. Tidy it up with the help of ia64_fetchadd() macro. Ditto for _raw_read_unlock(). Driver model: doc updates. From Geert Uytterhoeven kobject: Add better debugging for failed registrations. From Steve Hemminger (shemminger@osdl.org) Device Driver Dynamic PCI Device IDs Provides a mechanism to pass new PCI device IDs to device drivers at runtime, rather than relying only on a static compiled-in list of supported IDs. For each driver which has a pci_driver->probe routine, two things are added: a probe_it file, and a dynamic_id directory. In the dynamic_id directory is a new file, new_id. /sys/bus/pci/drivers/e100 |-- dynamic_id | `-- new_id `-- probe_it One may read the new_id file, which by default returns: $ cat new_id echo vendor device subvendor subdevice class classmask where each field is a 32-bit value in ABCD (hex) format (no leading 0x). Pass only as many fields as you need to override the defaults below. Default vendor, device, subvendor, and subdevice fields are set to FFFFFFFF (PCI_ANY_ID). Default class and classmask fields are set to 0. One may write new PCI device IDs into the new_id file: echo "8086 1229" > new_id which will cause a new device ID (sysfs name 0) to be added to the driver. /sys/bus/pci/drivers/e100 |-- dynamic_id | |-- 0 | `-- new_id `-- probe_it $ cat 0 00008086 00001229 ffffffff ffffffff 00000000 00000000 One can then cause the driver to probe for devices again. echo 1 > probe_it Individual device drivers may override the behavior of the new_id file, for instance, if they need to also pass driver-specific information. Likewise, reading the individual dynamic ID files can be overridden by the driver. This also adds an existance test field to struct driver_attribute, necessary because we only want the probe_it file to appear iff struct pci_driver->probe is non-NULL. The device probing routines in pci-driver.c are enhanced to scan first the static list of IDs, then the dynamic list (if any). sysfs: Rewrite binary file handling. From Matthew Wilcox. - Remove sysfs_bin_buffer. It's a security hole. - Remove checks for permissions; the VFS does that. - Validate offset & count at the top level. - Allow lower levels to return less data than was asked for. - Allocate buffer at open & free it at close, not on each read/write. [SCTP] shutdown() support for TCP-style sockets. ia64: Patch by Arun Sharma: In brl_emu.c, a 64 bit value was being assigned to an int. [PATCH] ia64: make x86 shared programs work again > It looks like dynamic x86 binaries have a problem once again (or > still). If I try to run any shared x86 binaries, I get: > > $ ls.x86 > ls.x86: error while loading shared libraries: librt.so.1: cannot map zero-fill pages: Error 14 > > Would someone take a look? We saw this behavior with 2.5.59 also. The attached work around should take care of the problem temporarily. Last time this happened, IA-32 programs were doing mmaps, whose size was one page bigger than the size of the underlying file (even after rounding up the file size). I never got a chance to figure out why glibc was doing mmaps with the wrong size. Also, I failed to reproduce the problem with a more recent (RH 8.0) glibc. Which version of IA-32 glibc were you using ? [SCTP] More typedef removals. Continue typedef removal. Also, change sctp_chunk.num_times_sent counter to a resent flag. There was a rather obscure, unlikely, and in the end fairly benign bug sitting there if num_times_sent wrapped. However, there's no need to keep this counter, as its use was really just to know if we'd ever resent this chunk. [PATCH] ia64: sba_iommu workaround removal This removes a workaround for some broken firmware that was never released. [PATCH] ia64: sba_iommu vendor/function for unknown IOCs Include id when encountering unknown IOC. [PATCH] ia64: sba_iommu trivial cleanup This is mostly trivial whitespace and printk text tweaks. I did add the segment number to a printk that previously just had the bus. ppc64: chrp_progress() updates from Olof Johansson ppc64: ethtool -e support, from Olof Johansson [SCTP] Handle accept() of a CLOSED association. [SCTP] Track partially acked message for SEND_FAILED. For SEND_FAILED support, we need to keep around data chunk fragments that have been acked, where other fragments of the same message have not. With this, Ardelle should be able to finish up the SEND_FAILED support. [SCTP] Fix sctp_sendmsg error path when associate fails. [SCTP] Return a readable event when polling on a TCP-style listening socket with a non-empty accept queue. [SCTP] Add some macros to clean up code. sctp_state(asoc, STATE) // Is asoc in this state? sctp_style(sk, STYLE) // Is sock this style? sctp_sstate(sk, SS_STATE) // Is sock in this state? [SCTP] Add SCTP_MAXSEG sockopt. We'll fragment (if fragmentation not disabled) to the min of maxseg or PMTU allowance. [SCTP] Add SFR-CACC support. (Ardelle.Fan) Submitted by Ardelle Fan. Implementation of Split Fast Retransmit - Changeover Aware Congestion Control. Certain conditions involving multihoming changover can result in TCP-unfriendliness. This implements the IETF proposed method of dealing with this corner case. ppc64: update ppc64 to new IRQ API from Andrew Morton ppc64: fix some compile warnings, from Andrew Morton ppc64: Fix some things that got backed out in the systemcfg merge ppc64: Add loop_get_status64/loop_set_status64 [CPUFREQ] Fix powernow-k7 hang. Some laptops don't like jumping from (for eg) 800MHz->1200MHz, but will happily go from 800->1000->1200. The problem is caused by us changing the FID and the VID at the same time. The spec says we have to change them seperately. This actually buys us something extra anyway, as we can now set the FID lazily as well as the VID. [SCTP] Fix regression in mark_missing. (Ardelle.Fan) Followup patch by Ardelle. ppc64: Andrew Morton is picking on me Aic7xxx and Aic79xx driver Update o Avoid pre-2.5.X mid-layer deadlock due to SCSI malloc fragmentation For pre-2.5.X kernels, attempt to calculate a safe value for our S/G list length. In these kernels, the midlayer allocates an S/G array dynamically when a command is issued using SCSI malloc. This list, which is in an OS dependent format that must later be copied to our private S/G list, is sized to house just the number of segments needed for the current transfer. Since the code that sizes the SCSI malloc pool does not take into consideration fragmentation of the pool, executing transactions numbering just a fraction of our concurrent transaction limit with list lengths aproaching AH?_NSEG in length will quickly depleat the SCSI malloc pool of usable space. Unfortunately, the mid-layer does not properly handle this scsi malloc failure. In kernels prior to 2.4.20, should the device that experienced the malloc failure be idle and never have any new I/O initiated (block queue is not "kicked"), the process will hang indefinitely. In 2.4.20 and beyond, the disk experiencing the failure is marked as a "starved device", but this only helps if I/O is initiated to or completes on that HBA. If the failure was induced by another HBA, and no other I/O is pending on the HBA and no new transactions are queued, we are still succeptible to the hang. (Also note that many 2.4.X kernels do not properly lock the "some_device_starved" and "device_starved" fields calling into question their overall effectiveness). By sizing our S/G list to avoid SCSI malloc pool fragmentation, we will hopefully avoid this deadlock at least for configurations where our own HBAs are the only ones using the SCSI subsystem. Aic7xxx and Aic79xx Driver Update o Correct channel information in our /proc output. Aic7xxx and Aic79xx driver updates o Work around peculiarities in the scan_scsis routines that could, due to having duplicate devices on our host's device list, cause tagged queing to be disabled for devices added via /proc. Aic7xxx and Aic79xx driver updates o Remove extra complexity and code duplication in processing the completeq now that the completeq can be run while holding both the ah?_lock and the done_lock. Aic7xxx and Aic79xx driver Update o Fix style nits. Aic7xxx and Aic79xx Driver Updates o Correct type safty of option parsing logic o Make option toggling work correctly o Add "probe_eisa_vlb" as an alias for the "no_probe" option so that there is a clearly defined name associated with the command line feature that allows eisa_vlb probes to be enabled/disabled in the aic7xxx driver. o PCI parity error checking defaults to being enabled. Aic7xxx Driver Update o Auto disable PCI parity error reporting after 10 parity errors are observed. The user is given a loud warning message telling them that eiter a device plugged into their motherboard or their motherboard is not very healthy. Aic79xx Driver Update o Perform a few firmware optimizations o Correct the packetized status handler so that it can handle CRC errors during status data packets. ACPI: Update to 20030424 - Remove an unused parameter from lowlevel read/write functions - FADT initialization cleanups Aic79xx Driver Update o Correct "Unexpected PKT Busfree" error observed under high tag loads. Aic79xx Driver Update o Revert ahd_pause_and_flushwork() behavior so that ENSELO can be cleared. This makes ahd_pause_and_flushwork() more effective when the bus is hung. Aic79xx Driver Upate o Switch to handling bad SCSI status as a sequencer interrupt instead of having the kernel proccess these failures via the completion queue. This is done because: - The old scheme required us to pause the sequencer and clear critical sections for each SCB. It seems that these pause actions, if coincident with a sequencer FIFO interrupt, would result in a FIFO interrupt getting lost or directing to the wrong FIFO. This caused hangs when the driver was stressed under high "queue full" loads. - The completion code assumed that it was always called with the sequencer running. This may not be the case in timeout processing where completions occur manually via ahd_pause_and_flushwork(). - With this scheme, the extra expense of clearing critical sections is avoided since the sequencer will only self pause once all pending selections have cleared and it is not in a critical section. ppc64: remove numa_node_exists, from Martin Bligh aic7xxx_osm.h, aic7xxx_osm.c, aic79xx_osm.h, aic79xx_osm.c: Remove pre-2.2.X kernel support. ppc64: clear up the cpu<-> node mappings, and cache them, from Matt Dobson Aic79xx and Aic7xxx driver Update o Fix build on 2.5.X Aic7xxx and Aic79xx Driver Updates o Adapt to new IRQ handler declaration/behavior for 2.5.X [SCTP] Control chunk bundling. Control chunks should be bundled (implementor's guide advises specifically of case were ERROR should be bundled with CE to avoid race condition. Patch introduces a outq_cork/outq_uncork to immediate transferral of control chunks and then release to the packet bundling code. [AGPGART] Hammer GART can use generic enable routines now. [AGPGART] intel agp init cleanups. From Christoph Hellwig. (1) Kill the _setup functions - most of it can be nice, static structs - the few remainders are handled better elsewhere (2) _one_ big switch in ->probe assigning these tables. Almost 200 lOC gone and it's even readable :) [AGPGART] Remove unneeded enums from intel gart driver. [AGPGART] Remove unused ALi enums. [AGPGART] Remove stale comment [AGPGART] Fix typo in via-agp. s/PM400/P4M400/ [AGPGART] Remove useless enums from serverworks gart driver [AGPGART] Remove unneeded enums from AMD k7 gart driver [AGPGART] More setup routine -> static struct conversions. Again from Christoph Hellwig. [AGPGART] Replace enum users with own methods. By introducing a few extra functions, we can kill off a few extra members of the enum. More work from Christoph Hellwig. [AGPGART] Merge NVIDIA nForce / nForce2 AGP driver. Based upon code written by NVIDIA for agpgart 2.4, forward ported and cleaned up slightly by me. This still needs work, and is untested. [AGPGART] Makefile cleanups. - the makefile is not the right place to describe the driver - remove some junk [AGPGART] Remove unneeded settings of bridge->type. It's now done in the static structs. [AGPGART] Add symbolic constants for AGP mode setting. bye bye icky hardcoded values. [AGPGART] Add more defines to kill off hardcoded values [AGPGART] Don't configure agp bridges more than once if there is >1 of them. [AGPGART] use symbols instead of hardcoded values in generic-3.0 Lots more work to do here. [AGPGART] Convert several functions to return void. They only ever returned a single value. [AGPGART] Fall back to non-isochronous xfers if setting up isochronous xfers fails. [AGPGART] Fix typo that stopped nvidia GART driver being built [AGPGART] EXPORT_SYMBOL cleanups. Also move the global_cache_flush routine to generic.c [AGPGART] Move function description comments from headers to the code they document. [AGPGART] kdoc'ify some of the function header comments. [AGPGART] Move function prototypes to headers. [AGPGART] Misc backend source tidy up. [AGPGART] Remove semaphore abstraction. [AGPGART] i855PM support from Bill Nottingham. Mainly adding a PCI id, unfortunately, requires renaming the i855GM PCI ids to avoid name conflict. Also renames some of the i855GM constants from i855PM to i855GM. [AGPGART] Fix kconfig dependancies. - Don't show x86 GARTs on alpha [PATCH] i2c: fix oops on startup of it87 driver. [SCTP] sctp_sendmsg() updates for TCP-style sockets. [AGPGART] fix macros that expect agp_bridge in global scope From Christoph Hellwig [AGPGART] cleanup agp backend.c a bit More from Christoph. Most style nitpicks and a bit more explicitly passing struct agp_bridge_data around. [AGPGART] Nvidia GART cleanups. Christoph cleaned up a lot of the mess here. We're back to nearly killing off the chipset_type enum, moved the register definitions to the code that uses it, and given it a proper pci .remove function. [AGPGART] Add back dummy module exit to keep things happy. [AGPGART] don't dereference agp_bridge in generic-3.0.c Yet more from Christoph.. >If agp_3_0_node_enable gets a struct agp_bridge_data * all of the >generic-3.0.c can be cleaned up easily to never look at agp_bridge >directly. Now only backend.c, generic.c and the actual drivers >are left looking at it:) [AGPGART] give all agpgart drivers a ->remove pci method. You guessed it, yup. from Christoph again. [AGPGART] proper agp_bridge_driver. Christoph with the goods once more... >Okay, this does the converion for all drivers, it's ontop of my >previous patches. enum chipset_type has shrunk to NOT_SUPPORTED >and SUPPORTED, but I'd like to postpone killing it entirely >or replacing it by a bool - drm pokes into this and we need to >redo the agpgart <-> drm interface for support of multiple garts >anyway. [AGPGART] Fix Kconfig typo [AGPGART] Shrink chipset_type enum (compile fix) Missing part of hch's last cset. ppc64: remove iomem_resource.end hack Fix cifs_show_options to display mount options in a way that is more consistent with other filesystems [AGPGART] Fix linking error. [SCTP] Make fragmented messages know how to SEND_FAIL themselves. If a message were fragmented, it was getting SEND_FAILed in all sorts of random order or not at all. Now each "message" tracks its own fragments and can SEND_FAIL itself and all its fragments. [CPUFREQ] Acer Aspire's have broken PST tables in one BIOS rev. DMI blacklist it. [ARM] Miscellaneous minor fixes. - comment fixes - remove unnecessary asm/proc-fns.h include - fix buggy compiler version traps [SCTP] Free up data chunks that don't get accepted by primitive_SEND. Fix memory leak. [PATCH] Re: Make sym2 driver use pci_enable_device > The sym2 driver should use the generic pci_enable_device() and > pci_set_master() functions. Sorry, wrong patch. We need to read COMMAND after doing pci_enable_device/pci_set_master. We should also check the return valie of pci_enable_device. Anton ===== drivers/scsi/sym53c8xx_2/sym_glue.c 1.16 vs edited ===== [PATCH] split private and public scsi headers Two new headers: scsi_priv.h - for macros/declarations private to the scsi midlayer (= not EXPORT_SYMBOL()ed) scsi_logging.h - for SCSI_LOG_* and friends, semi-private to the midlayer and the upper drivers. One abuse of this in dpt_i2o killed. [PATCH] kill scsi_dump_status Is someone still using the echo dump > /proc/scsi/scsi feature? I think we should kill it as we're getting much nicer output from sysfs these days.. [PATCH] kill pcmcia driver bind_info horror Currenty pcmcia drivers do a loop on their devices for issuing a SCSI_IOCTL_GET_IDLUN ioctl from kernelspace and passing dev->type to userspace so cardmgr can guess the the dev_t and find the device node of it. But it doesn't actually use it but only pass it as optional arguments to it's poor-man's hotplug scripts. So kill this horror of, we have proper hotplug scripts in 2.5. And here we go, the first big host->my_devices abuser is gone. [PATCH] use scsi_report_bus_reset() in scsi_erroc.c Currently scsi_error.c has two opencoded copies for scsi_report_bus_reset. Get rid of them. [PATCH] fix scsi_debug compile warning spin_lock_irqsave takes an unsigned long. [PATCH] remove dead struct scsi_device members ->scpnt_wait is initialized and cpqfc calls wake_up on it but no one ever waits for it, ->allow_revalidate is completly unused. [PATCH] remove dead scsi_cmnd members ->reset_chain is initialized by the midlayer only used in BusLogic's old EH code (which is never called and thus can be #if 0'ed out until someone with the hardware updates it to new EH), ->done_late is never used. [PATCH] scsi_requeuest_fn Okay, when doing some other stuff I looked over this one, and it's a bit confusing to read: - using a goto completed where a simple break would be sufficient - using for (;;) for a perfectly fine while loop - ... but what's more interesting is that the spinlock handling in here, when we switch from sdev_lock/queue_lock to host_lock we do a spin_unlock_irq followed by a spin_lock_irqsave - but we we just enabled interrupts so the save isn't nessecary at all, even more we can just do spin_unlock/spin_lock when keeping them disabled. Also we drop host_lock in the middle of this function, just to reacquire it a tad later in scsi_dispatch_cmd, but fixing that need a bit more thinking as there's another caller for scsi_dispatch_cmd. [PATCH] move max_sectors intitalization fully to scsi_register Addresses the fixme in scsi_alloc_queue. [PATCH] set data direction in sd_synchronize_cache in sd.c Hi, the following patch sets the data direction in sd_synchronize_cache to SCSI_DATA_NONE. Otherwise the data direction would be SCSI_DATA_UNKNOWN, which is at least a problem for the zfcp lldd, since it expects a value differently from unknown. Please apply, thanks. Heiko [PATCH] Re: unchecked_isa_dma on sparcv9 On Tue, Apr 29, 2003 at 12:15:11AM -0700, David S. Miller wrote: > The only thing host->unchecked_isa_dma = 1 does is to add a __GFP_DMA > flag to certain memory allocations, but IIRC __GFP_DMA is a noop on > sparcv9. So what is this supposed to do? > > It's bogus, delete it. James, could you please apply the following patch? [PATCH] blk SCSI_IOCTL_SEND_COMMAND While playing with RH9.0 and 2.5.68 I found that scsi_unique_id (called from devlabel) oopsed on a regular basis during bootup. This patch addresses flakiness in sense buffer handling (in the failure case a disk didn't support VPD page 0x83). Compile fix for scsi_syms.c I had to add an include of scsi_logging.h to compile with logging configured: [PATCH] i2c: i2c-keywest.c irq handler type This patch changes the interrupt handler routine in i2c-keywest.c to return an irqreturn_t. i2c: fix up the MAINTAINERS i2c entry Removed the dead web page and email address, and merged with the sensors entry and added myself. [PATCH] nuke some superflous externs No idea why those were ever added to scsi.c and scsi_syms.c, they're properly declared in the headers. [SCTP] Initialize missing ipv4 fields of a AF_INET6 accept socket. [SCTP] SO_LINGER socket option for TCP-style sockets. [Bluetooth] Compile fix for URB_ZERO_PACKET This patch fixes the compile problem with URB_ZERO_PACKET. [AGPGART] Add some debugging printk's. Based on Linus' earlier patch. [CPUFREQ] Remove not needed ;'s from macro definitions. [AGPGART] Bulletproofing. NULL ptrs after freeing them. ppc64: ioctl32 updates [AGPGART] Remove duplicate code in i810/i830 alloc_by_type functions. [AGPGART] Fix incorrect type warning. [AGPGART] Move debugging macros to header so they can be used in other parts of agpgart. [AGPGART] more kconfig cleanups - Alphabetical order of items. - Fixup the IOMMU dependancy problem (Roman Zippel) - Word all options similarly (Add 'chipset' to some descriptions) - Remove unused CONFIG_AGP_GART - Fix up incomplete alpha tristate [SCTP] Add sinfo_timetolive support. sinfo_timetolive lets the application specify 'timed reliability' for a message. That is, the message really only has a use to the peer up to this timeout. Without PR-SCTP, we can throw away such timed out messages if we haven't yet assigned TSN/SSNs to them. If we have, there is nothing we can do until we support PR-SCTP extension. [PATCH] update NCR_D700 for new-style probing Pretty big patch and untested due to lack of hardware, so handle it with care :) Fix NCR_D700 driver This should complete the hch conversion to the new style probing. Tested and works fine. Aic79xx Driver Update (version 1.3.8) o Correct a few BE processor bugs o Print an additional diagnostic during recovery processing Update Aic79xx and Aic7xxx Documenation Aic7xxx Driver Update (6.2.33) o Correct MODULE_INFO string. o Bump version number. [PATCH] USB: replace kdev_t with int in usb_interface structure, as only drivers with the USB major use it. [AGPGART] Kill off some typedefs. Note, I'm leaving behind the ones not in #ifdef __KERNEL__ for now, as I'm not sure just what userspace stuff that might break. [AGPGART] missing %p in debug printk [AGPGART] Turn on debugging printks for a while. Lets see if we can't track down some of the stranger reports. Also fix up the macro not to printk some ': ' it doesnt need to. ppc64: rework fast SLB miss handler castout code ppc64: firmware flash fix from Olof Johansson Cset exclude: linux-usb@gemeinhardt.info|ChangeSet|20030429230539|30870 [PATCH] USB: vicam: fix bugs in writing to proc files that were found by the CHECKER project [PATCH] USB: more unusual_devs.h changes I've modified James Courtier-Dutton description from Optio 430 => Optio 2/3/400 since it applies to Optio 330 and possible 230 too. Attached are the patch that was tried with Pentax Optio S and Optio 330 RS. I've talked to Pete Zaitcev and he said I should be using CB instead since more devices liked that better... so I leave that to you! [PATCH] USB: ehci i/o watchdog This patch adds a new "I/O watchdog" role to the existing timer code, and cleans it up a bit. If you want to run EHCI without IRQs, it's now simple: disable them, and tweak the timer appropriately. The patch should help with these reported problems. (a) Bulk I/O sometimes seems to stop progressing. Not trouble in itself, but usb-storage and scsi could wedge deeply because of bugs in their fault recovery; and then the problems could break khubd and rmmod... (b) Some periodic transfers need to be "jumpstarted". Usually seen with a high speed hub. [PATCH] Update mesh.c and mac53c94.c drivers This patch updates the mesh and mac53c94 SCSI host bus adaptor drivers so that their interrupt routines return an irqreturn_t. Please apply. Thanks, Paul. [PATCH] fix aci7xxx locking problem > On Thu, May 01, 2003 at 04:28:12PM -0600, Justin T. Gibbs wrote: >> Folks, >> >> I've just uploaded version 1.3.8 of the aic79xx driver and version >> 6.2.33 of the aic7xxx driver. Both are available for 2.4.X and >> 2.5.X kernels in either bk send format or as a tarball from here: >> >> http://people.FreeBSD.org/~gibbs/linux/SRC/ > > Hi Justin, > > I've just tested it and I still have the deadlock on SMP. I also tried with > noapic, but it didn't change. I have reduced the TCQ from 253 to 32, and I > had the impression that it was more difficult to trigger, although I cannot > be certain. With 32, I could boot and go to about half the 'make -j 8 dep', > while it hanged during init script with 253. I may retest by the week-end, but > now I'm going to sleep. Now I'm back to 6.2.28 and everything's OK. Can you try with this patch? It seems I forgot to pull part of a change from the aic79xx driver into the aic7xxx driver. This could easily cause a lock order reversal. [PATCH] remove scsi_device proc printing from drivers A bunch of drivers contain loops over host->my_devices in their proc_info method just to printout info we already get from sysfs. Kill those, the ones that actually add additional information from their private data need to get sysfs attributes for the fist. BTW, does someone have opintions on reading of /proc/scsi/scsi? It's just a duplication of the sysfs tree so it should probably go away also. OTOH there's a slightly higher chance on userland actually using this than for the LLDDs.. Aic7xxx Driver Update o Fix Aic7xxx driver locking in the AHC_SCSI_HAS_HOST_LOCK == 0 case. Aic7xxx and Aic79xx Driver Updates o Misc compiler error and code cleanups. Aic7xxx and Aic79xx Driver Update o Build with -Werror [SCTP] Use prepare_to_wait()/finish_wait() interfaces. [AGPGART] Intel I875P support. From Matt Tolentino. o ipx headers: Coding Style code reformatting [NET]: Use dump_stack in neigh_destroy. [NET]: Fix typo in previous neighbour.c change. [DECNET]: Add netfilter subdir for decnet and add the routing grabulator. [PPP]: Rest of compression module changes, oops. [ATM]: mpc.c warning fixes. [NETFILTER IPV6]: Fix warnings. [AGPGART] Disable debugging printk's again. With the 'AGP bug' solved, we don't need this noise for a while... o list.h: implement list_for_each_entry_safe o ipx: convert ipx_interface handling to use list_head [SCTP] Use put_user() in get_peer_addr_params (reported by yjf@standford.edu) Standford Checker reported direct touch of user space. [AGPGART] Skip devices with no AGP headers sooner. Shrink dynids feature set Per recommendation from GregKH: Remove directory 'dynamic_id' Remove exporting dynamic_id/0 files Remove probe_it driver attribute Move new_id into driver directory as a driver attribute. Make it probe when new IDs are added. Move attribute existance test into pci-driver.c completely. [AGPGART] Store agp revision in agp_bridge struct. There are a few places we do spec revision compliance checks, this cset generalises that function, and removes some duplicated functionality. [AGPGART] Work around AMD 8151 errata. Some revisions incorrectly report they support v3.5 of the AGP spec, when they are actually only 3.0 compliant. [PATCH] USB: kill the last occurances of usb_serial_get_by_minor I got an error at the final linking of 2.5.68-bk11. It seems the patch below is needed. [PATCH] USB: Big endian RTL8150 The RTL8150 USB Ethernet driver doesn't work on big endian machines. Here are patches (for both 2.4.x and 2.5.x) to fix that. The fix was tested on the 2.4.20 and 2.4.21-rc1 version of the driver on big endian MIPS. Changes: - Fix endianness of rx_creg (from Dimitri Torfs ) - Kill unused last parameter of async_set_registers() [PATCH] USB speedtouch fix Missing header file. Please apply. [PATCH] USB: unusual_devs.h patch PCI dynids - documentation fixes, id_table NULL check [PATCH] move all host templates into .c files Oookay - I really got upset by that tmeplates in headers crap when grepping for certain methods. The patch below moves all templates from the headers into the actual implementation files and removes the ifdef mess for unmaintained drivers - for maintained support gazillion kernel releases drivers like gdth I've kept them. This means a driver works fine without any problems for all modular builds and builtin kernel >= 2.4.0. If you want certain drivers to work with 2.0/2.2 statyic builds too I can hack something up for you, but I'd prefer not supporting stuff like that anymore. Tested by compiling all drivers with make -k and not getting more warnings than before :) [PATCH] USB: UNUSUAL_DEV for aiptek pocketcam Here is the unusual_dev entry i'm using to get my digital camera. diff -cr linux/drivers/usb/storage/unusual_devs.h linux_vaxvms/drivers/usb/storage/unusual_devs.h *** linux/drivers/usb/storage/unusual_devs.h 2003-03-14 21:32:46.000000000 +0100 [PATCH] scsi host sysfs support again [1/4] -andmike -- Michael Anderson andmike@us.ibm.com DESC This patch removes the shost_devclass device class support that was previously added, but incomplete. EDESC drivers/acorn/scsi/acornscsi.c | 1 - drivers/acorn/scsi/arxescsi.c | 1 - drivers/acorn/scsi/cumana_1.c | 1 - drivers/acorn/scsi/cumana_2.c | 1 - drivers/acorn/scsi/eesox.c | 1 - drivers/acorn/scsi/oak.c | 1 - drivers/acorn/scsi/powertec.c | 1 - drivers/scsi/scsi_sysfs.c | 23 ----------------------- 8 files changed, 30 deletions(-) [PATCH] scsi host sysfs support again [2/4] -andmike -- Michael Anderson andmike@us.ibm.com DESC This patch changes the structure of sdebug_host_info and changes the method / order of driver model cleanup. EDESC drivers/scsi/scsi_debug.c | 215 ++++++++++++++++++++++++---------------------- drivers/scsi/scsi_debug.h | 2 2 files changed, 115 insertions(+), 102 deletions(-) [PATCH] scsi host sysfs support again [3/4] -andmike -- Michael Anderson andmike@us.ibm.com DESC Change scsi host to class device model. Change scsi host and scsi device to release when ref count goes to zero. EDESC drivers/scsi/hosts.c | 23 +++++------------------ drivers/scsi/hosts.h | 20 ++++++++++++++------ drivers/scsi/scsi_scan.c | 4 +--- 3 files changed, 20 insertions(+), 27 deletions(-) [PATCH] scsi host sysfs support again [4/4] -andmike -- Michael Anderson andmike@us.ibm.com DESC Change scsi sysfs to support scsi host class device and call release functions when ref count goes to zero. EDESC drivers/scsi/scsi_sysfs.c | 111 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 96 insertions(+), 15 deletions(-) pci.h whitespace cleanups [SCTP] Support SCTP ECN on ipv6. o ipx: convert ipx_route to use list_head [IPSEC]: Fix SADB_EALG_{3,}DESCBC values. [ATM]: Fix some CPP pasting in ambassador driver. [ATM]: Fix excessive stack usage in iphase driver. [ATM]: svcs possible race with sigd. [FS]: Add seq_release_private and proc_net_fops_create helpers. [DECNET]: seq file conversions and fixes. o Removed blksize from decnet device parameters - use the device mtu like we ought to. o Removed /proc/net/decnet_route file - I don't think anybody ever used it and it was lacking a full enough description of the routes to be useful. ip -D route list is much better :-) o Added rt_local_src entry to decnet routes so that we get the local source address right when forwarding. o Added correct proto argument to struct flowi for routing o MSG_MORE in sendmsg (ignored, but accepted whereas before we'd error) o /proc/net/decnet converted to seq_file o /proc/net/decnet_dev converted to seq_file o /proc/net/decnet_cache converted to seq_file o Use pskb_may_pull() and add code to linearize skbs on the input path except for those containing data. o Fixed returned packet code (mostly - some left to do) o update_pmtu() method for decnet dst entries (ip_gre device assumes this method exists - well I think it does :-) o Fixed bug in forwarding to get IE bit set correctly o Fixed compile bugs with CONFIG_DECNET_ROUTE_FWMARK pointed out by Adrian Bunk o Fixed zero dest code to grab an address from loopback o Fixed local routes in dn_route_output_slow() o Fixed error case in dn_route_input/output_slow() pointed out by Rusty [NETFILTER]: Fix Module Usage in ipchains and ipfwadm. Gets rid of some warnings. Manipulating our own module count inside the sockopt is safe, because unregistering that sockopt will block. [NETFILTER]: Make NAT code handle non-linear skbs. Makes the NAT code and all NAT helpers handle non-linear skbs. Main trick is to introduce skb_ip_make_writable which handles all the decloning, linearizing, etc. [NETFILTER]: ip_nat_proto_{icmp,udp}.c need ip_nat_core.h [IPV6]: Kill spurious module_{get,put}(). [BLUETOOTH]: Fix hci_usb build. [IPV6]: Fix offset in ICMPV6_HDR_FIELD messages. [IPV^]: Use correct icmp6 type in ip6_pkt_discard. [SPARC64]: Only use power interrupt when button property exists. [ATM]: Fix foul up in lec driver. dynids: call driver_attach() when new IDs are added This causes the driver to create proper device symlinks in sysfs when new IDs are added and thus new devices found by the driver. drivers/base/bus.c make driver_attach non-static drivers/pci/pci-driver.c delete probe_each_pci_dev, call driver_attach instead. Whitespace cleanups. include/linux/device.h add declaration of driver_attach. ia64: Improve spinlock code to handle contention in shared routine called with a special convention. Various minor fixes for gcc-pre3.4. Add .release template method to scsi_debug.c Lost in the hch/andmike merge [IPV6]: Remove illogical bug check in fib6_del. [AGPGART] Only enable isochronous transfers on AGP3.5 chipsets. The standard says that 3.0 chipsets don't support these extensions. Move the isoch stuff out into isoch.c leaving behind a shell for basic AGP3.0 enabling (to be written). [AGPGART] Remove unneeded exports. These functions should only be called indirectly from agp_generic_enable() [PATCH] ia64: fix ia32 emulation of rlimit et al [PATCH] ia64: perfmon update Please apply the following patch on top of 2.5.6x. This patch does the following: - repair broken system-wide overflow notification - repair broken per-process notification - fix a problem in the resrved bitmask for opcode matcher8,9 for McKinley as reported by UIUC. - forcing of bit2 for pmc8/pmc9 now part of reserved bitmask - add the unsecure option to perfmon - update to perfmon 1.4 (similar to 2.4) [PATCH] ia64: spelling fixes ia64: Manual merge of Steve's spelling fixes. [PATCH] ia64: fix timer interrupts getting lost This patch fixes the issue of some CPUs not showing timer interrupts going off. Seems during the process of sync'ing the itc, we jumped over the next timer value. This patch is against 2.5.67 + ia64. I haven't seen the problem on 2.4, but a quick looks seems like it's potentially an issue there too. [PATCH] ia64: interrupt fixes/cleanup Here's some cleanups/fixes/changes for interrupts on 2.5.67 + ia64. Specifically: - Cleanup some ugliness with polarity/trigger setup. - Add iosapic_enable_intr() to set_rte on an interupt when the device is enabled. IMHO, we really only want to unmask RTEs for PRTs we might actually use. This moves the interrupt distribution here too. - When changing a vector from edge to level, call register_intr() to do it so all the data structures get set correctly. If we have to guess how to setup an interupt and get it wrong, this should close some holes in changing it back to the correct type. - Register the HCDP interrupt in 8250_hcdp - this is where we have to guess the polarity/trigger. The real handler will get fixed up via PCI setup or ACPI namespace serial support, this gets it associated w/ the port at setup. This should allow interrupts to work when using builtin UARTs as console on HP Itanium2 boxes. [PATCH] ia64: multi-ioport space support This has been in my 2.4 BK tree for a while, but I should have posted it in case there's feedback from other people working on large machines. So here it is, in four parts: 1 enhance __ia64_mk_io_addr(port) 2 enhance pcibios_scan_root to get multiple mem & io windows from ACPI _CRS, and fixup all the resources 3 add support for /proc/iomem and /proc/ioports 4 trivial (whitespace, copyright, and move pcibios_fixup_device_resources closer to related code) The current scheme is that IO ports are 64 bits, with the low 24 bits being the port number within an IO port space, and the upper bits identifying the space. There is currently a limit of 16 spaces. [PATCH] ia64: multi-ioport space support (part 2 of 4) enhance pcibios_scan_root to get multiple mem & io windows from ACPI _CRS, and fixup all the resources [PATCH] ia64: multi-ioport space support (part 3 of 4) add support for /proc/iomem and /proc/ioports [PATCH] ia64: multi-ioport space support (part 3 of 4) trivial (whitespace, copyright, and move pcibios_fixup_device_resources closer to related code) [PATCH] ia64: new IOC recognition This is a trivial patch that makes sba_iommu recognize a new IOC. Only change is that it will print IOC: sx1000 0.1 HPA 0xf8120002000 IOVA space 1024Mb at 0x80000000 instead of IOC: Unknown (103c:127c) 0.1 HPA 0xf8120002000 IOVA space 1024Mb at 0x80000000 [PATCH] ia64: vendor-specific ACPI resource cleanup This is to - handle _CRS with multiple vendor-specific resources - use acpi_walk_resources() instead of doing it by hand - make lookup of vendor resource by GUID generic - cleanup now-unused helper functions (This depends on the previous IO port space patches, because they removed the last of acpi_get_addr_space()). My hope is that acpi_vendor_resource_match() and acpi_find_vendor_resource() can someday move into ACPI, but that probably depends on getting the idea of labelling vendor resources with a GUID into the spec. HP does this and I think is working on putting it in the spec. [PATCH] ia64: fixes for semtimedop() ia32-compat handling Here are two fixes for the ia32-compatibility mode handling for the new semtimedop() system call for the ia64 architecture. The first problem was that treatment of user-mode calls to semtimedop() with a NULL 4th (struct timespec *) parameter was inconsistent with the behavior of the same executable on i386 and also with a natively compiled ia64 binary. A NULL 4th arg to semtimedop() should result in no timeout being used (like a straight semop() call) rather than in an EFAULT error. The second problem was that a legitimate semtimedop() with a timeout was also resulting in an EFAULT because the fetch of the internal timespec strucure by sys_semtimedop() from semtimedop32()'s kernel stack was treated as an invalid user-data reference. This requires temporarily switching the addressing limit with set_fs(), further requiring that appropriate parameter checking by performed prior to the switch. The const qualifier was removed from the (struct compat_timespec *) arg to semtimedop32() so that the call to get_compat_timespec() wouldn't generate a compilation warning. ia64: Manual merge of Bjorn Helgaas' sba_iommu patch to make it use seq_file. fix syntax error in ncr53c8xx from hch conversion fix missed conversion of to_scsi_host -> dev_to_shost in sim710 add missing asm/io.h to scsi/dc395x.c [PATCH] core dump psinfo.pr_sname letter fix This patch makes the state letter in the pr_sname field in core dumps correct for stopped and zombie threads. The order needed to be changed when the TASK_* values changed. This matches the letters used in sched.c:show_task. [PATCH] PCI Hotplug: fix up the compaq driver to work properly again. [PATCH] PCI Hotplug: fix up the ibm driver to work properly again. [PATCH] PCI Hotplug: fix compiler warning in ibm driver. [PATCH] PCI Hotplug: fix up the acpi driver to work properly again. [PATCH] PCI Hotplug: fix dependancies for CONFIG_HOTPLUG_PCI_ACPI Thanks to Adrian Bunk for pointing this out. PCI Hotplug: export the acpi_resource_to_address64 function, as the acpi pci hotplug driver needs it. mca.c: (show_min_state): Fix typo r11 -> r12. [PATCH] i2c #1/3: listify i2c core This is the first of tree patches for i2c. Trying to get the i2c cleanups finshed before 2.6.x, so we (hopefully) don't have a ever-changing i2c subsystem in 2.7.x again (which is very annonying for driver maintainance). Changes: * listify i2c-core, i.e. make it use instead of statically-sized arrays, removed lots of ugly code :) * added i2c_(get|put)_adapter, changed i2c-dev.c to use these functions instead maintaining is own adapter list. * killed the I2C_DF_DUMMY flag which had the strange semantics to make the i2c subsystem call driver->attach_adapter on detaches. Added a detach_adapter() callback instead. * some other minor cleanups along the way ... [PATCH] i2c #2/3: add i2c_clients_command Changes: * adds a i2c_clients_command() function to i2c-core which calls the ->command() callback of all clients attached to a adapter. * make bttv + saa7134 drivers use that function instead of mucking with the i2c_adapter struct themself. [PATCH] i2c #3/3: add class field to i2c_adapter This is the last of three patches for i2c. It introduces a new field to i2c_adapter which classifies the kind of hardware a i2c adapter belongs to (analog tv card / dvb card / smbus / gfx card ...). i2c chip drivers can use this infomation to decide whenever they want to look for hardware on that adapter or not. It doesn't make sense to probe for a tv tuner on a smbus for example ... [PATCH] i2c: fix compile error due to previous patches. [PATCH] i2c: it87 patch. More or less straight forward patch. Fix a typo in the comments at the top. Show all 9 voltage inputs. Show all 3 fan inputs. Allow you to select the temp sensor type from the sysfs interface, instead of just with the temp_type module option. (1 = diode, 2 = thermistor, 0 = disabled). I'm still trying to figure out the registers for PWM fan controller support. o net/socket: fix bug in sys_accept module_put() gets called twice on error. Once via the explicit module_put and the second via sock_release(). Also i think we should do a __module_get() with newsock's owner(although same as the original listening sock). [PATCH] synclink update - Add support for hardware version 2 (universal PCI) of synclink adapter - Use mod_timer() function [PATCH] n_hdlc update - Use C99 initializers [PATCH] ia64: fix sys32_select() [IPV4/IPV6]: Set owner field in family ops. [PATCH] USB: add usb class support for usb drivers that use the USB major This also consolodates the devfs calls for the USB drivers. [PATCH] USB: converted usblp over to new usb_register_dev() changes. [PATCH] USB: converted mdc800 over to new usb_register_dev() changes. [PATCH] USB: converted scanner over to new usb_register_dev() changes. [PATCH] USB: converted dabusb over to new usb_register_dev() changes. [PATCH] USB: converted auerswald over to new usb_register_dev() changes. [PATCH] USB: converted brlvger over to new usb_register_dev() changes. [PATCH] USB: converted rio500 over to new usb_register_dev() changes. [PATCH] USB: converted usblcd over to new usb_register_dev() changes. [PATCH] USB: converted usb-skeleton over to new usb_register_dev() changes. [PATCH] USB: remove #include from some drivers that do not need it. USB: converted hiddev over to new usb_register_dev() changes. [NET]: Spelling/typo fixes in rtnetlink.h [IPV6]: Convert /proc/net/rt6_stats to seq_file. [BRIDGE]: Change pkt_type to PACKET_HOST earlier. [IPV4]: Replace explicit dev->refcount bumps with dev_hold. [NET]: Remove duplicated alloc_skb debug check. [ATM]: Add Forerunner HE support. [ATM]: Forward port br2864 to 2.5.x [ATM]: Clip locking and more atmvcc cleanup. [IPV6]: Fix typos in ip6_fib.c [IPV6]: Use time_after() etc. for comparing jiffies. [TCP]: tcp_twkill leaves death row list in inconsistent state over tcp_timewait_kill. [ATM]: Fix build of HE driver. Decrement the nr_unstable page state after the COMMIT RPC call completes instead of before. This ensures that writeback WB_SYNC_ALL does wait on completion. Don't overreport the number of pages we wrote out. It is safer to underreport. Fix missing NFSv3 unstable write accounting in fs/fs-writeback.c and mm/page-writeback.c Fix typos in close-to-open cache consistency checking. Fix a TCP race: check whether or not the socket has been disconnected before we allow an RPC request to wait on a reply. Don't use an RPC child process when reconnecting to a TCP server. This is more efficient, and also fixes an existing deadlock situation in which the child could be waiting for an xprt_write_lock that was being held by the parent. Ensure that if we need to reconnect the socket, we also resend the entire RPC message Assorted TCP reconnection fixes. Temporarily raise the necessary CAP_NET_BIND_SERVICE capability if we need to bind the socket to a reserved port during a TCP reconnection. Check for CAP_NET_BIND_SERVICE at mount time. Add the sk->callback_lock spinlocks to the RPC socket callbacks in order to protect the socket from being released by one CPU while the other is in a soft interrupt. the recently-applied patch to fix the rpc_show_tasks() Oops is incomplete. this applies over 2.5.68 and should address all of the issues in rpc_show_tasks(). Ensure that Lockd and the NSM (statd) clients always use privileged ports. Remove the existing code to temporarily raise privileges in fs/lockd/host.c, and use the new code in net/sunrpc/xprt.c There should no longer be a need to temporarily change the fsuid. Remove this feature. UDP and TCP zero copy code for the NFS client. The main interest of this patch is to eliminate the use of xdr_kmap() and xdr_unmap() by replacing them with MSG_MORE. xdr_kmap() is deadlock-prone due to the fact that it has to kmap() several pages at the same time. o ipx: ipx_interfaces outlives struct sock/socket And thus have to do module refcounting... Whee. Fix ancient mailing address. [PATCH] USB: update my copyrights in a few locations. [ATM]: assorted atm patches [ATM] remove iovcnt from atm_skb skbs has (and has had for a while) scatter/gather support making the scatter gather in atm redundant. the current iovcnt schme really isnt being used anyway typically. the atm layer will need a little more work in the future to take advantage of the skb scatter/gather support. this patch removes the iovcnt dependencies and gets the check for non linear skbs right. [IPV4]: Use time_{before,after}() and proper jiffies types in route.c [IPV4]: Two minor errors in jiffies changes. [NET]: Kill more direct references to netdev->refcnt. [ACENIC]: Comment out netif_wake_queue from acenic watchdog. [PATCH] ips 2.5 driver update [1/4] irq return update This is the proper way to report if the interrupt was from a serveraid or not. David Jeffery ips.c | 29 ++++++++++++++++------------- ips.h | 6 +++++- 2 files changed, 21 insertions(+), 14 deletions(-) [PATCH] ips 2.5 driver update [2/4] missing kfree and static init s This patch adds a missing kfree on an error path and removes some cases where static variables were being explicitly initiated to 0. ips.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) [PATCH] ips 2.5 driver update [3/4]: misc cleanups This patch checks the return code of pci_set_dma_mask for a 32bit mask, adds a break to quiet some compilers, and adds some 2.4 compat. code. ips.c | 8 ++++++-- ips.h | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) [PATCH] ips 2.5 driver update [4/4]: use dev_printk Use the new dev_printk. Thanks go to Mike Christie who originally created this patch. ips.c | 135 +++++++++++++++++++++++++++--------------------------------------- ips.h | 5 ++ 2 files changed, 62 insertions(+), 78 deletions(-) [PATCH] remove scsi_slave_attach/scsi_slave_detach I added those two to factor out common code from the upper drivers a long time ago, but after Doug & Lubens nice work there's nothing left but incrementing/decrementing a counter in struct scsi_device that's never used except in the case were we not it must be NULL because we just walked the chain of drivers to detach every single one.. [PATCH] first batch of shost sysfs fixes (a) scsi_check_device_busy() is unused now, kill it. Btw, although I love to see this this really means we need to imply a scsi_set_device_offline (or even better scsi_set_host_offline) in scsi_remove_host now.. (b) make shost_class static to scsi_sysfs.c, with the new device model changes no LLDD needs this anymore (c) move private prototypes where they belong. BTW, Mike, did I miss something or will your changes make every driver converted to scsi_add_host & co OOPS on removal now? [PATCH] tc_zs tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] specialix tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] stallion tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] serial_tx3912 tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] sh-sci tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] ser_a2232 tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] serial167 tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] rocket tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] sgi/char/sgiserial tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] rio tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] riscom8 tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] pcxx tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] mxser tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] istallion tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] moxa tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] ip2main tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] isicom tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] esp tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] hvc_console tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] dz tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] cyclades tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] amiserial tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] macintosh/macserial tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] isdn/capi tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PATCH] vme_scc tty_driver add .owner field remove MOD_INC/DEC_USE_COUNT [PKT_SCHED]: Kill iovcnt reference from sch_atm.c TTY: add tty class support for all tty devices. TTY: changes based on tty_register_device() paramater change. TTY: remove usb-serial sysfs dev file as it is now redundant. Make lib/inflate.c look remotely like ANSI C, so that it can be properly checked with the rest of the kernel. Avoid using undefined preprocessor symbols: check CONFIG_MK7 with "defined()" rather than using it as a value. Update aacraid to last drop on 2.4 from Alan Cox Update aacraid from 2.4->2.5 semantics - stanford checker fixes (randy.dunlap) - updated io_request_lock to correct 2.5 lock - spelling fixes - torvalds daemonize changes - updated templates etc - update scsicmd-> to scsicmd->device-> for new command alloc code - update biosparam and add slave_configure - gendisk name changes - fix compile warnings [PATCH] New aacraid driver fixed. I have the new aacraid driver working on my system now. The patch is against the 2.5.66 updates that you gave me. I made the following changes: aachba.c aac_scsi_cmd() There was a race accessing the scsicmd pointer accessing the host_lock. I made a local pointer to the Scsi_Host so the spin_lock_irq after aac_read wouldn't panic. I think that sometimes the I/O would be done and the memory freed before returning invalidating the scsicmd pointer. I made the same change in aac_io_done in case scsi_done had freed the scsicmd memory before returning. comminit.c aac_alloc_comm() AdapterFibsVirtualAddress was set to the virtual address of base. I changed it to set it to the phys address. I compared this to code pointed to by matt domsch on the aacraid devel list on the 5th. Its aac_alloc_comm sets this variable to the phys address. This fixed the probelem where the entry->addr was bad. Another was to fix it I guess would be to leave this change alone and not try to convert the address in aac_command_normal. dpcsup.c aac_response_normal() Changed the bus_to_virt to the calculation we talked about last month. dpcsup.c aac_command_normal() Changed the bus_to_virt to the calculation. Use "__attribute__" consistently. Allow external checkers to overrid the "cond_syscall()" macro. Support a "checking" mode for kernel builds, that runs a user-supplied source checker on all C files before compiling them. I'll release the actual checker once I've cleaned it up a bit more (yay, all the copyright paperwork completed!) [PATCH] generic subarchitecture for ia32 From: Andi Kleen This patch adds an generic x86 subarchitecture. It is intended to provide an dynamic interface for APIC drivers. There are already three subarchitectures (bigsmp, summit, default) that only differ in how they drive the local APIC. A fourth - Unisys ES7000 - is scheduled to be merged soon. The subarchitecture concept separated this nicely, but it has the big drawback that they are compile time options. A Linux vendor cannot ship own binary kernel rpms for all of these machines. Runtime probing is needed instead. This patch adds a new "generic" subarchitecture that just acts as a dynamic switching layer for APIC drivers. It only tries to virtualize the APICs, no attempt is made to cover further incompatiblities. This means machines like the Visual Workstation, pc9800 or Voyager are not covered; but these are unlikely to be supported by binary distributions anyways. The generic arch reuses the existing interface in mach_ipi / mach_mpparse.h / mach_apic.h and just pulls it using some macros into an "struct genapic" object. The main APIC code does not recognize it, it is all hidden in the mach-generic include files. Auto detection of APIC types is supported in the usual way used by existing ports like Summit - checking ACPI or mptables for specific signatures - or it can be specified by the user using a new "apic=" boot option. I also moved the DMI scan to before the generic subarchitecture probe, so DMI could be used in future too to probe specific machines. Some minor hacks were needed to avoid circular declaration of a few symbols, but overall it's fairly clean. The patch has been tested on a Summit machine, an generic 4 virtual CPUs Xeon and on an ES7000. [PATCH] Fix .altinstructions linking failures From: Andi Kleen Some configs didn't link anymore because they got references from .altinstructions to __exit functions. Fixing it at the linker level is not easily possible. This patch just discards .text.exit at runtime instead of link time to avoid this. It will also fix a related problem with .eh_frame in modern gcc (so far only observed on x86-64, but could happen on i386 too) [PATCH] cpia driver __exit fix From: Andi Kleen This driver was bogusly relying on the dropping of the __exit section at link time. cpia_exit() is calling proc_cpia_destroy(), which doesn't even exist if !CONFIG_MODULE. [PATCH] fix OSS opl3sa2 compilation From: Zwane Mwaikambo There was a 2.4 merge from Alan Cox, but a few #ifdef's got shuffled around in the process, resulting in a broken build for !CONFIG_PM [PATCH] misc fixes - ifdef fix in kmap_types.h (Oleg Drokin) - remove redundant ext3 inclusions (Burton Windle) - Fix misidentified warning printk in vmalloc.c - radeon_cp printk warning fix (Randy Dunlap) - Update minimum binutils version for the ".incbin" thing in vsyscall.S - update raw driver to recent module API. - update my email address [PATCH] mwave build fix From: Michael Buesch and Paul Schroeder. mwavedd.h needs and smapi.h [PATCH] drm timer initialisation fix The timer is being initialised too late (in ->open()). If modprobe fails we get an uninitialised timer warning. [PATCH] slab: initialisation cleanup and oops fix From: Manfred Spraul attached is the promised cleanup/bugfix patch for the slab bootstrap: - kmem_cache_init & kmem_cache_sizes_init merged into one function, called after mem_init(). It's impossible to bring slab to an operational state without working gfp, thus the early partial initialization is not necessary. - g_cpucache_up set to FULL at the end of kmem_cache_init instead of the module init call. This is a bugfix: slab was completely initialized, just the update of the state was missing. - some documentation for the bootstrap added. The minimal fix for the bug is a two-liner: move g_cpucache_up=FULL from cpucache_init to kmem_cache_sizes_init, but I want to get rid of kmem_cache_sizes_init, too. [PATCH] sysrq-S, sysrq-U cleanups From: Christoph Hellwig Change sysrq sync/remount from a magic bdflush hook to proper pdflush operations. The sync operation reuses most of the regular sys_sync path now instead of implementing it's own superblock walking and (broken) local disk detection, the remount implementation has been moved to super.c, cleaned up and updated for the last two years locking changes. It also shares some code with the regular remount path now. [PATCH] s/UPDATE_ATIME/update_atime/ cleanup From: Stewart Smith Remove the UPDATE_ATIME() macro, use update_atime() directly. [PATCH] irqreturn_t for drivers/net/pcmcia From: Zwane Mwaikambo update pcmcia drivers for new IRQ API [PATCH] keyboard.c Fix CONFIG_MAGIC_SYSRQ+PrintScreen From: Chris Heath This patch fixes the PrintScreen key when CONFIG_MAGIC_SYSRQ is enabled. It allows you to use that key normally when Alt is not being pressed. Patch is against kernel 2.5.68. [PATCH] Don't use devfs names in disk_name() From: Christoph Hellwig disk_name() (and hence bdevname()) are now returning devfs-style device names when devfs is enabled. This is nice, but these names are very long, and they overflow the 32-char buffers which these functions use. The choices are: a) Use a bigger buffer (increase BDEVNAME_SIZE). This might be practical. But how big? b) return the name in kmalloced memory, make caller free it up. Yuk. c) Add a print_bdevname() thing and intersperse that amongst the printk's. This would work. d) Just print the non-devfs device name. That's what this patch does. [PATCH] devfs: API changes From: Christoph Hellwig Some people may already have noticed that I've been revamping the devfs API recently. The worst offender still left is devfs_register, it's prototype is: devfs_handle_t devfs_register(devfs_handle_t dir, const char *name, unsigned int flags, unsigned int major, unsigned int minor, umode_t mode, void *ops, void *info) Of these: - dir and flags are always zero - the return value is never used - info is only used in one driver which doesn't even need it for operation - umode_t always describes a character device - name very often comes from a stack buffer we sprintf'ed into so obviously we really want a much simpler API instead. My first draft for this was: int devfs_mk_cdev(dev_t dev, umode_t mode, struct file_operations *fops, void *info, const char *fmt, ...) this removes the unused argumens, switches to a proper dev_t for the device number and allows to directly use a printf-like expression as name, getting rid of the temporary buffers. Now Al has reappeared and put the first steps of his CIDR for charater device on public ftp and we'll soon have a similar lookup object + fops mechanism in generic code as we already habe for blockdevices, i.e. the devfs code to assign fops from an entry will become superflous as generic code already does it. That means the fops and info arguments are obsolete before they were introduced, so I'd like to propose the following API instead: int devfs_mk_cdev(dev_t dev, umode_t mode, const char *fmt, ...) which is much nicer anyway. The educated reader will notice that this is exactly the same prototype devfs_mk_bdev has so I'll probably get suggestions to merge those two into some kind of devfs_mk_node soon. Personally I don't like that as character and blockdevices are two really separate entinities and I'll like to keep them as separate as possible. Example patch that introduces the API and converts drivers/input attached. Every driver which calls devfs_mk_cdev (about 50) needs conversion. Note that the transition can happen in pieces - devfs_register continues to work after this patch, it's just the plan to get rid of it in the end. [PATCH] remove partition_name() From: Christoph Hellwig partition_name() is a variant of __bdevname() that caches results and returns a pointrer to kmalloc()ed data instead of printing into a buffer. Due to it's caching it gets utterly confused when the name for a dev_t changes (can happen easily now with device mapper and probably in the future with dynamic dev_t users). It's only used by the raid code and most calls are through a wrapper, bdev_partition_name() which takes a struct block_device * that maybe be NULL. The patch below changes the bdev_partition_name() to call bdevname() if possible and the other calls where we really have nothing more than a dev_t to __bdevname. Btw, it would be nice if someone who knows the md code a bit better than me could remove bdev_partition_name() in favour of direct calls to bdevname() where possible - that would also get rid of the returns pointer to string on stack issue that this patch can't fix yet. [PATCH] switch most remaining drivers over to devfs_mk_bdev From: Christoph Hellwig This is a pretty huge patch, but splitting it doesn't make a lot of sense.. (USB may still need work) [PATCH] dvbdev fixes From: Monchi Abbad I found a mistake in the dvbdev.c file when creating the dvb /devfs files, it created /dev/dvb/adapter0device0 instead of /dev/dvb/adapter0/device0. But here is a simple fix. [PATCH] access_ok() race fix for 80386. From: Manfred Spraul Real 80386 cpus ignore the write protected bit in the page tables when running in supervisory mode. Thus the write protected bit must be checked by software. The current implementation does that check during access_ok(). This can result in data corruptions, if kswapd starts a swap-out between the access_ok and the actual write operation. To fix this, the patch moves the check from access_ok() into __copy_to_user_ll(), and redirects all user space writes into __copy_to_user_ll(). The patch only affects kernels build for 80386 cpus. Additionally, the patch removes the dead prototypes for __put_user_{1,2,4,8}. Due to the uninlining of access_ok, the .text segment is now ~ 8 kB shorter. [PATCH] hold i_sem on swapfiles If a swapfile is ftruncated while in use, subsequent swapout will scribble on the filesystem. This is a case of root-shoot-foot, but wrecking the fs is a fairly rude response. And it's easy to fix: hold i_sem across the life of the swapon. [PATCH] remove unnecessary PAE pgd set From: Dave Hansen , Bill Irwin With PAE on, there are only 4 PGD entries. The kernel ones never change, so there is no need to copy them when a vmalloc fault occurs. This was this was causing problems with the split pmd patches, but it is still correct for mainline. Tested with and without PAE. I ran it in a loop turning on and off 10 swap partitions, which is what excited the original bug. http://bugme.osdl.org/show_bug.cgi?id=640 [PATCH] account for slab reclaim in try_to_free_pages() try_to_free_pages() currently fails to notice that it successfully freed slab pages via shrink_slab(). So it can keep looping and eventually call out_of_memory(), even though there's a lot of memory now free. And even if it doesn't do that, it can free too much memory. The patch changes try_to_free_pages() so that it will notice freed slab pages and will return when enough memory has been freed via shrink_slab(). Many options were considered, but must of them were unacceptably inaccurate, intrusive or sleazy. I ended up putting the accounting into a stack-local structure which is pointed to by current->reclaim_state. One reason for this is that we can cleanly resurrect the current->local_pages pool by putting it into struct reclaim_state. (current->local_pages was removed because the per-cpu page pools in the page allocator largely duplicate its function. But it is still possible for interrupt-time allocations to steal just-freed pages, so we might want to put it back some time.) [PATCH] slab: additional debug checks From: Manfred Spraul below is the promised patch for better slab debugging, against 2.5.68-mm4: Changes: - enable redzoning and last user accounting even for large objects, if that doesn't waste too much memory - document why FORCED_DEBUG doesn't enable redzoning&last user accounting for some caches. - check the validity of the bufctl chains in a slab in __free_blocks. This detects double-free error for the caches without redzoning. [PATCH] reduced overheads in fget/fput From: Dipankar Sarma fget() shows up on profiles, especially on SMP. Dipankar's patch special-cases the situation wherein there are no sharers of current->files. In this situation we know that no other process can close this file, so it is not necessary to increment the file's refcount. It's ugly as sin, but makes a substantial difference. The test is dd if=/dev/zero of=foo bs=1 count=1M On 4CPU P3 xeon with 1MB L2 cache and 512MB ram: kernel sys time std-dev ------------ -------- ------- UP - vanilla 2.104 0.028 UP - file 1.867 0.019 SMP - vanilla 2.976 0.023 SMP - file 2.719 0.026 [PATCH] allow i8042 interrupt sharing Ed Tomlinson has a machine on which some other device grabs IRQ12 first, and the 8042 doesn't work. Enabling shared iRQs in the 8042 driver fixes it up. Alan has confirmed that this is OK. [PATCH] select() speedup From: Christoph Hellwig Originally by David Mosberger, testing by Roger Luethi. From the ia64 tree. Basically, it avoids going to memory all the time. What this does is make life a lot easier for gcc, so it can actually do a decent amount of optimization. The restructuring clearly is less important for out-of-order CPUs, but even there it gives some benefits. More specifically, the loop is now structured to operate one "unsigned long" at a time, rather than one bit at a time. Of course, you still need to process all the bits, but most of the relevant state in the inner loop can be kept in registers. Roger Luethi measured the routine on a bunch of different machines (mostly x86, IIRC: P5, P6, Crusoe, Athlons) and performance improved there, too (and it should definitely improve performance on any RISC-like architecture). Roger's benchmarking results (vs number of fd's): File TCP Numbfer of fd's: 10 250 500 10 250 500 UP, Pentium MMX 233MHz original 8.2 108.5 212.8 11.0 180.0 356.5 UP, Pentium MMX 233MHz w/patch 7.4 87.6 171.1 10.4 163.6 323.4 MP, Pentium MMX 233MHz original 15.7 283.8 562.8 18.9 354.4 705.5 MP, Pentium MMX 233MHz w/patch 14.6 255.6 506.5 17.8 332.8 664.1 UP, Athlon 1394 MHz original 1.3 13.4 26.1 1.9 24.7 48.6 UP, Athlon 1394 MHz w/patch 1.2 11.0 21.5 1.6 22.3 43.8 MP, Athlon 1394 MHz original 1.6 22.4 44.6 1.9 30.9 60.5 MP, Athlon 1394 MHz w/patch 1.5 21.2 41.7 1.9 30.2 59.6 [PATCH] Move security_d_instantiate hook calls From: Stephen Smalley This patch moves the security_d_instantiate hook calls in d_instantiate and d_splice_alias after the inode has been attached to the dentry. This change is necessary so that security modules can internally call the getxattr inode operation (which takes a dentry parameter) from this hook to obtain the inode security label. [PATCH] ext3 xattr handler for security modules From: Stephen Smalley This patch against 2.5.68 implements an xattr handler for ext3 to support the use of extended attributes by security modules for storing file security labels. As per the earlier discussion of extended attributes for security modules, this handler uses a "security." prefix and allows for per-module attribute names. Security checking for userspace access to these attributes can be performed by the security module using the LSM hooks in fs/xattr.c, and the security module is free to internally use the inode operations without restriction for managing its security labels. Unlike the trusted namespace, these labels are used internally for access control purposes by the security modules, and controls over userspace access to them require finer granularity than capable() supports. [PATCH] ext2 xattr handler for security modules From: Stephen Smalley This patch against 2.5.68 implements an xattr handler for ext2 to support the use of extended attributes by security modules for storing file security labels. As per the earlier discussion of extended attributes for security modules, this handler uses a "security." prefix and allows for per-module attribute names. Security checking on userspace access to these attributes can be performed by the security module using the LSM hooks in fs/xattr.c, and the security module is free to internally use the inode operations without restriction for managing its security labels. Unlike the trusted namespace, these labels are used internally for access control purposes by the security module, and controls over userspace access to them require finer granularity than capable() supports. [PATCH] Change LSM hooks in setxattr From: Stephen Smalley This patch against 2.5.69 adds a security_inode_post_setxattr hook so that security modules can update the inode security structure after a successful setxattr, and it moves the existing security_inode_setxattr hook call after the taking the inode semaphore so that atomicity is provided for the security check and the update to the inode security structure. [PATCH] Work around include/linux/sunrpc/svc.h compilation From: Grzegorz Jaskiewicz gcc-2.94 fails to compile this code, alleging an invalid lvalue. An equivalent transformation fixes it up. TTY: fix up lost devfs_mk_cdev change. USB: change core to use devfs_mk_cdev() instead of devfs_register() USB: fix up compile error in tiglusb driver due to devfs_mk_cdev() changes. TTY: add lock to tty_dev_list, and handle tty names with more than one '/' Thanks to Al Viro for pointing out these problems. [ATM]: Kill stray ATM_PDU_OVHD reference in lec.c [IPSEC]: Fix ipcomp header handling in ipv4 IPCOMP. [PATCH] rationalize scsi_queue_next & friends (1) second arg to scsi_queue_next_request() is only ever non-NULL inside scsi_lib.c and only used in the first conditional inside that function - ripped out of scsi_queue_next_request() and put into a new helper scsi_requeue_command(). (2) Most remaining callers of are in the form scsi_put_command(cmd); scsi_queue_next_request(q, NULL); add a new helper, scsi_next_command() for them. (2b) many callers of that still contain a repeated codepath, namely everything from scsi_release_request except the final kfree. New helper __scsi_release_request() for those. (3) All remaining callers loop over the devices of a host and call scsi_queue_next_request() on them - new helper scsi_run_host_queues(). (4) scsi_queue_next_request() renamed to scsi_run_queue(), second arg is gone and it's static to scsi_lib.c now. [IPV6]: Remove incorrect comment in ip6_fib.c [SYSKONNECT]: /proc module handling fixup. [PKTGEN]: Module and dev cleanup. [DECNET]: Decnet not obeying netdev locking (from shemminger@osdl.org). [SLIP]: Move over to initcalls. [IPV4]: Fix expiration test in rt_check_expire. [NETFILTER]: Fix skb_checksum args in ip_nat_core.c [PATCH] USB Gadget API (1/6) This patch createss , the gadget API and inlined implementation. There's additional kerneldoc, which I won't submit at this time, available. [PATCH] Net2280 driver (2/6) This patch creates drivers/usb/gadget/net2280.[hc], providing a driver for NetChip's "Net2280 PCI USB 2.0 High Speed Peripheral Controller". It implements the API included in the first patch. The driver has behaved well with chiprev 0100 under stress tests with Gadget Zero and the ethernet model driver, and has passed sanity tests for chiprev 0110. [PATCH] USB "Gadget Zero" driver (3/6) This patch adds "Gadget Zero" (drivers/usb/gadget/zero.c). Gadget Zero is a simple gadget driver that's useful for testing controller drivers, and as an example to be used for clone/modify style development. This driver implements two configurations, and needs only two bulk endpoints (in addition to ep0) ... so pretty much any USB device controller should be usable with it in one configuration or another. It (optionally) supports high speed devices, and has passed the USB-IF "chapter 9" device model conformance tests. It's worth noticing the kinds of hardware differences that gadget drivers need to cope with. Endpoints differ, in ways that must be reflected various ways in descriptors. And sometimes chip errata cause interoperability problems; for example, an sa1100 can't change configurations after enumerating. [PATCH] USB Ethernet Gadget (4/6) This patch adds an "Ethernet Gadget" driver, implementing the CDC Ethernet model (drivers/usb/gadget/ether.c). It interops with the current CDC Ether drivers on Linux, both 2.4 (CDCEther, using Marcelo's latest) and 2.5 (cdc-ether with recent patches, or on 2.5.68 "usbnet") On a net2280, this has successfully streamed dozens of megabytes per second using "ttcp" (high speed, and using "usbnet" on the host side), for days at a time. And no problems using SSH/NFS/etc in lighter duty testing. It's possible this will need tweaking to cope with UDC bugs on Intel's pxa25x controllers, presenting itself as a non-CDC device. (I'm told altsettings are even more broken than originally specified to be.) [PATCH] USB Gadget string utility (5/6) This adds utility code that gadget drivers can use to manage string descriptors (drivers/usb/gadget/usbstring.c) in the common case that the ISO-8859/1 character set is in use. Both "Gadget Zero" and the Ethernet gadget code use this. [PATCH] kbuild/kbuild for USB Gadgets (6/6) This patch adds kconfig/kbuild support for the preceding code, so that an EXPERIMENTAL option appears in the USB part of the config menus. Once a USB device controller driver is configured (which just now means net2280, but sa11x0 and pxa25x options are just waiting for updates!), gadget driver options are also available. [PATCH] USB: gadget cleanup of #ifdefs > can you get rid of all of the #ifdef HAVE_DRIVER_MODEL stuff? Done. Now this code "knows" it's running in a 2.5 environment, and needs modifications to run on 2.4. I also changed the file modes in the module_parm() calls so the parameters will be writable when they eventually show up in sysfs; and fixed a typo. Compile-tested with and without DEBUG enabled. [PATCH] USB: gadget zero, loopback config fix If the host writes OUT packets using URB_ZERO_PACKET (or its analogue on other USB host systems), then the loopback configuration should set req->zero, to use that same transfer termination policy when it writes the response back IN to the host. [PATCH] USB gadget: net2280: dmachain off, zlp pio ok This patch has two small fixes for issues that people reported to me yesterday: - One of the out-of-tree drivers sees odd things happening when dma chaining is enabled. (The in-tree drivers seem fine with it.) So disable for now; it's easily enabled if needed. - Zero Length Packets (ZLPs): * Should now read/write ok with PIO. * On DMA endpoints, explicit ZLPs need PIO. Until they do, don't allow queuing zero length buffers onto DMA endpoints. Use the right CFLAGS for source checking. Fix grammar. [MPLS]: Add ethernet protocol numbers. [NETFILTER]: Fix icmp_reply_translation args. [MPLS]: Add MPLS support to PPP. [Bluetooth] Add required infrastructure for socket module refcounting. Initialize ->owner fields in Bluetooth protocols and drivers. [SKFDDI]: Use SET_MODULE_OWNER. [IPV6]: Pass route attributes all the way down. ia64: Patch from Asit K. Mallick: fix a few places where last_fph_cpu wasn't updated and one place in the sigreturn path where the fph-owner wasn't set. [IPSEC]: Use xfrm_state_put in pfkey_msg2xfrm_state. [ATM]: Make he driver code more palatable. [NETFILTER]: Fix ip_nat_core.c:manip_pkt return value checks. [DLCI]: Use module_init and fix ioctl handling. [NET]: Clean up socket filter compat handling. [AGPGART] Remove duplicate copying of ->chipset in agp_copy_info() [MAINTAINERS/CREDITS]: Add entries for USAGI hackers. [XFRM]: Make use of xfrm_state_hold(). [XFRM]: Use xfrm_pol_hold(). [NET]: Switch x25_asy over to initcalls. [XFRM]: Fix typos in xfrm_state_put() changes. [Bluetooth] Send the correct values in RPN response This patch fixes a bug in rfcomm_recv_rpn(), which do not set the correct values for xon_char, xoff_char and flow_ctrl. [Bluetooth] Handle priority bits in parameter negotiation The PN response have to return the same value for the priority bits as in the request. The priority value is now also stored in the rfcomm_dlc structure and the default value is 7. Make aic7xxx driver use ANSI prototypes. My checker tool refuses to touch K&R C. [Bluetooth] L2CAP config req/rsp fixes. We have to set continuation flag in config rsp if it was set in req. [PATCH] i2c: add i2c_adapter class support [PATCH] I2C: add more classes Add I2C classes for analog and digital cameras, and fix a typo. Annotate LDT system calls with user pointer annotations. Annotate x86 system calls with user pointer annotations. Fix mismatch between i387 user copy function declaration and definition. Annotate IPC system calls with user pointer annotations Annotate vm86_info as a pointer to user space. [PATCH] I2C: Another it87 patch. This is against my last. While the old code most definitely did /something/ to the register for setting the fan div, the 'what' is a more interesting question. To be honest I could not figure out what it was trying to do, because the way it was inserting values disagreed with not only the data sheet, but how it parsed the very same register. This corrects the issue, and allows one to properly control the divisor on all 3 fans, including the (much more limited) 3rd fan. [PATCH] I2C: Yet another it87 patch. Ok, after writing up something in the way of a perl script to make some sense of the data for voltages, and finding that there is no sense to make, I took a longer look at things. The it87 driver in 2.5.x is doing some, down right /odd/ math on the numbers for the in_input* readings, and the 2.4.x driver is doing something quite different. And while it might be possible to get sane numbers out of the 2.5.x driver, people /expect/ to get the numbers that they were getting from 2.4.x. So this patch puts things back to the simpler calculations done by the 2.4.x lm-sensors drivers, and my script confirms that the numbers come out right. [PATCH] I2C: And another it87 patch. Don't provide min/max for in8, which allowed one to scribble on registers one should not be messing with. (My fault, oops.) The setting of the temp high/low registers was off by one, not mine this time. While I was at it, I reordered a few other register accesses to be base 0 instead of base 1. The temp interface was slightly incorrect, degrees * 100 instead of degrees * 1000, also fixed. And lastly, when changing the fan count divisor, fix up the min setting to still be roughly the same. (Previously the meaning of the value in the register changed, but not the value itself, resulting in, undesired surprises.) [PATCH] i2c: register the i2c_adapter_driver so things link up properly in sysfs [PATCH] ia64: enable 1G hugepage size for Mckinley [PATCH] cpufreq class fix [PATCH] driver core: Add driver symlink to class devices in sysfs. Thanks to Mike Anderson for the idea for this. [PATCH] driver core: remove unneeded line in class code. Thanks to Jonathan Corbet for pointing this out. [Bluetooth] Detect and log error condition when first L2CAP fragment is too long. [PATCH] Fix potential runqueue deadlock send_sig_info() has been broken since 2.5.60. The function can be invoked from a the time interrupt (timer_interrpt -> do_timer -> update_process_times -> -> update_one_process -> ( do_process_times, do_it_prof, do_it_virt ) -> -> send_sig -> send_sig_info) but it uses spin_unlock_irq instead of the correct spin_unlock_irqrestore. This enables interrupts, and later scheduler_tick() locks runqueue (without disabling interrupts). And if we are unlucky, a new interrupt comes at this point. And if this interrupt tries to do wake_up() (like RTC interrupt does), we will deadlock on runqueue lock :-( The bug was introduced by signal-fixes-2.5.59-A4, which split the original send_sig_info into two functions, and in one branch it started using these unsafe spinlock variants (while the "group" variant uses irqsave/restore correctly). [Bluetooth] RFCOMM must wait for MSC exchange to complete before sending data. [AGPGART] death of generic-3.0.c = folded into generic.c [AGPGART] Add proper AGP3 initialisation routine. [AGPGART] Make sure we don't poke reserved bits when enabling agp v3 [AGPGART] Add missing #defines from last checkin. [AGPGART] Use symbolic defines for isoch registers in isoch code. [AGPGART] CodingStyle nitpicks for isoch.c ia64: Prepare for GCC v3.4. Sync with 2.5.69. ia64: Patch by John Marvin: Add virtual mem-map support. [TCP]: NULL out newsk->owner in tcp_create_openreq_child(). [SCTP]: Fix missing Kconfig dependency. [IPV4/IPV6]: inetsw using RCU. [IPV6]: Convert /proc/net/raw6 to seq_file. [AGPGART] Make the agp 3.5 use the agp3 code for enabling, leaving just the isoch stuff in isoch.c [PATCH] sd.c spinup code can go into a wild loop This problem was reported against 2.4 by Eddie.Williams@SteelEye.com There's a problem in the sd spinup code in that if the unit returns NOT READY, we begin to spin it up, but thereafter if it returns anything other than NOT READY or success, the while loop in the spinup code will be executed *without* the 1s delay that's in the NOT READY case. The problem was seen with a real device: Compaq multi-path storage arrays return NOT READY to probes down inactive paths, but when the start unit is sent to activate the path, they can then respond back with error conditions. The fix is to terminate the while loop for any unexpected return. [PATCH] some warning fixes [PATCH] fix the aacraid merge a bit more [PATCH] scsi_report_device_reset aic7xxx/79xx wants a variant of scsi_report_bus_reset that operates only on a single device. Implement it to get rid of shost->my_devices traversals in drivers. (and move both to scsi_error.c) [PATCH] scsi_host sysfs updates scsi-misc-2.5 [1/2] -andmike -- Michael Anderson andmike@us.ibm.com DESC scsi_debug cleanups for scsi-misc-2.5 - Remove release function. - Remove scsi_debug wrapper driver register / unregister functions. - Douglas's target == this_id fix. - Remove some old cleanups that where incorrect. - Move code back into sdebug_driver_remove. EDESC drivers/scsi/scsi_debug.c | 78 ++++++++++++++-------------------------------- drivers/scsi/scsi_debug.h | 1 2 files changed, 25 insertions(+), 54 deletions(-) [PATCH] scsi_host sysfs updates scsi-misc-2.5 [2/2] Here is an update of the patch with the externs in scsi_priv.h -andmike -- Michael Anderson andmike@us.ibm.com DESC scsi shost sysfs cleanups for scsi-misc-2.5 - Add LLDD short name to scsi_host struct device. - scsi_host_release now calls scsi_free_shost. - Switched from device_register / device_unregister and class_register / class_register to initialize, add, del, put pairs. - Moved some function from scsi_register and scsi_unregister. - Filled in scsi_host_put and scsi_host_get. Rev 2 move externs to scsi_priv.h EDESC drivers/scsi/hosts.c | 33 ++++++++++++++++++++++++++++----- drivers/scsi/scsi_priv.h | 2 ++ drivers/scsi/scsi_sysfs.c | 19 +++++++++++-------- 3 files changed, 41 insertions(+), 13 deletions(-) [PATCH] consolidate devlist handling in a single file Currently it's spread all over the scsi midlayer but having this nicely separate out to a file of it's own without exposing the data structures sounds like a good idea. [ATM]: HE and IPHASE driver fixes. [NET]: Set file_operations->owner as appropriate. [VLAN]: vlanproc.c needs module.h [PATCH] bio_endio() increments bio->bi_sector increment bi_sector in bio_endio() so make_request_fn drivers don't have to do this accounting themselves. [PATCH] make MO drive work with ide-floppy/ide-cd Resend of the ide-cd buggy debug check removal. From der.eremit@email.de. [PATCH] shrink deadline hash size Limit deadline hash to 32 entries instead of 1024. This has been benched and profiled extensively and shows no increased system time. Also, move "hot" entries to the front of the list. [PATCH] dynamic request allocation This patch adds dynamic allocation of request structures. Right now we are reserving 256 requests per initialized queue, which adds up to quite a lot of memory for even a modest number of queues. For the quoted 4000 disk systems, it's a disaster. Instead, we mempool 4 requests per queue and put an upper limit on the number of requests that we will put in-flight as well. I've kept the 128 read/write max in-flight limit for now. It is trivial to experiement with larger queue sizes now, but I want to change one thing at the time (the truncate scenario doesn't look all that good with a huge number of requests, for instance). Patch has been in -mm for a while, I'm running it here against stock 2.5 as well. Additionally, it actually kills quite a bit of code as well [PATCH] Correct typo in linux/scsi/scsi.h and introduce new I notice we seem to have a typo in the SAM_ status codes (they say IMMEDIATE where they mean INTERMEDIATE). I've also introduced a new macro who's job is to return true if any of the possible good return codes is found. This means SAM_STAT_GOOD SAM_STAT_INTERMEDIATE SAM_STAT_INTERMEDIATE_CONDITION_MET and for now SAM_STAT_COMMAND_TERMINATED By and large, this is currently irrelevant to us, since we don't use linked commands and I've never met a device using COMMAND TERMINATED, but it may help us in the future. [PATCH] switch sb1000 to new style net init & pnp This cleans up the driver big time and gets rid of a big ugly wart in setup.c. Note that I don't have the hardware so this is only compile-tested. [PATCH] irq fixes for wavelan_cs/netwave_cs This patch for 2.5.68-bk11 will fix the irq handler of some obsolete wireless drivers (wavelan, wavelan_cs and netwave_cs) plus assorted fixes. All those drivers have been tested on a SMP box. [PATCH] Wireless Extension 16 This patch for 2.5.68-bk11 will update Wireless Extension to version 16 : o increase bitrate and frequency number for 802.11g/802.11a o enhanced iwspy support o minor tweaks and cleanups This patch is only for the core of WE. The patches for the individual drivers have been sent to their respective maintainers. Compared to the previous version I sent you a few weeks ago, I've just updated to the latest kernel. [PATCH] WE-16 for Wavelan ISA driver This update the Wavelan ISA driver for Wireless Extension 16 (going with my previous patch). [PATCH] WE-16 for Wavelan Pcmcia driver This patch update the Wavelan Pcmcia driver for Wireless Extensions 16, and also remove all the backward compatibility cruft that is broken anyway. [PATCH] Update mac ethernet drivers This patch updates the bmac and mace ethernet drivers so that their interrupt routines return an irqreturn_t, and updates the bmac driver to use a spinlock rather than global cli/sti. [PATCH] better ali1563 integrated ethernet support it turns out the tulip driver is a much better driver for the integrated ali1563 ethernet than the dmfe driver... the dmfe driver gets tx timeouts every ~15s and can't receive over 5MB/s. but with the small tulip patch below i'm seeing 11MB/s+ in both directions without problems. [PATCH] depca update (was Re: [Patch] DMA mapping API for Alpha) this patch has been sleeping in Alan tree for quite some time. It updates the depca driver to the EISA/sysfs API, gets rid of check_region, and properly reserve memory region. Patch is against latest BK. [bk] add useful tip to bk kernel howto Kudos to Wayne Scott @ BitMover for this. [PATCH] restore sysenter MSRs at APM resume This changes apm.c to invoke suspend.c's save and restore processor state procedures around suspends, which fixes the SYSENTER MSR problem. The patch also decouples sysenter.c from SOFTWARE_SUSPEND: the variables used (only!) in suspend_asm.S are moved there, and the include file now declares the procedures called from apm.c (previously they were only called from suspend_asm.S). [PATCH] fix lost IDE interrupt problem Alan and I were investigating this, but we don't know why the problem occurs. This reverts the previous handling of masked_irq, and fixes the problem. Fix thinko introduced into include/scsi/scsi.h SAM_STAT_* are return codes, not bitmaps [ALPHA] Fix titan_intr_nop for 2.5 irq api changes. [IPV4/IPV6]; Missing schedule_net() in inet{,6}_del_protocol. [NETFILTER]: Fix stale skb data pointer usage in ipv4 NAT. [AGPGART] add checks to agp_copy_info() before dereferencing. Spotted by Andi Kleen with AGPless IOMMU setup. [IPV6]: Missing sk->family check in UDPv6 multicast handling. Bartlomiej says: 'Please revert this patch, it is unfinished.' We'll do it *after* IDE taskfile IO is done Cset exclude: axboe@suse.de|ChangeSet|20030511184946|49736 [PATCH] more kbuild tweaks] This fixes a typo reported by Geert, and more significantly fixes static linking so that it works even when only the device side of USB is enabled, and the host side (CONFIG_USB) isn't. [PATCH] Fix big-endian USB gadget build Initializers must be constant expressions, and thus we can't use the complex expression "cpu_to_le*()" - the end result of which may have a constant _value_ but the expression itself isn't a constant expression. So use the explicitly constant "__constant_cpu_to_*()" expression instead. [netdrvr] remaining irqreturn_t changes [NETFILTER]: Move ip_fw declarations into header file. [SPARC]: Fix shadowing of global max_pfn, kill BOOTMEM_DEBUG. [SPARC]: Allow esp to use highmem_io on sparc32. [SPARC]: New compact show_regs format. [PATCH] two more templates in headers I missed aic7xxx_old and cciss_scsi. For the first it's the trivial move, for the second it's the patch to move to scsi_add_host & friend as already ACKed by Steve when he still was cciss maintainer. [PATCH] Fix ioperm bitmap This makes sure that the ioperm bitmap in the TSS is correctly set up during the first ioperm() call. Without this the TSS bitmap contains random garbage until the next context switch. ACPI: kobject fix (Greg KH) Here's a small patch that fixes the logic of the kobject creation and registration in the acpi code (since we use kobject_init(), we need to use kobject_add(), not kobject_register() to add the kobject to the kernel systems). ACPI: Allow ":" in OS override string (Ducrot Bruno) ACPI: Interpreter update to 20030509 Changed the subsystem initialization sequence to hold off installation of address space handlers until the hardware has been initialized and the system has entered ACPI mode. This is because the installation of space handlers can cause _REG methods to be run. Previously, the _REG methods could potentially be run before ACPI mode was enabled. Fixed some memory leak issues related to address space handler and notify handler installation. There were some problems with the reference count mechanism caused by the fact that the handler objects are shared across several namespace objects. Fixed a reported problem where reference counts within the namespace were not properly updated when named objects created by method execution were deleted. Fixed a reported problem where multiple SSDTs caused a deletion issue during subsystem termination. Restructured the table data structures to simplify the linked lists and the related code. Fixed a problem where the table ID associated with secondary tables (SSDTs) was not being propagated into the namespace objects created by those tables. This would only present a problem for tables that are unloaded at run-time, however. Updated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE type as the length parameter (instead of UINT32). Solved a long-standing problem where an ALREADY_EXISTS error appears on various systems. This problem could happen when there are multiple PCI_Config operation regions under a single PCI root bus. This doesnt happen very frequently, but there are some systems that do this in the ASL. Fixed a reported problem where the internal DeleteNode function was incorrectly handling the case where a namespace node was the first in the parents child list, and had additional peers (not the only child, but first in the list of children.) [DRM] Intel i8xx DRM modules are dependant on their AGP counterparts. Closes bugzilla #646 Use '#ifdef' to test for CONFIG_xxx variables, instead of depending on undefined preprocessor symbols evaluating to zero. Make smpboot.c look like ANSI C with proper function declarations. Add user pointer annotations. Use '#ifdef' to test for CONFIG_xxx variables, instead of depending on undefined preprocessor symbols evaluating to zero. Make panic.c use proper function prototypes. Add user pointer annotations to core sysctl files. [BRIDGE]: Bridge timer performance enhancement. [NET]: Network packet type using RCU. * packet type converted from linked list to list_macro * writer lock replaced with spin lock, readers use RCU * add __dev_remove_pack for callers that cant sleep. * af_packet changes to handle and sleeping requirements, and possible races that could cause. [BRLOCK]: Kill big reader locks, no longer used. [IPV4/IPV6]: synchronize_kernel --> synchronize_net. [BRLOCK]: Kill stray brlock.h references in sparc/sparc64 headers. [IPSEC]: Implement proper IPIP tunnel handling for IPcomp. [CRYPTO]: Fix config dependencies. [IPV4]: Introduce ip6_append_data. Add user pointer annotations to socket, file IO and signal handling. This pointed out a bug in x86 sys_rt_sigreturn(), btw. [PATCH] Add ia64 relocation types to elf.h and clean up There is a _lot_ of stuff in linux/elf.h that shouldn't be there. This moves the arch-specific stuff in linux/elf.h into the corresponding asm header files. [IPV6]: Fix two bugs in ip6_append_data changes. - Export ip_generic_getfrag - In udp6 increment v6 udp statistics not v4 one kobject: Update Documentation From Geert Uytterhoeven. [NET]: wireless.c needs module.h [NETFILTER]: ip_ct_gather_frags no longer needs to linearize. [PKT_SCHED]: sch_ingress.c does not need to linearize SKBs. [PCMCIA] Add per-socket thread to process socket events. Add a per-socket kernel thread, which is responsible for processing insertion, removal, battery status and ready status changes. We also add a semaphore to prevent multiple threads trying to change the socket suspend/present state. This will allows us to eliminate the per-socket work queues, and will allow us to handle the card insertion without resources cleanly. [PATCH] scsi_host sysfs updates fix release behaviour Fix scsi sysfs init so that a scsi_unregister can be called anytime after a scsi_register. - Create scsi_sysfs_init_host function and call from scsi_register. drivers/scsi/hosts.c | 4 ++-- drivers/scsi/scsi_priv.h | 1 + drivers/scsi/scsi_sysfs.c | 25 ++++++++++++++++--------- 3 files changed, 19 insertions(+), 11 deletions(-) Fix use after free in scsi_host_put put_device will call release and free the host structure (which contains both the generic device and the host class). We must do the class_device_put() *before* the put_device(). driver model: Set device's kset before calling kobject_add(). Suggested by James Bottomley, and technically correct. We want the kset of the kobjects to be set before we call kobject_add() so we can access the kset's release method when the object is deleted. [ARM] Update a variety of ARM drivers to use irqreturn_t. Add user pointer annotations to mtrr driver. Fix do_utimes() user pointer annotations. Make sys_open() declaration match definition. Don't use undefined preprocessor symbols in expressions. o wanrouter: add missing include module.h [PATCH] Use '#ifdef' to test for CONFIG_xxx variables Don't depend on undefined preprocessor symbols evaluating to zero. [RXRPC]: Put file_operations THIS_OWNER in correct place. [NET]: nonet.c needs module.h [IPV4/IPV6]: Consolidate saddr resetting into inet_reset_saddr(). [XFRM]: Fix typo in __xfrm4_find_acq. [PATCH] more potentially undefined preprocessor symbols Here are three more fixes which I missed in the previous patch. Remove extraneous NO_MATCH Fix broken aic7xxx preprocessor conditional (that's not how C preprocessor expressions work, guys!) [PATCH] enable slab debugging for larger objects Some of the fancier slab debugging options are disabled for caches whose objects are larger than PAGE_SIZE/8, for speed/fragmentation reasons. But this patch turns up bugs in the size-2048 slab, so it was a bad idea. Enable the debugging for slabs up to 4096 bytes. [PATCH] Remove __verify_write leftovers From: Taral Looks like the recent access_ok fixes broke building of i386. __verify_write is still referenced in a couple places. [PATCH] hrtimers: fix timer_create(2) && SIGEV_NONE From: george anzinger - Fix the sig_notify filtering code for the timer_create system call to properly check for the signal number being small enought, but only if SIG_NONE is not specified. - Eliminate useless test of sig_notify. [PATCH] implement module_arch_cleanup() in all architectures From: Rusty Russell , David Mosberger The patch below updates the other platforms with module_arch_cleanup(). Also, I added more debug output to kernel/module.c since I found it useful to be able to see the final section layout. [PATCH] remove devfs_register From: Christoph Hellwig Whee! devfs_register isn't used anymore in the whole tree and with it some other devfs crap. Kill it for good. [PATCH] fix pnp_test_handler return It looks like I guessed wrong on this one. [PATCH] fat cluster search speedup From: Bjorn Stenberg OGAWA Hirofumi This simple patch makes the linux fat filesystem driver use the next_cluster field in the fat_boot_fsinfo structure. This field is a hint where to start looking for free clusters. Using this field makes a big difference for disks connected over slow links such as USB 1.1. Finding the first free cluster on a 40gig fat-formatted usb disk can today take several minutes. This patch cuts it down to a fraction of a second. Also, commit the next_cluster search hint toand from the superblock in write_super/fill_super. [PATCH] Fix for vma merging refcounting bug From: "Stephen C. Tweedie" When a new vma can be merged simultaneously with its two immediate neighbours in both directions, vma_merge() extends the predecessor vma and deletes the successor. However, if the vma maps a file, it fails to fput() when doing the delete, leaving the file's refcount inconsistent. [PATCH] Commented out printk causes change in program flow in From: Zwane Mwaikambo Commented out printk causes change in program flow in cpufreq/p4-clockmod.c [PATCH] small cleanup for __rmqueue From: Zwane Mwaikambo Removes an extra initialisation and general nitpicking. [PATCH] export cpufreq_driver to fix oops in proc interface From: Zwane Mwaikambo The proc interface has no way of telling wether there is an active cpufreq driver or not. This means that if you don't have a cpufreq supported processor, this will oops in various possible places. [PATCH] Quota write transaction size fix From: Jan Kara I'm sending a patch which changes numbers of blocks reserved for quota writes to more appropriate values (with current values ext3 asserts can be triggered). [PATCH] dquot_transfer() fix From: Jan Kara I'm sending a fix which fixes potential problems (dropping references which were not acquired) when dquot_transfer() fails. [PATCH] Bump module ref during init. From: Rusty Russell __module_get is theoretically allowed on module inside init, since we already hold an implicit reference. Currently this BUG()s: make the reference count explicit, which also simplifies delete path. Also cleans up unload path, such that it only drops semaphore when it's actually sleeping for rmmod --wait. [PATCH] exit_mmap() TASK_SIZE fix exit_mmap() currently assumes that the exitting task used virtual address span TASK_SIZE. But on some platforms, TASK_SIZE is variable, based on current->mm. But exit_mmap() can be called from (say) procfs's call to mmput. In which case current->mm has nothing to do with the mm which is being put in mmput(). So rather than assuming that the mm which is being put is current->mm, we need to calculate the virtual span of the mm. Add a new per-arch macro MM_VM_SIZE() for that. Some platforms can currently go BUG over this (where?). sparc64 is safe because our TASK_SIZE is constant. Platforms such as ia64 should stick the VM extent inside of mm_struct, I'd suggest adding it to mm_context_t. 1) TASK_SIZE means what is valid for mmap()'s in the processes address space 2) MM_VM_SIZE means where things might be mapped for a MM, including private implementation-specific areas created by the kernel which the user cannot access [PATCH] semop race fix From: Mingming Cao Basically, freeary() is called with the spinlock for that semaphore set hold. But after the semaphore set is removed from the ID array by calling sem_rmid(), there is no lock to protect the waiting queue for that semaphore set. So, if a waiter is woken up by a signal (not by the wakeup from freeary()), it will check the q->status and q->prev fields. At that moment, freeary() may not have a chance to update those fields yet. static void freeary (int id) { ....... sma = sem_rmid(id); ...... /* Wake up all pending processes and let them fail with EIDRM.*/ for (q = sma->sem_pending; q; q = q->next) { q->status = -EIDRM; q->prev = NULL; wake_up_process(q->sleeper); /* doesn't sleep */ } sem_unlock(sma); ...... } So I propose move sem_rmid() after the loop of waking up every waiters. That could gurantee that when the waiters are woke up, the updates for q->status and q->prev have already done. Similar thing in message queue case. The patch is attached below. Comments are very welcomed. I have tested this patch on 2.5.68 kernel with LTP tests, seems fine to me. Paul, could you test this on DOTS test again? Thanks! [PATCH] visws: fix penguin with sgi logo From: Andrey Panin attached patch fixes penguin with sgi framebuffer logo for visws subarch. It was broken in 2.5.68 IIRC. [PATCH] fix for clusterd io_apics From: Keith Mannthey The following is a patch to fix inconsistent use of the function set_ioapic_affinity. In the current kernel it is unclear as to weather the value being passed to the function is a cpu mask or valid apic id. In irq_affinity_write_proc the kernel passes on a cpu mask but the kirqd thread passes on logical apic ids. In flat apic mode this is not an issue because a cpu mask represents the apic value. However in clustered apic mode the cpu mask is very different from the logical apic id. This is an attempt to do the right thing for clustered apics. I clarify that the value being passed to set_ioapic_affinity is a cpu mask not a apicid. Set_ioapic_affinity will do the conversion to logical apic ids. Since many cpu masks don't map to valid apicids in clustered apic mode TARGET_CPUS is used as a default value when such a situation occurs. I think this is a good step in making irq_affinity clustered apic safe. [PATCH] provide user feedback for emergency sync and remount People like to see when the emergency sync and emergency remount operations have completed. [PATCH] copy_process return value fix Rather than assuming that all the things which copy_process() calls want to return -ENOMEM, correctly propagate the return values. This turns out to be a no-op at present. [PATCH] de_thread memory corruption fix From: Manfred Spraul de_thread calls list_del(¤t->tasks), but current->tasks was never added to the task list. The structure contains stale values from the parent. switch_exec_pid() transforms a normal thread to a thread group leader. Thread group leaders are included in the init_task.tasks linked list, non-leaders are not in that list. The patch adds the new thread group leader to the linked list, otherwise de_thread corrupts the task list. [PATCH] vmalloc race fix From: William Lee Irwin III The new vmalloc() semantics from 2.5.32 had a race window. As things stand, the presence of a vm_area in the vmlist protects from allocators other than the owner examining the ptes in that area. This puts an ordering constraint on unmapping, so that allocators are required to unmap areas before removing them from the list or otherwise dropping the lock. Currently, unmap_vm_area() is done outside the lock and after the area is removed, which as we've seen from Felix von Leitner's test is oopsable. The following patch folds calls to unmap_vm_area() into remove_vm_area() to reinstate what are essentially the 2.4.x semantics of vfree(). This renders a number of unmap_vm_area() calls unnecessary (and in fact oopsable since they wipe ptes from later allocations). It's an open question as to whether this is sufficiently performant, but it is the minimally invasive approach. The more performant alternative is to provide the right API hooks to wipe the vmalloc() area clean before removing them from the list, using the ownership of the area to eliminate holding the vmlist_lock for the duration of the unmapping. If it proves to be necessary wli is on standby to implement it. [PATCH] Reserve the ext2/ext3 EAs for the Lustre filesystem From: Andreas Dilger Below are the patches which reserve the Lustre EA index. The rest of the code is part of the Lustre tree, which isn't working with 2.5 yet. [PATCH] Fix arch/i386/oprofile/init.c build error From: John M Flinchbaugh this patch makes arch/i386/oprofile/init.c build. [PATCH] Fix ext3 htree / NFS compatibility problems Patch from "Theodore Ts'o" The following patch should (in theory) fix the htree/NFS readdir problems that people have reported. Specifically, it should fix the NFS looping on EOF problem with readdir, as well as the problems caused by coverting a directory to HTREE while an NFS readdir is in progress problem. I'd appreciate it if people who can easily replicate these NFS/htree problems could give this patch (against BK-recent / 2.5.63) a whirl. Thanks!! [PATCH] htree nfs fix Patch from "Theodore Ts'o" We now use 0x7ffffff as the EOF cookie, because Linux NFS stupidly interprets the cookie (which is supposed to be a bag of bits without necessarily any semantic value) as a signed 64 bit integer, and then converts it to a unsigned integer, and then blows up if it cannot be expressed be expressed as a 32-bit value!! In order to do this, we have to fold the hash value 0x7ffffff into the hash value 0x7ffffffe. This is relatively safe; the only time we will lose if the directory contains filenames that hash to both 0x7ffffffe and 0x7fffffff (under the original hash), and the last directory entry which hashes to 0x7ffffffe is at the end of a leaf block, and the first directory entry which hashes to 0x7fffffff is at the beginning of a leaf block. [PATCH] ext3: htree memory leak fix From Alex Tomas We started using ext3_dx_readdir() for all dir_index filesystems, because we want to return entries in hash order always, so that readdir with a partial read + new entry added before next readdir won't be crazy. So we now need to free the structure at filp->pricate_data even against non-indexed directories. o ipv4/ipv6: use ipv6_addr_copy where appropriate [ARM] Allow CONFIG_PM to be enabled on all ARM platforms [ARM PATCH] 1533/1: fix count when no preload support in copy_page Patch from Nicolas Pitre Of course, the PLD macro is always defined even if it's empty. Without this fix anything below ARMv5 is broken. [ARM PATCH] 1530/1: PXA2xx IRQ handling updates From: Nicolas Pitre. (manual entry since bk openlogging crapped out again) [ARM PATCH] 1531/1: optimized ffs/ffz/fls for ARMv5 Patch from Nicolas Pitre [ARM] Fix timer interrupts to use irqreturn_t Also remove uninitialised variable warning and update mach-types. [ARM] Add prefetch support for ARMv5. [ARM] Fix test_bit to return 0 or 1. [ARM] Remove static mappings for Integrator PS/2 ports. Request the memory region used for the keyboard and mouse ports, and ioremap. [ARM] switch ptrace to use an undefined instruction This avoids a problem with the original ptrace code using a system call (SWI) to implement single stepping; programs such as ltrace do not expect to receive system call trace traps when breakpoints are hit. Fix readlink of dfs junctions Don't make the intel-AGP driver require an AGP capabilities pointer. The integrated graphics AGP things don't have one. [ARM] Convert more structure initialisers to C99 syntax. [PATCH] i2c: piix4 driver: turn common error message to a debug level and rename the sysfs driver name. [PATCH] USB: fix jiffies warning in uss720.c [PATCH] USB: patch to fix up coding style violations [PATCH] USB: rm debug printks in ehci and ohci These two debug messages weren't supposed to be left in, they're just noise. [PATCH] USB: another usb storage addition [PATCH] USB: fix for multiple definition of `usb_gadget_get_string' [PATCH] USB: net2280 minor updates This patch: - Lets cleanup happen after devices disconnect - Creates/uses a module "fifo_mode" option - Handles the fifo_status request a bit better [PATCH] USB: net2280, PPC fixes Minutes after I sent the previous patch, Gordon Strachan sent me some big-endian fixes (for PPC). [PATCH] USB: fix break control for pl2303 driver Thanks to Martin Evans for pointing this out. [NETFILTER]: Teach ip_fw_compat and modules to handle non-linear SKBs. Much help provided by Rusty Russell in fixing device leak and TOS modification handling bugs. [PATCH] USB: Happ UGCI added as BADPAD for workaround Greg, I sent these patches to Vojtech, and haven't heard anything back, but they are straight forward. One simply backports the BADPAD handling to 2.4, and both patches add Happ UGCI joysticks under the BADPAD workaround. Add user pointer annotations to core filesystem routines. [IPV6]: Check output fragmentation using dst_pmtu not dev->mtu. [PATCH] i2c: Add SiS96x I2C/SMBus driver This patch adds support for the SMBus of SiS96x south bridges. It is based on i2c-sis645.c from the lm sensors project, which never made it into an official kernel and was anyway mis-named. This driver works on my SiS 645/961 board vs w83781d. [AIC7XXX]: Only build in biosparam function if actually used. [IPV6]: Fix ipv6_addr_copy warning in ah6.c. Make x86 user-copy have user pointer annotations to match declarations. Add a few initial user pointer annotations to sound driver. Quite a few suspicious places here that pass kernel pointers to the internal ioctl engine. driver model: Define BUS_ID_SIZE based on KOBJ_NAME_LEN From Ben Collins. driver model: Remove device_sem This was only used to add/remove device from parent's list of children, which we can easily replace with a write lock on the device subsys's rwsem. [PATCH] USB: Fix Kconfig for usb printers On Sun, May 11, 2003 at 09:55:04PM +0200, Kronos wrote: > Hi, > the USB printer module is 'usblp', not 'printer': > [IPV6]: Missing kmem_cache_destroy calls. [ATM]: Make clip modular. [NET]: netif_receive_skb() warning fix. [ATM]: Fix macro pasting in HE driver. [SPARC64]: Update defconfig. [CPUFREQ] missing export compile fix for powernow-k7 [PATCH] Console font size fix The font size needs to be set for all terminals. This was the bug that was causing dual head (vga and mda) to lock up. [PATCH] Remove EDID parsing This removes EDID support for VESA. The EDID code needs more developement which can be done on the side. The results where mixed. It worked for some but not for others. [PATCH] Riva Framebuffer update. This kills off warnings about unused variables. [PATCH] Framebuffer console fix This fixes a oops that happens when we map a framebuffer device to a non-existant console. set_con2fb_map wasn't testing to see the VC we where mapping to actually exist. Now it does. I also added code to fbcon_cursor to reset the hotspot if it was changed by userland. o ipv4/ipv6: call tcp_timewait_kill in tcp_tw_deschedule After all calls to tcp_tw_deschedule we had a call to tcp_timewait_kill, move it to the end of tcp_tw_deschedule and unexport tcp_timewait_kill, making it static. [AGPGART] PPC Uninorth support. By Paul Mackerras and BenH [AGPGART] Move AGP PM to individual drivers. From Christoph Hellwig. This is a lot cleaner by using the proper PCI PM infrastructure and also fixes the breakage with the non-PCIish bridges on alpha and ia64 [AGPGART] Add printk's to error paths of agp_add_bridge [PATCH] bio walking code Add bio traversal functionality. This is a prereq for doing ide multiwrites safely and sanely. Patch was originally done by Suparna, Bartlomiej picked it up and changed the design somewhat. From Bart: Main idea is now reversed - instead of introducing rq->hard_bio as pointer for bio to be completed and using rq->bio as pointer for bio to be submitted, rq->cbio is introduced for submissions and rq->bio is used for completions This minimizes changes to block layer and assures that all existing block users are not affected by this patch. [PATCH] ide minimum 48-bit support This is the small patch that we all agreed on. With this patch, we do nice big writes/reads on ide disks that support 48-bit lba. [PATCH] remove ide-cd chatty errors Quiet down the TEST_UNIT_READY commands, we know these may fail (that's the whole purpose of the command :-). [PATCH] Fix scsi_ioctl command direction bits With the dynamic request allocation, we get the direction bits set for us. This breaks the scsi_ioctl stuff, since we always pass in WRITE there. So actually pass in the right direction instead. [PATCH] ide tcq fixes This fixes a few problems with ide tcq, I don't know of any other known ones (and it is solid here, survives ours of beating on it). Basically: - Don't enable tcq if the drive isn't alone on the channel. This raises all sorts of fun that really requires hardware support (auto poll), or it's going to _suck_. I never wanted to do that, and no hardware I know of supports auto-poll. - Introduce a drive blacklist so we don't enable tcq on known broken drives. Or enable with restrictions on some models. - Add a check for pdc4030, apparently tcq doesn't work there (hell knows who would be crazy enough to pull such a stunt). [PATCH] USB: net2280 writel fix This driver is doing a writel to some random u32, rather than to a device register. [AF_KEY]: Force km.state to XFRM_STATE_DEAD in pfkey_msg2xfrm_state. [NET]: Fix two bogus kfree(skb). [AGPGART] Remove duplicated masking routines, replace with agp_generic_mask_memory() [AGPGART] Whitespace/CodingStyle cleanups [NET]: Fix sb1000.c build. o af_netlink: netlink_proto_init has to be core_initcall As it has to happen before pktsched_init, that is called from net_dev_init that is a subsys_initcall, making it the same init level as netlink_proto_init, that ends up being called _after_ net_dev_init, so when pktsched_init is called it finds rtnetlink_links[PF_UNSPEC] as null and therefore not sets the ->dumpit entry for RTM_GETQDISC (and the others too): b00m, rtnetlink_rcv sends a failure message to tc. [RTNETLINK]: extern __inline__ --> static inline. [TCP]: extern __inline__ --> static inline where appropriate. [IPV6]: extern __inline__ --> static inline. [IPV4]: Fix ip_finish_output extern decl. [AX25]: extern inline --> static inline. [NET]: dev_load extern inline --> static inline. [APPLETALK]: extern inline --> static inline. [PKT_SCHED]: extern inline --> static inline [AF_UNIX]: extern inline --> static inline [NETROM]: Fix netdevice leak, from 2.4.x [PATCH] Fix types on inflate.c constants This patch from Alan went into 2.4 last august with the comment "get the types right on the lib/inflate.c constants" [PATCH] Preemption fixes for x86 MSR driver. wrmsr is ok, but needs cleans up, second part (rdmsr) is currently broken. [PATCH] Avoid ide-scsi from starting DMA too soon This went into 2.4 with the following comments.. ide-scsi driver starts DMA as soon as it writes the ATAPI PACKET command in command register and before sending the ATAPI command. This will cause problems on many drives. Right way to do it is to start DMA after sending the ATAPI command. I am attaching a patch that fixes this. This patch will allow many more CD-RW drives to work reliably in DMA mode than do today Alan's comment to this diff previously.. "Thats the least of the 2.5 ide-scsi problems, but yes its probably one to add" [PATCH] i8253 locking. There are still a few places where we play with the RTC directly, with no locking. This catches some of them. [PATCH] sx memleak. [PATCH] Fix ISDN return types. [PATCH] Fix standards compliance bugs in the tty layer This went into 2.4 back last August with the comment in $subject. [PATCH] pcwatchdog firmware memory leak [PATCH] iphase fix. This went into 2.4 nearly a year back with the wonderfully descriptive "Fix from maintainer" comment. [PATCH] ASUS P4B SMBus quirks. From Dominik Brodowski, comments says it all.. [PATCH] typo [PATCH] Fix pnpbios switch Erk, that's a really funny looking switch. Every case fell through.. [PATCH] copy_to_user check for sgiserial [PATCH] fix module-init-tools ver_linux problem. Patch from Steven Cole to fix up ver_linux output on a system with no module-init-tools, just modutils. As noted in bugzilla #267 and at http://marc.theaimsgroup.com/?l=linux-kernel&m=104492524815220&w=2 [PATCH] Shorten rcu_check_quiescent_state. Single spin_unlock path cuts this down a little.. [PATCH] byte counters for mkiss From 2.4 from way back 13 months ago.. [PATCH] shorten rclan debug output From 2.4 long long ago. [PATCH] i810 no codec fix. Syncs up with 2.4 [PATCH] shrink zonelists. Originally from Matt Dobson. I've been running with this for a while in -dj, with no noticable side-effects. Matt: node_zonelists looks like it should really be declared of size MAX_NR_ZONES, not GFP_ZONEMASK. GFP_ZONEMASK is currently 15, making node_zonelists an array of 16 elements. The extra zonelists are all just duplicates of the *real* zonelists, namely the first 3 entries. Again, if anyone can explain to me why I'm wrong in my thinking, I'd love to know. There's certainly no way you could bitwise-and something with any combination of the GFP_DMA and GFP_HIGHMEM flags to refer to the 12th zonelist or some such! Or am I crazy? [SUNHME]: Use PCI config space if hm-rev property does not exist. [AGPGART] pci_driver structures must remain valid while they are registered. Spotted by Russell King. [ARM] Fix SA1100_ir irqreturn_t. [ARM] Fix RiscPC i2c drivers for device model. These drivers got missed when the i2c subsystem was converted to the device model. driver model: Add resources to struct platform_device. From Russell King: The location and interrupt of some platform devices are only known by platform specific code. In order to avoid putting platform specific parameters into drivers, place resource and irq members into struct platform_device. [PATCH] ipmi warning fixes CPU flags are unsigned long. [PATCH] sound/core comparison fix From: Hal Duston This fixes a bug that appears to have crept in between 2.5.69-mm1 and 2.5.69-mm2 with the "switch most remaining drivers over to devfs_mk_bdev" patch [PATCH] pass the stack protection flags into put_dirty_page() put_dirty_page() currently assumes PAGE_COPY for the stack page's ptes. But for x86_64 (at least) this is not the case. The patch adds the extra arg to put_dirty_page(), updates all callers and fixes x86_64. [PATCH] fix hugetlbpage scoping From: norbert_wolff@t-online.de (Norbert Wolff) In arch/i386/mm/hugetlbpage.c htlbzone_pages and htlbpage_freelist are declared static at the Top of the File and later in set_hugetlb_mem_size() as extern. gcc-3.4 does not accept this conflict. [PATCH] DAC960 typedef cleanup patch From: Dave Olien I'm forwarding this patch to the DAC9690 driver from Christoph. I've applied it to the 2.5.69 DAC960 driver, compiled it, and ran it through some tests on both V1 and V2 type controllers. It looks good. [PATCH] loop.c warning removal From: Rusty Russell loop.c has one of those places where manipulating own refcounts is safe: to get into the ioctl handler you need to have the device open, so that holds a refcount already (verified that this actually happens). The compile warning is irritating. [PATCH] mtrr warning fix From: Faik Uygur : mtrr_file_del() is using the wrong thing for fcount. This causes it to print mtrr: MTRR 2 not used" twice when exiting X. [PATCH] SMI clearing fix From: john stultz I've been having problems with ACPI on a box here in our lab. Some of our more recent hardware requires that SMIs are routed through the IOAPIC, thus when we clear_IO_APIC() at boot time, we clear the BIOS initialized SMI pin. This basically clobbers the SMI so we can then never make the transition into ACPI mode. This patch simply reads the apic entry in clear_IO_APIC to make sure the delivery_mode isn't dest_SMI. If it is, we leave the apic entry alone and return. With this patch, the box boots and SMIs function properly. [PATCH] Make debugging variant of spinlocks a bit more robust From: Petr Vandrovec While I was trying to hunt down problem with spin_lock_irq in send_sig_info, I noticed that debugging spinlocks are a bit unusable. The problem is that these spinlocks first print warning, and then decrement babble. So if the lock is used by printk code (like runqueue lock was), we get nothing, just a lockup or a double fault... When we first decrement babble and then print the error message we can break this unfortunate situation and the error message (5 of the same...) appear on screen. [PATCH] fix lots of error-path memory leaks From Badari Pulavarti. Fixes lots of error-path memleaks which the Stanford guys found. [PATCH] miropcm20-rds.c build fix It needs fs.h for struct inode. [PATCH] synclink_cs update From: Paul Fulghum * Remove PCMCIA release from timer context * Add irqreturn_t to ISR * Add dosyncppp module parameter [PATCH] remove some cruft from smp.h From: Christoph Hellwig Remove smp.h leftovers. From the ia64 tree. [PATCH] ->llseek returns loff_t, even for /dev/mem From: Christoph Hellwig memory_lseek() should return a loff_t. [PATCH] visws: fix for generic-subarch From: Andy Wihitcroft The generic-subarch patch broke visws builds. [PATCH] fix bug in drivers/net/cs89x0.c:set_mac_address() From: Bernardo Innocenti the following patch fixes a bug in the CS89xx net device which would set new MAC address through SIOCSIFHWADDR _only_ when net_debug is set, which is obviously not what it was meant to do. The original code bogusly interpreted the addr argument as a buffer containing the MAC address instead of a struct sockaddr. [AGPGART] nForce driver needs its own insert/remove routines. These can't use the generic routines due to alignment issues. [AGPGART] Fix oops in VIA initialisation. From Christoph. o wanrouter: don't use typedefs for wan_device, just struct wan_device [PATCH] Allow architecture to overwrite stack flags This is a bit neater. o wanrouter: kill netdevice_t, do as all the rest of the tree, use struct net_device driver model: Modify resource representation in struct platform_device. This way, we can easily handle devices that contain an arbitrary number of resources reported by the platform. [PATCH] remove fake_sep_struct fake_sep_struct is no longer used. o wan/cycx: typedef cleanup [CRYPTO]: Fix memcpy/memset args. [ATM]: Fix module handling in USB speedtouch driver. [ATM]: Add refcounting to atmdev. [ARM] Update Acorn platform scsi drivers. These were broken by two changes - the removal of the old device model class code, and when scsi device lists appeared. This cset allows these drivers to build again. We also drop some unnecessary code from one of the drivers. [IPV6]: ARCnet support, driver side. [IPV6]: ARCnet support, protocol side. o wan/cycx: fix module refcounting, removing MOD_{INC,DEC}_USE_COUNT o wan/cycx: further cleanups . remove whitespaces . use tabs instead of sequences of 8 spaces . remove the wrappers for write{b,w} & friends . align case entries with corresponding switch statement o wan/cycx: remove more typedefs Also use kernel-doc for struct cycx_hw o wan/cycx: remove the last typedefs, some kernel doc comments o wan/cycx: use min_t and remove one more private MIN() implementation [NET]: Split out policy flow cache to be a generic facility. [ATM]: Allow ATM to be loaded as a module. [ATM]: common.c needs linux/init.h o ipx: remove debug message for successfull bind [ATM]: atm{pvc,svc}_exit cannot be __exit. [NET]: Regenerate flow cache hash rnd more sanely. [NET]: Hoplimit is a metric not a route attribute. [IPV4]: Respect hoplimit route metric. Fix oops caused by lack of spinlock protection on some lists. Fix display of NTFS dfs junctions (which now correctly appear as symlinks). Return writebehind caching errors on file close. o ipx: move route functions to net/ipx/ipx_route.c ACPI: Return only proper values (0 or 1) from our interrupt handler (Andrew Morton) [IPV6]: Add IPCOMP support. Fix up thinko in nasty "NMI while debug while systenter" codepath. The bug was that the NMI stack fixup triggered even if the debug exception had _not_ happened on the exact sysenter entrypoint. The new version should be more robust. [IPV6]: Fix RFC number in ipcomp6.c [ATM]: Fix modular CLIP. [IPV4]: Fix RFC number in ipcomp.c [ARM] Relocate ARM SCSI and Net drivers Move Acorn and ARM SCSI and net drivers to drivers/{net,scsi}/arm. This also allows us to find a reasonable home for other ARM specific net drivers. [ARM] Update cyber2000fb.c - Fix build warnings. - Don't modify region in copyarea method. - Remove FBCON_HAS_CFBx preprocessor tests. - Use runtime test for netwinder mclk parameters. [ARM] Fixup yet another missing irqreturn_t [ARM] Update Acorn IDE drivers. icside.c: - Use C99 structure initialisers. - Use generic DMA API. - Use new hwif->hwif_data rather than hwif->hw.priv. - Add DMA supported/dma supported masks. - Remember the card type for the remove/shutdown methods. - Add shutdown method. rapide.c - ecard_{claim,release} are no longer required. [ARM] Remove .devclass initialiser from sa1111ps2. [ARM] Fix time_after() warnings in ether1.c. [PATCH] Always allocate sense buffer for block commands This always set ->sense for blk_pc_requests(), even if the actual user doesn't care about the sense results. This is a lot nicer than then having to have conditional checks for it all over the place in the low- level drivers. [PATCH] Remove 'strchr' warning from reiserfs Reiserfs emits a warning about strchr being defined but not used. I finally tracked down the reason for this. gcc - when seeing strstr(x, "%") recognized that the second parameter is a char, and therefore uses strchr instead of strstr. The workaround to avoid the warning is to replace the call to strstr with strchr - which is OK. This hides the warning, and brings us down to 6 warnings for a make defconfig bzImage. Make request_module() take a printf-like vararg argument instead of a string. This is what a lot of the callers really wanted. [ARM] Fix DMA handler race condition. This fixes a race condition in the RiscPC DMA code, which causes DMA for a channel to halt due to a race condition between the hardware state machine and the software programming the next DMA buffer. o ipv6/route: fix .dst.metrics struct init for ip6_null_entry Thanks to Andrew Morton for reporting. o ipv6/route: use C99 style init for struct init Also move ft6_dflt_pointer to .bss and use void in ip6_dst_gc as it doesn't take any paramenters [CRYPTO]: Update deflate dependencies. [NETFILTER]: Move skb_ip_make_writable to netfilter.c. o ipv6/addrconf: use C99 struct init style for inet6_rtnetlink_table o ipv6/exthdrs: use C99 struct init style. o ipv6/icmp: use C99 struct style init for tab_unreach o ipv6/ip6_fib: use C99 struct style init and move rt_sernum to .bss [NETFILTER]: Move skb_ip_make_writable symbol export. [IPSEC]: Fix ipv4 ipcomp threshold calculation. [IPV4]: Flush routing cache on sysctl_ip_default_ttl changes. [SPARC]: Keiths SMP patch #1 [SPARC]: Add ->release to ESP driver. [SPARC]: Update defconfig. [SPARC]: Sanitize BUG(). o wanrouter/wanproc: code cleanups . Use seq_puts in places where seq_printf is not needed . remove trailing whitespaces and tabs . remove some unneeded includes . move the space before the third and fourth columns from the values to be inserted to the mask . some other CodingStyle changes o drivers/net/wan/sdla*: use SET_MODULE_OWNER at net_device setup [ATM]: Need to use try_module_get not __module_get. [PATCH] sysfs_create_link() fix It is incorrectly precalculating the string's length. [PATCH] ia32 subarch circular dependency fix From: john stultz This patch fixes a circular dependency (a function in mach_apic.h requires hard_smp_processor_id() and hard_smp_processor_id() requires macros from mach_apic.h) that has been in the subarch code for a bit, but was hacked around with some #ifdefs. With the inclusion of the generic-subarch the hack was dropped and bigsmp and summit promptly broke. So this makes things compile again. [PATCH] genarch cpu_mask_to_apicid fix From: Martin Bligh Add cpu_mask_to_apicid to generic arch to fit with Keith's changes. [PATCH] [patch 4/29 voyager cpu_callout_map fix From: Martin Bligh Change the defn of cpu_callout_map for voyager to volatile to match other stuff. [PATCH] ppp warning fix Fix an accidentally negated comparison. [PATCH] misc fixes - generic_file_open() comment fix (Bill Irwin) - kerneldoc fix in truncate.c (Aniruddha M Marathe) - remove truncate debug check. - page_lock comment fix (Robert Love) - remove unused device mapper label. - 3c509 docco fix ("Mark Tranchant" ) -- Documentation/networking/3c509.txt | 2 +- drivers/md/dm-ioctl.c | 1 - fs/open.c | 2 +- include/linux/fs.h | 2 +- mm/truncate.c | 8 +++----- 5 files changed, 6 insertions(+), 9 deletions(-) [PATCH] large-dma_addr_t-PAE-only.patch From: William Lee Irwin III I was just looking over this and noticed 2.4.x makes u64 dma_addr_t conditional on CONFIG_HIGHMEM64G where 2.5.x uses CONFIG_HIGHMEM. It's clearly not necessary on CONFIG_HIGHMEM4G, hence this obvious patch. [PATCH] 3c59x irqreturn fix Apparently boomerang_interrupt() is generating lots of "nobody cared" warnings - one per packet it seems. Frankly, I don't have a clue why. These are ancient cards and the driver is otherwise stable, so just change it to return IRQ_HANDLED and move on... [PATCH] reiserfs: allow multiple block insertion into the tree I've had these reiserfs patches in -mm for many months. We've been undecided because they trigger bugs in a couple of apps. But those apps are now fixed, so it's best to get these speedups in. From: Oleg Drokin This patch allows insertion of more than one "indirect" block pointer into the tree in reiserfs. (with all the necessary balancing code changes). The first user of that feature is hole-creation code that is now ~1000 times more cpu-efficient for the case of large holes. [PATCH] reiserfs: reiserfs_file_write implementation From: Oleg Drokin With the current 'one block at a time' algorithm, writes past the end of a file are slow because each new file block is separately added into the tree causing shifting of other items which is CPU expensive. With this new implementation if you write into file with big enough chunks, it uses half as much CPU. Also this version is more SMP friendly than the current one. There are some known-bad applications that break with this patch (ie. start to work very slow or even hang). This is because the filesystem returns a large value in the stat.st_blocksize hint (128k instead of 4k). This tickles a small number of application bugs. One is KDE's kmail 3.04 (fixed by upgrading to 3.1+) and the other is sleepycat's database from before 1997. If you hit a slowdown problem that you believe is related to the increased "recommended i/o size" value, try to mount your fs with nolargeio=1 mount option (remount should work too). This patch exports block_commit_write(), generic_osync_inode() and remove_suid() to modules. [PATCH] fix CONFIG_APM=m From: mikpe@csd.uu.se Here is a patch to fix CONFIG_APM=m in 2.5.69-bk11. My patch to have APM restore the systenter MSRs failed to handle the modular case, which fails with unresolved symbols. Since suspend.o is used from both APM (module or built-in) and ACPI sleep (built-in), I made suspend.o built-in and dependent on CONFIG_PM. [PATCH] Fix for latent bug in vmtruncate() From: "Paul E. McKenney" The vmtruncate() function shifts down by PAGE_CACHE_SHIFT, then calls vmtruncate_list(), which deals in terms of PAGE_SHIFT instead. Currently, no harm done, since PAGE_CACHE_SHIFT and PAGE_SHIFT are identical. Some day they might not be, hence this patch. I also took the liberty of modifying a hand-coded "if" that seems to optimize for files that are not mapped to instead use unlikely(). [PATCH] v4l: #1 - video-buf update From: Gerd Knorr This minor patch updates the video-buf module. It just adds a export for the videobuf_next_field function and adds some debug printk's. [PATCH] v4l: #2 - v4l1-compat update From: Gerd Knorr This patch updates the v4l1-compat module. Changes: * use f_op->poll() instead of do_select() * reduce stack usage of the v4l1_translate_ioctl() function. * misc minor fixes here and there. [PATCH] v4l: #4 - bttv docmentation update From: Gerd Knorr This patch updates the bttv documentation. [PATCH] v4l: #5 - i2c module updates. From: Gerd Knorr This patch updates a number of video4linux-related i2c modules. There are a number of bugfixes which accumulated over time, also some no-op i2c changes due to merging the i2c cleanups back into my tree and tweak them to make the modules compile on both 2.5.x and 2.4.x. [PATCH] v4l: #6 - tuner module update From: Gerd Knorr This patch updates the tv card tuner module. It adds support for a new tuner and has some minor fixes + cleanups. Also deletes some dead code. [PATCH] v4l: #7 - saa7134 driver update From: Gerd Knorr Yet another big one (due to not being updated for a long time) -- saa7134 driver update. Changes: * various bugfixes / cleanups. * new cards added to the cardlist. * started support for saa7133/35 chips. * make the driver check pci quirks. [PATCH] fix tuner.c and tda9887.c From: Shane Shrybman Attached are two patches that make bttv compile and work in 2.5.69-mm6. I think this broke in -mm4. [PATCH] radeonfb.c 64-bit fixes From: David Mosberger Don't truncate the ioremap return value to 32-bits. [PATCH] use %p to print pointers in cs4281 From: Christoph Hellwig This is a really old patch from the IA64 tree and as Cirrus Logic doesn't maintain the driver anymore for about two years now no one picked it up.. [PATCH] memcpy/memset fixes Fix some places which were doing memcpy(to, from, sizeof(to)); and memset(to, 0, sizeof(to)); Found by the Stanford checker. [PATCH] BUG() -> BUG_ON() conversions. From: davej@codemonkey.org.uk Various performance critical sections. The increased cache footprint may be a pessimisation, especially on earlier CPUs where unlikely() doesn't do anything useful, and we fall back to trusting gcc to DTRT. [PATCH] 3c59x: add support for 3c905B-T4, 3C920B-EMB-WNM A couple of new PCI IDs which were found in 3com's driver by Xose Vazquez Perez . We don't know if these work, but if they are really 905B's and 920's it should be OK. [PATCH] CONFIG_ACPI_SLEEP compile fix From: mikpe@csd.uu.se When I grepped for these variables I failed to notice the references in acpi/wakeup.S. This patch fixes this. [PATCH] fix handling of spares physical APIC ids From: William Lee Irwin III To handle sparse physical APIC ID's properly the phys_cpu_present_map must be scanned beyond bit NR_CPUS while ensuring no more than NR_CPUS are woken in order not to attempt to wake non-addressible cpus. The following patch adds that logic to smp_boot_cpus() and corrects the failure to wake secondaries reported by dhowells, with successful wakeup, runtime, reboot, and halting reported after it was applied. [PATCH] put_page_testzero() fix From: William Lee Irwin III put_page_testzero() does BUG_ON(page_count(page)) when its argument is p. [PATCH] DAC960 oops fix ioctl_by_bdev() passes in a NULL file*, so we had better not dereference it. [PATCH] I2C: And yet another it87 patch. Trivial, but important. Somehow in the patching the bk tree somehow got two memset's to clear new_client in it87_detect, normally while this would be bad, it would not be critical. However one of the two happens BEFORE the variable is set, and thus things go badly. [PATCH] signal latency fixes This fixes an SMP window where the kernel could miss to handle a signal, and increase signal delivery latency up to 200 msecs. Sun has reported to Ulrich that their JVM sees occasional unexpected signal delays under Linux. The more CPUs, the more delays. The cause of the problem is that the current signal wakeup implementation is racy in kernel/signal.c:signal_wake_up(): if (t->state == TASK_RUNNING) kick_if_running(t); ... if (t->state & mask) { wake_up_process(t); return; } If thread (or process) 't' is woken up on another CPU right after the TASK_RUNNING check, and thread starts to run, then the wake_up_process() here will do nothing, and the signal stays pending up until the thread will call into the kernel next time - which can be up to 200 msecs later. The solution is to do the 'kicking' of a running thread on a remote CPU atomically with the wakeup. For this i've added wake_up_process_kick(). There is no slowdown for the other wakeup codepaths, the new flag to try_to_wake_up() is compiled off for them. Some other subsystems might want to use this wakeup facility as well in the future (eg. AIO). In fact this race triggers quite often under Volanomark rusg, with this change added, Volanomark performance is up from 500-800 to 2000-3000, on a 4-way x86 box. [PATCH] scheduler cleanup This removes the unused requeueing code. [PATCH] sync wakeup on UP This fixes the scheduler's sync-wakeup code to be consistent on UP as well. Right now there's a behavioral difference between an UP kernel and an SMP kernel running on a UP box: sync wakeups (which are only activated on SMP) can cause a wakeup of a higher prio task, without preemption. On UP kernels this does not happen. This difference in wakeup behavior is bad. This patch activates sync wakeups on UP as well - in the cases sync wakeups are done the waker knows that it will schedule away soon, so this 'delay preemption' decision is correct on UP as well. [PATCH] USB: usbtest, talk to user mode "firmware" Supports some user-mode testing "firmware". [PATCH] Fix lost scheduler rebalances This fixes a race noticed by Mike Galbraith: the scheduler can lose a rebalance tick if some task happens to not be rescheduled in time. This is not a fatal condition, but an inconsistency nevertheless. [PATCH] USB: usb-skeleton compile fix usb-skelteon doesn't compile after recent changes. [PATCH] USB: gadget compile error on ppc64 I tried compiling USB gadget support on ppc64 (why not :). Looks like Im seeing a conflict between const and __devinitdata: drivers/usb/gadget/net2280.c:2645: pci_ids causes a section type conflict [PATCH] USB: storage: generate BBB reset after abort This patch forces the generation of a bulk-transport reset after a command abort. Careful reading of the bulk-only specification shows that a reset must be done after an abort to get the host and target back into phase. [PATCH] USB: storage: remove inline function This patch removes a single-line inline function and replaces it with it's expansion everywhere. The inline function was really only there for a transitional step. [PATCH] USB: fixes kernel_thread ACPI: Update Toshiba driver to 0.15 (John Belmonte) - workaround sporadic problem with hotkey ceasing to work - cleanups [PATCH] Update IEEE1394 (r931) - Fix possible memory leak in iso.c - Added handling for more than 1 Logical_Unit_Number entry in a unit directory for SBP-2. This allows for handling the second type of LUN that we didn't support yet. [XFS] merge Steve's sync changes over to 2.5 SGI Modid: 2.5.x-xfs:slinx:147932a [PATCH] namespace fix After # mount --rbind /tmp /mnt (on 2.5.68) I have a corrupted namespace. Umounting /mnt fails, and /proc/mounts contains ... /dev/root /mnt ext3 rw 0 0 proc /mnt/proc proc rw 0 0 usbfs /mnt/proc/bus/usb usbfs rw 0 0 /dev/hdb5 /mnt/usr reiserfs rw 0 0 ... where of course no directories /mnt/proc or /mnt/usr exist. This is caused by the fact that copy_tree() thinks that the dentry it is called with is the root of the filesystem. If it is not, confusion arose. This patch fixes this confusion. [PATCH] NCR5380.c fix Several SCSI drivers confuse CHECK_CONDITION and CHECK_CONDITION << 1. One of them is NCR5380.c. Below a patch adding status_byte() twice. (On the other hand, sun3_NCR5380.c does this right, and generally looks better. Maybe they can be merged eventually.) [XFS] Merge over an irix fix SGI Modid: 2.5.x-xfs:slinx:132737a [PATCH] fix oops in namespace.c A familar type of Oops: d_path() can return an error ENAMETOOLONG, and if we fail to test a segfault occurs. So we must test. What we do is a different matter. Rather arbitrarily I return the string " (too long)" for use in /proc/mounts. [XFS] Fix up error handling on the initial superblock read. SGI Modid: 2.5.x-xfs:slinx:148285a [XFS] avoid sleep_on in the sync code SGI Modid: 2.5.x-xfs:slinx:148415a [XFS] Fix up a pagebuf spelling mistake and a couple of whitespace botches. SGI Modid: 2.5.x-xfs:slinx:148595a [PATCH] fix do_fork() return value Noticed by Julie DeWandel . do_fork() needs to return the pid (or error), not the pointer to the resulting process structure. The process structure may not even be valid any more, since do_fork() has already woken the process up (and as a result it might already have done its thing and gone away). Besides, doing it this way cleans up the users, which all really just wanted the pid or error number _anyway_. This fixes the x86 users, other architectures need to be fixed up as well. [XFS] Move xfs_syncd code into xfs_super.c which is the only place which uses it SGI Modid: 2.5.x-xfs:slinx:148433a [XFS] Fix compile warning on my iBook SGI Modid: 2.5.x-xfs:slinx:148598a [XFS] V1 log tweak - fix log record length used when checking for a partial log record write during log recovery head/tail calculations. SGI Modid: 2.5.x-xfs:slinx:148895a [XFS] simplify memory allocation code big time SGI Modid: 2.5.x-xfs:slinx:148933a [XFS] Use __GFP_NORETRY in pagebuf readahead code SGI Modid: 2.5.x-xfs:slinx:148940a [XFS] remove the excess ; which crept into the syncd thread somewhere and basically turned it off. SGI Modid: 2.5.x-xfs:slinx:148955a [XFS] Large sector changes - fixup definition of xfs_agfl_t, and numerous changes to make log recovery respect the log device sector size. SGI Modid: 2.5.x-xfs:slinx:149230a [XFS] Small buftarg cleanup - keep code which pokes inside a buftarg all in one spot, which lets us keep more common code in sync, 2.4/2.5 and is slightly cleaner anyway. SGI Modid: 2.5.x-xfs:slinx:149231a [XFS] Second part buftarg cleanup, don't poke inside a buftarg here anymore SGI Modid: 2.5.x-xfs:slinx:149232a [XFS] Remove a void* from the xfs_mount structure, move the log stripe mask field from the xfs_mount structure to the log structure (saves a couple of pointer dereferences when writing to the log, with v2 logs only). SGI Modid: 2.5.x-xfs:slinx:149395a [XFS] Rationalise xlog_in_core2 definition, remove some ifdef __KERNEL__ code which is unnecessary in log recovery, clarify some recovery debug code. SGI Modid: 2.5.x-xfs:slinx:149396a [XFS] Make log recovery code style consistent with a/ itself and b/ much of the rest of XFS. Fix numerous crimes against whitespace. SGI Modid: 2.5.x-xfs:slinx:149398a [XFS] Fix two remaining indentation inconsistencies. SGI Modid: 2.5.x-xfs:slinx:149400a [XFS] Remove some dead code. SGI Modid: 2.5.x-xfs:slinx:149409a [AGPGART] Add support for VIA K8T400M GART. [AGPGART] Improve Kconfig. The AMD K8 GART driver is really for the on-CPU GART not the chipset as the Kconfig described. Also fix up some grammar elsewhere. i2c: fix up i2c-dev driver based on previous core changes. This fixes the problem that adapter id's are not the minor number for the i2c-dev devices anymore. Also adds a i2c-dev class to let userspace know which i2c-dev device is bound to which i2c adapter. [AGPGART] agp_3_5_enable() doesn't need mode parameter. [AGPGART] Sanity check (and fix up broken) AGP modes when in AGP 3.0 mode. [PATCH] USB: Fix machine lockup when unloading HC driver Alan Stern wrote: > I finally got tired of my computer locking up when I tried to rmmod the > low-level host controller driver. It turns out the problem lies in the > root-hub status urb code in core/hcd.c -- primarily a result of > rh_report_status() not calling hcd_giveback_urb()... Or in short: your patch removes some old logic for the "automagic interrupt transfer" special casing ... which recently started to break that rmmod path. With automagic, the only time an interrupt urb (like the root hub status urb) could legitimately be given back was for unlink. But that unlink doesn't seem to be issued in the same way lately during the rmmod paths. (If they're less bizarre lately, that's good!) > If this patch seems all right, will you please let Greg know it's okay to > apply it? I changed a couple minor things below ... basically (a) fixing the issue Duncan Sands pointed out (always call completions with irqs disabled, even if hub driver currently doesn't care), (b) better logic to avoid retriggering the timer during shutdown, (c) not doing del_timer_sync() while holding that lock, plus (d) a minor linewrap fix. [AGPGART] Log broken applications that pass crap flags so they can be fixed. [SPARC{32,64}]: Adjust for changed do_fork return value. [SPARC]: Fix ptracing of syscalls. [SPARC]: Switch bitops to unsigned long. [AGPGART] Skip nonisoch setup if isoch setup was successful. [AGPGART] Silly typo that put tried to put things into a impossible x16 mode. [NET]: Fix netdevice unregister races. We had two major issues when unregistering networking devices. 1) Even trying to run hotplug asynchronously could deadlock if keventd was currently trying to get the RTNL semaphore in order to process linkwatch events. 2) Unregister needs to wait for the last reference to go away before the finalization of the unregister can execute. This cannot occur under the RTNL semaphore as this is deadlock prone as well. The solution is to do all of this stuff after dropping the RTNL semaphore. rtnl_lock, if it is about to protect a region of code that could unregister network devices, registers a list to which unregistered netdevs are attached. At rtnl_unlock time this list is processed to wait for refcounts to drop to zero and then finalize the unregister. o sock.h: kernel-doc style comment for struct sock [NET]: More device register/unregister fixing. Revert the rtnl_lock API change, it is totally unneeded. Instead we manage the todo work inside of net/core/dev.c Also, we have to move sbin hotplug invocation outside of the RTNL semaphore as well, both for register and unregister. [NET]: Fix sock_fprog setsockopt compat handling. Based upon patch from Andi Kleen. [SUNGEM]: Updates from PowerPC people. Support more chips and split out all the complex PHY handling into a seperate file. [NET]: Misplaced description in ip-sysctl.txt. [IPV6]: Move NIP6 macro into general header. [IPV6]: Update RFC references. [NET]: Fix dev_load for !CONFIG_KMOD. [NET]: Switch comx over to initcalls. [NET]: Comment typo in net/core/dev.c, thanks akpm. [ARM] do_fork() now returns the PID. o wan/cycx: remove unneeded ioctl stub and fix namespace [PATCH] apply_alternatives() fix From: Andi Kleen There is some assembly code in setup.c which doesn't explicitly set its section. It comes after a C function which is marked __init. The compiler does not reset the section after such C functions. The assembly code is going into .text.init. That's the wrong section. We get oopses modprobing sctp and, with Manfred's unmap-free-pages debug patch we get oopses modprobing e100.ko. In apply_alternatives(). [PATCH] sound/core/memalloc.c needs mm.h struct page is undefined in this file without this on Alpha. [PATCH] revert sysfs non-fix I completely misread this code and there was no bug. In fact yesterday's fix broke it. Revert. [PATCH] ppc64 update for do_fork() change This updates ppc64 for the do_fork() semantics change. [PATCH] do_fork updates for ppc Update ppc for mingo's do_fork changes. Together with the pmac compile fixes this allows me to stay at the bleeding edge with my my ibook.. [ALPHA] Fix single-step breakpoints. From Ivan Kokshaysky . [ALPHA] Update for do_fork changes. From Marc Zyngier . [PATCH] USB: Fix machine lockup when unloading HC driver (part 2) Alan Stern wrote: > I suggest you just forget about acquiring the lock in status_dequeue() and > simply leave it as > > del_timer_sync (&hcd->rh_timer); > hcd->rh_timer.data = 0; Hmm, so if some other URB gets queued in that window, it'll get trashed? Unlikely .. the clean fix would be making the status endpoint have a real URB queue. I combined your suggested change with two others: (a) protect the status-unlink and control completion handlers against IRQs [ the cases Duncan noted] (b) use mod_timer to retrigger the timer, instead of the heavy weight path. [PATCH] USB: SMP ehci-q.c 1010 BUG() Stefano Barbato wrote: > Dual PIII > kernel 2.4.21-rc2 (w/ SMP) (2.5.69 below) > ... > > I put a few printk before the BUG() and I found that the offending if() is > this: > if(qh->qh_state != QH_STATE_LINKED > && qh->qh_state != QH_STATE_UNLINK_WAIT) > > because qh_state were QH_STATE_COMPLETING. I got a similar SMP report recently, but without info about which clause was failing -- which is a key clue, thanks!! The COMPLETING state is used only while a QH is being scanned for completed TDs. (Think CPU-0 irq handler.) Looking at the handful of places that call the routine reporting the BUG(), a couple seem like they could make trouble with multiple CPUs in the driver. [PATCH] USB: disable usb device endpoints in more places This patch touches the most significant places in usbcore that need to respond to configuration change events: - set_interface changes altsettings; affects endpoints in both new and old settings (but not other endpoints). - set_configuration; affects every endpoint The endpoints get disabled, flushing hardware state reliably. This resolves two FIXMEs here, part of one in OHCI (ed_get) and all of one in EHCI (qh_append_tds). Not many drivers currently use these code paths, but now they should start to work properly. [PATCH] do_fork fixes for voyager x86 subarch It looks like the do_fork was converted in voyager_smp.c, but the addition of wake_up_forked_process() was missed leading to a boot panic. The attached fixes it. [AGPGART] PPC compile fix. Generic suspend/resume methods are no more. PPC32: Need to call wake_up_forked_process in SMP idle task setup. [PATCH] USB speedtouch: replace yield() Use set_current_state (TASK_RUNNING); schedule(); instead. [PATCH] USB speedtouch: add defensive memory barriers Defend against future maintainers. [PATCH] USB speedtouch: remove stale code Should have gone long ago. [PATCH] USB speedtouch: spin_lock_irqsave -> spin_lock_irq in process context Replace spin_lock_irqsave/spin_unlock_irqrestore with spin_lock_irq/spin_unlock_irq in routines that are only called in process context. [PATCH] USB speedtouch: spin_lock_irqsave -> spin_lock_irq in tasklets Replace spin_lock_irqsave/spin_unlock_irqrestore with spin_lock_irq/spin_unlock_irq in tasklet actions, since these are always called with local irqs enabled. [PATCH] USB speedtouch: remove useless NULL pointer checks The stats field is never NULL. [PATCH] USB speedtouch: receive path micro optimization Make the most discriminating comparison first. [PATCH] USB speedtouch: verbose debugging Add a vdbg macro for verbose debugging, and convert some noisy debugging statements to use it. [AGPGART] Remove duplicated fast writes test. [AGPGART] sanity check printk's. [IPV4]: Fix route copying during redirects. [NET]: Clean up the divert ifdef mess. [NET]: Use SET_MODULE_OWNER in ns83820 driver. [NET]: Use irqreturn_t in acenic driver. [NET]: Fix build warning in ns83820 driver. [TCP]: Handle NLM_F_ACK in tcp_diag.c [NET]: Use ARRAY_SIZE where appropriate. [PATCH] IrDA skb leak fixes ir259_skb_get-7.diff : o [CORRECT] Fix skb leaks in IrDA state machines o [CORRECT] Fix skb leaks in connect/request error paths o [FEATURE] Fix skb leaks in ASSERT o [FEATURE] Simplify & document skb handling throughout the stack o [FEATURE] other minor cleanups [PATCH] IrNET crasher ir257_irnet_bh.diff : o [CRITICA] Replace spin_lock_irqsave() with spin_lock_bh() to be compatible with ppp_generic locking o [CRITICA] Disable call to ppp_unregister_channel() [PATCH] IrLAP address fix ir257_caddr_mask.diff : o [CORRECT] ignore the C/R bit in the LAP connection address. [PATCH] owner in irtty-sir ir259_sir_kthread_Morton-2.diff : o [CORRECT] fix module ownership in irtty-sir o [FEATURE] important comment in sir_kthread [PATCH] Various IrDA drivers ir259_trans_start-4.diff : o [CORRECT] Properly initialise dev->trans_start in various drivers o [CRITICA] Unregister power management at unload in smc-ircc o [CORRECT] fix module ownership in smc-ircc [PATCH] irport fixes ir259_irport-6.diff : o [CORRECT] fix module ownership in irport o [CORRECT] Properly initialise dev->trans_start in irport o [CORRECT] Add delay to drain the Tx fifo to avoid corrupting last outgoing Tx byte when changing speed o [FEATURE] Safer locking around speed change in irport_hard_xmit() o [FEATURE] Enforce half duplex operation in interrupt handler o [FEATURE] Optimise interrupt handler for latency and I/O ops o [FEATURE] Optimise Tx path in irport_write() o [FEATURE] Add ZeroCopy Rx o [FEATURE] Better debugging in watchdog timeout o [FEATURE] Various other cleanups and comments [PATCH] smsc-ircc2 driver ir259_smsc-ircc2-6.diff : o [FEATURE] New driver smsc-ircc2, improved FIR support [NET]: sysfs support of network devices. [NET]: Add sysfs support to several net devices. [PATCH] kNFSd: TCP nfsd connection hangs when partial record header is received Below patch resolves a hang where a TCP nfsd connection will hang even though new data is received on the socket. We've seen this a few times in our lab, but it usually happened every few weeks. If a short record header is received, the SK_BUSY flag is never cleared, and even though new data arrives, it will not be handled. This in turn leads to hangs of particular clients (while others will continue to work without problem). I also changed the return code for that condition to be the same as for a (regular) short read. [PATCH] kNFSd: SVC sockets don't disable Nagle I noticed that the Nagle algorithm was disabled just recently on the client side, while it still seems to be enabled on the server side. The previous patch came from Chuck Lever. Below patch disables it on the server side as well. For latency reasons, this should be the desired behaviour NFS at both client and server. [PATCH] kNFSd: RPC server need to know that TCP and UDP have different wspace functions. From: Hirokazu Takahashi sock_wspace() is used to see how much can be written to a udp socket, but tcp_wspace must be used on a tcp socket. This patch informs sunrpc/svcsock.c of this subtlety. [PATCH] kNFSd: Set SOCK_NOSPACE when RPC server decides there is insufficient. SOCK_NOSPACE is set, so we must set it when we want to get a ->write_space callback. [PATCH] kNFSd: Make sure an RPC socket is closed immediately when a server write fails. The check for "write was incomplete" is not atomic with the actual write, so a second write could slip in after a partial write to a tcp socket and this will cause problems. So we move the locking out a bit, and test if the socket has been deleted (SK_DEAD) between getting the lock and trying to send. [PATCH] kNFSd: Fix #error message when bits are badly defined.. [PATCH] kNFSd: Minor rearrangements in NFSv4 server code to prepare for mroe state management. From: "William A.(Andy) Adamson" this is the first of several patches against 2.5 concerning NFSv4 state for nfsd. it cleans up the names of state structures in preperation for future share, lease, byte-range, and delegation patches. specifically, it 1) renames portions of the stateid_t and moves it along with the clientid_t from xdr.h into state.h 2) uses xdr_netobj to gather related data and length fields in struct nfs4_open (in xdr4.h) (e.g. we have op_fname.data and op_fname.len instead of op_name and op_namelen). 3) renames NFSD4_CLIENT_MAXNAME to NFS4_OPAQUE_LIMIT which will be used in other state fields (not just for name length) [PATCH] kNFSd: NFSv4 open share state patch From: "William A.(Andy) Adamson" this open share state patch creates all the structures and hash tables needed to create and destroy share state on OPEN. a struct nfs4_stateowner is introduced. this is currently only used for share state, but will also be used as an anchor for byte-range lock state. e.g. it will be either an (open)stateowner or a (lock)stateower. a struct nfs4_stateid is introduced with holds stateid info for openfiles per (open)stateowner. this struct will also hold byte-range lock info for (lock)stateowners. ownerstr_hashtbl[] holds nfs4_stateowners hashed by the nfs4_open owner and clientid, and is used to lookup nfs4_stateowners on OPEN. a struct nfs4_file is introduced which holds info on open files with state. file_hashtbl[] holds nfs4_files, and is used to find a file in order to search for conflicting share locks on OPEN. delegation info will hang off the nf4_file struct. i moved nfsd4_process_open1() into nfs4state.c, and added nfs4_process_open2() there as well i've left lease management, state reclaim, and the special replay management on sequenceid mutating operations like OPEN for subsequent patches. [PATCH] kNFSd: Allow request for nfsv4 pseudo root to perform an upcall. Most cache-lookups to find export information will cause an upcall, but currently the lookup to find the pseudo root for nfsv4 wont asthe cache-handle isn't made available. This patch makes it available and makes sure that if the upcall is made, the request is dropped (for now). [NET]: Fix typo in ns83820 sysfs changes. [ATM]: Fix build after netdev sysfs changes. [PATCH] seq_path(), /proc/mounts and /proc/swaps This adds a new seq_...() helper: seq_path(seq_file, mnt, dentry, escape) It spits the pathname into seq_file, does octal escapes for given set of characters, returns the number of characters it'd produced or -1 in case of error. Long names are handled gracefully - you don't need anything to do, generic seq_file logics will do the right thing. /proc/mounts and /proc/swaps are converted to use of seq_path(), some junk removed. /proc/pid/maps will be converted next. [PATCH] seq_path() for /proc/pid/maps This converts /proc/pid/maps to use of seq_file, cleans the issues with d_path() overflows as a side effect. It's incremental to seq_path() patch. PPC32: Allow lowmem size to be set even if we don't have HIGHMEM. PPC32: Makefile cleanups, patch from Sam Ravnborg [PATCH] USB: Make Olympus cameras work with usb-storage According to Jan Derfinak, Olympus USB cameras mistakenly report an 'USBU' signature instead of 'USBS', while using the normal USB Storage protocol. The attached patches (again by Jan) fix this problem in 2.4 and 2.5. [PATCH] O_DIRECT open() fix Trivial bugfix: opening a file that doesn't have ->direct_IO() with O_DIRECT passed in flags fails (as it should) but doesn't call ->release() even though ->open() had been successful. IOW, we have a leak there - e.g. open() of a tty with O_DIRECT will leak a reference to tty and tty_driver. Besides, quite a few drivers are _not_ happy with struct file being freed without ->release() after ->open() has returned 0. PPC32: Further makefile updates from Sam Ravnborg. PPC32: Minor whitespace and ifdef fixes. PPC32: Better allocation of DMA-consistent memory on incoherent machines. PPC32: Fix the declaration of openpic_ipi_action(). PPC32: Use might_sleep() in kmap(). PPC32: More fixes for PCI on non-cache-coherent platforms. PPC32: Define a suitable value for PAGE_KERNEL_NOCACHE [AGPGART] Rid AGP/DRM of more typedefs. [PATCH] Remove "Freeing alive device" warning * Bug fix: don't call any netif_carrier_* until netdev is registered. [Andrew Morton (akpm@digeo.com)] [PATCH] move e100_asf_enable under CONFIG_PM to avoid warning * Bug fix: move e100_asf_enable under CONFIG_PM to avoid warning. [Stephen Rothwell (sfr@canb.auug.org.ua)] [PATCH] Add ethtool parameter support * Feature Add: ethtool parameter support: Tx/Rx ring size, Rx xsum offloading, flow control. [PATCH] Add ethtool cable diag test * Feature Add: ethtool cable diag test. * Some cleanup of the ethtool diags. * Fixed bug in return code for ethtool diag results. [PATCH] Add MDI/MDI-X status to ethtool reg dump * Add MDI/MDI-X (crossover cable) status to ethtool reg dump. [PATCH] cleanup Tx resources before running ethtool diags. * Bug fix: clean up Tx resources before running ethtool diags. [PATCH] fixed stalled stats collection * Bug fix: In the rare event of a failed command to dump stats, stat collection would stop, giving the illusion that traffic had stopped. Fixed by issuing stat dump in watchdog regardless of status of previous attempt to dump stats. [PATCH] VLAN configuration was lost after ethtool diags run * Bug fix: ethtool diags would call e100_up/e100_down, which overwrite current VLAN settings. Move initialization of config regs out of up/down. [PATCH] misc * Remove leftovers from removal of /proc support and IDIAG support * Cleaned up reporting of h/w init failure messages * Add 1/2 second delay after PHY reset to allow link partner to see and respond to reset, per IEEE 802.3 [PATCH] TSO fix * Premature write-back of descriptors during TSO causing resources to be returned too early on ppc64. Fix is to wait until last descriptor of frame is written back, then return resources back to OS. * 82544 hang caused by setting RS bit in context descriptor. Exposes known hang in 82544. Fix is same as above - set RS bit only in last descriptor. [PATCH] Added ethtool test ioctl * Added routines for the Ethtool Test ioctl. * Added more statistics for the Ethtool statistics dump. * Added more registers for the register dump. [PATCH] Removed strong branded device ids * Removed strong branded device ids from the device id table along with the associated branding strings. [PATCH] Added support for 82546 Quad-port adapter * Added support for 82546 Quad-port adapter [PATCH] Fixed LED coloring on 82541/82547 controllers * LED colors on 82541 and 82547 controllers were incorrect. The LED mode register didn't have the proper configuration. [PATCH] Miscellaneous code cleanup * Added Change Log entries * Miscellaneous code cleanup [PATCH] Whitespace cleanup * Whitespace cleanup o wanrouter/wanmain: fix namespace, fixing the current problem with device_shutdown [PATCH] USB speedtouch: trivial whitespace and name changes No real code changes. [PATCH] USB speedtouch: replace yield() Use set_current_state (TASK_RUNNING); schedule(); instead. [PATCH] USB speedtouch: add defensive memory barriers Defend against future maintainers. [PATCH] USB speedtouch: spin_lock_irqsave -> spin_lock_irq in process context Replace spin_lock_irqsave/spin_unlock_irqrestore with spin_lock_irq/spin_unlock_irq in routines that are only called in process context. [PATCH] USB speedtouch: spin_lock_irqsave -> spin_lock_irq in tasklets Replace spin_lock_irqsave/spin_unlock_irqrestore with spin_lock_irq/spin_unlock_irq in tasklet actions, since these are always called with local irqs enabled. [PATCH] USB speedtouch: verbose debugging Add a vdbg macro for verbose debugging, and convert some noisy debugging statements to use it. [PATCH] USB speedtouch: remove stale code Should have gone long ago. [PATCH] USB speedtouch: use optimally sized reconstruction buffers Calculate the maximum size needed for the SAR reconstruction buffer from the supplied qos parameters. [PATCH] USB speedtouch: send path micro optimizations [PATCH] USB speedtouch: kfree_skb -> dev_kfree_skb Always use dev_kfree_skb. [PATCH] USB speedtouch: remove useless NULL pointer checks The stats field is never NULL. [PATCH] USB speedtouch: receive path micro optimization Make the most discriminating comparison first. [PATCH] USB speedtouch: receive code rewrite Main points: - receive buffers are decoupled from urbs, so an urb can be resubmitted with a new buffer before the old buffer is processed. - the packet reconstruction code is much simpler. - locking is simplified by the fact that only the tasklet launches receive urbs USB: speedtch merge fixups by hand. [AGPGART] Make alpha AGP work again. From Jeff Wiedemeier and Richard Henderson ACPI: Do not reinit ACPI irq entry in ioapic (thanks to Stian Jordet) [NETFILTER]: Non-linear iptables: core code. Adjusts the IPTables core to handle non-linear packets. Extensions done separately in next patch. Also, comments about when to set "me" field in struct ipt_match, ipt_table and ipt_target are corrected. [NETFILTER]: Linearize iptables matches. Adjusts the IPTables matches to handle non-linear packets. Untested: ipt_ah and ipt_esp. [NETFILTER]: Linearize iptables targets. Adjusts the IPTables targets to handle non-linear packets. ipt_ULOG untested. [NETFILTER]: Use proper printf format for size_t in ipt_owner.c [NETFILTER]: Update ipt_physdev.c for match arg changes. [IPV6]: DST entry leak found by stanford checker. [IPV6]: Memory leak found by stanford checker. [NET]: In dst_alloc, do not assume layout of atomic_t. [NET]: Make dv_init an initcall. [IPV6]: Remove obsolete declaration in transp_v6.h [NET]: Switch arcnet over to initcalls. [IPV4]: Use seq_release_private(), kill ip_seq_release() since no longer used. Use proper ANSI stype function declarations in definitions. PCI: add pci_get_dev() and pci_put_dev() Move the PCI core to start using these, enabling proper reference counting on struct pci_dev. [PATCH] PCI: remove pci_insert_device() as no one uses it anymore. [PATCH] shrink_all_memory() fix The calling task must have a valid reclaim_state when running page reclaim. But I had forgotten about shrink_all_memory(). [IPV6]: Dont store pointers to in6_addrs in struct flowi. [IPV4]: Fix fib_hash performance problems with huge route tables. [IPV4]: Dont erroneously print UDP6 sockets in /proc/net/udp. [AF_KEY]: Zero out sadb_prop_reserved. [IPV6]: procfs clean-up [NET]: Zap non-netdevice usage of SET_MODULE_OWNER. [TCP]: Move TCP_TWKILL_foo macro definitions into tcp_minisocks.c [NET]: Kill SMP_TIMER_* users. Before timers were run per-cpu as they are now, one used to use the SMP_TIMER_* macros to move globally synchronized timer work into tasklets. But with per-cpu timers this is useless work and in fact makes thing run more slowly. [TIMERS]: No more SMP_TIMER_* users, kill it. [SPARC64]: Offer isdn/irda/telephony config options. [IRDA]: Protect IDA dma stuff with CONFIG_ISA. [SPARC64]: Update defconfig. [NET]: Convert madgemc to initcalls. [NETFILTER]: Make nat helper modules use symbols to force conntrack modules. NAT helpers almost always require the matching conntrack helper to work at all: this should be forced at load time, rather than at runtime (which only works via kmod, and is icky). Convenient macros allow this. [NET]: Invoke netdev_unregister_sysfs() outside of RTNL semaphore. [IPV4]: Use get_order instead of reimplementation. [PATCH] x86-64 merge Lots of changes that have accumulated over the last weeks. This makes it compile and boot again, Lots of bug fixes, including security fixes. Several speedups. Only changes x86-64 specific files. - Use private copy of siginfo.h (for si_band) - Align 32bit vsyscall coredump (from Roland McGrath) - First steps towards 64bit vsyscall coredump (not working yet) - Use in kernel trampoline for signals - Merge APIC pm update from Pavel/Mikael - Security fix for ioperm (from i386) - Reenable vsyscall dumping for 32bit coredumps - Fix bugs in 32bit coredump that could lead to oopses. - Fix 64bit vsyscalls - Revert change in pci-gart.c: pci_alloc_consistent must use an 0xffffffff mask hardcoded. - Fix bug in noexec= option handling - Export fake_node - Cleanups from Pavel - Disable 32bit vsyscall coredump again. Still has some problems. - Implement new noexec= and noexec32= options to give a wide choice of support for non executable mappings for 32bit and 64bit processes. The default is now to honor PROT_EXEC, but mark stack and heap PROT_EXEC. - 32bit emulation changes from Pavel: use compat_* types. - (2.4) Use physical address for GART register. - Convert debugreg array to individual members and clean up ptrace access. This saves 16 byte per task. - (2.4) Use new streamlined context switch code. This avoids a pipeline stall and pushes the register saving to C code. - Save flags register in context switch - Clean up SMP early bootup. Remove some unnecessary code. - (2.4) Process numa= option early - (2.4) Merge 2.4 clear_page, copy_*_user, copy_page, memcpy, memset. These are much faster. clear/copy_page don't force the new page out of memory now which should speed up user processes. Also full workaround for errata #91. - Some cleanup in pageattr.c code. - Fix warning in i387.h - Fix wrong PAGE_KERNEL_LARGE define. This fixes a security hole and makes AGP work again. - Fix wrong segment exception handler to not crash. - Fix incorrect swapgs handling in bad iret exception handling - Clean up some boot printks - Micro optimize exception handling preamble. - New reboot handling. Supports warm reboot and BIOS reboot vector reboot now. - (2.4) Use MTRRs by default in vesafb - Fix bug in put_dirty_page: use correct page permissions for the stack - Fix type of si_band in asm-generic/siginfo.h to match POSIX/glibc (needs checking with other architecture maintainers) - (2.4) Define ARCH_HAS_NMI_WATCHDOG - Minor cleanup in calling.h - IOMMU tuning: only flush the GART TLB when the IOMMU aperture area allocation wraps. Also don't clear entries until needed. This should increase IO performance for IOMMU devices greatly. Still a bit experimental, handle with care. - Unmap the IOMMU aperture from kernel mapping to prevent unwanted CPU prefetches. - Make IOMMU_LEAK_TRACE depend on IOMMU_DEBUG - Fix minor bug in pci_alloc_consistent - always check against the dma mask of the device, not 0xffffffff. - Remove streamining mapping delayed flush in IOMMU: not needed anymore and didn't work correctly in 2.5 anyways. - Fix the bad pte warnings caused by the SMP/APIC bootup. - Forward port 2.4 fix: ioperm was changing the wrong io ports in some cases. - Minor cleanups - Some cleanups in pageattr.c (still buggy) - Fix some bugs in the AGP driver. - Forward port from 2.4: mask all reserved bits in debug register in ptrace. Previously gdb could crash the kernel by passing invalid values. - Security fix: make sure FPU is in a defined state after an FXSAVE/FXRSTOR exception occurred. - Eats keys on panic (works around a buggy KVM) - Make user.h user includeable. - Disable sign compare warnings for gcc 3.3-hammer - Use DSO for 32bit vsyscalls and dump it in core dumps. Add dwarf2 information for the vsyscalls. Thanks to Richard Henderson for helping me with the nasty parts of it. I had to do some changes over his patch and it's currently only lightly tested. Handle with care. This only affects 32bit programs that use a glibc 3.2 with sysenter support. - Security fixes for the 32bit ioctl handlers. Also some simplications and speedups. - gcc 3.3-hammer compile fixes for inline assembly - Remove acpi.c file corpse. - Lots of warning fixes - Disable some Dprintks to make the bootup quieter again - Clean up ptrace a bit (together with warning fixes) - Merge with i386 (handle ACPI dynamic irq entries properly) - Disable change_page_attr in pci-gart for now. Strictly that's incorrect, need to do more testing for the root cause of the current IOMMU problems. - Update defconfig - Disable first prefetch in copy_user that is likely to trigger Opteron Errata #91 - More irqreturn_t fixes - Add pte_user and fix the vsyscall ptrace hack in generic code. It's still partly broken - Port verbose MCE handler from 2.4 [PATCH] USB: bugfix endpoint state This resolves some problems in the endpoint disable patch I sent recently: - wasn't un-halting some endpoints - was clobbering ep0 setup in some cases. [PATCH] USB speedtouch: set owner fields I think I'd better work on my plausible deniability... [PATCH] USB: uhci Interrupt Latency fix Paul: Okay, I think this patch ought to do the trick. I modified the PM suspend/resume code so that on buggy motherboards like yours the suspend routine really does a reset, while on normal motherboards the resume routine really does a resume. I haven't tried that part out because, truth to tell, I'm a little scared of doing an APM/ACPI suspend. Not long ago I walked away from my computer for about a half-hour, leaving 2.5.69 running. When I got back the screen was blank and the machine was totally non-responsive. I changed the delays in reset_hc() to use schedule_timeout() rather than wait_ms(), which should make it more friendly. Finally, I put the USBCMD_FGR back into wakeup_hc(). The reason for it is now evident: a wakeup might be the result of a system-initiated event as opposed to something requested by a device. [PATCH] USB: Addition to previous patch needed for PM UHCI This is the addition needed to make my previous patch for the UHCI controller work properly with PM suspend/resume. [PATCH] USB: net2280, control requests can be deferred To handle control messaging in contexts other than the IRQ handler's setup() callback, a bit of automagic needed to be removed; and some minor bugs fixed. o icmp: cleanups, use C99 array init style, etc ACPI: update to 20030522 Found and fixed a reported problem where an AE_NOT_FOUND error occurred occasionally during _BST evaluation. This turned out to be an Owner ID allocation issue where a called method did not get a new ID assigned to it. Eventually, (after 64k calls), the Owner ID UINT16 would wraparound so that the ID would be the same as the caller's and the called method would delete the caller's namespace. Implemented extended error reporting for control methods that are aborted due to a run-time exception. Output includes the exact AML instruction that caused the method abort, a dump of the method locals and arguments at the time of the abort, and a trace of all nested control method calls. Modified the interpreter to allow the creation of buffers of zero length from the AML code. Implemented new code to ensure that no attempt is made to actually allocate a memory buffer (of length zero), only a buffer object with a NULL buffer pointer and length zero. A warning is no longer issued when the AML attempts to create a zero-length buffer. Implemented a workaround for the "leading asterisk problem" in _HIDs, _UIDs, and _CIDs. One leading asterisk is automatically removed if present in all HID, UID, and CID strings. Implemented full support for _CID methods that return a package of multiple CIDs. The AcpiGetObjectInfo interface now returns a device _HID, _UID, and _CID list if present. This required a change to the external interface to pass an ACPI_BUFFER object as a parameter, since the _CID list is of variable length. Fixed a problem with the new AE_SAME_HANDLER exception where handler initialization code did not know about this exception. ACPI: Allow multiple compatible IDs for PnP purposes [PATCH] Fix incorrect enablebits for all AMD and nVidia IDE chipsets. Fix incorrect enablebits for all AMD and nVidia IDE chipsets. Author: Vojtech Pavlik [PATCH] Add IDE support for VIA vt8237 southbridge. Add IDE support for VIA vt8237 southbridge. Author: Vojtech Pavlik [PATCH] Intel ICH5 basic SATA support Add Intel ICH5 basic SATA support (from 2.4 by Andre Hedrick) and as a bonus kill duplicate entry in piix_pci_info[]. [PATCH] misc AMD IDE driver fixes Fix incorrect UDMA100 cable test (by Dave Jones). Fix compilation warning. [PATCH] add hwif->hold flag Add hwif->hold flag for hotswap interfaces. Initialize founded hwif in ide_register_hw(). Original patch by Benjamin Herrenschmidt. [PATCH] SiS IDE driver fixes SiS IDE driver fixes by Lionel Bouton: - support for SiS655 - support for SiS630S/ET UDMA5 mode - corrected /proc/ide/sis output for ATA133 chipsets (drives' positions were swapped) - use of pci_read_config_byte() instead of direct PCI poking for SiS962+ detection [PATCH] ServerWorks IDE driver update ServerWorks CSB5 IDE fixes (from 2.4 patches by Duncan Laurie) - blacklist drives overrunning their FIFOs in UDMA5/6 modes - add PCI quirk (CSB5 IDE doesn't fully support native mode) plus sync driver with 2.4 version. [PATCH] add hwif->rw_disk callout Add hwif->rw_disk callout (forward port of 2.4 Alan's work). "This allows us to remove the PDC4030 special case and also allows for the 372N clock switch stuff." [PATCH] _IDE_C cleanup Since ide_get_best_pio_mode() and ide_pio_timings[] are now properly exported in ide-lib.c, we can remove dirty include hacks from some legacy drivers. Fix preempt on PPC32 - have to set PREEMPT_ACTIVE when preempting kernel stuff. PPC32: Export a couple of symbols needed by direct rendering modules. [PATCH] kconfig check fixes - fix a problem with a unset menuconfig, during the config check it's possible conf selects the wrong parent menu and the result is an endless loop. - only changable config symbols are relevant during config check, otherwise we get another endless loop. [PATCH] IPMI update - small cleanups to make the spacing consistent - modifications to the watchdog so it starts the first time you hit it, not the second. - Fix for returning the proper value when starting the sequence number timer. - Fix a parameter name in the watchdog. [PATCH] Make ACPI compile again on 64bit/gcc 3.3 Fix prototypes to match function definitions [PATCH] elevator core update The noop io scheduler has a data corrupting bug, because q->last_merge doesn't get cleared properly. So do that in io scheduler core, and remove the same code from deadline. Also kill bio_rq_in_between(), it's not used by anyone anymore. rbtrees are the hot thing these days. And finally, remove a direct test for REQ_CMD in rq flags, use blk_fs_request() instead. [PATCH] make vt_ioctl ix86isms explicit sys_ioperm is only implemented on x86 (i386/x86_64). Make the ifdefs in vt_ioctl.c more explicit so the other architectures can get rid of their stubs in favour of just using sys_ni_syscall in the syscall table. Maybe we should remove it altogether, it looks like remnants from some very early X386 times (ie the Thomas Roell timeframe). Merge gamma driver from DRI CVS, and fix it up for 2.5.x changes. Whether it works or not is unknown. I don't have the hardware. DRI CVS update - Pass in the "device" to remapping functions - add radeon CP resume ioctl - remove warnings and stale DMA debug code More files to ignore: mtools.conf Make KOBJ_NAME_LEN bigger, since at least the ieee1394 code has bus ID's that are longer than 16 bytes. Noted by Ben Collins, who also signed up to fix up some broken strncpy() users. Sucker! Add 'strlcpy()' implementation Make driver model use 'strlcpy()' to make sure that all names are NUL-terminated Noted by Ben Collins. [PATCH] M68k IRQ API updates [1/20] M68k core: Update to the new irq API (from Roman Zippel and me) [1/20] [PATCH] M68k IRQ API updates [2/20] M68k Amiga: Update to the new irq API (from Roman Zippel and me) [2/20] [PATCH] M68k IRQ API updates [3/20] M68k Apollo: Update to the new irq API (from Roman Zippel and me) [3/20] [PATCH] M68k IRQ API updates [4/20] M68k Atari: Update to the new irq API (from Roman Zippel and me) [4/20] [PATCH] M68k IRQ API updates [5/20] M68k BVME6000: Update to the new irq API (from Roman Zippel and me) [5/20] [PATCH] M68k IRQ API updates [6/20] M68k HP9000/300: Update to the new irq API (from Roman Zippel and me) [6/20] [PATCH] M68k IRQ API updates [7/20] M68k Macintosh: Update to the new irq API (from Roman Zippel and me) [7/20] [PATCH] M68k IRQ API updates [8/20] M68k MVME147: Update to the new irq API (from Roman Zippel and me) [8/20] [PATCH] M68k IRQ API updates [9/20] M68k MVME16x: Update to the new irq API (from Roman Zippel and me) [9/20] [PATCH] M68k IRQ API updates [10/20] M68k Q40: Update to the new irq API (from Roman Zippel and me) [10/20] [PATCH] M68k IRQ API updates [11/20] M68k Sun-3: Update to the new irq API (from Roman Zippel and me) [11/20] [PATCH] M68k IRQ API updates [12/20] M68k Sun-3x: Update to the new irq API (from Roman Zippel and me) [12/20] [PATCH] M68k IRQ API updates [13/20] M68k block drivers: Update to the new irq API (from Roman Zippel and me) [13/20] [PATCH] M68k IRQ API updates [14/20] M68k char drivers: Update to the new irq API (from Roman Zippel and me) [14/20] [PATCH] M68k IRQ API updates [15/20] M68k input drivers: Update to the new irq API (from Roman Zippel and me) [15/20] [PATCH] M68k IRQ API updates [16/20] M68k mac drivers: Update to the new irq API (from Roman Zippel and me) [16/20] [PATCH] M68k IRQ API updates [17/20] M68k net drivers: Update to the new irq API (from Roman Zippel and me) [17/20] [PATCH] M68k IRQ API updates [18/20] M68k parport drivers: Update to the new irq API (from Roman Zippel and me) [18/20] [PATCH] M68k IRQ API updates [19/20] M68k SCSI drivers: Update to the new irq API (from Roman Zippel and me) [19/20] [PATCH] M68k IRQ API updates [20/20] M68k fbdev drivers: Update to the new irq API (from Roman Zippel and me) [20/20] [PATCH] Ataflop fix Ataflop: fix breakage after recent cleanups [PATCH] Atari Atyfb fixes Atyfb fixes for Atari (got reversed in 2.5.69): - Add missing allocation of default_par - Kill warnings in assignments [PATCH] times must be unsigned long AFS and RXRPC: times must be unsigned long [PATCH] M68k kill ide_ioreg_t M68k IDE: kill ide_ioreg_t and q40ide_ioreg_t [PATCH] M68k pte_file M68k: Add pte_file() for Motorola MMUs (from Roman Zippel): - Add support for file file offsets in pte's (recycle unused _PAGE_COW bit) - Move swap macros into the mmu specific header - Fix swap macros (lowest two bits must be cleared) [PATCH] hosts.c missing config.h SCSI: hosts.c uses CONFIG_*, hence it needs to include [PATCH] M68k sys_ipc ENOSYS M68k: Fix sys_ipc() to return ENOSYS instead of EINVAL as appropriate. [PATCH] m68k ptrace M68k: Use ptrace_check_attach instead of doing the checks ourselves (from Andreas Schwab). [PATCH] dmasound resurrection Resurrect dmasound: - Re-add dmasound to the build process - Update dmasound.h, which got missed in the dmasound update in 2.5.15 - Compile fixes for core, Atari, Amiga Paula, and Q40: o Update for s/MINOR/minor/g changes o Add missing o Fix spinlock typo [PATCH] M68k IDE M68k IDE: - Update for new-style low-level IDE operations. Since so far no single m68k platform uses ISA/PCI I/O space for IDE, we always use the `raw' MMIO versions. - ATA_ARCH_LOCK was renamed to IDE_ARCH_LOCK - Define ide_ack_intr() and set IDE_ARCH_ACK_INTR [PATCH] IDE iops clean ups IDE I/O operations clean ups: - Kill warning about void return type not being ignored - Fix comment: Q40/Q60 also has a byte-swapped IDE interface [PATCH] Amifb updates Amifb: Updates for fbdev changes in 2.5.66 and 2.5.68: - Last parameter of fb_{fillrect,copyarea,imageblit}() became const [PATCH] M68k raw I/O updates M68k raw I/O updates: - Convert raw I/O access macros to inline functions: o raw_{in,out}s[bw]() o raw_{in,out}sw_swapw() - Add raw_{in,out}sl() (needed for IDE) - Update isa_[im]t_[bw]() for stricter type checking of inline functions [PATCH] Q40/Q60 IDE Q40/Q60 IDE: Use the standard IDE operations, which are always MMIO on m68k, but make sure IDE shows up in /proc/ioports (from Richard Zidlicky). [PATCH] HAVE_ARCH_GET_SIGNAL_TO_DELIVER warning Kill warning about unused static functions if HAVE_ARCH_GET_SIGNAL_TO_DELIVER is defined. [PATCH] M68k wd33c93_{abort,host_reset}() Use new wd33c93_{abort,host_reset}() routines introduced in 2.5.67 in the m68k wd33c93-based SCSI host adapter drivers: - Amiga A2091 SCSI - Amiga A3000 SCSI - Amiga GVP Series II SCSI - MVME147 SCSI These drivers still have to implement their own adapter-specific bus_reset() routines! [PATCH] Atafb bug in #if 0 code Atafb bug in #if 0 code (from 2.4.x) [PATCH] Obsolete include/asm-ppc/linux_logo.h Forgot to remove include/asm-ppc/linux_logo.h when integrating the new logo code. [PATCH] TIOCCONS fix This fixes the TIOCCONS race; it's the same as the 2.4 patch except for a fix for a brown-paperbag bug in it. [PATCH] cpqarray fixes This restores the special-case behaviour of open() on the minor 0; cpqarray allows to open that guy for ioctls even if nothing is configured. That got broken when gendisk patches went in. Patch restores the old behaviour by keeping gendisk for the first disk on controller always registered; instead of unregistering it we set size to 0. [PATCH] pg.c macroectomy This removes cpp abuses - same as had been done for pd/pf/pcd. [PATCH] pg.c Lindent pg.c fed through Lindent [PATCH] pg.c macroectomy - part 2 Remove the rest of cpp abuse in pg.c [PATCH] pt.c macroectomy Remove cpp abuses - same as had been done for pd/pf/pcd. [PATCH] pt.c Lindent pt.c fed through Lindent [PATCH] switch blk_register_area() to kobject preparation to cdev-cidr - the lookup mechanism for gendisks is switched to dealing with disk->kobj instead of disk. [PATCH] register_chrdev_region() cleanup register_chrdev_region() sanitized, code in tty_io.c that dealt with it cleaned up. [PATCH] kobj_map code responsible for gendisk lookups taken out in drivers/base and generalized - now it allows to have a range-based mapping from numbers to kobjects for given struct subsystem. [PATCH] cdev-cidr, part 1 New object: struct cdev. It contains a kobject, a pointer to file_operations and a pointer to owner module. These guys have a search structure of the same sort as gendisks and chrdev_open() picks file_operations from them. Intended use: embed such animal in driver-owned structure (e.g. tty_driver) and register it as associated with given range of device numbers. Generic code will do lookup for such object and use it for the rest. The behaviour of register_chrdev() is _not_ changed - it allocates struct cdev and registers it; any old driver will work as if nothing had changed. On that stage we only use it during chrdev_open() to find file_operations. Later it will be cached in inode->i_cdev (and index in range - in inode->i_cindex) so that ->open() could get whatever objects it wants directly without any special-cased lookups, etc. [PATCH] i_cdev/i_cindex new fields in struct inode - i_cdev and i_cindex. When we do open() on a character device we cache result of cdev lookup in inode and put the inode on a cyclic list anchored in cdev. If we already have that done, we don't bother with any lookups. When inode disappears it's removed from the list. When cdev gets unregistered we remove all cached references to it (and remove such inodes from the list). cdev is held until final fput() now. [PATCH] support "requeueing" futexes This addresses a futex related SMP scalability problem of glibc. A number of regressions have been reported to the NTPL mailing list when going to many CPUs, for applications that use condition variables and the pthread_cond_broadcast() API call. Using this functionality, testcode shows a slowdown from 0.12 seconds runtime to over 237 seconds (!) runtime, on 4-CPU systems. pthread condition variables use two futex-backed mutex-alike locks: an internal one for the glibc CV state itself, and a user-supplied mutex which the API guarantees to take in certain codepaths. (Unfortunately the user-supplied mutex cannot be used to protect the CV state, so we've got to deal with two locks.) The cause of the slowdown is a 'swarm effect': if lots of threads are blocked on a condition variable, and pthread_cond_broadcast() is done, then glibc first does a FUTEX_WAKE on the cv-internal mutex, then down a mutex_down() on the user-supplied mutex. Ie. a swarm of threads is created which all race to serialize on the user-supplied mutex. The more threads are used, the more likely it becomes that the scheduler will balance them over to other CPUs - where they just schedule, try to lock the mutex, and go to sleep. This 'swarm effect' is purely technical, a side-effect of glibc's use of futexes, and the imperfect coupling of the two locks. the solution to this problem is to not wake up the swarm of threads, but 'requeue' them from the CV-internal mutex to the user-supplied mutex. The attached patch adds the FUTEX_REQUEUE feature FUTEX_REQUEUE requeues N threads from futex address A to futex address B. This way glibc can wake up a single thread (which will take the user-mutex), and can requeue the rest, with a single system-call. Ulrich Drepper has implemented FUTEX_REQUEUE support in glibc, and a number of people have tested it over the past couple of weeks. Here are the measurements done by Saurabh Desai: System: 4xPIII 700MHz ./cond-perf -r 100 -n 200: 1p 2p 4p Default NPTL: 0.120s 0.211s 237.407s requeue NPTL: 0.124s 0.156s 0.040s ./cond-perf -r 1000 -n 100: Default NPTL: 0.276s 0.412s 0.530s requeue NPTL: 0.349s 0.503s 0.550s ./pp -v -n 128 -i 1000 -S 32768: Default NPTL: 128 games in 1.111s 1.270s 16.894s requeue NPTL: 128 games in 1.111s 1.959s 2.426s ./pp -v -n 1024 -i 10 -S 32768: Default NPTL: 1024 games in 0.181s 0.394s incompleted 2m+ requeue NPTL: 1024 games in 0.166s 0.254s 0.341s the speedup with increasing number of threads is quite significant, in the 128 threads, case it's more than 8 times. In the cond-perf test, on 4 CPUs it's almost infinitely faster than the 'swarm of threads' catastrophy triggered by the old code. Fix compile warning from Al's chardev cleanups. Make cdev infrastructure initialize early Very early initialization (core_initcall) needs to have the cdev initialization done. So make it part of the pre-initcall sequence, the same way the bdev caches were done. [PATCH] ppc64: 32/64bit emulation for aio From: Anton Blanchard PPC64 32/64-bit emulation for AIO. [PATCH] ppc64: Fix some PPC64 compile warnings Fix some warnings in the ppc64 build. Also declare a couple of AIO functions in aio.h rather than aio.c They are needed for 32-bit emulation support. [PATCH] ppc64: PPC64 irq return fix PPC64 irq return fix [PATCH] ppc64: Squash warning in ppc64 addnote tool From: David Gibson addnote in arch/ppc64/boot (a userspace tool, not kernel code) uses exit() without including stdlib.h. [PATCH] ppc64: Squash implicit declaration warning in ppc64 From: David Gibson Squash implicit declaration warning in ppc64 align.c [PATCH] ppc64: do_signal32 warning fix do_signal32() is used before it is defined, this prototype squashes the warning. [PATCH] ppc64: Squash warning in ppc64 xics.c From: David Gibson xics.c uses ppc64_boot_msg() without prototype, this fixes it by inclding . [PATCH] ppc64: Unused variables in ppc64 prom.c From: David Gibson This removes a bunch of unused variables in prom_init(), squashing the associated warnings. [PATCH] ppc64: build fix It needs sched.h for `current'. [PATCH] ppc64: ioctl32 warning fix warning: assignment makes pointer from integer without a cast [PATCH] ppc64: nail warnings in arch/ppc64/kernel/setup.c two printk warnings [PATCH] ppc64: arch/ppc64/kernel/traps.c warning fixes Fix a printk warning [PATCH] ppc64: more warning fixes arch/ppc64/kernel/htab.c:105: warning: implicit declaration of function `pSeries_lpar_hpte_insert' arch/ppc64/kernel/htab.c:109: warning: implicit declaration of function `pSeries_hpte_insert' [PATCH] tty_io warning fix Don't assume the size of dev_t: on ppc64 it is unsignedlong and this generates a printk warning. [PATCH] siocdevprivate_ioctl warning fix fs/compat.c: In function `compat_sys_ioctl': fs/compat.c:324: warning: implicit declaration of function `siocdevprivate_ioctl' [PATCH] arch/i386/kernel/mpparse.c warning fixes From: William Lee Irwin III mpc_apicid is a u8, and MAX_APICS can be 256. [PATCH] Fix dcache_lock/tasklist_lock ranking bug __unhash_process acquires the dcache_lock while holding the tasklist_lock for writing. This can deadlock. Additionally, fs/proc/base.c incorrectly assumed that p->pid would be set to 0 during release_task. The patch fixes that by adding a new spinlock to the task structure and fixing all references to (!p->pid). The alternative to the new spinlock would be to hold dcache_lock around __unhash_process. - fs/proc/base.c assumed that p->pid is reset to 0 during exit. This is not the case anymore. I now look at the count of the pid structure for PIDTYPE_PID. - de_thread now tested - as broken as it was before: open handles to /proc/ are either stale or invalid after an exec of a nptl process, if the exec was call from a secondary thread. - a few lock_kernels removed - that part of /proc doesn't need it. - additional instances of 'if(current->pid)' replaced with pid_alive. [PATCH] APM does unsafe conditional set_cpus_allowed From: Zwane Mwaikambo kapmd does a conditional check in order to decide whether to set the task's cpu affinity mask. This can change during runtime, therefore we unconditionally set it. There is an early exit in set_cpus_allowed if the current processor is in the allowed mask anyway. [PATCH] reiserfs: inode attributes support. From: Oleg Drokin This is a forward port of 2.4's inode attributes support for reiserfs. Original implementation for 2.4 was performed by Nikita Danilov. In order to enable this support, one must use "attrs" mount options, eg: mount /dev/hda1 /mount/pont -t reiserfs -o attrs Also either the filesystem must have been created with a recent mkreiserfs or must have been modified by a recent version of reiserfsck with its "--clean-attributes" option. If that is not done, attributes support will not be enabled and a kernel message will be printed. This is necessary because old kernels left random garbage in the place where these attributes now live. These attributes are totally compatible with ext2's ones. You can manipulate them with chattr/lsattr etc. Additionally the chattr 'd' option may be used to disable tail packing on a specific file or a directory tree. (The 'd' option normally means "don't dump". reiserfs has overloaded it). [PATCH] xirc2ps_cs irq return fix From zwane We shutdown the MAC part of the card and have interrupts disabled, interrupt gets queued, we reenable interrupts after shutting down device, service the interrupt, check status and get 0xff from powered down device. No idea what he's talking about here, but apparently the irq return handling isn't working out. Just return IRQ_HANDLED all the time. [PATCH] Fix readdir error return value From: OGAWA Hirofumi There are a couple of places in the readdir code where it forgets to set the returned error code to -EFAULT, leaving it at the default -EINVAL. Fix that up, and rename getdents_callback64.count to "result", which makes more sense. [PATCH] Don't remove inode from hash until filesystem has From: Neil Brown When an NFS request arrives, it contains a filehandle which needs to be converted to a dentry. Many filesystems use find_exported_dentry in fs/exportfs/expfs.c. A key part of this on filesystem where a 32bit inode number uniquely locates a file is export_iget which calls iget(sb, inum). iget will either: 1/ find the inode in the inode cache and return it or 2/ create a new inode and call ->read_inode to load it from the storage device. export_iget then verifies the inode is really a good inode (->read_inode didn't detect any problems) and the right inode (base on generation number from the file handle). For this to work reliably, it is important that whenever an inode is *not* in the cache, the on-device version is up-to-date. Otherwise, when read_inode loads the inode it will get bad data. For a file that has not been deleted, this condition always holds: a dirty inode is always flushed to disc before the inode is unhashed. However for a file that is being deleted this condition doesn't (didn't) hold. When iput -> iput_final -> generic_drop_inode -> generic_delete_inode is called we would unhash the inode before calling into the filesytem through ->delete_inode. So there is a small window between when generic_delete_inode unhashes the inode, and when ->delete_inode writes something to disc, where a call to ->read_inode (for export_iget) might discover what it thinks is a valid inode, but is really one that is in the process of being destroyed. It is this window that I want to close by moving the unhashing to the end of generic_delete_inode. [PATCH] slab: account for reclaimable caches We have a problem at present in vm_enough_memory(): it uses smoke-n-mirrors to try to work out how much memory can be reclaimed from dcache and icache. it sometimes gets it quite wrong, especially if the slab has internal fragmentation. And it often does. So here we take a new approach. Rather than trying to work out how many pages are reclaimable by counting up the number of inodes and dentries, we change the slab allocator to keep count of how many pages are currently used by slabs which can be shrunk by the VM. The creator of the slab marks the slab as being reclaimable at kmem_cache_create()-time. Slab keeps a global counter of pages which are currently in use by thus-tagged slabs. Of course, we now slightly overestimate the amount of reclaimable memory, because not _all_ of the icache, dcache, mbcache and quota caches are reclaimable. But I think it's better to be a bit permissive rather than bogusly failing brk() calls as we do at present. [PATCH] mark shrinkable slabs as being reclaimable All slabs which can be reclaimed via VM presure are marked as being shrinkable, so the core slab code will keep count of their pages. Except for the one in XFS. It has strange wrapper stuff. [PATCH] Process Attribute API for Security Modules From: Stephen Smalley This updated patch against 2.5.69 merges the readdir and lookup routines for proc_base and proc_attr, fixes the copy_to_user call in proc_attr_read and proc_info_read, moves the new data and code within CONFIG_SECURITY, and uses ARRAY_SIZE, per the comments from Al Viro and Andrew Morton. As before, this patch implements a process attribute API for security modules via a set of nodes in a /proc/pid/attr directory. Credit for the idea of implementing this API via /proc/pid/attr nodes goes to Al Viro. Jan Harkes provided a nice cleanup of the implementation to reduce the code bloat. [PATCH] Process Attribute API for Security Modules (fixlet) From: Stephen Smalley This patch, relative to the /proc/pid/attr patch against 2.5.69, fixes the mode values of the /proc/pid/attr nodes to avoid interference by the normal Linux access checks for these nodes (and also fixes the /proc/pid/attr/prev mode to reflect its read-only nature). Otherwise, when the dumpable flag is cleared by a set[ug]id or unreadable executable, a process will lose the ability to set its own attributes via writes to /proc/pid/attr due to a DAC failure (/proc/pid inodes are assigned the root uid/gid if the task is not dumpable, and the original mode only permitted the owner to write). The security module should implement appropriate permission checking in its [gs]etprocattr hook functions. In the case of SELinux, the setprocattr hook function only allows a process to write to its own /proc/pid/attr nodes as well as imposing other policy-based restrictions, and the getprocattr hook function performs a permission check between the security labels of the current process and target process to determine whether the operation is permitted. [PATCH] /proc/pid inode security labels From: Stephen Smalley This patch against 2.5.69-bk adds a hook to proc_pid_make_inode to allow security modules to set the security attributes on /proc/pid inodes based on the security attributes of the associated task. This is required by SELinux in order to control access to the process state accessible via /proc/pid inodes in accordance with the task's security label. An alternative approach that was considered was to implement an xattr handler for /proc/pid inodes. That approach would still require a hook call from the xattr handler to the security module to obtain an xattr value based on the task security attributes, so it would add a further level of indirection/translation. The only benefit of implementing an xattr handler for the /proc/pid inodes would be that the /proc/pid inode security labels could then be exported to userspace. However, the /proc/pid inode security labels are only used internally by the security module for access control purposes, and userspace access to the full range of process attributes is already provided via the /proc/pid/attr interface. Consequently, a simple hook in proc_pid_make_inode seemed preferable. [PATCH] CONFIG_FUTEX From: Christopher Hoover Not everyone needs futex support, so it should be optional. This is needed for small platforms. [PATCH] CONFIG_EPOLL From: Christopher Hoover Here's a patch to drop some more text/data/bss out of 2.5. This time the ``victim'' is eventpollfs (epoll). [PATCH] devpts xattr handler for security labels From: Stephen Smalley This patch against 2.5.69-bk adds an xattr handler for security labels to devpts and corresponding hooks to the LSM API to support conversion between xattr values and the security labels stored in the inode security field by the security module. This allows userspace to get and set the security labels on devpts nodes, e.g. so that sshd can set the security label for the pty using setxattr, just as sshd already sets the ownership using chown. SELinux uses this support to protect the pty in accordance with the user process' security label. The changes to the LSM API are general and should be re-useable by xattr handlers in other pseudo filesystems to support similar security labeling. The xattr handler for devpts includes the same generic framework as in ext[23], so handlers for other kinds of attributes can be added easily in the future. [PATCH] overcommit root margin From: Dave Hansen This patch makes vm_enough_memory(), more likely return failure when overcommit_memory==0 and !CAP_SYS_ADMIN. I'm not sure it's worth having another tunable just for this. I also reworked the documentation a bit. It should be a lot clearer to read now. [PATCH] net/sunrpc/sunrpc_syms.c typo fix From: Frank Cusack net/sunrpc/sunrpc_syms.c typo fix [PATCH] add notify_count for de_thread From: Manfred Spraul de_thread is called by exec to kill all threads in the thread group except the threads required for exec. The waiting is implemented by waiting for a wakeup from __exit_signal: If the reference count is less or equal to 2, then the waiter is woken up. If exec is called by a non-leader thread, then two threads are required for exec. But if a thread group leader calls exec, then only one thread is required for exec. Thus the hardcoded "2" leads to a superfluous wakeup. The patch fixes that by adding a "notify_count" field to the signal structure. [PATCH] extend-check_valid_hugepage_range.patch From: David Gibson Renames check_valid_hugepage_range() to is_hugepage_only_range(), which makes more sense. [PATCH] misc fixes - Add an explanation for clearing the focus bit on P4 (zwane) - __d_path kerneldoc fix (John Levon) - generic-hdlc documentation fix (Krzysztof Halasa ) - cmdline_read_proc cleanup (Oleg Drokin) - remove a couple of unused vars from drivers/ide/pci/hpt366.c - sound/core/sgbuf.c needs mm.h at least on alpha, for mem_map and other page stuff. (Ivan Kokshaysky ) - Don't use "u32 long" in cs46xx.c (Kevin Puetz ) - fs/nfs/nfs4xdr.c warning fix: all the `goto out;' statements are commented away, so comment away the label too. - net/ipv6/af_inet6.c: remove unused var - drivers/media/video/bttv-cards.c: jiffies are unsigned long - drivers/media/video/saa7134/saa7134-cards.c: unused var - Fix Documentation/Changes comment wrt sparc compiler version - drivers/pnp/quirks.c needs slab.h for kfree(). (Daniele Bellucci ) [PATCH] Documentation for disk iostats From: Rick Lindsley Here is a file to add to the Documentation/ directory which describes the disk statistics fields. [PATCH] Remove floating point use in cpia.c From: Duncan Haldane Gerd Knorr noticed a small use of floating point math in the cpia driver updates for 2.5.x I sent you a while ago, and this is not allowed in the kernel. This was in some code taken essentially verbatim from the Windows cpia driver released under the GPL by STM inc. that had been incorporated in the later versions of the cpia drivera sourceforge. It turns out that the use of floating point was quite inessential, and I've reimplemented the couple of lines of code involved in integer arithmetic. [PATCH] rd.c: separate queue per disk From: Maneesh Soni Provides a separate request queue for each ramdisk instance. Without this, the kernel oopses when the block later tries to unregister the same set of kobject things multiple times. This makes rd.c consistent with all other "disk" devices. [PATCH] Better fix for ia32 subarch circular dependencies From: john stultz This is a rework of John's recent change which resolved a circular include dependency: a function in mach_apic.h requires hard_smp_processor_id() and hard_smp_processor_id() requires macros from mach_apic.h So this patch (against bk-current) reverts the previous, and fixes the same circular dependency in a much cleaner way, by moving a piece of the circular chain into its own .h file, rather then removing hard_smp_processor_id() and accessing the apic by hand. [PATCH] fix drivers/net/ewrk.c memory leak From: Hollis Blanchard Hi, this was caught by the Stanford memory leak checker a while ago (2.5.48). If the tmp_stats allocation fails, tmp is not being freed. [PATCH] fix init/do_mounts_rd.c memory leak From: Hollis Blanchard Another potential memory leak the Stanford checker caught at 2.5.48: while closing and opening floppy disks, buf could be allocated and never freed. [PATCH] two PNP memory leaks From: Hollis Blanchard Fix two pnp error-path memory leaks, caught by Stanford memory leak checker circa 2.5.48. [PATCH] Change mmu_gathers into per-cpu data From: Martin Hicks Here is a patch that changes mmu_gathers into a per-cpu resource. It includes the changes for all arches except ia64. I've sent a separate patch to David Mosberger for ia64. [PATCH] arch/i386/kernel/srat.c cast warning fix From: William Lee Irwin III Fix "cast to pointer from integer of a different size". [PATCH] ACPI constant overflow fixes From: William Lee Irwin III 64-bit ACPI fixes [PATCH] tulip warning fix From: William Lee Irwin III Silence a printk warning. [PATCH] use update_mmu_cache() in install_page Tell the arch that install_page() has just added a page into the pagetables. [PATCH] namespace.c fix Yet another one in the namespace.c series. The code in graft_tree() used to be correct, but the code err = -ENOENT; down(&nd->dentry->d_inode->i_sem); if (IS_DEADDIR(nd->dentry->d_inode)) goto out_unlock; spin_lock(&dcache_lock); if (IS_ROOT(nd->dentry) || !d_unhashed(nd->dentry)) { ... } spin_unlock(&dcache_lock); out_unlock: was made incorrect in 2.5.29 when err = security_sb_check_sb(mnt, nd); if (err) goto out_unlock; was inserted. It has happened more often that people overlooked a preexisting setting of err. [PATCH] kbuild: Get more focus on warnings Make the default kernel build less verbose, to make warnings show up more clearly. [PATCH] credits update Do a strlcat() to go with the strlcpy(). [PATCH] A few more strlcpy's for drivers/base/ [PATCH] sound/* strncpy conversion This does a lot of cleanup for strncpy->strlcpy, replaces some sprintf/snprintf's aswell. There were only two places where things weren't straight forward. All-in-all a good cleanup though. [PATCH] fs/* conversions for strlcpy I only converted the cases where it was obvious that the intent was to truncate on overflow. Lots of places for maxpath/readlink type stuff I left alone. [PATCH] do_mounts.c strlcpy Use strlcpy in root_dev_setup() [PATCH] return valid vma from get_user_pages for non-MMU systems A couple of updates for the non-MMU memory managment code: - declare the overcommit variables - return a real vma pointer from get_user_pages (it is used by some code) - correct args to vmap() [PATCH] Fix snd_seq_queue_find_name() While going through sound/ for strncpy replacing, I came across this routine: /* return the (first) queue matching with the specified name */ queue_t *snd_seq_queue_find_name(char *name) { int i; queue_t *q; for (i = 0; i < SNDRV_SEQ_MAX_QUEUES; i++) { if ((q = queueptr(i)) != NULL) { if (strncpy(q->name, name, sizeof(q->name)) == 0) return q; queuefree(q); } } return NULL; } I'm _really_ sure that they meant to use strncmp() here instead. Like this. [PATCH] Fix mac adbhid driver [PATCH] drivers/ide/ppc/pmac.c compile fix This patch fixes the build of drivers/ide/ppc/pmac.c. [irda] module refcounts in irlan [PATCH] full stop/start on ethtool set speed/duplex/autoneg * Cleanup ethtool/mii_ioctl sets of speed/duplex/autoneg by stop/set/start driver to ensure sets stick. Must hold xmit_lock around stop/start. [PATCH] module owner for ppp_synctty.c This patch fixes ppp_synctty.c (used for doing PPP over some synchronous serial HDLC links) so that it sets the owner field of the tty line discipline it exports, rather than using MOD_INC/DEC_USE_COUNT. This is more or less from Stephen Hemminger. Please apply. Thanks, Paul. [PATCH] module refcounts for airport driver This patch takes out the MOD_INC/DEC_USE_COUNT in the airport (Apple wireless ethernet) driver. The driver already does SET_MODULE_OWNER on the netdevice, so the MOD_INC/DEC_USE_COUNT are unnecessary and just cause warnings. [PATCH] fix cache settings for m68knommu 5407 CLEOPATRA target Correct the wrong cache setup used on the CLEOPATRA 5407 based board. Specifically it enables precise exception mode and write buffering. Original patch from Alessendra Rubini. [PATCH] fix cache settings for m68knommu 5407 MOTOROLA target Correct the wrong cache setup used on the MOTOROLA 5407 based board. Specifically it enables precise exception mode and write buffering. Original patch from Alessendra Rubini. [PATCH] fix ColdFire 5407 cache flushing This fixes some ColdFire 5407 cache bogosity. Previous code was pushing all cache lines and the invalidating all of the cache. The push should be enough, and now with underlying fixes the the cache setup registers it is. Removed the whole invalidate cycle. Original patch cam from Allessandro Rubini. [PATCH] change get_sb prototype (i) The prototypes for free_vfsmnt(), alloc_vfsmnt(), do_kern_mount() so far occurred in several individual c files. Now they are in . (ii) do_kern_mount() has a third argument name that is typically a constant. It is called with "rootfs", "nfsd", type->name, "capifs", "usbdevfs", "binfmt_misc" etc. So, it should have a prototype that expresses this: do_kern_mount(const char *fstype, int flags, const char *name, void *data); This makes the ugly cast - return do_kern_mount(type->name, 0, (char *)type->name, NULL); + return do_kern_mount(type->name, 0, type->name, NULL); go away. Now do_kern_mount() calls type->get_sb(), so also get_sb() must have a const third argument. That is what the patch below does. If I am not mistaken, precisely two filesystems do not treat this argument as a constant, namely afs and cifs. A separate patch gives some cleanup there. [PATCH] kernel/* strlcpy conversion [PATCH] add dummy VMALLOC_ defines to m68knommu Add dummy VMALLOC_START and VMALLOC_END defines to m68knommu architectures. Some code in the proc filesystem breaks without them now. [PATCH] update m68knommu link script with 5282 support This patch does a couple of things to the m68knommu common linker script: - adds support for the 5282 ColdFire CPU - fixes broken setup for the Dragon Engine board [PATCH] update m68knommu defconfig This patch updates the defconfig for the m68knommu architecture. [PATCH] lock xtime struct in m68knommu/ColdFire timers This patch adds appropriate locking around updates of the xtime structure for the m68knommu ColdFire architecture timers. [PATCH] calculate microsecond offsets for m68knommu/ColdFire timers This adds offset calculcation to the m68knommu/ColdFire timers. Allows microsecond accuracy for gettimeofday and friends. [PATCH] m68knommu/5307 check timer irq pending Add a function to allow checking if the timer interrupt is pending for the m68knommu/5307 CPU. This is used by the architecture timer code for microsecond accurate time calculations. [PATCH] m68knommu/5272 check timer irq pending Add a function to allow checking if the timer interrupt is pending for the m68knommu/5272 CPU. This is used by the architecture timer code for microsecond accurate time calculations. [PATCH] m68knommu/5407 check timer irq pending Add a function to allow checking if the timer interrupt is pending for the m68knommu/5407 CPU. This is used by the architecture timer code for microsecond accurate time calculations. [NET]: post-sysfs netdev cleanup. [PATCH] bio splitting So here it is, easy split support for md and dm. Neil, the changes over your version are merely: - Make a global bio split pool instead of requring device setup of one. Will waste 8 * sizeof(struct bio_pair) of RAM, but... For 2.6 at least it has to be a core functionality. - Various style changes to follow the kernel guide lines. [NETLINK]: Use module_init() in netlink_dev.c [NET]: strncpy -> strlcpy conversions. [IPV4/6]: Common UDP procfs infrastructure. [IPV6]: Convert /proc/net/udp6 to seq_file. [IPV4/6]: Common TCP procfs infrastructure. [IPV6]: Convert /proc/net/tcp6 to seq_file. [XFRM_USER]: Wrong use of RTM_BASE. [XFRM_USER]: Add XFRM_MSG_UPDPOLICY, analogue of SADB_X_SPDUPDATE. [BRIDGE]: Deal with non-linear SKBs in ebtables. [netdvr tulip] nuke stale defines Noticed (indirectly) by davej [PATCH] Nuke stale comment from bmac Leftovers from before we used memset to clear the struct. [PATCH] Age old cs89x0 register define 'fixes' ? Remember these? There never was an outcome as to whether or not their doing the right thing. Any complaints from this being in 2.4 for nearly a year ? [PATCH] fix tlan 64bit check [PATCH] xircom init cleanups [PATCH] 3c505 printk levels. [PATCH] hamachi PCI DMA fix from 2.4 Maintainer fix that went into 2.4 last August with the comments "Get hamachi net driver RX working again. Apparently the PCI DMA conversion still has a bug or two left in it..." [PATCH] au1000 init cleanups. Not sure if I incorporated all your feedback on this one last time. Bug me if not... [PATCH] wireless pcmcia updates the same patch stil applies.. [FUTEX]: Fix kernel/compat.c after requeueing futex changes. [FUTEX]: Fix kernel/futex.c warning on 64-bit. [PATCH] arch/* strlcpy conversion Obvious strlcpy conversions in arch/*. In fact, mips and mips64 had an actual bug in sys_sysmips(). Confirmed with Keith Wesolowski. [PATCH] m68knommu/5206e check timer irq pending Add a function to allow checking if the timer interrupt is pending for the m68knommu/5206e CPU. This is used by the architecture timer code for microsecond accurate time calculations. [PATCH] m68knommu/5249 check timer irq pending Add a function to allow checking if the timer interrupt is pending for the m68knommu/5249 CPU. This is used by the architecture timer code for microsecond accurate time calculations. [PATCH] m68knommu/5206 check timer irq pending Add a function to allow checking if the timer interrupt is pending for the m68knommu/5206 CPU. This is used by the architecture timer code for microsecond accurate time calculations. [PATCH] m68knommu: add configuration options for ColdFire 5282 support [PATCH] m68knommu: ColdFire 5282 support Makefile changes [PATCH] m68knommu: add ColdFire 5282 support setup [PATCH] moew ColdFire 5282 support Add ColdFire 5282 support to common ColdFire header file. [PATCH] add m68knommu/5282 specific Makefile [PATCH] add m68knommu/5282 config init code This creates specific ColdFire/5282 configuration initialization. [PATCH] add m68knommu/5282 start up code Start up code for the M5282C3 Motorola ColdFire 5282 evaluation board. New architecture and board for the m68knommu architecture branch, though it is not very different to most existing ColdFire eval boards. [PATCH] create SIM header definitions for ColdFire 5282 Create header definitions file to support the ColdFire 5282 CPU. Unfortunately its register layout and setup is quite different to previous ColdFire CPU family members. [PATCH] include SIM header for ColdFire 5282 Modify the common SIM header for all ColdFire CPU's to incldue the new 5282 ColdFire defines. [PATCH] add support for the DMA of the ColdFire 5282 Add DMA base addresses for the ColdFire 5282 CPU. [PATCH] create header support for the ColdFire 5282 PIT timer Create a header file to support the PIT timer of the ColdFire 5282 CPU. This timer is completely different to all previous ColdFire timers. [PATCH] add pit timer for m68knommu/5282 CPU support This code supports the PIT timer of the 5282 ColdFire. This new timer device is completely different to the previous ColdFire timer device. [netdrvr bonding] add 802.3ad support Contributed by Intel, with updates by Jay Vosburgh @ IBM (bonding maintainer) [PATCH] OProfile: flush work queue on shutdown My previous fix was incomplete, we could get the same thing happening on the init-failure path. Fix that. [PATCH] OProfile: minimize sample error The code that attempts to reset last_task and in_kernel has a race against samples appearing during the handling of the buffers, that causes a small number of mis-attribution of samples. Closing the window is non-obvious, and not worth it, so we just make it smaller. Even without the patch, there seem to be few such "bad" samples because its effects are mitigated on a switch into userspace or a task switch. [PATCH] OProfile: timer usage override A patch mostly by Will Cohen, adding a parameter to OProfile to over-ride use of the perfctr hardware. Useful for testing and a host of other things. [PATCH] OProfile: fix stale comment [PATCH] OProfile: fix d_path() usage d_path() can return -ENAMETOOLONG these days. Pass it upstream. [netdrvr bonding] minor merge/kbuild fixes [netdrvr tulip] fix bogus merges [PATCH] rework timer code used for different m68knommu/ColdFire CPU's Rework the m68knommu/ColdFire/5307 Makefile to build the correct timer code for each of the different ColdFire CPU types. [PATCH] add support for 5282 ColdFire to the ColdFire serial header Add support for the 5282 ColdFire to the common ColdFire serial driver header. Also added the additional registers of the 5272, they are used to setup a more accurate baud rate timers [PATCH] ColdFire serial driver support for 5282 ColdFire This adds support for the ColdFire 5282 to the ColdFire serial driver. Only a few small changes, notably the interrupt setup is a little different. Also removed some dead code. [PATCH] allow FEC driver config to be used with ColdFire 5282 The ColdFire 5282 CPU also uses the Motorla FEC ethernet core, allow if to be selected for that config. [PATCH] FEC driver updates to support the ColdFire 5282 CPU (header) For reasons only Motorola will ever know they decided to use a substantially different register layout for the FEC ethernet device on the 5282 ColdFire silicon. This defines an appropriate access structure for it. [PATCH] remove crt0_fixed.S from m68knommu DragonEngine2 target Remove crt0_fixed.S from m68knommu DragonEngine2 setup. No longer required. [PATCH] fix m68knommu DragonEngine2 target setup code Numerous fixes for the m68knommu DragonEngine2 setup code. It was out of date relative to more recent kernels. Original patches from Georges Menie. [PATCH] remove crt0_himem.S from m68knommu DragonEngine2 target Remove crt0_himem.S from m68knommu DragenEngine2 config. It is no longer required. [PATCH] single start file for m68knommu DragonEngine2 target Start code for m68knommu DragonEngine2 target is now all in crt0_ram.S. This patch moves all the code into this one file. [PATCH] remove crt0_rom.S from m68knommu DragonEngine2 target Remove crt0_rom.S from m68knommu DragonEngine2 target config. It is no longer required. [PATCH] drivers/* strlcpy conversions Well, this is it for me and strlcpy. I'll leave the rest of the non-obvious usages of strncpy to the kernel janitors. Seems like quite a few uses really wanted memcpy instead, but I don't have time to investigate them all. It does appear that nearly all strncpy's will be removable. Obsoleting strncpy will probably atleast make the remaining few think about how they are using it. This is the patch for my trip through drivers/*. [PATCH] signal latency improvement This further optimizes the 'kick wakeup' scheduler feature: - do not kick any CPU on UP - no need to mark the target task for reschedule - it's enough to send an interrupt to that CPU, that will initiate a signal processing pass. [PATCH] IDE: fix "biostimings" and legacy chipsets' boot parameters interaction "biostimings" cannot be hardcoded to -19, make it -8. Code in ide_setup() assumes that everything <= -11 is a legacy chipset name, so fe. "ide0=ali14xx ide0=biostimings" will fail while "ide0=biostimings ide0=ali14xx" will be okay. [PATCH] Probe legacy IDE chipsets in ide_init() instead of in ide_setup() Legacy here means pdc4030, ali14xx, umc8672, dtc2278, ht6560b and qd65xx. They cannot be probed and initialized at a boot parameters' parsing time, because probing code depends on not yet ready kernel subsystems. This change also fixes boot parameters' ordering issue, fe. you could pass "ide0=dtc2278 ide0=noautotune" and "noautotune" was catched too late. We need for PKMAP_BASE [PATCH] s390: arch fixes. Base s390 bug fixes: - arch: Do create_proc_entry for debug feature outside spin locked code. - arch: Fix system call tracing for 64 bit kernels. - arch: Export empty_zero_page for use in binfmt_elf32 module. - arch: Fix call trace output and remove dead remote-debug code. - arch: Correct OUTPUT_ARCH for 64 bit compiles. - arch: Fix in_atomic. - arch: Fix broken _PAGE_INVALID_xxx definitions. - arch: Add __kernel_old_dev_t for 64 bit. - arch: adapt to new do_fork interface. - arch: set CR5 to get program checks for space switching instructions. - cio: Fix /proc output of blacklist ranges. - cio: Restructure chsc to avoid GFP_KERNEL allocation while holding a lock. - cio: Fix wait_cons_dev. - qdio: use GFP_ATOMIC for memory allocations in interrupt. [PATCH] s390: inline assemblies. Optimize s390 inline assemblies. [PATCH] s390: module alias support. Add module alias support for ccw devices. [PATCH] s390: steal lock support. cio: Add code to break a reservation of a device (steal lock). [PATCH] s390: module count. Remove unnecessary MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT pairs. [PATCH] s390: 31 bit compat. s390 32 bit compatability fixes: - Fix compat entries in the system call table. - Update to new compat_ioctl mechanism. - Define compat_alloc_user_space. [PATCH] s390: block device drivers. s390 block device driver fixes: - dasd: Don't continue on error in dasd_increase_state. Use hex_ascii view for the dasd debug area. Fix typo. - xpram: Fix setup of devfs_name. [PATCH] s390: console device drivers. s390 console driver fixes: - Register console ttys via module_init. Remove sclp_tty_init and tty3215_init from tty_io.c - con3215: use set_current_state. - sclp: Fix race condition in sclp interrupt handler. Fix deadlock on sclp_conbuf_lock for certain error conditions. [PATCH] s390: tape device driver. Bug fixes for the s390 tape device driver: - Remove tapechar_init() from mem.c. It is called via module_init anyway. - Remove unnecessary #include - Make tape_block compile. Add fixme. - Export symbols needed by tape discipline drivers. [PATCH] s390: network device drivers. s390 network device driver fixes: - Make use of SET_MODULE_OWNER. - Fix ctc interrupt handler. [PATCH] kill lvm from parisc CONFIG_BLK_DEV_LVM is gone, but there is still some associated code. This is the parisc part. [PATCH] kill lvm from x86_64 CONFIG_BLK_DEV_LVM is gone, but there is still some associated code. This is the x86_64 part. [PATCH] some typos [PATCH] kill ide-geometry I consider myself the maintainer of this code, created the file, want to destroy it again. It is unused and incorrect today. [PATCH] kill lvm from compat_ioctl.h CONFIG_BLK_DEV_LVM is gone, but there is still some associated code. This is the include/linux/compat_ioctl.h part. [PATCH] configure boot params for m68knommu Add a config entry for defining static boot parameters for m68knommu architecture. [PATCH] make common m68knommu/68328 specific ints.c Modify the m68knommu/68328 specific ints.c to be the general ints handler when building for this sub-architecture. It is just simpler to have one for each sub-architecture (which means we currently need 3 for the 3 prominant m68knommu families). Each can handle the hardware setup differences, and there is a few at this level. This doesn't really add much code overall, since 2 of the 3 m68knommu architectures already had significant specific int handling code. [PATCH] don't call 68328 specific int setup No longer need to call the hardware specific int setup. This is now done in the common int handler for 68328 sub-architecture. [PATCH] don't call 68328 specific int setup (in 68VZ328) No longer need to call the 68328 specific int setup. Now all done by the common 68328 int handler code. [PATCH] const char* to char* update in console.h From: Amit Shah The read function for consoles in include/linux/console.h contains const char* for a pointer that it will actually modify. Although no one seems to be using this as of now, it should be corrected. [PATCH] reorganize for unreachable code From: Scott Russell - moved return to eliminate unreachable code reported by kbugs.org [PATCH] better debug macro safety From: Rusty Russell I don't think it's misused anywhere, but it's better to be safe. Pointed out by Joern Engel. [PATCH] DMA-API typo From: Jonathan Corbet This fix has been acked by James Bottomley, but has not risen above Linus's threshold. [PATCH] update the short description for BLK_DEV_HPT366 From: Adrian Bunk The following trivial patch updates the short description for BLK_DEV_HPT366 (the HPT372 and the HPT374 are supported, too): [PATCH] unreachable code in fs_intermezzo_methods.c From: Scott Russell - Rearranged unreachable code reported at kbugs.org [PATCH] add help texts for sound_oss_Kconfig From: Steven Cole This is a slightly improved version of the additional help texts for sound/oss/Kconfig. The originals were obtained from 2.4.21-pre4. [PATCH] remove unneeded #define LinuxVersionCode from eata.c From: Adrian Bunk the patch below removes the unneeded #define LinuxVersionCode from eata.c. It's not used and if it was needed KERNEL_VERSION in include/linux/version.h does the same. [PATCH] MAINTAINERS update for SN support From: Jesse Barnes Quick add to the maintainers file for SN (aka Altix 3000) support in the kernel. [PATCH] Remove unused GFP_DMA from include_sound_trident.h From: Matthew Wilcox These defines are simply not used any more. [PATCH] unreachable code in drivers_media_video_cpia_pp.c From: Scott Russell - Rearranged unreachable code reported via kbugs.org [PATCH] NAPI_HOWTO.txt typo + interrupt fix From: Jonathan Corbet This fixes a couple of little mistakes in Documentation/NAPI_HOWTO.txt; I also updated the interrupt handler stuff while I was at it. Jamal Hadi Salim has seen and acked it. [PATCH] Self-promotion and minor docs updates From: Pavel Machek This fixes url in ioctls, fixes some kernel parameters, kills comment in tty that is 10+ years old and wrong, and adds me a little credits. [PATCH] missing release_region in drivers_cdrom_cm206.c From: Scott Russell - missing release_region (reported by kbugs.org) - removed extraneous return (Randy Dunlap) [PATCH] Better docs for boot-up code From: Pavel Machek This adds some more commentary to the boot-up code. [PATCH] proper APIC suspension From: Pavel Machek [PATCH] Allow for architectures to override From: Stephen Rothwell This allows some architecture to override the generic implementations on {get,put}_compat_flock64 as some of them (ia64 and maybe x86_64) will take alignment faults when accessing the loff_t members of struct compat_flock64. Requested by David Mosberger, modified by Dave Miller. [PATCH] kernel_suspend.c compile warning From: Pavel Machek This kills a compile warning in swsusp [PATCH] Make videodev_proc_destory() __exit From: Tom Rini The following marks videodev_proc_destory as __exit. This is safe as its only caller is marked as __exit as well. [PATCH] Cleanup in fs_devpts_inode.c From: René Scharfe This un-complicates a small piece of code of the dev/pts filesystem and decreases the size of the object code by 8 bytes for my build. Yay! :) [PATCH] fs_autofs4_root.c unused variable From: Rusty Russell Trivial unused var... [PATCH] Typo in isofs_inode.c From: René Scharfe this fixes a trivial error in isofs/inode.c, and reformats the surrounding code a bit to (hopefully) enhance clarity. i_mtime.tv_nsec was initialized twice, and i_ctime.tv_nsec never [PATCH] sx tty_driver add .owner field remove MOD_INC_DEC_USE_COUNT From: Hanna Linder Linux v2.5.70