Summary of changes from v2.6.5 to v2.6.6 ============================================ Can not mount from cifs vfs client built with gcc 3.3.1 due to compiler optimization of unsafe global variable. Remove unsafe global variable. Fix problem reconnecting additional mounts to the same server after session failure. Fix invalid dentry when race in mkdir between two clients fix oops in send_sig on unmount of cifs vfs due to sending signal to demultiplex thread after it has exited. Do not treat invalid handle warning in response to oplock break (of file that is now closed) as an error. Fix EIO caused by network timeouts on changing file size. To avoid spurious oplock breaks from server, in the case of inodes that we already have open, avoid doing path based setting of file size if we can do it by handle. This keeps our caching token (oplock) and avoids timeouts when the local oplock break takes longer to flush writebehind data than the SMB timeout for the SetPathInfo request would allow fix to not retime out the same session twice since it can invalidate the newly reestablished session unnecessarily Do not return buffer if request has already timed out. move bad smb session retry to correct location, up one level in cifs vfs code fix endian bug in lockingX and add retry on EAGAIN have to reconnect open files safely, one at a time, as needed finish off move from reopening all files on reconnection (which takes too long under heavy stress) to reopen file as needed after reconnection to server. correct retry on remaining handles based calls Fix compile error Missing soft vs. hard retry mount option Do not grab i_sem (already taken in filemap.c across commit write calls) during reopen of invalidated file handle. Fix oops in mount error path when unload_nls called with bad pointer. Avoid smb data corruption under heavy stress missing message on timed out requests rcvtimeout set improperly for some cifs servers invalidate locally cached pages when server breaks oplock. Do not loop reconnecting for servers that drop tcp session rather than sending smb negprot response Oops on reopen files when dentry already freed invalidate cached pages when last local instance closed so we do not use stale data while someone may be modifying the file on the server. fix double incrementing of transaction counter Fix check of filldir return code during readdir to avoid incomplete search results displayed on very large directories. Fix cleanup of proc entries. Add config parm to allow disabling negotiating Linux extensions allow disabling cifs Linux extensions via proc Fix an incorrect mapping of open flags to cifs open disposition. Fix blocking byte range locks. These fix breakages that were notice running lock tests 1 and 7 of the connectathon posix file api tests set byte range locktimeouts properly fix cifs readme gracefully exit on failed mounts to win98 (which closes tcp session rather than erroring on smb protocol negotiation) fix failed mounts to win98 part II Fix global kernel name space pollution [netdrvr r8169] Conversion of Rx/Tx descriptors to consistent DMA: - use pci_alloc_consistent() for Rx/Tx descriptors in rtl8169_open() (balanced by pci_free_consistent() on error path as well as in rtl8169_close()); - removal of the fields {Rx/Tx}DescArrays in struct rtl8169_private as there is no need to store a non-256 bytes aligned address any more; - fix for rtl8169_open() leak when RxBufferRings allocation fails. Said allocation is pushed to rtl8169_init_ring() as part of an evil cunning plan. [netdrvr r8169] Conversion of Rx data buffers to PCI DMA - endianness is kept in a fscked state as it is in the original code (will be adressed in a later patch); - rtl8169_rx_clear() walks the buffer ring and releases the allocated data buffers. It needs to be used in two places: - rtl8169_init_ring() failure path; - normal device release (i.e. rtl8169_close); - rtl8169_free_rx_skb() releases a Rx data buffer. Mostly an helper for rtl8169_rx_clear(). As such it must: - unmap the memory area; - release the skb; - prevent the ring descriptor from being used again; - rtl8169_alloc_rx_skb() prepares a Rx data buffer for use. As such it must: - allocate an skb; - map the memory area; - reflect the changes in the ring descriptor. This function is balanced by rtl8169_free_rx_skb(). - rtl8169_unmap_rx() simply helps with the 80-columns limit. - rtl8169_rx_fill() walks a given range of the buffer ring and try to turn any descriptor into a ready to use one. It returns the count of modified descriptors and exits if an allocation fails. It can be seen as balanced by rtl8169_rx_clear(). Motivation: - partially abstract the (usually big) piece of code for the refill logic at the end of the Rx interrupt; - factorize the refill logic and the initial ring setup. - simple conversion of rtl8169_rx_interrupt() without rx_copybreak (will be adressed in a later patch). [netdrvr r8169] rtl8169_start_xmit fixes: - it forgot to update stats if the skb couldn't be expanded; - it didn't free it either if the descriptor was not available; - move the spin_unlock nearer of the exit point instead of duplicating it in the new branch. [netdrvr r8169] Conversion of Tx data buffers to PCI DMA: - endianness is kept in a fscked state as it is in the original code (will be adressed in a later patch); - buf_addr of an unmapped descriptor is always set to the same value (cf rtl8169_unmap_tx_skb); - nothing fancy, really. [netdrvr r8169] Rx copybreak for small packets. - removal of rtl8169_unmap_rx() (unneeded as for now). [netdrvr r8169] Add {mac/phy}_version. - change of identification logic in rtl8169_init_board(); - {chip/rtl_chip}_info are merged in rtl_chip_info; - misc style nits (lazy braces, SHOUTING MACROS from realtek converted to functions). [netdrvr r8169] Merge of changes done by Realtek to rtl8169_init_one(): - phy capability settings allows lower or equal capability as suggested in Realtek's changes; - I/O voodoo; - no need to s/mdio_write/RTL8169_WRITE_GMII_REG/; - s/rtl8169_hw_PHY_config/rtl8169_hw_phy_config/; - rtl8169_hw_phy_config(): ad-hoc struct "phy_magic" to limit duplication of code (yep, the u16 -> int conversions should work as expected); - variable renames and whitepace changes ignored. [netdrvr r8169] Merge of timer related changes from Realtek: - changed their timeout value from 100 to HZ to trigger rtl8169_phy_timer(); - s/TX_TIMEOUT/RTL8169_TX_TIMEOUT/ to have RTL8169_{TX/PHY}_TIMEOUT. [netdrvr r8169] Merge of changes from Realtek: - register voodoo in rtl8169_hw_start(). [netdrvr r8169] Driver forgot to update the transmitted bytes counter. Originally done in rtl8169_start_xmit() by Realtek. [netdrvr r8169] Modification of the interrupt mask (RealTek). [netdrvr r8169] Suspend/resume code (Fernando Alencar MarĂ³tica). [netdrvr r8169] fix RX Brown paper bag time: the Rx descriptors are contiguous and EORbit only marks the last descriptor in the array. OWNbit implicitly marks the end of the Rx descriptors segment which is owned by the nic. [netdrvr r8169] Endianness update (original idea from Alexandra N. Kossovsky): - descriptors status (bitfields enumerated as _DescStatusBit); - address of buffers stored in Rx/Tx descriptors. [netdrvr r8169] Stats fix (Fernando Alencar MarĂ³tica ). [PATCH] 2.6.1-rc1-mm1 - typo of death in the r8169 driver silly bug in the r8169 driver. [netdrvr r8169] fix oops by removing __devinitdata marker [netdrvr r8169] fix rx counter masking bug [netdrvr r8169] fix phy initialization loop init Check return on failed dentry allocation. Suggested by Randy Dunlap Allow null password string pointer and passwords longer than 16 bytes finish handling commas in passwords [netdrvr r8169] fix TX race - possible tx descriptor index overflow (assume tp->dirty_tx = NUM_TX_DESC/2, tp->cur_tx = NUM_TX_DESC - 1 and watch TxDescArray for example); - the status of an inadequate descriptor is checked. NB: the bug will not necessarily noticed when tx_left == 1. finish off mount parm sep override Fix caching problem with multiply open files from different clients Relax requested CIFS permissions on open to simply request GENERIC_READ and GENERIC_WRITE (instead of GENERIC_ALL which can unnecessarily conflict with share permissions by asking implicitly for take ownership and other unneeded flags) fix remoting caching part 2 remove spurious debug messages fix problem not connecting to server when port not specified explicitly and port field unitialized reset searches properly when filldir fails ipv6 enablement for cifs vfs fixes Spurious white space and duplicated line cleanup NTFS: Set i_generation in VFS inode from seq_no in NTFS inode. NTFS: Make ntfs_lookup() NFS export safe, i.e. use d_splice_alias(), etc. NTFS: Make it compile... improve resume key resetting logic when filldir returns error and filename is in unicode allow nosuid mounts NTFS: Release 2.1.7 - Enable NFS exporting of mounted NTFS volumes. - Implement ntfs_get_parent() and ntfs_get_dentry() as the NTFS specific export operations ->get_parent() and ->get_dentry() respectively. NTFS: Add missing return -EOPNOTSUPP; in fs/ntfs/aops.c::ntfs_commit_nonresident_write(). fix problem with inode revalidation and cache page invalidation Fix the exec, suid, dev mount parms to not log warnings when specified [netdrvr r8169] Rx wrap bug: - rtl8169_rx_interrupt() can wrap and process an Rx descriptor that it has invalidated a few iterations before. The patch limits the number of allowed descriptors between two invocations of the Rx refill function; - rtl8169_rx_interrupt() now looks similar to rtl8169_tx_interrupt to highlight the issue. fix caching data integrity problem use safer i_size_write mechanism to update i_size NTFS: Fix off by one error in ntfs_get_parent(). [IEEE1394/OHCI]: Deal with some OHCI implementations that have an invalid max_rec field. IEEE1394/Lynx(r1182): Explicitly set LCtrl bit in phy register set. NTFS: Enforce no atime and no dir atime updates at mount/remount time as they are not implemented yet anyway. PPC32: Add CONFIG_MPC10X_BRIDGE. From: Adrian Cox . PPC32: In some cases we need to make all pages _PAGE_COHERENT. Controll this via the cpu_table flags since it's a requirement in some CPU and host bridge combinations. From: Adrian Cox [PATCH] PATCH [1/15] qla2xxx: Update copyright banner Update copyright banner for all source files. [PATCH] PATCH [2/15] qla2xxx: Track DSDs used by an SRB Track the number of DSDs and request entries required for an SRB in case of a request-entry or command-slot shortage. [PATCH] PATCH [3/15] qla2xxx: Increase MBX IOXB timeout Fix a problem where during heavy I/O the driver would improperly timeout an outstanding MBX IOCB before the firmware itself had a chance to issue and wait for the command to timeout. [PATCH] PATCH [4/15] qla2xxx: Endianess fix while reading stats Return firmware statistics retrieved from qla2x00_get_link_status() in host-endian form. [PATCH] RE: PATCH [5/15] qla2xxx: request entries update For now, I'd say keep everything in the original patch except the hunk that changes SG_ALL -> 32, revised patch attached. [PATCH] PATCH [6/15] qla2xxx: Track error-state of SBRs Consistenly track the error-state of a failed SRB. [PATCH] PATCH [7/15] qla2xxx: Misc. updates with FO resync Misc. updates due to resync with non-embedded (failover-aware) driver. o Add ancillary support definitions. o Remove extraneous *_IOCTL #ifs. o Make qla2x00_cmd_timeout() and its support routines visible to the non-embedded driver. [PATCH] PATCH [8/15] qla2xxx: Use proper HA references Fix issue where the driver would reference the incorrect HA during loop state check. [PATCH] PATCH [9/15] qla2xxx: NVRAM id-list updates Resync with latest NVRAM subsystem ID list. [PATCH] PATCH [10/15] qla2xxx: Use fcports list for targets Consistently use the fcports list of an HA to iterate through the known target devices. [PATCH] PATCH [11/15] qla2xxx: Add login-retry-count override Add a module parameter to override the NVRAM's login retry count value. [PATCH] PATCH [12/15] qla2xxx: Restore update state during resync Restore the UPDATE state of the HA if a resync event occurs during a device (re)discovery. [PATCH] PATCH [13/15] qla2xxx: Device reset fix During a back-door device reset call, hold off execution of commands until the reset is complete. PATCH [14/15] qla2xxx: 23xx/63xx firmware updates Andrew Vasquez Resync with latest released firmware -- 3.02.26. [PATCH] PATCH [15/15] qla2xxx: Update driver version Update version number to 8.00.00b11-k (to indicate embedded driver). [PATCH] USB multi-card reader blacklist updates Here's a couple more blacklist entries. Seems everyone suddenly rushed out and bought one of these multi-card readers. Dave [PATCH] Fix error handler offline behaviour No-one seems to have noticed, but there's a bug in our offline handling which can cause the eh to loop forever when it tries to offline a device (basically offline I/O rejections are done in prep, which doesn't work for already prepped commands). The attached fixes this, and also sweeps offline up into a fairly fully fledged scsi state model. With this applied I can now offline my root device under load without causing a SCSI hang (ext2 BUG()s rather unhappily but at least that's not a SCSI problem). [PATCH] aacraid reset handler update This is an update from the Adaptec version of the driver to the aacraid reset handler. The current code has a logic error that is fixed by this version. This builds against 2.6.5-rc1. [PATCH] Replace scsi_host flags with scsi_device sdev_bflags Replace the scsi_host flags with scsi_device sdev_bflags. Change USB to set sdev_bflags in its new slave_alloc function. [PATCH] Add 192 byte MODE SENSE flag Add a BLIST_MS_192_BYTES_FOR_3F flag. If it is set, sends a 192 byte MODE SENSE in sd.c. SCSI: correct blacklist entry [TG3]: Jumbo frames and FTQ reset patch. 1. Set extended packet length bit in phy register 0x18 shadow register 0 on all chips that support jumbo frames (i.e. all chips except 5705 and its variants). Jumbo frame reception is less reliable (more CRC errors) if this bit is not set. This bit can be set regardless of the current MTU setting. 2. Remove FTQ reset during chip init. This is the best fix for the ASF race condition problem that I mentioned a few months ago. The FTQ reset is redundant as it is already reset during GRC reset. [TG3]: Just completely delete the disabled FTQ reset code. [CPUFREQ] If ->init fails, unregister cpufreq driver. Some cpufreq drivers can only tell whether they work while the per-CPU ->init() function is executed [e.g. the acpi driver]. So that cpufreq_driver isn't blocked by such stale drivers, unload them unless the driver sets a special flag. [CPUFREQ] Use KERN_WARNING for warning. [CPUFREQ] Move the centrino table matching into an own function Only the FEATURE_EST bit for CPU 0 is checked in module_init() directly. As cpufreq drivers aren't sticky any longer (see previous patch), this will not change user-visible behaviour. [CPUFREQ] Merge ACPI perflib. Use ACPI _PSS data to determine valid frequency and voltage pairs on Enhanced SpeedStep-capable processors. An original form of such ACPI-PentiumM-cpufreq interaction was sent to the cpufreq list by David Moore in June last year; the attached patch utilizes his code to set _PDC. The new ACPI "P-States library" is utilized to obtain the correct frequency and MSR value pairs for the speedstep-centrino driver. Only if no such proper table exists (!CONFIG_ACPI, broken ACPI tables, etc.), fall back to the existing hard-coded table. If anyone has a better idea for the Kconfig section, please tell me so. This version of this patch has proper acpi_state setting included, and also has a hint in the banner of the centrino_cpu_init_acpi() function, as Jeremey Fitzhardinge suggested. [CPUFREQ] Export an array of available frequency settings of the centrino driver. [CPUFREQ] Fix up centrino initcall level centrino_init needs to be late_initcall so that the ACPI processor module is completely up and running. [CPUFREQ] SPEEDSTEP_RELAXED_CAP_CHECK option. A few SpeedStep-capable systems don't perform according to specification: the CPUID and/or some MSRs don't tell us the CPU is SpeedStep capable even though it definitely is. Allow a relaxed checking for one such issue by a module parameter only available if a config option is turned on. This is done to avoid the risk of doing invalid speedstep instructions on systems which do not support it, and which might even lead to (hardware) failure. Patch originally from Andres Aeriksson (?) aeriksson at fastmail (dot) fm [CPUFREQ] Fix an off-by-10 value in the detection of the Pentium M processor frequency. [CPUFREQ] Extra __init section function for longrun driver. From Luiz Fernando Capitulino [CPUFREQ] Extra __init section function for longhaul driver. From Luiz Fernando Capitulino Driver Core: fix spaces instead of tabs problem in the Kconfig file. add sysfs support for vc devices. VC: fix bug in vty_init() where vcs_init() was not called early enough. It was being used before initialized, not nice :( [PATCH] I2C: w83781d fan_div code refactoring Quoting myself: > This tends to increase the size of the three set_store_regs_fan_div > functions, and I am considering refactoring them at some point. Later > though. Here is the promised refactoring. Tested on my AS99127F rev.1, seems to work. As for the previous patch, there is a part that I cannot test with the AS99127F, so additional testing is welcome. I agree this makes the code slightly less readable, but this saves 60 lines of code (1754 bytes, around 3% of the driver total), and is actually far less complex that I first feared. [PATCH] I2C: add new chip driver: pcf8574 Please find below a patch against kernel 2.6.5-rc1 to add the pcf8574 driver (an I/O expander for the I2C bus). I have ported it from the 2.4 version, and it includes some fixes and simplifications. It has been reviewed by Jean Delvare on IRC. Driver class: remove possible oops This happens when the device associated with a class device goes away before the class does. [PATCH] QIC-02 tape drive hookup to classes in sysfs Here is a patch to hook up the qic02 tape device to have class support in sysfs. I have verified it compiles. I do not have access to the hardware to test. Could someone who does please verify? From the file: * This is a driver for the Wangtek 5150 tape drive with * a QIC-02 controller for ISA-PC type computers. * Hopefully it will work with other QIC-02 tape drives as well. [PATCH] add class support to floppy tape driver zftape-init.c Here is a patch to add class support to zftape-init.c: MODULE_DESCRIPTION(ZFTAPE_VERSION " - " "VFS interface for the Linux floppy tape driver. " "Support for QIC-113 compatible volume table " "and builtin compression (lzrw3 algorithm)"); I have verified it compiles but do not have the hardware to test it. [PATCH] Fix scsi_transport_spi.c for gcc-2.95.3 Work around the gcc-2.95 token pasting bug. [libata] Add driver for SiS 964/180 SATA. [libata sata_sis] minor cleanups [PATCH] More domain validation fixes and additions Following testing in more extreme situations, the following problems turned up: - The error handler can offline the device during DV (most particularly true when transport parameters are undetectably mismatched). Fixed by modifying the state model to allow this and then having DV set the device back online for the retry. - DV needs to be serialised. Fixed by introducing a per device semaphore. - Cosmetically, it's nice to trigger DV from userland, so added a revalidate sysfs entry. [PATCH] Sysfs for framebuffer the following patch (against 2.6.5-rc2) teaches fb to use class_simple. With this patch udev will automagically create device nodes for each framebuffer registered. Once all drivers are converted to framebuffer_{alloc,release} we can switch to our own class. This is what sysfs dir looks like: notebook:~# tree /sys/class/graphics/ /sys/class/graphics/ `-- fb0 `-- dev Remove mention of non-existent tulip.txt from Doc/netwrk/00-INDEX [BK] ignore build-generated files in scripts/basic/ and drivers/md/ [MAINTAINERS] remove mention of defunct linux-via mailing list Noticed by Adrian Bunk. [libata] use new pci_dma_error() to check for pci_map_single() failure [libata] use kmap_atomic() rather than kmap() [libata ata_piix] do not disable SATA port on module unload We were disabling the SATA port, but not enabling it on module load. So, modprobe+rmmod+modprobe would fail. [libata ata_piix] clean up combined mode handling [libata ata_piix] fix combined mode device detection SATA port detection should not have assumed that a single SATA port mapped to a single struct ata_port. Combined mode breaks this assumption. Change code to simply detect if one or more devices are present on the struct ata_port, which is what we really wanted to do. [libata sata_promise] check for PATA port on PDC20375 We don't handle it yet, but this prints out a message in its presence, permitting verification of the check and informing users why their PATA device is not recognized. [libata] set up some of the per-command data beforehand The data transfer mode and the set of read/write commands we generate during normal operation remains constant until we change the data transfer mode. This removes a series of branches in the read/write fast path, and in general cleans up that particular spot of code. [libata] consolidate data transfer mode handling The various ways you can send data to/from your ATA device is known as the ATA taskfile protocol: PIO single sector, PIO multiple sector, DMA, DMA TCQ, DMA NCQ, ... Prior to this change, the data direction (read/write) was encoded implicitly into the ATA_PROT_xxx value itself. This increased complexity in some areas, and inhibited flexibility in others. This change separates data direction from taskfile protocol, and also moves the data direction flag (ATA_QCFLAG_WRITE) down to a lower level (ATA_TFLAG_WRITE). [ata] move some generic stuff linux/libata.h -> linux/ata.h struct ata_taskfile is generic, and so far its flags (ATA_TFLAG_xxx) Also, move ATA_PROT_xxx definitions into their own enum. [PATCH] added class support to stallion.c Here is a patch to add class support to the Stallion multiport serial driver. [PATCH] added class support to istallion.c Here is a patch to add class support to the Stallion Intelligent multiport serial driver. [PATCH] I2C: Discard out-of-date comment in adm1021 driver This simple patch discards an out-of-date comment in the adm1021 driver. I've done the same in our CVS repository where many more drivers were affected. I agree it's not very important, but I prefer it to be done before any driver with the error is used as a base to port a new driver, and the misinformation spreads. [PATCH] I2C: initialize fan_mins in w83781d, asb100 and lm78 Quoting myself: > While testing, I found a corner case that isn't handled properly. It > doesn't seem to be handled by the lm78 and the asb100 either. Setting > fanN_div before ever reading from the chip or setting fanN_min will > make use of fanN_min while it was never initialized. The following patch addesses the issue. Tested to work on my AS99127F rev.1 (which means that only the changes to the w83781d driver were actually tested). Testers welcome. [PATCH] USB: FTDI 232BM "USB-RS232 OptoBridge" we (the german company Gude Analog und Digitalsysteme GmbH, http://www.gude.info) have manufactored a USB<->RS232 adapter with galvanic isolated RS232 Interface. Data is transmitted by optical signals only. The Product's name is "USB-RS232 OptoBridge". We used the FTDI 233BM Chip with PID 0xE889 (VID 0x0403). The Product will be released this Cebit 2004. Could you please extend the ftdi_sio code with this PID. You find a .diff file attached which I have tested with kernel 2.6.4 At http://ftdi-usb-sio.sourceforge.net/ I saw that you provide a patch for 2.4.x kernels. Will our PID also find it's way in this back-ported driver patch? In the future (in the next 10 month), our company will have some more Products using the FTDI Chip. The PID's FTDI already allocated for us are: E888 to E88F and E808 to E80F Thank you very much, Martin Bachem [PATCH] USB: kernel-doc comment tweak Correct kernel-doc comment with incorrect parameters documented [PATCH] USB: gadget zero does endpoint autoconfig Here's where all those preceding autoconfig patches start to fit together: one gadget driver gets rid of almost all the controller-specific #ifdeffery. Two of the other gadget drivers can do the same thing, and just as easily: file storage, and serial. (I'll hope their maintainers do those changes though.) The "ether.c" gadget driver is a lot more complicated to do this way since it has to cope with some differences by switching to alternate protocols (CDC Ethernet vs a subset) and soon be able to handle RNDIS. So that'll be a while yet. Gadget Zero learns to autoconfigure. - Gets rid of remaining controller-specific #ifdeffery. Now hardware choices can be made at run time too (not just compile time). - Simplifies its use of the "DEBUG" CPP symbol. - Force device to report itself consistently as self-powered. [PATCH] USB: rtl8150 update adds two more vid/did and better packet error statistics. Link detection also has been added. [libata] pci_dma_error() was renamed to pci_dma_mapping_error() [libata] reduce diff with 2.4 libata backport [libata] use scsi host lock In 2.4 we release io_request_lock and take our own per-host lock, in the ->queuecommand() hook. In 2.6, the SCSI layer provides a useful to simply use the lock we already have, via scsi_assign_lock(). [PATCH] USB: new cypress thermometer driver [PATCH] USB: add cytherm driver to the build [PATCH] USB: USB gadgets can autoconfigure endpoints This adds some code that gadget drivers can call from driver initialization, to simplify the "configure against this hardware" step. Add endpoint autoconfiguration for gadget drivers. Endpoint selection is currently being done with conditional compilation. That doesn't look nice, but more importantly it doesn't work well with the model that some distributions won't be custom-matched to hardware. Say, a PDA distro running on iPaq (pxa2xx_udc) or Axim (mq11xx_udc). This code just makes it easier for drivers to match to hardware at run-time. It's a convenience function for something they could have been doing already, but weren't. [libata] documentation, and a couple tiny cleanups Add more per-function source code documentation. Some of this stuff is esoteric ATA crapola, and definitely needed to be documented. Also, two tiny cleanups spotted while documenting: * kill unused arg from internal function ata_dev_try_classify() * kill unused return value from ata_dev_id_string() [PATCH] USB: Improve core/config.c error messages This patch improves error reporting in the configuration parsing routines. It also adds a few extra minor tweaks. #include linux/config.h and make the usual DEBUG settings available. Use the driver-model dev_xxx() macros for log output. Be much more explicit about the nature of errors, including configuration, interface, and altsetting numbers where appropriate. Log fatal problems as errors, non-fatal ones as warnings. Remove a #define'd constant that is already set in linux/usb.h. Fix some variables declared as pointer to char that really should be pointers to unsigned char. Replace a whole bunch of "out-of-memory" error messages with a single message. Wrap source lines that are longer than 80 columns (but not log output lines!). Clean up the logic for detecting errors when retrieving a configuration descriptor. Apart from the log messages themselves, this introduces no functional changes. [PATCH] USB: Code improvements for core/config.c This patch makes some improvements to the code in config.c. Create a subroutine to handle the repeated task of skipping forward to the next descriptor of a certain type. Remove some fairly useless debugging messages (they could never even have been enabled in the pre-as221 code). Verify that endpoint descriptors don't have an address equal to 0 (as well as not being above 15). Rename some local variables so they are a little more consistent and meaningful. Despite all the changes, the functionality should remain the same. Please apply. [PATCH] USB: fix osdl bugid 481 (USB boot messages) Some boot-time messages were obnoxiously long because they used "old-style" diagnostics. OSDL bugid 481 Get rid of most remaining "old style" diagnostics from usbcore. Most messages use driver model style diagnostics. Messages that don't have an associated device use the standard kernel printk wrappers and label themselves as from "usbcore". (Except that there's no such wrapper for KERN_ERR.) This doesn't touch usbfs, "config.c" (Alan's patches do this), or usb_reset_device() (needs a more substantial overhaul). Or any other USB drivers (notably HID). [PATCH] USB: fix osdl bugid 2006 (timer init and fault paths) Need to initialize timers a bit earlier to handle certain initialization faults. OSDL bug 2006 Need to initialize some timers a bit earlier to clean up safely after very early init HCD failures. Those early init faults were needlessly mysterious since they didn't emit diagnostics except at HCD discretion. [PATCH] USB: Unusual_devs update On Tue, 16 Mar 2004, John Katzmaier wrote: > Hi, > > Just wanted to let you know that when using my Panasonic PV-SD4090 digital > camera with kernel 2.6.3, I found this entry in my logs: > > Mar 16 21:43:27 rocket kernel: usb-storage: Vendor: Panasonic > Mar 16 21:43:27 rocket kernel: usb-storage: Product: LS-120 Camera > Mar 16 21:43:27 rocket kernel: usb-storage: This device (04da,0901,0109 S 00 P > 00) has an unneeded Protocol entry in unusual_devs.h > Mar 16 21:43:27 rocket kernel: Please send a copy of this message to > > > I thought it might be best to follow its instructions and so I did. > > Thanks. > > -John Katzmaier Thank you for sending this in. An update will appear in a forthcoming kernel. Greg, here's the patch. [PATCH] USB: Regularize unusual_devs entries for Genesys Logic I saw that you just added another unusual_devs.h entry submitted by Henning Schild, for vendor ID 0x05e3. It turns out this is our old friend Genesys Logic. A recent message from Brad Campbell included a Windows driver file by Genesys, and it included these lines: USB\VID_05E3&PID_0700.DeviceDesc="USB Card Reader" USB\VID_05E3&PID_0701.DeviceDesc="USB Optical Device" USB\VID_05E3&PID_0702.DeviceDesc="USB Mass Storage Device" Based on this information, we can clean up the 0x05e3 entries in unusual_devs.h. This patch puts all three entries into a regularized form. [PATCH] USB: kernel-doc comment tweak in vicam.c Correct kernel-doc comment with incorrect parameters documented fixes for fsx truncate/readahead/writebehind bug [PATCH] USB: fix race in ati_remote and small cleanup On Thu, 2004-03-18 at 07:44, Oliver Neukum wrote: > Hi, > > you must use set_current_state() only after usb_submit_urb() with GFP_KERNEL > as second argument, because it may sleep to allocate memory and is woken up > resetting the state to TASK_RUNNING. In that case you had a busy polling loop. > Furthermore, always use wake_up unconditionally. It checkes anyway. Thanks for reviewing this code, I'm new to Linux driver development and more eyes on my work is a good thing. I've actually been working on some more cleanups to the driver to fix the race between open and disconnect, and was just about to send it in... So, the attached patch against 2.6.5-rc1-mm1 includes a mutex to lock the open/disconnect paths, modelled after the usb-skeleton driver. It includes Oliver Neukum's fixes and other cleanups as well. [PATCH] USB: Unusual_devs.h update On Thu, 18 Mar 2004, Urban Borstnik wrote: > The 2.6.4 and 2.6.3 (and possibly some earlier) kernels log the > following message when I plug in a Lexar CompactFlash Reader: > > usb-storage: This device (05dc,b002,0113 S 06 P 50) has unneeded > SubClass and Protocol entries in unusual_devs.h > Please send a copy of this message to > > Otherwise it has been working very well with the devepment kernels on at > least 4 machines ever since a trivial fix was introduced for this device > to unusual_devs.c over a year ago. > > Best regards, > Urban. Thank you for sending this in. An update will appear soon. [PATCH] USB: race condition in open of w9968cf there's a race in how open handles multiple openers. You implement exclusive opening and wait for close in case of further openers. However if there are more than one waiter, only one of them must be allowed to proceed. [PATCH] USB: Don't trust raw descriptor length in devioc. This is a very minor point, unlikely ever to come up. But just in case... It's conceivable that a device might transmit different values for a configuration descriptor's wTotalLength the first time we ask for it (in order to get the length) and the second time (to get the entire descriptor). Should that improbable event occur, the rawdescriptor buffer could be allocated using a size that's smaller than the length recorded in the rawdescriptor itself. This patch protects devio.c against such a problem. If you feel this sequence of events is too unlikely to worry about, then don't bother to apply the patch. [PATCH] USB: UHCI: Do short packet detection correctly This patch makes some simple changes to the way the UHCI driver does short packet detection. The current implementation is incorrect in several ways: The Short-Packet-Detect flag is set for OUT transfers, which yields undefined behavior according to the UHCI spec. It's not set for URBs with URB_SHORT_NOT_OK, which is just the opposite of what we want! Those are the ones where short packets do matter. It is set for the last packet in a transfer, which causes an unnecessary pause in the data flow (except of course that the pause _is_ necessary when URB_SHORT_NOT_OK is set). The patch also implements the URB_NO_INTERRUPT flag for bulk transfers, which can help improve system performance by reducing interrupt overhead. [PATCH] USB: UHCI: Improved handling of short control transfers This patch simplies the way the UHCI driver handles short control transfers. When a transfer is short the HC will stop handling that endpoint, and it's necessary to get it going again so that the status stage of the control transfer can take place. Currently the driver does this by allocating a new QH for the transfer and setting its element pointer to point at the final status TD. The old QH is recycled. But it's not necessary to go to all that trouble; the element pointer in the original QH can be updated directly. Normally the element pointer is supposed to be owned by the HC, and it's not safe to just change its value since the HC may overwrite it at any time. But when a transfer is stopped because of a short packet, the current TD is marked inactive and the HC will not update the element pointer. To write an unchanged pointer value back to memory would be a waste of PCI bus cycles. Now the UHCI spec doesn't say explicitly that an HC _can't_ do this, but I've tested both Intel and VIA hardware and neither of them does. As a side effect of this change, some of the code for removing QHs can be eliminated. [PATCH] USB: UHCI: Get rid of excessive spinlocks This patch introduces a major simplification into the UHCI driver by replacing its multiple spinlocks with a single one. The protected area of code is slightly larger and there's more possibilities for contention on an SMP system, but I think that shouldn't be a problem. Stephen Hemminger has been kind enough to test this on his SMP computer and he hasn't encountered any difficulties. [PATCH] USB: fix error paths in kobil_sct some error codes are incorrect and there's an URB leak in an error path. [PATCH] USB: usb hiddev stack usage patch Patch below fixes some obscenely high stack uage; struct hiddev_usage_ref_multi is well over 4Kb in size so really doesn't belong on the stack. ia64: Patch by Stephane Eranian: remove irq_stat from cpuinfo_ia64. irq_stat isn't needed anymore since its members got rolled into thread_info.preempt_count. [libata sata_promise] minor initialization updates * remove incorrect PATA port check * enable undocumented bit 13 in flash control register, because the Promise driver does so. * wait 10 ms after setting TBG mode, for the same reason. [libata] clean up command queue/submit path a bit This change is part of a series that compartmentalizes and consolidates ATA taskfile submission. Here, the device-location-related checks are moved out of the ->queuecommand() hook and into an inline helper function. [libata] more command queue path cleanup A new helper ata_scsi_xlat_possible(), and the command queue path gets a bit more compact. As side effects we kill the 'cmd_size' argument from two functions, and mark ata_scsi_rw_queue() as static, as its only needed in libata-scsi.c. [libata] more cmd queue path cleanups Final part in tonight's series of changes to clean up the command queueing path. The simulate-ATA-over-SCSI code is moved to a new function, ata_scsi_simulate(), and ata_scsi_rw_queue() is renamed to ata_scsi_translate(). With the SCSI CDB debugging dump function also moved into its own function, the queue-command path is now nice, compact, and readable. [PATCH] USB: fix bug in usb-skeleton.c [PATCH] USB: fix DMA to stack in ftdi driver this driver is doing DMA to the stack. Here's the obvious fix. [PATCH] USB: cleanup of st5481 you are using __devinit which must not be used with USB drivers, in addition you are using some false GFP values and fail to check some error codes. - check for unlink due to removal of controller - correct GFP values - no __devinit in USB [PATCH] USB: fix typo in previous patch I screwed up. This corrects it. [PATCH] USB: fix hfc_usb sleeping in irq you are using GFP_KERNEL in irq and __devinit with hotpluggable code. - use proper GFP flags - kill __devinit [PATCH] USB: Fix drivers/usb/net/Kconfig This allows the pegasus driver to actually be seen as a config option. Apparently it's not that popular, though I have confirmed that it still works on at least the netgear fv101. [PATCH] USB: fix race in whiteheat serial driver Patch below fixes an obvious race in the whiteheat usb serial driver... [PATCH] USB: define USB feature bit indices This patch provides standard symbols for the various USB device and endpoint feature bits, so that drivers can use symbolic names for them. It also changes the code relating to endpoint halts so it uses those symbols. [PATCH] USB: usbnet, minor probe() fault fix Some hardware had the poor taste to misbehave during probe(), which turned up a minor bug. This fixes it: don't try to free a network device that hasn't been registerd. [PATCH] USB: g_ether does endpoint autoconfig too Here's an update for the Ethernet gadget that corresponds to the earlier one for Gadget Zero ... it gets rid of almost all the remaining controller-specific #ifdefs in this driver. (And also lets the driver initialize using "dummy_hcd".) This is a significant step towards doing hardware-specific configuration at run time (or at least init-time) rather than compile time, but other patches will be needed to take it the rest of the way there. (Especially considering the RNDIS support...) The runtime footprint of the driver shrank a bit, mostly because things moved into the init section. [PATCH] USB: fix whiteheat USB serial compile failure on PPC > Bah, looks like PPC doesn't ever define CMSPAR :( > > How about adding something like: > #ifndef CMSPAR > #define CMSPAR 0 > #endif > To the beginning of the driver like the cdc-acm.c driver does? If that > works, care to send me a patch? Yes, it compiles. USB: mark pwc driver as broken, as it is. And the maintainer doesn't seem to want to fix it :( [PATCH] USB: Add dummy_hcd to the main kernel This is a resubmission of as225, together with appropriate changes for the g_serial driver. David Brownell's latest g_ether update makes it unnecessary to change that file or gadget_chips.h. dummy_hcd is simultaneously a host controller driver and a device controller driver. It creates a simulated HC together with a simulated UDC plugged into it. Gadget drivers can run under the simulated UDC and will appear as regular USB devices on the simulated HC. The simulation is reasonably (although not totally) realistic. It's a wonderful tool for testing and developing gadget drivers without the need for lots of additional hardware: Both the host driver and the gadget driver can run on the same computer. It's been available for quite some time in David's gadget-2.6 tree and it works well. I couldn't have gotten the file-storage gadget running in any reasonable length of time without it. [PATCH] USB: more ftdi_sio ids USB: ftdi_sio merge fixups. [PATCH] USB: add ftdi_sio product ids USB: fix compiler warning in whiteheat driver. [PATCH] I2C: adm1021 (probably) does something VERY,VERY BAD Quoting myself: > 3* Drop adm1021's limit init. This was already done in the 2.4 driver > and should have been done in 2.6 as well. Here is a patch that does that. It also prevents bit 7 (and unused bits) of configuration register from being reset, as was discussed before: http://archives.andrew.net.au/lm-sensors/msg04593.html That second part needs to be backported to the 2.4 driver, and I will do so. Additionally, we get rid of a useless label. The patch is untested (I don't own any supported chip) but quite straightforward IMHO. [PATCH] I2C: Setting w83627hf fan_div preserves fan_min Here is a patch that updates the w83627hf driver in the exact same way I did recently for the w83781d driver. There were two problems: 1* Fan divisor storing code was ugly, badly ripped from the 2.4 w83627hf driver and/or the 2.6 w83781d driver. 2* Setting fan divisors wouldn't preserve fan mins. Exactly the same as w83781d: http://archives.andrew.net.au/lm-sensors/msg06952.html http://archives.andrew.net.au/lm-sensors/msg07008.html No surprise since the w83627hf driver is a fork of the w83781d driver. Since the two drivers are strongly similar, I took the code directly from the updated w83781d driver. I cannot test the w83627hf driver (testers welcome BTW) but this makes me feel confident that the code is correct. To make it clear, this single patch is the w83627f equivalent of the three patches I submitted for the w83781d: * Cleanup * Refactoring * Setting fan_div preserves fan_min All in one (much better looking BTW). [PATCH] tipar char driver (divide by zero) A patch about the tipar.c char driver has been sent on lkml by Sebastien Bourdeau. It fixes a divide-by-zero error when we try to read/write data after setting the timeout to 0. [PATCH] IXP425 -> IXP4XX conversion for USB-gadget The 2.6 code for Intel's IXP4xx NPU line has been updated to remove all references to IXP42x or IXP425 and replace it with IXP4XX, including config options and file names. This patch updates the USB-gadget pxa-udc driver with these changes. [PATCH] USB: ohci misc updates Mostly from Benjamin Herrenschmidt: - prevent usbcore from asking the HCD root hub code to read registers on one more suspend path (some hardware gets upset in those cases); - try handling a "device died" cleanup case better - add some wmb() calls in spots that could matter on some hardware clean up compiler warnings [PATCH] USB: Altsetting update for USB input drivers This patch continues the update process for the cur_altsetting change. The drivers in usb/input were all in good shape and needed only minimal changes. PPC32: Remove an unneeded include in arch/ppc/boot/ PPC32: Add more useful information to the oops output. PPC32: Fix two typos in arch/ppc/boot/ From: Arthur Othieno [libata] more documentation libata-scsi.c should now be fully documented. PCI: add ability to access pci extended config space for PCI Express devices Patch originally written by Intel, cleaned up and made sane by Matthew Wilcox and then tweaked a bit more by me. From Matt's original email: - Add cfg_size to struct pci_dev. - Use it in sysfs and procfs. - Introduce pci_find_ext_capability() for finding extended capabilities. - Change the PCI_X_STATUS defines to match the spec (mea culpa there). - Add defines for the extended capabilities. [PATCH] PCI: Updates for PCI Express hot-plug driver [PATCH] PCI Hotplug: Don't up() twice in acpiphp On the error path, we currently try to up() a semaphore twice. There was also a typo in an error message. [PATCH] PCI Hotplug: Rewrite acpiphp detect_used_resource There are two unrelated problems in acpiphp that are fixed by this patch. First, acpiphp can be a module, so it is unsafe to probe the BARs of each device while it initialises -- the device may be active at the time. Second, it does not know about PCI-PCI bridge registers and so it reads garbage for the last 4 registers of the PCI-PCI bridge card and doesn't take into account the ranges that are forwarded by the bridge. This patch avoids all that by using the struct resources embedded in the pci_dev. Note that we no longer need to recurse as all the devices on the other side of a PCI-PCI bridge have their resources entirely contained within the PCI-PCI bridge's ranges. [libata sata_promise] better locking and error handling * Prefer spin_lock() to spin_lock_irq() in interrupt handler * Reset each port, before probing the SATA phy * Reset port when every time an error occurs [libata] fix bug with READ(6) and WRITE(6) SCSI commands Must set the LBA bit on all transfers, not just {read,write}{10,16} scsi commands. [libata] remove synchronize-cache dead code Just a placeholder, and now that a better way to do this is coming, we don't even need the [unused] placeholder anymore. [PATCH] ia64: implement SN2 version of dma_mapping_error() On sn2, dma_mapping_error is trivial. pci_map_single was already returning 0 in case of failure (0 is an invalid DMA address on sn2), so make dma_mapping_error check for that. [PATCH] ia64: only scan SN2 PCI busses that exist sn_pci_init was unconditionally scanning 255 PCI busses, even though only a few are actually present on most systems. This patch adds a check to make sure a given bus exists before doing the scan, which saves a little memory and also makes /sys/devices reflect reality a bit more closely. [PATCH] stack reduction: aic7xxx_old From: Arjan van de Ven aic7xxx_old: constant array of PCI ID's can be static since it's read only [PATCH] Update FC transport attributes API This patch brings the FC transport attributes up to date with the SPI attributes API. The only major change I made was to separate read-only attributes from read-write attributes. [PATCH] Add FC transport attributes support to qla2xxx Here is a patch that adds FC transport attributes to the qla2xxx driver. The patch should apply cleanly to a recent 2.6 kernel with the FC attributes update that I just sent to linux-scsi. MPT Fusion driver 3.01.03 update From: "Moore, Eric Dean" Changelog for mpt version 3.01.03: (1) Fix fifo memory allocation under 64bit systems by merging 3 seperate memory allocations into one call. Before this fix, it was possible that these seperate pci_alloc_consistent() calls were crossing the 4GB hardware boundary. Delete the MPTBASE_MEM_ALLOC_FIFO_FIX logic. Backout recent ak@muc.de workaround. (2) Replace wrappers for CHIPREG_XXX with defines; per request from Jeff Garzik [jgarzik@pobox.com] (3) Remove support for FC909. (4) Remove PortIo modules parameter. (5) Move procmpt_destroy function before pci_unregister_driver, as the memory allocated for the proc was not being deallocated. (6) Remove mptscshi_reset_timeouts function. The timer was already expired when mod_timer is called. (7) Fix small bug in slave_destroy, which could prevent domain validation on hidden drive in a RAID volume. ---------------------------------------------------------------------- Changelog for mpt version 3.01.02: (1) Andi Kleen[ak@suse.de] put warning "Device (0:0:0) reported QUEUE_FULL!" into debug messages (2) Alexander Stohr[Alexander.Stohr@gmx.de] fix warnings from mptscsih_setup when driver isn't compiled as module (3) Randy.Dunlap[rddunlap@osdl.org] Remove unnecessary min/max macros and change calls to use kernel.h macros instead. ServeRAID ( ips ) 7.00.15 ith the completion of testing at Adaptec and IBM, the latest version of the ServeRAID Linux device driver ( ips Version 7.00.15 )is now available. Attached is the patches against the previous ServeRAID releases. Basically, this is a convergence to a common ips driver code base for the 2.4 and 2.6 kernels. This driver is based on the driver currently in 2.6, so you while there appears to be lots of changes to the 2.4 driver, the changes to the current 2.6 driver are trivial ( the only changes are version number changes and the addition of some new adapter ID's ). For 2.4, this was primarily a testing effort to ensure that the 2.6 driver code was stable when built for a 2.4 kernel. [PATCH] Fix template size calculation in transport attributes This small patch fixes the template size calculation in {spi,fc}_attach_transport(). [TG3]: Kill 'force' arg to tg3_phy_reset, it is always set. [TG3]: At start of tg3_phy_copper_begin, force phy out of loopback mode. [TG3]: Do not allow illegal ethtool advertisement bits. [libata] back out duplicated upstream fix We already fixed this bug locally, so fix up the automerge by removing the upstream change. [NETFILTER]: Optimization of ip_conntrack_proto_tcp:tcp_packet() A: Pablo Neira D: This patch cleans up tcp_packet(). No semantical change, just juggling D: code pieces. [NETFILTER]: Locking optimization in ip_conntrack_core A: Pablo Neira D: This patch puts tightens up a lock protected section in D: ip_ct_refresh() [NETFILTER]: Cleanup conntrack helper API A: Pablo Neira D: This patch changes the conntrack helper API. Rather than having the D: helper allocate an expect on the stack and then have the core D: kmalloc and memcpy, it is now the job of a helper to call D: ip_conntrack_expect_alloc() [NETFILTER]: Add nf_log handler, from Jozsef Kadlecsik. [NETFILTER]: Missed these files in nf_log commit. [NETFILTER]: Add 'raw' table, from Jozsef Kadlecsik. [PATCH] USB; minor usbfs locking updates These are "obvious" locking fixes: using the right lock to protect interface claim/release (should be the driver model bus lock, not BKL). [PATCH] USB: usb/core/config.c null pointers after kfree Prevents an oops with some other patchsets. Clear some pointers after the memory is kfreed, to avoid making some other patch combinations oops. [PATCH] USB: ohci unlink tweaks Minor unlink tweaks, including a case where SMP could oops if it were abused, as if from 'usbtest' or 'stir4200'. [PATCH] USB Gadget: RNDIS/Ethernet Gadget Driver (1/2) This patch adds the RNDIS message engine and kbuild/kconfig support for it. This is currently labeled EXPERIMENTAL. Patch contributed by Robert Schwebel, and developed with support from Auerswald GmbH. [PATCH] USB Gadget: RNDIS/Ethernet Gadget Driver (2/2) This updates the existing Ethernet gadget driver to support an additional RNDIS configuration on all current USB controllers that can support one. It also includes a bit more work to address the complex autoconfiguration of this driver. Needs testing on PXA. Patch (mostly) contributed by Robert Schwebel, and developed with support from Auerswald GmbH. [PATCH] USB: set_configuration locking cleanups I've posted all these before, the only notable change is treating that one gphoto2 case as warn-and-continue rather than return-with-failure. usb_set_configuration() cleanup * Remove it from the USB kernel driver API. No drivers need it now, and the sysadmin can change bConfigurationValue using sysfs (say, when hotplugging an otherwise problematic device). * Simpler/cleaner locking: caller must own dev->serialize. * Access from usbfs now uses usb_reset_configuration() sometimes, preventing sysfs thrash, and warns about some dangerous usage (which gphoto2 and other programs may be relying on). (This is from Alan Stern, but I morphed an error return into a warning.) * Prevent a couple potential "no configuration" oopses. (Alan's?) * Remove one broken call from usbcore, in the "device morphed" path of usb_reset_device(). This should be more polite now, hanging that one device rather than khubd. [libata] fix broken delay Due to rounding and HZ==100, sometimes delays would not occur for the desired length of time, or even at all. Fix call to schedule_timeout() to ensure we delay -at least- for the correct amount of time. [PATCH] USB: drivers/usb/gadget/epautoconf.c gcc-3.5 build fix drivers/usb/gadget/epautoconf.c: In function `ep_matches': drivers/usb/gadget/epautoconf.c:175: error: `typeof' applied to a bit-field [PATCH] USB: ftdi_sio.c: not unlinking urb on ftdi_close This patch fixes a bug in ftdi_sio.c where the driver wouldn't unlink the read urb if the user application cleared the HUPCL flag on termios->c_cflag. [PATCH] USB Storage: datafab fix and unusual devices datafab.c has an often-seen bug: the SCSI READ_CAPACITY command does not need the number of sectors but the last sector. I just tried the CF and SM parts of a 5-in-1 card reader. The CF part works with US_PR_DATAFAB when the bug mentioned is fixed. The SM part works with US_PR_SDDR55. (Revision Number is 17.08 - that in case the 0000-ffff should prove to be too optimistic.) We still must discuss what setup to use for readers like this - I have several of them - that require different drivers for different LUNs. As it is now one has to compile usb-storage twice, once with CONFIG_USB_STORAGE_DATAFAB defined and once without, and remove one usb-storage.ko and insert the other to go from CF to SM. (And that hangs with 2.6.4 so a reboot is required..) [PATCH] USB: kill off CONFIG_USB_BRLVGER detritus. This died a while ago, but lingers on in defconfigs. [PATCH] USB: RNDIS/Ethernet Gadget Driver comment changes Whoops, I missed something. You should apply this patch too. The RNDIS spec license agreement does NOT require tacking any GPL-incompatible restrictions on the results of _using_ the spec: "... may be used solely for the purpose of implementing the RNDIS protocol message set to interface with ..." (the two cases identified in the text) And that's all the implementation does -- end of story. [PATCH] USB: Rename the USB HID driver > > I like to see this rename as soon as possible. So if nobody minds I send > > a patch to LKML and ask Linus for inclusion. > > Go ahead, but also please patch all relevant documentation in the > kernel. the attached patch should do the renaming everywhere hid or hid.o was mentioned. It also removes all references to *.o module names. [PATCH] USB: omninet patch here's a small patch for omninet.c . [PATCH] I2C: Prevent misdetections in adm1021 driver Yet another patch for the adm1021 chip driver. I refined the detection code a bit in order to prevent chip misdetection. Some chips handled by the adm1021 driver are hard to detect and identify (LM84 and MAX1617) so we tend to accept any chip it the valid I2C address range as one of these. It has caused much, much trouble already. See these threads for example: http://archives.andrew.net.au/lm-sensors/msg04448.html http://archives.andrew.net.au/lm-sensors/msg04624.html http://archives.andrew.net.au/lm-sensors/msg05560.html http://archives.andrew.net.au/lm-sensors/msg05871.html http://archives.andrew.net.au/lm-sensors/msg06754.html http://archives.andrew.net.au/lm-sensors/msg07181.html And this ticket: http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=1434 So I thought it would be good to prevent this kind of problems if possible, and read the 8 datasheets again in search for ways to refine the detection method. I changed it in sensors-detect already, and had positive feedback from one user. I will also backport the changes to the driver to the 2.4 version we have in CVS. What the patch does: * Use unused bits of two more registers (configuration and conversion rate) to reduce misdetections. * Return with -ENODEV if the detection fails. * Change the order in which we try to identify the chips. We better finish with the LM84 and the MAX1617, in this order, because they are harder to identify and are more likely to result in false positives. * Refine LM84 detection. The LM84 has less features than the other chips(chip cannot be stopped, conversion rate cannot be set, no low limits) so it has extra unused bits. * Do not intialize the chip if it was detected as an LM84. This one cannot be stopped so why would we try to start it again? And as said right before, conversion rate isn't changeable either. Note that I couldn't test the changes on any supported chip since I don't own any. Still I believe that they should be applied, since the current code already broke one system and seriously harmed several others. I believe it's not critical if it turns out that we reject valid chips (which shouldn't happen if the datasheets are correct, anyway). People will simply let us know and we'll be less restrictive. In the meantime they can force the driver. That said, testers are welcome, as usual. [PATCH] I2C: i2c documentation update (1/2) Here is an update to my 2.4 to 2.6 i2c client porting guide. The changes were inspired by the feedback I got with the drivers that have been ported so far. [PATCH] I2C: i2c documentation update (2/2) Here is a patch to Documentation/i2c/sysfs-interface. This is mostly my intent to make the document more readable. There are also a few incorrectnesses fixed, and some comments added. [PATCH] I2C: Incorrect memset in eeprom.c Quoting Ralf Roesch: > currently I'm only working with Linux MIPS 2.4 kernel, > so it would be nice if you could forward the patch for 2.6. OK, so here we are. Greg, this is the port to 2.6 of Ralf patch that fixes an incorrect memset while initializing the eeprom driver. Please apply. [PATCH] I2C: Discard pointless comment in via686a The simple patch below discards a comment in via686a referencing a file that doesn't belong to the Linux tree. Now that I tell people not to do that in my porting guide, we better follow our own advice. SCSI: Add noretry check to the error handler path This still doesn't give us complete fast fail on the eh path because we still get delayed to recover the transport. [PATCH] USB: w9968cf driver misplaced ; [PATCH] USB: fix dvb-ttusb-budget driver due to set_configuration locking cleanups > Oops, you forgot to grep: > > CC [M] drivers/media/dvb/ttusb-dec/ttusb_dec.o > drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c: In function `ttusb_setup_interfaces': > drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c:1011: warning: implicit declaration of function `usb_set_configuration' Well, when I did the grep that bug wasn't there; it was just integrated on Feb 26! > Care to send a patch to fix it up before Andrew gets grumpy with me for > breaking his build? :) The first part makes it use usb_reset_configuration() like it did before ... I'm surprised this driver hasn't been generating "it deadlocks during probe" reports. The second part prints a diagnostic if the configuration wasn't set right; the fix would use hotplug and sysfs. Cset exclude: jgarzik@redhat.com|ChangeSet|20040323051558|61282 [PATCH] PCI: add DMA_{64,32}BIT constants On Tue, 23 Mar 2004 00:23:05 -0500 Jeff Garzik wrote: >>Yeah well... in the intervening time, somebody on IRC commented >> >>"so what is so PCI-specific about those constants?" >> >>They probably ought to be DMA_{32,64}BIT_MASK or somesuch. Here's an updated patch, applies to 2.6.5-rc2-bk9. I left the DMA_xxBIT_MASK defines in linux/pci.h, although they aren't necessarily PCI-specific. Would we prefer to have them in linux/dma-mapping.h ? [libata sata_via] Fix detection of device 1 VIA hardware thinks port 1 (second port) is "SATA primary slave". Since the hardware rarely configures SATA to present as slave devices, we must pretend that the second hardware port (as the user sees it) is the third port (as the VIA PCI config registers see it). [PATCH] USB Gadget: Use configuration-buffer library in file-storage This patch imports the config-buffer library into the file-storage gadget, simplifying and decreasing the amount of code needed for assembling configuration descriptors. It also changes the driver to remove any pretense at bus-powered operation and to use the new DUALSPEED configuration option. This is in line with recent changes made to other gadget drivers. [PATCH] USB Gadget: Use automatic endpoint selection in file-storage This patch imports the endpoint auto-config library into the file-storage gadget, simplifying the code needed for endpoint selection and removing almost all dependencies on the controller type from the driver. It also changes some log messages for reporting fatal problems from INFO to ERROR. [PATCH] USB: Complete all URBs in UHCI when releasing the bus This patch changes the UHCI driver's bus-release routine; now it will correctly finish all pending but not-yet-completed URBs. This fixes a reported bug, when trying to rmmod uhci-hcd while using a USB mouse under X. Also, the patch changes a variable name from ...hs... to ...fs... ("high speed" -> "full speed") -- something I accidentally omitted in an earlier patch. [PATCH] USB Gadget: Rename the dummy_hcd's gadget When David added an entry to the gadget_chips.h file for the dummy_hcd driver, he mistakenly used the name "dummy_udc" rather than "dummy_hcd". The mistake is understandable, since other controllers use "_udc" in their names and it is illogical to put "_hcd" in a _device_ controller's name. This patch updates the dummy_hcd driver and changes the gadget name to agree with the gadget_chips.h entry. [TG3]: Add missing 5704 BX workaround, and fix typo in autoneg fix. [PATCH] USB: RNDIS/Ethernet Gadget Driver .inf file [PATCH] USB: remove usb_interface.driver field Remove usb_interface.driver, and along with it the "half bound" state previously associated with drivers binding with claim() instead of probe(). This changes usb_driver_claim_interface() semantics slightly: drivers must now be prepared to accept disconnect() callbacks. Fixes more locking bugs, and a claim() oops that snuck in with a recent patch. [TG3]: Set GRC_MISC_CFG prescaler more safely. USB: remove "released" field from struct usb_interface as it is not needed. [TG3]: Fix serdes cfg programming on 5704. [TG3]: When link is down, set stats coalescing ticks to zero. [TG3]: Wait a bit for BMSR/BMCR bits to settle in PHY setup. USB: clean up usb_get_dev() as it was written quite horribly. USB: add usb_get_intf() and usb_put_intf() functions as they will be needed. SCSI: Updates to non-sector size completion calculations From: Jens Axboe , Mike Christie [PATCH] PCI: move DMA_nnBIT_MASK to linux/dma-mapping.h [PATCH] PCI Hotplug: RPA PCI Hotplug - redundant free Please commit the following patch, which removes a redundant call to a cleanup function from an error path of the module init code. [PATCH] PCI: Allow arch-specific pci_set_dma_mask and friends The patch provides the ability for architectures to have custom implementations of pci_set_dma_mask() and friends (dac_set_dma_mask and set_consistent_dma_mask). The reason I need this is b/c I have a chipset (Intel ARM IXP425) that has a broken PCI interface that only allows PCI dma to/from the bottom 64MB of system memory. To get around this limitation, I trap a custom dma-mapping implementation that bounces buffers outside the 64MB window. At device discover time, my custom platform_notify() function gets called and it sets the dma_mask to (64MB-1) and in ARM's dma-mapping code, I check for dma_mask != 0xffffffff and if that is true, I call the special bounce helpers. This works great except that certain drivers (e100, ide-pci) call pci_set_dma_mask() with 0xffffffff and the generic implementation only allows for the architecture-defined pci_dma_supported() to return true or false. There is no method for the architecture to tell the PCI layer "I can't set the mask to 0xffffffff, but I can set it to this other value" and there is no way to pass that back to the driver. What this means is that if I have pci_set_dma_supported() return failure on full 32-bit DMA, the driver will not initialize the card; however, if I return true, pci_set_dma_mask() will set the dma mask to full 32-bits and I can no longer trap and will have buffers that are not dma-able and cause PCI master aborts. Both of those are not acceptable. IMHO, the driver shouldn't care if the architecture has to bounce DMA outside of 64MB and since this is not something most architectures have to worry about, the easiest way to get around the issue is by allowing custom pci_set_dma_mask() for arches that need it but keeping the generic implementation for those that do not. In my case, it simply returns 0 to the driver but keeps the device mask set to 64MB-1 so I can trap. [PATCH] kobject_set_name() doesn't allocate enough space [SPARC]: Add C99 initializers to Sparc frame buffer devices. Renaming pplus_common.c to hawk_common.c to match gt64260_common.c, etc, plus minor cleanups. [NET]: Mark lock_sock and release_sock as FASTCALL. [AGPGART] VIA GART driver can use the new generic AGPv3 masks. [AGPGART] Efficeon GART driver can use generic masking routine. [AGPGART] SiS 746 chipset also needs extra recovery time when changing mode. [AGPGART] Fix SiS workaround printk. This happens on multiple chipsets. [AF_KEY]: pfkey_send_new_mapping marks dest address incorrectly. [TG3]: Verify link advertisement correctly on 10/100 only chips. [PATCH] ia64: clean up pcibr_slot.c warnings A few warnings crept into pcibr_slot.c that this patch takes care of. - forward declare pcibr_slot_pwr so it can be used w/o warning - fix argument passed to pcibr_slot_attach in pcibr_slot_enable [PATCH] ia64: fix sn_serial warning In my fixes to quiet the sn_serial driver, I made sn_debug_printf only get used when the DEBUG define was turned on in the driver but forgot to #ifdef out the function definition, causing an 'defined but not used' warning. This patch fixes that. [PATCH] ia64: small SN2 interface.c patch Change the calls to link_path_walk() to path_walk(). link_path_walk() doesn't initialze current->total_link_count and path_walk() does. Without the initialization, path_walks start to fail when 40 sym links have been followed. [IPV4]: Fix IGMP version number and timer printing for procfs. [CPUFREQ] Various updates/fixes to the powernow-k8 comment header. [BRIDGE]: Allow non-root to inspect the status of a bridge. [TG3]: All 5705 chips need PHY reset on link-down. [BRIDGE]: Lift ioctl limits on number of bridges/ports. Get rid of some arbitrary API restrictions that limit the kernel to 64 bridges and 256 ports. Retain compatibility in GET_PORT_LIST, the existing bridge API passes 0 for the third argument, and expects 256 entries. Note: there still is limit of 256 ports due to STP, but this shouldn't show up in the API, it needs to be handled by the 'add port to bridge ioctl'. [BRIDGE]: Correctly handle up to 256 ports per bridge. Bridge code is limited to 256 ports per bridge because the Spanning Tree Protocol has limit of one octet for port number. This code fixes: * bogus unlock in error path when port list is full. * passes different error status for out of memory, vs port list full. * O(n) vs O(n^2) lookup for free port number * since port and priority are both limited to one byte don't store them as int's * makes limit explicit in code [TG3]: More PHY programming fixes. - Break out advertisement register verification into a function, tg3_copper_is_advertising_all. - At device probe time, reset PHY if not Serdes and ASF is not enabled. - Add some missing necessary PHY init to PHY probe code as well. [TG3]: Bump driver version and reldate. [CPUFREQ] fix compilation of speedstep-lib with DEBUG set [CPUFREQ] powernow-k8 whitespace changes. Trying to get the diffsize down between me & Pavel. Add missing description about how to specify credentials file [AGPGART] Actually Call the SiS workaround on SiS 746 too. [PATCH] ia64: bring ia64 nodes online properly Andi's libnuma exposed the fact that we don't bring nodes online properly as we discover them in ia64. Here's a quick patch to fix that. Tested with Andi's numademo program; seems to work fine. [AGPGART] EM64T driver should only run when we have a supported CPU. Otherwise we see strange things at boottime if we compile in all drivers, like this.. agpgart: Unsupported Intel chipset (device id: 1a30) agpgart: Detected an Intel i845 Chipset. [CPUFREQ] Step 1 of SMP support for powernow-k8. Move lots of code to the cpu init routine from the detection routine. Do some SMP sanity checks in the detection routine. [CPUFREQ] powernow-k8 SMP work part 2. Introduce a per-cpu powernow_k8_data struct, and pass it around between all the functions that need to know about it. [PATCH] USB: ehci updates: CONFIG_PCI, integrated TT Generalize the driver a bit: - PCI-specific handling is restricted to a small chunk of init code. Non-PCI implementations are in the pipeline. - Merge support from ARC International (Craig Nadler) for their integrated root hub transaction translators (on PCI). Other implementations should be similar. [PATCH] USB Gadget: ethernet/rndis gadget updates This fixes an oops during "ifconfig usb0 down" after unplug from a Windows box. It also shrinks the driver size to something much more reasonable by leaving out debug messaging, and adds a few missing newlines. [PATCH] I2C: Add ALi 1563 Device ID to pci_ids.h [PATCH] I2C: Add support for the ALi 1563 in the PCI IRQ routing code. [PATCH] I2C: Add ALi 1563 i2c driver The i2c interface on the 1563 is totally different than on both the 1533 and the 1535. It supports i2c 2.0, and happens to be nearly identical to the interface on the i810 chipsets. [PATCH] I2C: Fix check for DEBUG in i2c-ali1563 [PATCH] USB: usbcore blinkenlights The per-port LEDs on the most USB 2.0 hubs are programmable. And the USB spec describes some ways to use them, blinking to alert users about hardware (amber) or software (green) problems. This patch is the infrastructure for that blinking. And if you should happen to "modprobe usbcore blinkenlights", the LEDs will cycle through all the ports ... which is not a USB-standard mode, but it can certainly handy be handy as a system heartbeat visible across the room. Invalidate readahead data properly when file closed, but other client changed it on server Updating mcpn765 for 2.6 [PATCH] sd_shutdown cannot be called when in state SDEV_DEL sd_remove calls sd_shutdown to finish I/O to the disc. However, the state model puts the device in SDEV_DEL before triggering the sd_remove (which won't allow any further I/O at all). Fix by making SDEV_CANCEL the intermediate state and only transitioning to SDEV_DEL after calling device_del(). [SPARC32]: Fix wraparound bug in bitmap allocator [TG3]: Print list of important probed capabilities at driver load. [TG3]: Two PHY fixes. - Do not probe PHY ID register if ASF firmware is running. - Fix two errors in PCI subsys to PHY ID table. [TG3]: Kill uninitialized var warning. [TG3]: Reset fixes. - Put more code into common area in tg3_chip_reset() - Set GRC_MODE, even sanes host-stackup bit, after enabling memory arbiter. - After every core-clock reset, reprobe ASF enabling state. [TG3]: Update driver version and release date. [IPV6]: Add MIBs counters in MLD. [SPARC]: Add sysctl to control serial console power-off restrictions. [SPARC64]: hugetlbpage.c needs module.h [ARM PATCH] 1777/1: Add TI OMAP support to ARM core files Patch from Tony Lindgren This patch updates the ARM Linux core files to add support for Texas Instruments OMAP-1510, 1610, and 730 processors. OMAP is an embedded ARM processor with integrated DSP. OMAP-1610 has hardware support for USB OTG, which might be of interest to Linux developers. OMAP-1610 could be easily be used as development platform to add USB OTG support to Linux. This patch is an updated version of an earlier patch 1767/1 with the dummy Kconfig added for OMAP as suggested by Russell King here: http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=1767/1 This patch is brought to you by various linux-omap developers. [ARM PATCH] 1780/1: Add TI OMAP support, include files Patch from Tony Lindgren This patch adds the include files for Texas Instruments OMAP-1510 and 1610 processors. OMAP is an embedded ARM processor with integrated DSP. OMAP-1610 has hardware support for USB OTG, which might be of interest to Linux developers. OMAP-1610 could be easily be used as development platform to add USB OTG support to Linux. This patch is an updated version of patch 1768/1 with Russell King's comments fixed. This patch requires patch 1777/1 applied. This patch is brought to you by various linux-omap developers. [ARM PATCH] 1781/1: Add TI OMAP support, arch files Patch from Tony Lindgren This patch adds the arch files for Texas Instruments OMAP-1510 and 1610 processors. OMAP is an embedded ARM processor with integrated DSP. OMAP-1610 has hardware support for USB OTG, which might be of interest to Linux developers. OMAP-1610 could be easily be used as development platform to add USB OTG support to Linux. This patch is an updated version of patch 1769/1 with Russell King's comments fixed. This patch requires patch 1777/1 applied. This patch is brought to you by various linux-omap developers. [PATCH] SCSI sense buffer size -> 96 some SCSI devices need more than 64bytes of sense buffer. I know about one: The IBM MagStar tapes report the necessity to be cleaned at bytes 70 and report 96 bytes in total. Attached patch increases the sense buffer size to 96 bytes. Fix scsi_device_get to allow NULL devices Modification of patch from SLES-9 [PATCH] sym 2.1.18j sym 2.1.18j: - Add SPI transport attributes (James Bottomley) - Use generic code to do Domain Validation (James Bottomley) - Stop using scsi_to_pci_dma_dir() (Christoph Hellwig) - Change some constants to their symbolic names (Grant Grundler) - Handle a race between a postponed command completing and the EH retrying it (James Bottomley) - If the auto request sense fails, issue a device reset (James Bottomley) [ARM PATCH] 1782/1: discontigmem support for PXA chips Patch from Nicolas Pitre [ARM PATCH] 1783/1: more PXA reg definitions Patch from Nicolas Pitre [Bluetooth] Remove architecture specific compat ioctl's The compat ioctl definitions are now maintained in a single place, so it is no longer needed to keep the architecture specific defines. This patch removes the leftover Bluetooth parts from x86_64 and sparc64. [Bluetooth] Fix broken HCI security filter The HCI security filter is broken on 64-bit architectures and this patch restores the version from 2.4, which is working perfect on 32-bit and 64-bit machines. [Bluetooth] Allocate hdev before device configuration The hdev structure must be allocated before the device is configured and before any interrupt is started. [Bluetooth] Add UART protocol id's for 3-Wire and H4DS This patch adds the id's for the 3-Wire and H4DS UART transport protocols. [ARM PATCH] 1788/1: SC2410 include/asm-arm/arch-s3c2410 [repost of 1778/1] Patch from Ben Dooks This patch is a repost of 1778/1 with the memory.h file fixed. This patch contains all the necessary include files for include/asm-arm/arch-s3c2410 for Samsing S3C2410 SoC CPU support. The patch also includes the support headers for IPAQ H1940, Simtec BAST and VR1000 board support. [ARM PATCH] 1793/1: S3C2410 - arch/arm/mach-s3c2410 [ repost of 1790/1 ] Patch from Ben Dooks Core support for S3C2410 based machines machine support for Simtec BAST, VR1000 and IPAQ H1940 repost of 1790/1 with configuration definition fixed [ARM PATCH] 1792/1: S3C2410 - arch/arm/boot [ fix for 1789/1 ] Patch from Ben Dooks arch/arm/boot support for S3C2410 support for boot (and debug) messages via EmbeddedICE (CP14) comms registers. fixed typos from 1789/1 [ARM PATCH] 1794/1: S3C2410 - arch/arm/kernel patches [ repost 1791/1 ] Patch from Ben Dooks arch/arm/kernel patch for S3C2410 support - default configurations for S3C2410 - build changes for S3C2410 - IRQ support for kernel entry - debug serial support [ARM] Clean up formatting of s3c2410 help texts. [CPUFREQ] Transmeta longrun driver fix. (From Stelian Pop) Upon investigation, the reason is that trying to set the performance to 80% in longrun_determine_freqs leaves the performance to 100%. The performance level, at least on this particular model, can be lowered only in 33% steps. And in order to put the performance to 66%, the code should try to set the barrier to 70%. The following patch does even more, it tries every value from 80% to 10% in 10% steps, until it succeeds in lowering the performance. I'm not sure this is the best way to do it but in any case, it works for me (and should continue to work for everybody else). [ARM] Fix silent build error caused by undefined symbol. Current binutils silently ignores certain undefined symbols; this cset fixes one such instance. [AGPGART] Previous AGPv3 SiS fixes broke AGPv2 users. Oops. [PATCH] ia64: Missing overflow check in mmap Calling mmap with len == -1 was silently accepted. The test in the generic code was fixed in July 2003, but the fix didn't make it into the ia64- specific code. [PATCH] ia64: Missing include in hugetlbpage.c This fixes a missing include file in arch/ia64/mm/hugetlbpage.c in 2.6.5. module.h is needed for EXPORT_SYMBOL. [ARM] Add ecard_(request|release)_resources(). [PATCH] update Compaq Personal Server URL Patch from Petri T. Koistinen Update of Compaq Personal Server URL. [PATCH] ia64: setup max dma addr earlier on hp boxes sba_iommu was setting up MAX_DMA_ADDRESS way too late to do any good. This patch makes it get setup via platform_setup, so it's ready for paging_init(). All pages should show up in zone DMA now. Against latest 2.6. [PATCH] make_coherent pgoff Patch from Hugh Dickins In wandering through the Linus 2.6 tree preparing for changeover of i_mmap and i_mmap_shared to Rajesh's prio tree for object-based rmap... I noticed that pgoff in make_coherent doesn't add up (plus, I think we need to mask out the word "don't" in the comment further down). 2.4.25 looks equally wrong. [IPV6]: Provide ipv6 multicast/anycast addresses through netlink. [NETLINK]: Split up netlink_unicast. [CPUFREQ] Fix up docbook parameters on x86 drivers. From Michael Still [CPUFREQ] Grammar fix in p4-clockmod.c Noted by Viktor Radnai. [CPUFREQ] Remove useless goto. (Pavel Machek) [CPUFREQ] Indentation fix. [NET]: Update networking config menu (v3) Networking support/options and Networking drivers have been, uhm, messy to navigate for some time now. BenH mentioned this and I was already looking into options to clean it up. This is a cleanup of Networking support/options and Networking Drivers. It presents a more consistent interface and lists similar driver groups and protocol groups closer together. It also moves the IBMVETH driver so that it no longer breaks the dependency tree, allowing other drivers (nearby in Kconfig file) to be presented in a more linear manner. Merge bk://linux.bkbits.net/linux-2.5 into linuxbox.(none):/src/linux/ppc/linux-2.5/linux Send NTCreateX with ATTR_POSIX if Linux/Unix extensions negotiated with server. This allows files that differ only in case and improves performance of file creation and file open to such servers [SCTP] Fix typo in entry name of the remove_proc_entry() call. [CPUFREQ] Kill off inlines in powernow-k8 driver. Gcc should be smart enough to do this itself. [CPUFREQ] make powernow-k8 use batps from powernow data struct instead of static struct. [CPUFREQ] Merge a bunch of extra powernow-k8 helpers. [CPUFREQ] Serialise fid/vid changes in powernow-k8 driver. [CPUFREQ] SMP fixes for powernow-k8's check_supported_cpu() [CPUFREQ] printk cleanup in powernow-k8's check_pst_table() [CPUFREQ] Add missing MSR define to fix the powernow-k8 compile. [IEEE-1394] Sync IEEE-1394 to r1203 [CPUFREQ] powernow-k8 header cleanups remove unused defines, introduce some new ones, and generally cleanup. [CPUFREQ] fill out the powernow_k8_data table. [CPUFREQ] Use the new fill_powernow_table() to fill struct instead of doing it inline. [PATCH] pcnet32.c add support for 79C976 Please include this patch to add support for the 79C976 device to the pcnet32 driver. [PATCH] pcnet32 all printk under netif_msg Please apply the following patch to 2.6.5. All printk's are now done under netif_msg debug level tests. [PATCH] pcnet32 correct name display This displays the device name (eth%d) instead of the device type when registering the interrupt handler. [PATCH] pcnet32 add led blink capability Please apply this patch to 2.6.5 to include the capability of blinking the LED's for device identification. Ethtool -p support. [CPUFREQ] More SMP/preempt fixes, this time powernowk8_target() Also some changes to use some helpers. Remove unused compatibility-defines include wan/lmc/lmc_ver.h. Noticed by Adrian Bunk. [CPUFREQ] Change powernow-k8 over to use its new KHz frequency helpers [CPUFREQ] Extra debugging foo. [CPUFREQ] Stuck pending bit is now checked in the init routine. [PATCH] dgrs: add missing iounmaps [resend] Insert missing iounmap's. From: Leana Ogasawara [PATCH] lmc header file not needed From: Domen Puncer [CPUFREQ] numerous powernow-k8 cpu_init() fixes/cleanups. [netdrvr r8169] DMA api resync. [netdrvr r8169] ethtool driver info Author: Krishnakumar R. [netdrvr r8169] Barrier against compiler optimization. [netdrvr r8169] DAC changes: - Rx and Tx descriptors rings handled on 64 bit; - enable DAC through use of CPlusCmd register (reserved bits apart, this is similar to the 8139cp driver); - use the higher 32 bits of addresses for the Rx/Tx buffers. [netdrvr r8169] TX irq handler looping fix If a few packets have been scheduled for Tx, it is possible to keep looping in the Tx irq handler as soon as the irq for the first packet has been received until the descriptor of the last packet has been sent (with interrupts disabled btw). [PATCH] remove magic '31' for netdev priv. alignment [resend/rediff] // linux-2.6.5 // remove magic number of '31' from net_device and private alignment; [CPUFREQ] ACPI support for powernow-k8. We fall back on the legacy PSB table if the ACPI tables don't work out. [PATCH] Support newer revisions of broadcoms in b44.c This adds support for newer revisions of the chips. The b44_disable_ints at the beggining actually kills machine with newer revision, but its removal has no ill effects. [CPUFREQ] Bump powernow-k8 revision. [CPUFREQ] As we're using ACPI in powernow-k8 now, we need ACPI to initialise first. [CPUFREQ] Fix %x printk's in powernow-k8. These are hex values. Prefix them all with 0x [netdrvr] Add S2IO 10gige network driver. Contributed by Leonid Grossman @ S2IO [netdrvr s2io] correct an incorrect cleanup I made [PATCH] tc35815 cleanup [PATCH] netdev_priv for xirc2ps_cs, nmclan_cs s/dev->priv/netdev_priv(dev)/ for xirc2ps_cs.c and nmclan_cs.c xircom one is tested. against 2.6.4-bk [net/fc iph5526] s/rx_dropped/tx_dropped/ in TX routines Spotted by Denis Valesko(sp?). Maybe one day we'll either kill this driver, or someone will fix it up for the current SCSI API. [netdrvr 8139cp] rearrange priv struct, add cacheline-align markers suggested by Jes Sorensen. [netdrvr s2io] NAPI build fixes [netdrvr 8139cp] locking cleanups * s/spin_lock_irq/spin_lock_irqsave/ where it was simple and easy to verify. * release spinlock earlier in interrupt routine. [NET] define HAVE_NETDEV_PRIV back-compat hook [netdrvr 8139cp] minor cleanups * update version, copyright date * remove unportable "pci_dev->irq < 2" check in ->probe * don't use ioremap_nocache() without a real reason [netdrvr 8139cp] use netdev_priv() [netdrvr 8139cp] complete 64-bit DMA (PCI DAC) support [netdrvr 8139cp] better dev->close() handling, and misc related stuff * don't synchronize_irq() in cp_stop_hw(). when necessary, do so in the callers. * call synchronize_irq() in cp_close(), after releasing the spinlock. * move netif_stop_queue() and netif_carrier_off() calls inside lock * flush last interrupt status write, in cp_stop_hw() * add unlikely() check for dev==NULL, first thing in the irq handler [netdrvr natsemi] correct DP83816 IntrHoldoff register offset Spotted by Manfred Spraul. [PATCH] Update MAINTAINERS with new e100/e1000/ixgb maintainers Jeff, Adding John/Ganesh/Ayyappan for e100/e100/ixgb in 2.6. Keeping myself on for e100 for a couple more 2.6.x releases. -scott [PATCH] com20020-isa.c warning fix From: "Luiz Fernando N. Capitulino" drivers/net/arcnet/com20020-isa.c:188: warning: unused variable `dev' drivers/net/arcnet/com20020-isa.c:189: warning: unused variable `lp' [PATCH] s2io.h: gcc-3.5 build fix In file included from drivers/net/s2io.c:68: drivers/net/s2io.h: In function `readq': drivers/net/s2io.h:757: error: invalid lvalue in assignment drivers/net/s2io.h:758: error: invalid lvalue in assignment [SCTP] Update sctp_ulpevent structure to include assoc pointer and only the receive specific fields of sctp_sndrcvinfo. [SCTP] Use id to ptr translation service in lib/idr.c to assign and validate ids of associations. This patch avoids the use of virt_addr_valid() to validate the address of associations passed by the user. Currently the address of an association is used as its id. virt_addr_valid doesn't work as expected when PAGEALLOC debugging is enabled. [CPUFREQ] Stop preempt count from going negative. Broken failure path spotted by Dominik Brodowski. [Bluetooth] Allocate the BCM203x URB buffer seperately The buffer shares cachelines with other fields of the structure. On architectures which require synchronisation before or after doing DMA to or from a buffer, any access to such fields sharing cachelines can corrupt the content of the buffer. The allocation primitives guarantee that cachelines are not shared. Noticed by Oliver Neukum Update amd8111 net driver. version 3.04 for 2.4 kernel: + 1. Added set_mac_address routine for bonding driver support. + 2. Tested the driver for bonding support + 3. Bug fix: Fixed mismach in actual receive buffer lenth and lenth + indicated to the h/w. + 4. Modified amd8111e_rx() routine to receive all the received packets + in the first interrupt. + 5. Bug fix: Corrected rx_errors reported in get_stats() function. version 3.05 for 2.6 kernel: + 1. Added NAPI support Fix SCSI cdrom disconnection race This fixes http://bugme.osdl.org/show_bug.cgi?id=2400 [AGPGART] Fix SiS 746 again. Turns out that this chipset won't work in AGPv3 mode with the generic AGPv3 routines. *somehow*, it works in AGPv3 mode with AGPv2 aperture sizing etc. Very, very strange. Still, until we get some docs from SiS, some support is better than none. [AGPGART] Whitespace cleanup in sis-agp use spaces instead of (borked) tabs. Fix 20 second hang on some deletes of reopened file due to semaphore conflict with vfs_delete on i_sem Add missing header changes from SCSI cdrom disconnection fix PPC32: Change all #if FOO to #ifdef FOO PPC32: Two minor Carolina PReP fixes. From Hollis Blanchard . [PATCH] PCI Hotplug: Fix interpretation of 0/1 for MRL in SHPC & PCI-E hot-plug This patch contains fixes for interpretation of 0/1 for MRL to match pcihpview, bus speed definition in shpchp_hpc.c etc. [PATCH] USB: retry some descriptor fetches This helps Linux handle certain enumeration problems better, by retrying most stalled descriptor fetches; on some devices, those indicate temporary problems. This match makes at least one such (old) device enumerate reliably. [PATCH] USB: fix xsane breakage, hangs on device scan at launch Disable a usbfs disconnect() synchronization hack, which recently started deadlocking because this routine is now called in a different context. It shouldn't be needed any longer now that usbcore shuts down endpoints as part of driver unbinding. (Except maybe on UHCI, which will have canceled but not necessarily completed all requests.) [PATCH] USB: add missing usb entries to sysfs We have found in the course of hacking on HAL that some information that is in /proc/bus/usb/devices is not in sysfs. It would be nice to rely only on sysfs, so the attached patch adds three files to usb devices in sysfs: devnum, maxChild, and version. This patch is actually by David Zuethen, the HAL maintainer - I told him I would clean it up and get it upstream. [PATCH] USB: fix up previous sysfs patch to actually compile... [CPUFREQ] Quieten powernow-k7 in the built-in case. The other cpufreq drivers are quiet in the 'dont have hardware' case, so this should follow suit. [CPUFREQ] Don't bother checking if we need workarounds if we don't support powernow. [PATCH] I2C: Refactor swap_bytes in i2c chip drivers > Ick, no, we should be using the proper kernel call for this, swab16(), > right? Care to redo this patch to just fix the drivers and get rid of > our duplicating of this function. Oh, I didn't know such a function existed, sorry. Here's a new patch, hope you like it. Tested to work on my as99127f, btw (w83781d driver). Documentation update follows (well, tomorrow it does). [ARM PATCH] 1807/1: S3C2410 - onboard serial Patch from Ben Dooks Serial driver for S3C2410 on board UARTs. Re-post of 1796/1 Includes BAST driver to register on-board 16550s. PPC32: Assign an interrupt for the VME chip on PReP MVME* boards. From Lutz Rossa . [ARM PATCH] 1806/1: Adding barrier() to show_stack () for proper backtracing Patch from Marc Singer As suggested by Russell, we add a barrier() before returning from stack_trace(). This was helpful when diagnosing a problem with a kernel transition to user-space where the problem was a lack of floating point support in the kernel. Without this change, the backtrace reported an error. It is possible that this change has already been made. I don't see it in any of the applied patches that I can read. [ARM] Fix ordering of machine class selection. The machine class should be in alphabetical order. Swap ordering of the recently added TI and S3C2410 entries to return it to this ordering. [NET]: Use const args in eth_copy_and_sum and is_valid_ether_addr. [PATCH] SCSI: make DV check device capabilities the SPI transport class DV should check the data we derive from the inquiry to see if the device is capable of supporting wide/sync before trying to validate the settings. [PATCH] I2C: class fixup for the ali1563 driver [PATCH] I2C: i2c-ali1563.c section fix ali1563_shutdown() is called from __init ali1563_probe() and hence cannot be marked __init. USB: fix pl2303 handling of status bits. Patch originally from Kevin Watkins USB: fix empty write issue in pl2303 driver. Patch originally from Christian Groessler but cleaned up by me. [PATCH] add class support to dsp56k.c Here is a patch that adds sysfs class support to /drivers/char/dsp56k.c [ARM] Move definition of the kernel module space to asm-arm Since all machine classes define module space the same way, we move this into the common ARM code. [PATCH] Add sysfs class support to fs/coda/psdev.c Here is a patch to add class support to psdev.c. I have verified it compiles and works. [Bluetooth] Fix URB unlink race in the USB drivers The code in hci_usb_unlink_urbs() calls usb_unlink_urb() to perform a synchronous unlink of each pending URB. It then moves each URB to the completed list, and then frees everything on the completed list. By doing this, the code implicitly assumes that when usb_unlink_urb() returns the URB will have completed and be ready to be deallocated. That's not always true. The same applies to the BlueFRITZ! USB driver. Patch from Alan Stern [Bluetooth] Make use of request_firmware() for the 3Com driver The 3Com Bluetooth PCMCIA cards need a firmware download every time they are inserted. With request_firmware() the file BT3CPCC.bin is now loaded directly from the userspace and the external firmware loader program is no longer needed. [Bluetooth] Improve NULL pointer handling This small patch adds more checks for NULL pointers. [Bluetooth] Add support for Anycom CF-300 The Anycom CF-300 compact flash card contains a new Bluetooth chip and thus it needs some special handling for the faster UART baud rate. This patch detects this new card and does the different initialization. [PATCH] ia64: put URLs in documentation files inside angle-brackets Patch by Petri T. Koistinen. [PATCH] ia64: ACPI IRQ cleanup (arch part) Here's the ia64 part of the ACPI IRQ cleanup I proposed here: http://www.gelato.unsw.edu.au/linux-ia64/0403/8979.html After the arch bits are in, I'll post the corresponding ACPI changes. I removed the "Found IRQ" printk now because when the ACPI change goes in, dev->irq won't be initialized until *after* acpi_pci_irq_enable(). [PATCH] ia64: allow simscsi to be a module Requiring CONFIG_HP_SIMSCSI to be either "y" or "n" breaks allmodconfig, because simscsi ends up built-in, while scsi itself is a module. So allow simscsi to be a module also. [PATCH] ia64: perfmon update Here is a new perfmon patch. It is important because it fixes the problem of the close() when the file descriptor is shared between two related processes. The good thing is that it simplifies a lot the cleanup of the sampling buffer. Here is the ChangeLog: - fix bug in pfm_close() when the descriptor is shared between related processed. Introduce a pfm_flush() called for each invocation of close(). pfm_close() only called for the last user. - fix pfm_restore_monitoring() to also reload the debug registers. They could be modified while monitoring is masked. - fix pfm_close() to clear ctx_fl_is_sampling. - fix a bug in pfm_handle_work() which could cause the wrong PMD to be reset. - converted PROTECT_CTX/UNPROTECT_CTX into local_irq_save/restore to keep context protection but allow IPI to proceed. - updated pfm_syswide_force_stop() to use local_irq_save/restore now that the context is protected from the caller side. - updated pfm_mck_pmc_check() to check if context is loaded before checking for special IBR/DBR combinations. Clearing the debug registers is not needed when the context is not yet loaded. - updated perfmon.h to have to correct prototype definitions for the pfm_mod_*() functions. - got rid of the PFM_CTX_TERMINATED state. - cleanup the DPRINT() statements to remove explicit output of current->pid. This is done systematically by the macros. - added a systctl entry (expert_mode) to bypass read/write checks on PMC/PMD. As its name indicates this is for experts ONLY. Must be root to toggle /proc/sys entry. - corrected pfm_mod_*() to check against the current task. - removed pfm_mod_fast_read_pmds(). It is never needed. - added pfm_mod_write_ibrs() and pfm_mod_write_dbrs(). ia64: Make acpi.c compile again: there was an implicit declaration mismatch because the external declaration isn't in the arch- independent ACPI bits yet. [SBP2]: Fix compile for older gcc's [Kconfig]: eth1394 requires INET [SBP2]: Sync revision [Bluetooth] Allow normal users to release the previous created TTY In the case the RFCOMM device node can't be found, the user must be able to release the previous created TTY. [Bluetooth] Fix race in RX complete routine of the USB drivers The test of the HCI_RUNNING flags bit in the RX complete routine should be made while holding the completion lock. Otherwise there can be a race on SMP systems in which RX complete finds the bit is set and on another processor the close routine clears the bit, grabs and releases the lock and then unlinks all the active URB's. Then the first processor acquires the lock and resubmits the URB. Patch from Alan Stern Updating Force PCore to 2.6 [PATCH] USB: Updated unusual_dev.h entry On Thu, 8 Apr 2004, Marcin Juszkiewicz wrote: > usb-storage: This device (054c,0025,0100 S 04 P 01) has unneeded SubClass and > Protocol entries in unusual_devs.h Thank you for sending this in. [PATCH] Add sysfs class support for CAPI here is a patch that adds class support to the ISDN CAPI module. Without it udev won't create the /dev/capi20 device node. [PATCH] fix sysfs class support to fs/coda/psdev.c --On Friday, April 09, 2004 12:02:19 AM +0200 Marcel Holtmann wrote: >> +static struct class_simple coda_psdev_class; > > I think coda_psdev_class must be a pointer. > > Regards > > Marcel Doh! I tested on one system and fixed this there. Then accidentally mailed out the original. Sorry about that. Here is a patch to fix it: [PATCH] Fix for patch to add class support to stallion.c Oops. Realized I had a / in the file name in this patch too. Please apply to correct it: [PATCH] Fix class support to istallion.c Realized I put a / in the filename of this device too. Here is the fix: [PATCH] I2C: Enable changing fan_divs in lm80 driver For some reason the original lm80 driver in 2.6 cannot set fan_divs (while the 2.4 driver could). This patch brings support back. It was lightly tested by one user. This patch also suggests some code cleanups (fan code refactoring). I'll send a different patch later for these. [PATCH] I2C: New chip driver: pcf8591 Please find below a patch against kernel 2.6.5-rc2-mm4 to add the pcf8591 driver (a 8-bit A/D and D/A converter). I have ported it from the 2.4 version, and it includes some fixes, improvements and simplifications. It has been reviewed by Jean Delvare on IRC. Please also note that the patch also fixes a missing space in drivers/i2c/chips/Kconfig, introduced by the previous patch I sent you concerning the pcf8574. [PATCH] I2C: minor bugfixes for the pcf8591.c driver and formatting cleanups. [PATCH] I2C: clean up out of order bus Makefile and Kconfig entries. [netdrvr tulip] remove ChangeLog file It was out of date. BitKeeper logs are more recent and more accurate. [netdrvr tulip] add MII support for Comet chips Add MII support for ADMtek Comet (Linksys LNE100TX v4.1 & others): * tulip_core.c: add HAS_MII flag to COMET entry in tulip_tbl[] * timer.c (comet_timer): add missing call to tulip_check_duplex() and replace inl() calls with tulip_mdio_read() calls Changes modeled after Donald Becker's tulip.c:v0.98 1/8/2004 [SERIAL] Unuse old SERIAL_IO_xxx macros. 8250.c should be using the replacement UPIO_xxx macros instead. [SERIAL] Remove some dead declarations. [SERIAL] Correct minor debugging format string error. [SERIAL] Don't try to free resources we didn't request. [SERIAL] Pass device pointer through to tty_register_device. This allows drivers to pass their struct device through to tty_register_device, which in turn allows sysfs to show which device and driver owns the UART. [SERIAL] Pass sa11x0 struct device through to tty_register_device. [SERIAL] Remove UPF_HUP_NOTIFY; this is no longer used. [IPV6]: In ndisc_netdev_event, handle NETDEV_DOWN. Based upon patches and commentary from Thomas Spatzier, Stephen Hemminger, and Andi Kleen. [IPSEC]: Support draft-ietf-ipsec-udp-encaps-00/01, some ipec impls need it. [ISDN]: Add missing IPPP_FILTER entry to Kconfig. [ISDN]: Fix kernel PPP/IPPP active/passiv filter code. [IPV6]: Add missing MIB counter increments. [SOUND]: Proper deps for SND_BIT32_EMUL. [SOUND]: Add amd7930 to sndmagic.h [NET]: Kill __FUNCTION__ string literal concatenation. From Tony Breeds [NETFILTER]: Add more debug info to TFTP helper. From Vineet Mehta [ATM]: get atm_guess_pdu2truesize() right [ATM]: [nicstar] using dev_alloc_skb() (reported by Johnston, [IRDA]: Move IRDA device headers to more appropriate place. [IPV6]: Mark MLDv2 report as known. Mark MLDv2 Report as known ICMPv6 type. (We just ignore MLDv2 Reports on hosts as the spec says.) [NET]: Add random_ether_addr to ether_device.h [NET]: Use random address in dummy driver. [NET]: Use random address in usb gadget driver. [NET]: Use random address in usbnet driver. [SCTP]: Fix printk warnings. [ATM]: Fix printk warnings in ambassador driver. [IRDA]: Fix warnings in sir_dev.c [IRDA]: Fix 32-bit pointer bug in donauboe.c [NET]: Fix printk warnings in wireless/strip.c [NET]: Fix printk warnings in strip driver. [SERIAL] HCDP IRQ fixup Some pre-production firmware has incorrect GSI values in the HCDP, which tells us where the serial console port is, so we have to do the auto-IRQ thing after all. [SERIAL] Add extra suspend/resume functionality to serial_cs. This calls into the 8250 driver so that the serial port settings can be saved and restored over a suspend/resume cycle. Previous kernels have assumed that the port will be re-opened after such an event, which may not be the case. Convert sd to kref and fix sd_open/sd_remove race We actually fix this race by mediating the object release/get race (i.e. we destroy the scsi_disk object when its reference count goes 1->0, we use a semaphore to prevent something else trying to get a reference after or during this). The open/remove race is actually irrelevant because even if we open an already removed object, all that will happen is that we get a reference to a device that always returns EIO. Convert sr to a kref and fix sr_open/sr_remove race We actually fix this race by mediating the object release/get race (i.e. we destroy the scsi_cd object when its reference count goes 1->0, we use a semaphore to prevent something else trying to get a reference after or during this). The open/remove race is actually irrelevant because even if we open an already removed object, all that will happen is that we get a reference to a device that always returns EIO. [ARM] Reduce the number of unnecessary includes in decompressor. This appears to work around the gcc problem where gcc adds extra .globl directives into the assembly for misc.s for its internal libgcc functions. [PCMCIA] Fix resource handling for memory probe Add claim_region and free_region to claim/free resource regions. This ensures that we only attempt to probe memory regions which are directly related to the socket in question, rather than any memory region we happen to be able to request. This also fixes a memory leak where we don't kfree the resources we previously allocated. [PCMCIA] Remove racy check_io_resource() Convert do_io_probe() to use claim/free_region() rather than the racy check_io_resource(). Remove check_io_resource() and the now unused resource_parent() functions. [PCMCIA] Use kernel resource core as primary resource allocator. Turn the resource management on its head. Rather than using PCMCIA's resource database as the primary object to allocate resources, use Linux's standard resource allocation instead. When we have a socket on a PCI bus, we always use the PCI resource allocation functions rather than the kernels core resource allocation, so that we can take account of any bridges. [NET]: Fix memset args in sk_mca, noticed by Jean Delvare [ARM] Drop -traditional from assembler command line in decompressor. [PCMCIA] Re-export pci_bus_alloc_resource() from PCI code. Since PCMCIA now uses this, re-export it. [PCMCIA] Fix warning about truncated integer. [ARM] Fix spacing in arch/arm/boot/Makefile and arch/arm/mm/Kconfig. NFSv2/v3/v4: Prepare the nfs_page struct to allow for short reads. [SERIAL] Add support for TI16C750 hardware flow control. NFSv2/v3/v4: Add support for asynchronous reads even if rsize NFSv2/v3/v4: Add support for asynchronous writes even if wsize NFSv2/v3/v4: When pdflush() is trying to free up memory by calling our writepages() method, throttle all writes to that mountpoint. RPC,NFS: remove instances of tests for waitqueue_active(). Those can be racy. RPC: remove unnecessary support for sk->sk_sleep on those sockets that are owned by the RPC client. RPC: add fair queueing to the RPC scheduler. If a wait queue is defined as a "priority queue" then requests are dequeued in blocks of 16 in order to work well with write gathering + readahead on the server. There are 3 levels of priority. The high priority tasks get scheduled 16 times for each time the default level gets scheduled. The lowest level gets scheduled once every 4 times the normal level gets scheduled. Original patch contributed by Shantanu Goel. RPC: Close some potential scheduler races in rpciod. NFSv2/v3/v4: Deal with the case where the server reads/writes fewer bytes than we requested due to resource limitations etc. RPCSEC_GSS: Fix integrity checksum bugs. Need to take into account the starting offset when calculating the page length. NFSv2/v3/v4: Fix a slowdown of O_SYNC and O_DIRECT writes that resulted from over-aggressive attribute cache revalidation. NFSROOT: clean up the parser routines (patch by Fabian Frederic) RPCSEC_GSS: Fix RPC padding in two instances of RPCSEC_GSS code. RPC: Clean up XDR encoding of opaque data. NFSv4: attribute bitmap values need to be unsigned long integers. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating ACCESS RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating GETATTR RPC calls. NFSv4: Remove unnecessary post-op attributes from read/write/... calls. The new attribute revalidation scheme doesn't rely on them. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating LOOKUP RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for looking up the mountpoint. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating REMOVE RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating RENAME RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for hard linking NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating CREATE RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating PATHCONF RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating STATFS RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme when doing sillyrename() completion. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating READLINK RPC calls. NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating READDIR RPC calls. NFSv4: assorted code readability cleanups in the XDR NFSv4: clean up the FSINFO XDR code to conform to the new scheme for GETATTR. RPC: add a field to the xdr_buf that explicitly contains the maximum buffer length. RPC: make the client receive xdr_buf return the actual length of the RPC length. NFSv4/RPC: improved checks to prevent XDR reading beyond the actual end of the RPC reply. NFSv4: Check server capabilities at mount time so that we can optimize away requests for attributes that are not supported. In particular, we wish to determine whether or not the server supports ACLs. RPC: Fix a bug introduced by trond.myklebust@fys.uio.no|ChangeSet|20040314024328|33542. portmap can fail due to the call to xprt_close() in xprt_connect(): xprt_disconnect() wakes up xprt->snd_task, and sets -ENOTCONN, which again gets converted to EIO by xprt_connect_status() Fix is to remove call to xprt_disconnect(). We don't need it in the case when we are reconnecting. However we do need to ensure that we wake up xprt->snd_task if reconnection fails. Diagnosis & proposed solution by Olaf Kirch Lockd: Fix waiting on the server grace period. The old code was wrong in that it assumed that we are out the grace period as soon as the client is finished doing lock recovery. Also ensure that we respect signals when waiting for the server grace period to end. RPC: Ensure that we only schedule one RPC request at a time. In theory the current code could cause two to be scheduled if something wakes up xprt->snd_task before keventd has had a chance to run xprt_sock_connect() NFSv3: Fix an XDR overflow bug in READDIRPLUS [SPARC64]: Control -fomit-frame-pointer using CONFIG_FRAME_POINTER. [NET_SCHED]: Check for NULL opt in dsmark_init. [CRYPTO]: ARC4 Kconfig clarification. [SPARC64]: Provide _mcount as well as mcount. [PCMCIA] init_pcmcia_cs() to return error from class_register() Patch from: Randy Dunlap From: Walter Harms Now init_pcmcia_cs() returns the result of class_register(). Therefore init_pcmcia_cs() will possibly return an error. [ARM] use errno #defines in assembly Patch from: Randy Dunlap From: Danilo Piazzalunga Some assembly code (on various archs) either 1. uses hardcoded errno numbers instead of the canonical macro names, or 2. defines them locally, instead of including the appropriate header (while including other headers). This patch "fixes" such usage in - getuser.S for arm - putuser.S for arm JFS: Fix race in jfs_sync Don't let final iput happen while jfs_sync is processing inode. [PATCH] Fix unaligned stxncpy again Herbert Xu noted: "The current stxncpy on alpha is still broken when it comes to single word, unaligned, src misalignment > dest misalignment copies. I've attached a program which demonstrates this problem." Ugh, indeed. It fails when there is a zero byte before the data. Thanks. Here is the fix for this (both regular and ev6 version). [PATCH] x86-64 update From: Andi Kleen Current x86-64 patchkit for 2.6.5. - Add drivers/firmware/Kconfig - Clarify description of CONFIG_IOMMU_DEBUG - Use correct gcc option to optimize for Intel CPUs - Add EDD support (Matt Domsch) - Add workaround for broken IOMMU on VIA hardware. Uses swiotlb there now. - Handle more than 8 local APICs (Suresh B Siddha) - Delete obsolete mtrr Makefile - Add x86_cache_alignment and set it up properly for P4 (128 bytes instead of 64bytes). Also report in /proc/cpuinfo - Minor cleanup in in_gate_area - Make asm-generic/dma-mapping.h compile with !CONFIG_PCI Just stub out all functions in this case. This is mainly to work around sysfs. - More !CONFIG_PCI compile fixes - Make u64 sector_t unconditional [PATCH] Fix URLs in Kconfig files From: Rusty Russell From: "Petri T. Koistinen" 1) Various URLs in the Kconfig files are out of date: update them. 2) URLs should be of form . 3) References to files in the source should be of form 4) Email addresses should be of form [PATCH] feed devfs through Lindent Nobody seems to have any outstanding work against devfs, so... [PATCH] generalise system_running From: Olof Johansson It's currently a boolean, but that means that system_running goes to zero again when shutting down. So we then use code (in the page allocator) which is only designed to be used during bootup - it is marked __init. So we need to be able to distinguish early boot state from late shutdown state. Rename system_running to system_state and give it the three appropriate states. [PATCH] vt.c cleanup - Remove unneeded casts of a void * - whitespace consistency. [PATCH] con_open() speedup/cleanup con_open() is called on every open of the tty, even if the tty is already all set up. We only need to do that initialisation if the tty is being set up for the very first time (tty->count == 1). So do that: check for tty_count == 1 inside console_sem() and if so, bypass all the unnecessary initialisation. Note that this patch reintroduces the con_close()-vs-init_dev() race+oops. This is because that oops is accidentally prevented because when it happens, con_open() reinstalls tty->driver_data even when tty->count > 1. But that's bogus, and when the race happens we end up running vcs_make_devfs() and vcs_remove_devfs() against the same console at the same time, producing indeterminate results. So the race needs to be fixed again, for real. [PATCH] remove down_tty_sem() Remove the down_tty_sem() and up_tty_sem() and replace them with open-coded up() and down(). This is an equivalent transformation. I assume these functions were created to open the possibility of per-tty semaphores at some time in the future. But the code which is protected