Summary of changes from v2.6.8-rc1 to v2.6.8-rc2 ============================================ [SPARC32]: Regenerate defconfig [SPARC32]: Move non-PCI DMA definitions out of pgtable.h This also avoids a cyclic header inclusion problem with dma-mapping.h and linux/mm.h triggered by the recent change to standard DMA definitions. [SPARC32]: Continue to avoid the use of __builtin_trap for BUG() gcc 3.3.3 continues to ICE on the BUG_ON() in mm/fremap.c. [SPARC32]: Fix CONFIG_SUN4 build JFS: Don't allow reading beyond the inode map's EOF If we try to read inodes that are beyond the size of the inode map, __read_metapages would read unitialized pages into the inode map's address space. If the inode map is later grown in order to allocate more inodes, the page is initialized and written under a different address space. Having the stale page in the page cache prevents the properly initialized page from being read, and results in errors. This problem can be provoked by an nfs client trying to read an inode that does not exist. Signed-off-by: Dave Kleikamp [PATCH] natsemi updates - support for external phys, both fibre and twisted pair, added: * remove the "phy" parameter from mdio_{read,write}: the function accesses the current phy. * new functions to access external phys: miiport_{read,write} * scan for external phys on _probe. * ethtool support for switching between internal and external phys. * introduce an init_phy_fixup helper: a few settings must be reapplied after reenabling the internal phy. - move register_netdev to the end of _probe. The current position could cause races with hotplug. - do not wait for autonegotiation completed after initialization. - use pci_name() instead of dev->name until register_netdev has initialized dev->name. - read the BMSR register in the link beat interrupt twice: The link status field is latched, without reading twice a link up event will be missed (and only noticed a few seconds later in the media timer) - restart the autonegotiation after modifying the capabilities. [PATCH] sis900-fix-phy-transceiver-detection.patch From: Daniele Venzano Fix PHY transceiver detection code to fall back to known PHY and not to the last detected. The code checks every transceiver detected for link status and type, but fails when ghost transceivers are detected, deciding to use the last one detected. With this patch the driver should choose the correct transceiver even when some ghosts are detected by checking for the type of the tranceiver it is going to use. [PATCH] raw.c cleanups - pass the raw_config_request by reference, not by value. - fix whitespace drainbamage Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman Driver Core: remove extra space in Kconfig file. Signed-off-by: Greg Kroah-Hartman JFS: Error path released metadata page it shouldn't have Signed-off-by: Dave Kleikamp [PATCH] natsemi 1: switch to netdev_priv() [PATCH] natsemi 2: support packets > 1518 bytes [PATCH] Gigabit Ethernet support for forcedeth - Lots of updates for the gigabit ethernet nic: New ring entry format, support for RGMII phys, new pci ids. - Silence interrupt source 0x01: it's rx error, no need to ask the end user to report it. - add support for vlan packets: The NvRegOffloadConfig register contains the maximum packet size, it was set to 1518 which caused vlan to fail. - fix bit flags for mii access: the wrong bit was polled and the mii write implementation was just broken. - Do not stop the rx/tx engines around mii accesses. - reset and reinit the phy during probe. JFS: Updated field isn't always written to disk during truncate There is a possibility that a change to header.next is not logged or written to disk if it is the only change to an xtree leaf page. Signed-off-by: Dave Kleikamp [PATCH] ia64: Rename local move_irq to sn_move_irq Rename SN local function move_irq to sn_move_irq to remove conflict with global move_irq. Needed since ashok.raj moved move_irq() from iosapic.c to irq.c. Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PATCH] ia64: IA-32 sigaltstack bug fix More code needs to be guarded by if (uss32) { ... }. Without this patch, if (buf32..) may be checking uninitialized data and may result in spurious ENOMEMs. Signed-off-by: Gordon Jin Signed-off-by: Arun Sharma Signed-off-by: David Mosberger [PATCH] ia64: Correct invalid unwind data ASM_UNW_PRLG_GRSAVE(n) must match the number of input registers in the following alloc statement. Otherwise you get invalid backtraces :( Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PATCH] prism54 freq to channel incorrect for 5GHz 2004-07-06 Margit Schubert-While * The frequency to channel conversion is wrong for the 5GHz band * Although the (known) devices don't/can't use it, they do report it. (iwlist ethX freq) fix oops in build_wildcard_path_from_dentry JFS: Protect active_ag with a spinlock Signed-off-by: Dave Kleikamp JFS: prevent concurrent calls to txCommit on the imap inode Signed-off-by: Dave Kleikamp [NETFILTER]: Fix two broken checks for options in ipt_LOG Signed-off-by: Patrick McHardy Signed-off-by: Harald Welte Signed-off-by: David S. Miller [NET]: Deinline sock_i_uid, sock_i_ino The sock_i_uid and sock_i_ino functions are only called by /proc type interfaces, so they don't need to be inlined. Also, the inline functions writeable, rcvtimeo, sndtimeo are test for value functions that don't change their argument. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller JFS: Check for dmap corruption before using leafidx Signed-off-by: Dave Kleikamp [IPV4]: IPMR fixes. - pim_protocol warning fix - ipmr_vif_open() and ipmr_mfc_open() allocates the memory, so it should use seq_release_private(). - ipmr_mfc_seq_xxx is using it->cache, in order to control whether unlock should be do or not, but it->cache was not initialized in ipmr_mfc_seq_start(). So it can point the previous state if user did seek(). This become to the cause of twice unlock. Signed-off-by: OGAWA Hirofumi Signed-off-by: David S. Miller [NET]: Cleanup mis-usage of seq_release_private These doesn't allocate memory and doesn't use seq->private. However kfree() ignores NULL, so these are not the problem. This patch just cleans these up. Signed-off-by: OGAWA Hirofumi Signed-off-by: David S. Miller [PATCH] ia64: Fix OSDL BugMe report 2885: realtime process can't preempt low priority process in kernel Rearranged code to make it work. There were two problems: 1. The preempt flag was being tested only if code was leaving for user space (the logic should be: test for RESCHEDULE if we're switching to a kernel thread, test everything if switching to a user thread) 2. The check of the user space flags was being repeated even if the work had been done. There is one small change in semantics: when returning from a preemption, the preemption flag will *not* be rechecked. Otherwise, I found that it was easy to get into a livelock situation where no forward progress was made. Signed-off-by: David Mosberger [PKT_SCHED]: Another missed tc_stats spinlock conversion. Signed-off-by: Jamal Hadi Salim Signed-off-by: David S. Miller [TCP]: Type qualifiers, such as const, are ignored on function return type. [TCP]: Do not round window to MSS if window scaling. Signed-off-by: John Heffner Signed-off-by: David S. Miller ia64: Nuke two compiler warnings. [PATCH] I2C: ADM1030 and Co sensors chips support Here is a patch against linux-2.6.7-mm1 kernel that adds support for adm1030 and adm1031 sensors chips. It has been reviewed several times by Jean Delvare, and he thinks it is ready for inclusion into 2.6 kernel. So here it is. Signed-off-by: Alexandre d'Alton Signed-off-by: Greg Kroah-Hartman [PATCH] I2C PPC4xx IIC driver: 0-length transactions bit-banging implementation IBM PPC 4xx i2c controller doesn't support 0-length transactions (e.g. used by SMBUS_QUICK). This patch implements bit-banging emulation for such requests and removes temporary kludge added earlier. Signed-off-by: Eugene Surovegin Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Class of scx200_acb This is needed for the scx200_acb to accept hardware monitoring chips. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Add support for LM86, MAX6657 and MAX6658 to lm90 This adds support for the LM86, MAX6657 and MAX6658 sensor chips to the lm90 driver. These are less popular than the LM90 and ADM1032 but several users have reported to use these, so I added support to the lm90 driver. All these chips are fully compatible so that's just a matter of accepting the new chip ids. I also slightly simplified the detection code. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: i2c/i2c-dev.c::i2c_dev_init() cleanup. This patch does the fallowing cleanup for drivers/i2c/i2c-dev.c::i2c_dev_init(): *) in a error condition, return the error code of register_chrdev() insted of -EIO; *) adds missing audit for class_register(); *) in a error condition, only prints "Driver Initialisation Failed", insted printing the cause. (Note that the error will be printed by the return of the error code, and the information about what function caused the problem need to be done by a debug code). Only compiled, lack of hardware. Signed-off-by: Luiz Capitulino Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Documentation for i2c-parport At least, the i2c-parport gets some documentation. I heard several persons complaining that there was no sample electronics schema for building their own i2c-over-parallel-port, so I did just that, with the help of Sylvain Munaut. The documentation also includes the list of supported adapters, and a short comparison with other drivers using the parallel port to drive an i2c bus. At the end of the document I included an updated version of the i2c-velleman doc file (which I then deleted). Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Add support for LM77 This patch (against the current stack) adds support for the LM77 sensor chips made by National Semiconductor. Formerly this was claimed by the LM75 driver but when I got hold of an embedded board (built around the National Geode SC1100 CPU), which was equipped with an LM77, it turned out that the two chips are not compatible. It has been developed with help of, reviewed and approved by Jean Delvare. Signed-off-by: Andras Bali Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: Fix bug in ia64_atomic64_{add,sub} Hit this bug just yesterday. I hope the problem and fix require no explanation. Patched kernel boots and runs just fine. Signed-off-by: Brent Casavant Signed-off-by: David Mosberger [IPV4]: Fix multicast socket hangs. If a multicast packet gets looped back, the sending socket can hang if a local read just sits and does not empty its receive queue. The problem is that when an SKB clone is freed up, the destructor is only invoked for the head SKB when there is a fraglist (which is created for fragmentation). The solution is to account the fragment list SKB lengths in the top-level head SKB, then it all works out. Signed-off-by: David S. Miller ia64: Define machvec_noop as "static inline" This way, non-GENERIC kernels can optimize away the no-op calls while GENERIC kernels can still take the address of the function to initialize the machvec vector. [PATCH] Driver core: add platform_device_register_simple to register platform Add platform_device_register_simple to register platform devices requiring minimal resource and memory management. The device will have standard release function that just frees memory occupied by the platform device. By having release function in the driver core modules using such devices can be unloaded without waiting for the last reference to the device to be dropped. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: add default driver attributes to struct bus_type Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: kset_find_obj should increment refcount of the found object kset_find_obj should increment refcount of the found object so users of the function can safely use returned object Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: add driver_find helper to find a driver by its name Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] ia64: fix various problems in pfm_check_task_state() Commands not requiring the monitored task to be stopped would spin in wait_task_inactive() forever. After call to wait_task_inactive(), state may have changed, therefore it needs to be rechecked. Signed-off-by: Stephane Eranian Signed-off-by: David Mosberger JFS: jfs_dmap build fix fs/jfs/jfs_dmap.c: In function `dbAllocNear': fs/jfs/jfs_dmap.c:1343: parse error before `*' fs/jfs/jfs_dmap.c:1357: `leaf' undeclared (first use in this function) fs/jfs/jfs_dmap.c:1357: (Each undeclared identifier is reported only once fs/jfs/jfs_dmap.c:1357: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: Dave Kleikamp [PATCH] ia64: nointroute option needs to be parsed early This patch does an early parsing of kernel command line to check if no_int_route is present. Sal_init code depends on this option to enable/disable interrupt routing. Signed-off-by: Rohit Seth Signed-off-by: David Mosberger [PATCH] ia64: allow module core code calls to module init code again Drop the prohibition for module core code calls to module init code (this breaks netfilter). Signed-off-by: Signed-off-by: David Mosberger [PATCH] ia64: add audit support This patch adds IA64 support to the audit infrastructure. The IA64 audit patch complements the existing audit support for the i386, PPC64, and x86_64 architectures. This patch is based on work by Ray Lanza. Signed-off-by: Peter Martuccelli Signed-off-by: David Mosberger [Bluetooth] Respond to L2CAP info requests This patch adds the correct behavior when a L2CAP info request is sent by the peer. The answer should be a L2CAP info response with the result code set to "not supported". Signed-off-by: Marcel Holtmann [PATCH] ia64: fix interpolation-bug in fsys_gettimeofday() The order of reading ar.itc is incorrect with respect to all other variables in fsys_gettimeofday. All variables involved in time interpolation need to be protected by the sequence lock xtime_lock for consistency check. However, the first time that fsys_gettimeofday() takes a time stamp, it reads the count outside the seq lock leading to the following possible time leap into the future scenario: fsys_gettimeofday: read ar.itc .... .... read_seqbegin read all other variables (last_nsec_offset, jiffies, xtime) do time interpolation - elapsed_cycles become a large negative number and converting it to nsec overflows and make it a large positive number read_seqretry success updates last_nsec_offset (which is several seconds into the future). All subsequent gettimeofday() calls will be wrong as well because monotonic property kicks in. It only self-corrects once that future time actually arrives. This patch fixes the problem (and moves one instruction to make some room). Signed-off-by: Ken Chen Signed-off-by: Asit Mallick Signed-off-by: David Mosberger [Bluetooth] Don't reset the USB halted bits The USB halted bits are useless and so there is no need to reset them after changing the configuration. Signed-off-by: Marcel Holtmann [PATCH] I2C: remove Documentation for i2c-pport > > This also raises a question about Documentation/i2c/i2c-pport. > > Should we keep a document about a driver which is not in the kernel > > tree (and hasn't even been ported to 2.6 yet)? > > No we should not. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: adm1025 driver ported to 2.6 This is my port of the adm1025 driver to 2.6. It has been tested by a few users and reported to work OK. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman I2C: sparse cleanups for a few i2c drivers. [PATCH] I2C: small ADM1030 fix Please find an incremental patch that applies on top of the previous one (the one from the first message of the thread) and that adds parenthesis to the macro as pointed out by Mark. Signed-off-by: Greg Kroah-Hartman [PKT_SCHED]: Remove CSZ scheduler. It was an experimental hack and never finished off. Signed-off-by: David S. Miller [BRIDGE]: Support different MTU sizes. This patch adds support for different size MTU's to bridging. It is useful for bridging Ethernet's with jumbo frames, etc. The mtu of the bridge pseudo-device is maintained as the minimum of all the underlying ports. And when forwarding a frame through the bridge, it will drop the frame if the outgoing port's MTU is less than the frame size (as per 802 standard). Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller 1 Wire: add Dallas 1-wire protocol driver subsystem This was written and developed by Evgeniy Polyakov with only very minor cleanups by me. Signed-off-by: Greg Kroah-Hartman [PKT_SCHED]: Add jitter support to netem. This patch adds jitter if desired to the delayed packets in the netem scheduler. I dropped the rate stuff out and reorganized so that an underlying pfifo queue is used (next plan is to make it have class ops). The jitter is given as sigma to a Gaussian normal distribution. The actual implementation is a reduced form of the table driven stuff in NISTnet (free). Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller [CRYPTO]: Remove lazy allocation from deflate. Signed-off-by: James Morris Signed-off-by: David S. Miller [XFRM]: Add FLUSHSA and FLUSHPOLICY. This patch adds FLUSHSA and FLUSHPOLICY to xfrm_user which are analagous to SADB_FLUSH and SADB_X_SPDFLUSH in af_key. This is useful in KMs on startup/shutdown so that the system is reset to a known state. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPSEC]: Fix uh->len when doing NATT with IP options. I just noticed that the UDP header length in esp4_output() is incorrect when IP options are present (in transport mode). This patch fixes exactly that. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [CRYPTO]: Set CRYPTO_TFM_RES_BAD_KEY_LEN in twofish. ia64: Fix EFI physical-mode stubs to correctly calculate physical address This fixes a bug in which the Ski simulator ended up getting the wrong time, since phys_get_time() ended up storing the correct time in the wrong place if a region-5 virtual address was passed (as would happen for stack variables of the init-task). On real machines, this bug likely would have caused a crash on machines which don't support switching EFI into virtual mode. ia64: Nuke a warning due to the syscall auditing patch. [IPSEC]: Move generic encap code into xfrm4_output I've finally finished merging the general encapsulation code for IPv4. Here is the patch. The idea is basically to make x->type->output similar in structure to x->type->input. That means moving the tunnel encapsulation and other generic code out. They have ended up in xfrm4_output.c. The advantage of this is that we have exactly one copy of the tunnel encapsulation code. So if we need to change it (e.g., set the TTL according to the route) then it's easier and less error-prone. In fact, in doing so I've already noticed that the ECN wasn't being copied correctly in everything except xfrm4_tunnel. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller [IPCOMP6]: Exclude IPCOMP header from props.header_len Now that the IPv4 encap stuff is out of the way, I'll be sending you the IPv6 versions. Here is the one to remove the unnecessary extra space reserved for IPCOMP. Signed-off-by: Herbert Xu Signed-off-by: Yoshifuji Hideaki Signed-off-by: David S. Miller [NET]: Fix dst_underflow_bug_msg printk args. Remove obsoleted drivers/char/h8.c drivers/char/h8.h. [ARM] ohci-omap does not need asm/mach-types.h clean up NULL vs. 0 warnings generated by sparse tool [SPARC64]: Add CMT register defines. [IPV4]: Remove no longer available URL. This patch solves Bugzilla #2445 by removing a no longer available URL from the help text for NET_IPIP. Noted by Nils Hammar . Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller [SPARSE]: Fix warnings in net/sctp/ Signed-off-by: Andrew Morton Signed-off-by: David S. Miller [NETFILTER]: Add timestamping to ipt_ULOG After Andi's timestamp optimizations we don't have any timestamps on the packets unless someone requested them. Here's a patch for 2.6 to explicitly timestamp the packets before we log them. Harald approved it some time ago, he's pretty busy so I'm sending it instead. Signed-off-by: Martin Josefsson Signed-off-by: David S. Miller x86: fix stackframe ownership confusion in sys_sigaltstack() gcc doesn't understand that "asmlinkage" routines have the argument stack owned by the assembly-language caller, and the recent sparse cleanup made gcc think it owns enough stack frame space to make a tailcall by overwriting "struct pt_regs" that is set up by the low-level system call code. Hide that problem again. The real fix would be to tell gcc that the caller owns the stack frame that it set up, but we don't have any such interfaces, so for now the best we can do is to hide it. [SPARC32]: Don't allow the kernel to read PAGE_NONE pages. [SPARC64]: Update defconfig. [PATCH] sparse: NULL noise in fs/reiserfs [PATCH] sparse: misc NULL noise in fs/* [PATCH] sparse: aacraid annotation [PATCH] sparse: megaraid inline fixes inlined functions moved, a couple of heavy-weight ones (issue_scb() and meg_cmd_done()) uninlined. [PATCH] sparse: megaraid annotation [PATCH] sparse: NULL noise in drivers/isdn [PATCH] sparse: misc NULL noise in drivers/* [PATCH] sparse: ISDN ->readstat() and ->writecmd() annotation ->readstat() and ->writecmd() are always getting a userland pointer; marked argument as such, killed "user" flag, killed dead code. [PATCH] sparse: blind dereference of userland pointers in divasproc [PATCH] sparse: drivers/isdn/* annotation [PATCH] sparse: dvb_ringbuffer_pkt_write()/dvb_ringbuffer_write() annotation copy_from_user() moved from dvb_ringbuffer_{write,pkt_write}() to callers; these functions are always getting kernel pointer now. "usermem" argument killed, code annotated. [PATCH] sparse: blind dereference of userland pointers in ac7110 [PATCH] sparse: drivers/media/* annotation JFS: Add d_hash and d_compare operations for case-insensitive names JFS supports OS/2-compatibility with case-insensitive file names. To avoid multiple dentries for these names, jfs needs to provide the d_hash and d_compare dentry_operations. The operations are only used when the volume was created in OS/2 or with the -O flag. [PATCH] ia64: build fixes for IA64_MCA_DEBUG_INFO Make mca.c build again with debug enabled. Signed-off-by: Keith Owens Signed-off-by: David Mosberger [PATCH] ia64: Reduce TLB flushing during process migration This patch adds an architecture-specific callout after explicit processor migrations. The callout allows architectures (or platforms) to update TLB specific information (ex., cpu_vm_mask). Signed-off-by: Jack Steiner Signed-off-by: David Mosberger [ARM PATCH] 1958/1: make collie use INIT_MACHINE Patch from John Lenz make collie use the new INIT_MACHINE macro instead of arch_initcall. [ARM PATCH] 1961/1: S3C2410 - fix for UART FIFO size calculation Patch from Ben Dooks Fixes calculation of how many bytes in the RX/TX FIFOs. Previous code failed to check wether the full flags where set before returning the byte counter. This should ensure that the serial driver behaves correctly when the FIFO fills, and not just ignore the input data [ARM PATCH] 1962/1: S3C2410 - Rename MACH_VR1000 to Thorcom-VR1000 Patch from Ben Dooks Place correct machine name for VR1000 in machine support file. Set Type field when creating block/char/pipe e.g. via mknod. Fixing problem mentioned by Jeremy Allison remove spurious warning message logged on mount with credentials file (pointed out by Richard Hughes) Signed-off-by: Steve French (sfrench@us.ibm.com) Set DevMajor/DevMinor when querying info on remote char/block devices Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] sparse: switching afs to kvec - afs and rxrpc switched to kvec; definition of kvec moved to uio.h (duh). - afs/mntpt.c got missing cast added. at that point afs is sparse-clean and rxrpc has only one remaining warning (setsockopt from local variable, protected by set_fs()). [PATCH] sparse: VIDIOCSWIN compat_ioctl fixes In handling of VIDIOCSWIN for 32bit on 64bit platforms: * switched to compat_alloc_user_space() * fixed memory corruption in copying arguments from userland * fixed arithmetic overflows * added missing checks for get_user() results and corresponding returns with -EFAULT. [PATCH] sparse: usb ioctl cleanups usb ioctls in compat_ioctl.c switched to compat_alloc_user_space() and cleaned up; ioctl structures annotated. [PATCH] sparse: isdn compile fix for platforms with HZ > 1000 Division by zero is an ugly thing... We are safe wrt overflows, since the maximal value we ever pass is 10000 - not enough to overflow unless you've got a platform with HZ > 200000. [PATCH] sparse: saa fix direct write to userland pointer. [PATCH] sparse: compile fix for rrunner on big-endian platforms bitrot strikes again... [PATCH] sparse: tms380tr.c fix tms380tr is used both by ISA and PCI drivers. Enabling/disabling DMA is done only for ISA ones (it's protected by if (dev->dma > 0) and PCI ones leave it 0), but it's compiled unconditionally. Which breaks on platforms that don't have that ISA crap at all, but support PCI just fine. Code in question placed under ifdef CONFIG_ISA. [PATCH] sparse: NULL noise removal in drivers/sbus [PATCH] sparse: drivers/sbus fixes a) vfc is not 64bit-clean, marked as such in Kconfig b) aurora is simply broken - still uses tqueues. Marked as broken. c) vfc does dereferencing of userland pointer, right after having carefully copied the data to kernel space ;-) Fixed. d) vfc ->mmap() had missed prototype change. Fixed. e) BPP ioctls are misdeclared - they should've been _IO(...) instead of _IOR(..., void). Too late to fix, but we can at least make them _IOR(..., char) - same value, but doesn't try to find sizeof(void). [PATCH] sparse: drivers/sbus annotation [PATCH] sparse: alpha NULL noise removal [PATCH] sparse: alpha sparse infrastructure * added usual CHECK assignment in Makefile * switched uaccess.h to __check_uptr() * added L on long constants (ones missed earlier) * added __user in osf_sys.c (duh - I've added __user to cast in the initializer, but forgot to add it in declaration) [PATCH] sparse: alpha topology.h compile fix Missing bits of cpumask_t conversion [PATCH] sparse: signal annotation ss_sp in struct sigaltstack made __user ->si_addr and ->sival_ptr made __user your ->sa_restorer and ->sa_handler changes propagated users of these guys annotated on i386/amd64/alpha/sparc/sparc64 [PATCH] sparse: arch/* NULL noise removal [PATCH] sparse: ipc compat annotations and cleanups ipc compat code switched to compat_alloc_user_space() and annotated. [PATCH] sparse: gemtek ioctl fix Dumb Typo(tm) - the first bug caught by 0/NULL checks (arg is really a kernel pointer there, so memset() is actually OK - results will be copied to userland by caller. Or would be, if we would not oops ;-) [PATCH] sparse: drivers/media NULL noise removal [PATCH] sparse: drivers/net partial NULL noise removal [PATCH] sparse: drivers/usb NULL noise removal [PATCH] sparse: net/* NULL noise removal [PATCH] sparse: assorted drivers/* NULL noise removal [PATCH] sparse: more fs/* NULL noise removal (partially based on patch from Mika Kukkonen) [PATCH] __vfs_follow_link() made inline again __vfs_follow_link() really should be inline; that's a special case since we are in the middle of recursion and really want to conserve stack space. Moved before the first use, made inline again. [PATCH] compat_fillonedir() warning fix access_ok() expects a pointer, not unsigned long. It's not a problem on platforms that have this guy done as a macro (or ones that do not use fs/compat.c at all), but that's still wrong and on some platforms that care we actually have access_ok() as inlined function. Bogus cast removed. ppc64: fix up si_addr usage Al's last changes mean that it is now annotated as a user pointer, and we want to avoid warnings. [PATCH] pmac_zilog: initialize port spinlock on all init paths pmac_zilog: initialize the serial ports' spinlocks even if console over serial is not enabled; disable this driver by default for ppc This lock not being initialized was Oopsing my TiBook :-P Signed-off-by: David Eger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix 3c59x.c uses of plain integer as NULL pointer This patch will fix 3Com "Vortex" and "Boomerang" ethernet driver sparse warnings about using plain integer as NULL pointer. Signed-off-by: Petri T. Koistinen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] small style fixups for the new automount code Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] #ifndef guard percpu_counter.h and blockgroup_lock.h Insert header guards to allow possible multiple inclusion for include/linux/percpu_counter.h and include/linux/blockgroup_lock.h Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] floppy.c: remove superfluous variable initialization From: Kam Leo Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] `unknown symbol' in sound/oss/kahlua.ko needs unknown symbol udelay Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove struct_cpy() Only two architectures implement it, so afs broke the build. Remove struct_cpy() altogether, and use structure assignments. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] autoselect FAT_FS in config Signed-off-by: OGAWA Hirofumi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix saa7146 compilation From: Colin Leroy This patch fixes a compilation error on 2.6.8-rc1. Here's the error: drivers/media/common/saa7146_video.c:3: conflicting types for `memory' include/asm-m68k/setup.h:365: previous declaration of `memory' make[3]: *** [drivers/media/common/saa7146_video.o] Error 1 Signed-off-by: Colin Leroy Signed-off-by: Michael Hunold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix return codes after i2c_add_driver() in tea6415c and tea6420 In two of my i2c helper drivers the return value of i2c_add_driver() is ignored. Thanks to Arthur Othieno for finding these bugs. Signed-off-by: Arthur Othieno Signed-off-by: Michael Hunold Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] remove outdated Stallion contact information The patch below (applies against both 2.4 and 2.6) removes the bouncing email address from all files and removes the outdated MAINTAINERS entry. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix ia64 early_printk build problem Rename PCDP_TABLE_GUID back to HCDP_TABLE_GUID to get the file to compile again. This change is against current 2.6 BK and is under CONFIG_IA64_EARLY_PRINTK_UART. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sparse: read_descriptor_t annotation We have a fun situation with read_descriptor_t - all its instances end up passed to some actor; these actors use desc->buf as their private data; there are 5 of them and they expect resp: struct lo_read_data * struct svc_rqst * struct file * struct rpc_xprt * char __user * IOW, there is no type safety whatsoever; the field is essentially untyped, we rely on the fact that actor is chosen by the same code that sets ->buf and expect it to put something of the right type there. Right now desc->buf is declared as char __user *. Moreover, the last argument of ->sendfile() (what should be stored in ->buf) is void __user *, even though it's actually _never_ a userland pointer. If nothing else, ->sendfile() should take void * instead; that alone removes a bunch of bogus warnings. I went further and replaced desc->buf with a union of void * and char __user *. [PATCH] sparse: missing cpumask_t bits on sparc (no, it still doesn't fix sparc32-smp - just partial compile fixes ;-/) [PATCH] sparse: aout32 sparse fixes for compat this basically repeats the stuff done to fs/binfmt_aout.c for amd64 and sparc64 aout32. [PATCH] sparse: __forced added to casts in arch-specific code Casts from __user to address-space-agnostic in amd64 and i386 made explicit (__force added; in these places we pass userland pointer to arch-specific code that handles kernel and userland pointers the same way). csum_partial_copy_*() annotated properly [PATCH] pointer-to-int done the canonical way Extraction of int from pointer is slightly broken in several places. [PATCH] sparse: more drivers/scsi annotations Almost all are trivial, aacraid/linit.c annotations had caught a bug - copy_from_user() where copy_in_user() should've been. [PATCH] sparse: a couple of inline fixes in drivers'/scsi Usual "inline used before definition" fixes in nsp32.c and sg.c [PATCH] sparse: more drivers/usb/* annotations [PATCH] sparse: #if where #ifdef should've been (saa7146) [PATCH] sparse: (ipv6/netfilter) initializer fix Missing '=' in C99 initializer [PATCH] sparse: sound compat ioctls annotations Trivial annotations + typo fix in _snd_ioctl32_hwdep_dsp_image() (we want to copy 32bit structure from userland, convert it to native one and do normal ioctl on it; see the first changed line below for what's really happening...) [PATCH] mcdx irq handling cleanup mcdx has different IRQ numbers for all drives; irq handler needs a pointer to structure describing the drive in question. However, instead of passing such pointer at request_irq() time and having it passed to mcdx_intr() for free, mcdx.c sticks the pointer in question into an array indexed by IRQ number and has mcdx_intr() go look it up there. Cleaned up, array killed. [PATCH] mconf.c: Honor $LINES and $COLUMNS if TIOCGWINSZ failed While reading code, I found this buglet. If the TIOCGWINSZ fails, mconf.c assumes 24/80 as screen size, without honoring the LINES and COLUMNS environment variables. This is the shorter and IMHO more correct version. Signed-off-by: Jan-Benedict Glaw Signed-off-by: Linus Torvalds [PATCH] Fix 'unsigned' < 0 checks Using "-W" found a few places that should probably use signed variables since they can contain (and check for) negative error values. [netdrvr pci-skeleton] refresh Here it is. The patch fixes all compile errors and warnings in pci-skeleton.c. The "debug" parameter lacks corresponding variable, so I removed it to avoid a warning on module load. Obsolete pci_power_on() and pci_power_off() have been replaced with the new code using pci_set_power_state(), pci_save_state() and pci_restore_state(). The driver has been tested by compiling it as module and as part of the kernel. [PATCH] [TRIVIAL 2.6] sk98lin: kill dup include From: a.othieno@bluewin.ch (Arthur Othieno) [netdrvr dmfe] remove ALi pci id It's tulip driver, and tulip driver performs better than dmfe (yet some distro installers pick this driver to use). Requested by ALi. [PATCH] prism54 Fix wrong type for BSSID 2004-07-12 Margit Schubert-While * The OID type for BSSID was incorrectly set to type SSID. It should be type RAW. This lead to interesting reporting by "iwpriv ethX g_bssid". (Which caused garbage output and possibly an out of bound) * Be ultra-cautious in reporting SSID by changing the "%s" to "%.*s" and passing the length. (Prompted by the false type above, whereby length = 0 and a %s on a garbage field) [PATCH] fix airo oops-on-removal From: Bill Nottingham airo creates /proc/driver/aironet/ on device activation. However, the device can be renamed - then on teardown it tries to remove the wrong directory. The removal of /proc/driver/aironet then runs afoul of the BUG_ON() in remove_proc_entry. This fixes it by keeping a copy of the name of the directory it created. (It doesn't actually solve the problem of the stats directory still being /proc/driver/aironet/eth0 when you rename the device to, say, 'joe'. But that patch would be a little less trivial.) Signed-off-by: Andrew Morton [PATCH] I2C: Remove extra inits from lm78 driver This patch is from the lm_sensors project CVS, from this revision: 1.63 (mds) remove initialization of limits by driver It is better to set these limits by a combination of /etc/sensors.conf and 'sensors -s'; "mechanism not policy." Please apply. Signed-off-by: Mark M. Hoffman Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: Refine detection of LM75 chips The LM75 detection method was a bit loose so far and would accept non-LM75-compatible chips from times to times. It should be better now. Additionally, the help for the lm75 driver was reworked because we now know that the LM75 and the LM77 are not compatible. Signed-off-by: Jean Delvare Signed-off-by: Greg Kroah-Hartman [PATCH] tg3 bug During receive processing, the tg3 card updates rx_producer (the hardware position in the receive ring) and the opaque cookie. Due to PCI rules the stores happen in order. However the cpu may reorder the reads. In these sort of cases there is usually a data dependency between reading the index and looking up the data (since we use the index to load the data). I think all cpus except alpha guarantee the reads happen in order in this case. However in this particular case we load hw_idx, compare it to sw_idx and then use sw_idx to locate the opaque cookie. There is no data dependency in this case. We need a read memory barrier between the read of rx_producer and the opaque cookie to enforce ordering. Thanks to Olof Johansson, Michael Chan and Broadcom for their assistance in finding this bug. Signed-off-by: Anton Blanchard [netdrvr tg3] bump version and reldate [wireless airo] fix alignment problem (particularly on ARM) Bugzilla #2905 [netdrvr acenic] fix RX descriptor memory ordering [PATCH] libata: fix kunmap() of incorrect page, in PIO data xfer Obvious bug. Fixes highmem oops. [PCI, libata] Fix "combined mode" PCI quirk for ICH6 The hardware vendor, in their infinite wisdom, make the combined mode configuration register different between ICH5 and ICH6. Take this into account. [PATCH] USB: add 3 Phidget device ids to the HID blacklist. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Add usb_kill_urb() This patch is a slightly revised version of as277c, updated to match the current source. The only difference from the older version is that this makes urb->use_count into an atomic_t, to avoid the overhead of an extra locking step each time an URB is submitted and given back. The important features of this patch are: -EPERM added to Documentation/usb/error-codes.txt. Failure to use URB_ASYNC_UNLINK with usb_unlink_urb() is deprecated in the documentation. New ->reject and ->use_count fields added to struct urb. The reject field is protected by urb->lock, and locking is required only in usb_kill_urb() which doesn't have to be fast. Single wait_queue used for all processes waiting inside usb_kill_urb(). The wait queue is woken up only when an URB is given back with ->reject set. usb_rh_status_dequeue() changed to return int. It looks like this function should be declared static; it's not used outside the hcd.c file. Prototype for unlink_urb() in struct usb_operations is changed to include a status code argument. This is necessary so that the different unlink paths can return -ENOENT and -ECONNRESET as appropriate. Support for synchronous usb_unlink_urb() has been removed; such calls are passed to usb_kill_urb(). Kerneldoc for usb_unlink_urb() is updated. usb_kill_urb() added to urb.c. hc_simple() host driver is partially updated -- it should compile but it won't really work right. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Make hub driver use usb_kill_urb() This is a rerun of as278, updated to match the current source. It changes the hub driver, replacing calls to synchronous usb_unlink_urb() with usb_kill_urb() and removing the machinery formerly needed to synchronize the status URB handler with the rest of the driver. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Don't ask for string descriptor lengths Okay, here's a revised patch (as332b). This tries first to ask for 255 bytes, and if that fails then it asks for the length and the full descriptor. Hopefully nobody will object to applying this version... You know, it occurs to me that the have_langid field in usb_device could easily be eliminated. Just set string_langid to -1 during initialization and test for whether or not it is >= 0. I'll do that some other time. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Store pointer to usb_device in private hub structure This patch adds a pointer to the hub's usb_device into the usb_hub private structure. It's a small change, and permits a small amount of simplification in a few spots, i.e., avoid calling interface_to_usbdev(). This doesn't really do much in itself, but it's a prerequisite for the next patch. (A situation arises where we can't use the interface pointer to find the usb_device because the interface might not exist.) Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix up the wording in the emi26 firmware file to match the other kernel firmware files. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: more sparse cleanups (all pretty much NULL usages.) Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix lockup with 2.6 keyspan_pda driver I suggest to put the pointer to port instead of the pointer to the pointer to port to the workqueue data. Did that driver ever work with 2.6? Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Trivial fix to include/linux/usb.h Hi Greg! I am compiling allmodconfig with some extra gcc warnings enabled (-W -Wno-unused -Wno-sign-compare -Winline -Wundef) and got this one: CC [M] security/root_plug.o In file included from security/root_plug.c:30: include/linux/usb.h:358: warning: `inline' is not at beginning of declaration Patch is trivial: Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Fix endianness bug in UHCI driver This patch fixes a byte-swapping error in the UHCI driver. It has been present since 2.6.6 and only got tracked down just now! Thanks a lot to Michel Roelofs for all his help and testing. This should be pushed through to Linus in time to appear in 2.6.8, if possible. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: more sparse fixups that found a real bug in the se401 driver Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix usbfs mount options ignored bug Ok here is a patch to make the mount options work. In addition to implementing the remount function, it removes the parse_options() call from usb_fill_super and adds a "ignore" flag around the mounting that gets done in create_special_files. The parse_options call in usb_fill_super is removed because it is not needed when remount is implemented. The ignore_mount flag is needed because the simple_pin_fs function calls remount with no mount options - i.e. it's not a real mount. So the mount options would be cleared out. The ignore_mount flag causes the remount function to only act on real mounts. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb/core/file.c::usb_major_init() cleanup. This patch does a cleanup for usb/core/file.c::usb_major_init(), which is: *) in error condition, returns the error code from register_chrdev(), insted returning -EBUSY; *) adds missing audit for class_register(); *) only calls devfs_mk_dir() if the prior calls have success. Signed-off-by: Luiz Capitulino Signed-off-by: Greg Kroah-Hartman [PATCH] USB: Allow NULL argument in usb_unlink_urb() and usb_kill_urb() It makes sense for APIs involved in cleanup activities (like kfree()) to accept NULL arguments. Doing so frees drivers from the responsibility of checking whether each resource was actually acquired before trying to release it. Accordingly, this patch makes usb_unlink_urb() and usb_kill_urb() accept a NULL pointer (which used to be acceptable until I changed it) and notes explicitly in the kerneldoc that such arguments are permitted. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet:ax8817x - use interrupt URB for link detection This patch uses the interrupt URB on the ax8817x for link detection. This allows the driver to notify userspace when link drops/comes back so it can take action such as run dhclient, etc. I was also able to reduce the bind function by using some of the stock mii_xxx calls as well as my own for handling initial link negotiation. Signed-off-by: David Hollis Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ax8817x_unbind does not free the interrupt URB after unlinking ax8817x_unbind does not free the interrupt URB after unlinking. Noticed that the net->status already has a flag for link so my private structure variable for link was redundant. Worked around this and was able to kill off the unique ax8817x_get_link() function in the process. Signed-off-by: David Hollis Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbnet, Sitecom LN-029 ID for another AX8817x based usb2 Ethernet adapter. From: Tim Chick Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: misc ohci tweaks Various minor OHCI tweaks; - Fix osdl bugid=2503 by: * Change needlessly-scarey message (WARN_ON dumps stack) * Tries cleaning up, as if it's just IRQ lossage. - Force IRQs off when shutting down a controller that was already stopped ... just in case. - Allow suspending OHCI during driver initialization, to support more aggressive power management. - Fix some misleading/wrong debug messages. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman USB: oops, revert hub patch that wasn't supposed to make it into this patch series yet. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb serial gadget, add omap_udc This lets the serial gadget work with another controller. Tell serial about omap_udc. This driver still needs updating to use the endpoint autoconfig suppport; like Gadget Zero, it really shouldn't need _any_ hardware-specific #ifdeffery. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb gadgetfs, handle omap_udc Tell gadgetfs about omap_udc. Add some missing __user annotations. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb gadget API updates Gadget API updates, including new features: - Adds several new optional calls that can be made to the USB peripheral controller: * VBUS session reporting, for use mostly by external transcievers (such as isp1301). Detection of VBUS power is the first step in enumeration, and usually corresponds to a device being plugged into a hub. * "Soft Connect" feature, wherein the D+ pullup is under gadget driver control. This is a second step during enumeration, which lets the hub see the new device. (Based on a patch by Alex Sanks .) * Control over VBUS current draw. So for example this is what a gadget driver uses during SET_CONFIGURATION to say "it's OK to draw 300 mA from VBUS to recharge". - Basic interfaces to support device-side USB OTG. Feature flags and descriptors are in already. * Reports whether the device has a Mini-AB port, so that OTG support (desriptors etc) is required. * Reports OTG device feature flags for HNP. (The OTG spec requires user interfaces to report this stuff.) Say if this is a B-Peripheral or an A-Peripheral. * Says that usb_gadget_wakeup() is how to access SRP, and usb_gadget_disconnect() is how to access HNP. - Minor updates/cleanups to comments (Linux 2.5-->2.6 etc) Currently there's no support for SRP-only OTG devices. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb gadget zero, basic OTG updates This patch teaches "gadget zero" enough about OTG to pass simple USBCV tests, mostly by including OTG descriptors in each configuration. It tests and reports OTG status, as reported by the USB controller driver. It also adds an option to build gadget zero to act as the designated OTG "HNP Test Device", which exists primarily to trigger HNP. However, it won't currently request HNP. Includes other minor tweaks: delete a timer on disconnect, reset the req->zero flag, don't autoresume after disconnect. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb ethernet gadget, minor fixes + basic OTG support Update CDC Ethernet/RNDIS gadget driver to the latest: - Basics of OTG support: providing the OTG descriptor in each configuration (as needed). No HNP yet. - Stop issuing partial-packet reads. There's some hardware that only counts reads in packets, not bytes, so let's not bother. There are still software checks to catch framing gone wild. - Fix a small bug that crept in with a memory leak fix: after RNDIS requests, ep0 responses would use the RNDIS completion handler even for non-RNDIS requests. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] Updates for W99[87]CF and new SN9C10[12] driver This single patch contains some updates and cleanups for the W996[87]CF driver and a new experimental V4L2 driver for SONiX SN9C10[12] PC Camera Controllers connected to various image sensors. I have not divided the patch in two logical sub-patches becouse of two independent changes in one common file, KConfigure. More informations about the SN9C10[12] can be found below in the documentation. The driver is marked as "EXPERIMENTAL", meaning that there are no known bugs, but further testing is necessary before considering it stable. This the first driver using the new SBGGR8 video format, which has been recently added to the mainline kernel, so there are no available user application at the moment: this is one more reason why it should be in the kernel now. Changes in W996[87]CF: - remove w9968cf_externaldef.h now that ovcamchip.h is in the kernel; - mark user pointers with __user in a cleaner way to avoid sparse warnings; - use appropriate exclusive wait macro during open(); - replace info(), err(), warn() with dev_info(), dev_err(), dev_warn(), pr_debug(), pr_info(); - replace usb_unlink_urb() + wait_for_completion() with usb_kill_urb(); - fix memory offsets for buffers in the chip to be used with generic image sensors; - 'vppmod_load', 'debug', 'specific_debug' and 'simcams' module parameters are now writeable by default; - fix possible race conditions between disconnect() and open(); - add automatic 'ovcamchip' module loading option with 'ovmod_load' module parameter; - get rid of deprecated intermodule communication routines and use the correct module registration/unregistration approach; - remove period at the end of kernel messages; - fix several typos; - use MODULE_VERSION() macro; - other small internal cleanups; - documentation updates. Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: change all usbserial drivers to use module_param() Signed-off-by: Greg Kroah-Hartman [PATCH] USB: remove CONFIG_USB_SERIAL_DEBUG This involved reworking the usb_serial_debug_data() function too. Based on a request from SuSE, and numerous user confusions with how to enable this option. Now that all usb-serial drivers are using module_param() it can be set from the boot command line if the drivers are built into the kernel. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: sort the order in which the usb-serial drivers get built all other usb drivers get built in alphabetical order, why not these? Signed-off-by: Greg Kroah-Hartman [PATCH] USB: fix SN9C10[12] driver for ia64 On Sun, Jul 11, Luca Risolia wrote: > This single patch contains some updates and cleanups for > the W996[87]CF driver and a new experimental V4L2 driver > for SONiX SN9C10[12] PC Camera Controllers connected to various > image sensors. I have not divided the patch in two logical > sub-patches becouse of two independent changes in one common > file, KConfigure. Since this mailing list refused the patch, > due to its size, I have uploaded it here, as > Documentation/SubmittingPatches suggests: I need this patch for x86_64. CC [M] drivers/usb/media/sn9c102_core.o In file included from drivers/usb/media/sn9c102.h:34, from drivers/usb/media/sn9c102_core.c:43: include/asm/rwsem.h:55: error: redefinition of `struct rw_semaphore' In file included from drivers/usb/media/sn9c102.h:34, from drivers/usb/media/sn9c102_core.c:43: include/asm/rwsem.h:79:1: warning: "__RWSEM_INITIALIZER" redefined In file included from include/linux/rwsem.h:25, from include/asm/semaphore.h:43, from include/linux/sched.h:18, from include/linux/module.h:10, from drivers/usb/media/sn9c102_core.c:21: include/linux/rwsem-spinlock.h:49:1: warning: this is the location of the previous definition include/asm/rwsem.h:87: warning: static declaration for `init_rwsem' follows non-static include/asm/rwsem.h:100: warning: `__down_read' declared inline after being called include/asm/rwsem.h:100: warning: static declaration for `__down_read' follows non-static include/asm/rwsem.h:122: warning: `__down_read_trylock' declared inline after being called include/asm/rwsem.h:122: warning: static declaration for `__down_read_trylock' follows non-static include/asm/rwsem.h:146: warning: `__down_write' declared inline after being called include/asm/rwsem.h:146: warning: static declaration for `__down_write' follows non-static include/asm/rwsem.h:171: warning: `__down_write_trylock' declared inline after being called include/asm/rwsem.h:171: warning: static declaration for `__down_write_trylock' follows non-static include/asm/rwsem.h:184: warning: `__up_read' declared inline after being called include/asm/rwsem.h:184: warning: static declaration for `__up_read' follows non-static include/asm/rwsem.h:208: warning: `__up_write' declared inline after being called include/asm/rwsem.h:208: warning: static declaration for `__up_write' follows non-static include/asm/rwsem.h:233: warning: `__downgrade_write' declared inline after being called include/asm/rwsem.h:233: warning: static declaration for `__downgrade_write' follows non-static make[3]: *** [drivers/usb/media/sn9c102_core.o] Error 1 Signed-off-by: Greg Kroah-Hartman [PATCH] USB: unusual_devs.h update added another device to unusual_devs.h. Its a Sony Clie PEG-675C. Now I can mount the memory stick. cat /proc/bus/usb/devices T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 18 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=16 #Cfgs= 1 P: Vendor=054c ProdID=0099 Rev= 1.00 S: Manufacturer=Sony S: Product=Sony PEG Mass Storage C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 6mA I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=05 Prot=00 Driver=usb-storage E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usbserial/ipaq update However, attached I provide you a patch against 2.6.7 which should add the ASUS A620 PDA to the ipaq Kernel module. Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb/core/hcd.c::usb_init() missing audit. Signed-off-by: Luiz Capitulino Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ftdi_sio debug trace for TIOCMSET Someone spotted that ftdi_sio outputs a debug trace for TIOCMGET, but not for TIOCMSET, so this patch adds a debug trace for TIOCMSET too. Signed off by: Ian Abbott Signed-off-by: Greg Kroah-Hartman [PATCH] USB: ftdi_sio VID/PID updates Greg, This patch adds various VID/PIDs to the ftdi_sio driver that I've accumulated from the ftdi-usb-sio-devel mailing list, and one from the 2.4 kernel sources: * Interbiometrics USB I/O boards VID/PIDs from 2.4 kernel (Rudolf Gugler). * Intrepid Control Systems ValueCAN and NeoVI VID/PIDs from Scott Wolchok. * Falcom Twist USB GPRS modem VID/PID from Justin Schoeman. * Suunto Sports instrument PID from Panu Kekalainen. Also a few minor clean-ups: * Removed a stray PID macro constant FTDI_GUDEADS_889_PID. * Copied the Inside Accesso VID/PID into the FT232BM ID table so that the "combined" table is a proper union of the others (unless I've missed something else). * Added a comment that the OCT US101 is also rebadged as a SIIG Inc. US2308. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb host side updates, mostly for suspend This adds some of the infrastructure needed to support some more USB capabilities: - CONFIG_USB_SUSPEND, so Linux can put individual devices into the USB "suspend" state. They can (sometimes) use "remote wakeup" to resume the host; or they can each be resumed by the host. + New usbcore device selective suspend/resume APIs * Define them, as stubs for now * Call them on the paths sysfs uses (renamed functions) + HCD support * Define root hub suspend calls; delegate them to HCDs. * OHCI and EHCI can suspend/resume root hubs that way. * Not called yet, until suspend/resume calls exist - CONFIG_USB_OTG, which depends on the selective suspend APIs to allow devices to switch roles (host to peripheral, etc). This patch just adds a few key flags in usb_bus, needed by usbcore (during enumeration) and by HCD and OTG controllers on OTG-capable boards. - Related bugfix: power budgeting is supposed to place a 100mA per port (non-OTG) for bus-powered devices. This patch changes no behavior; later patches will do that, and they'll be smaller because of this. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: W99[87]CF fix Signed-off-by: Luca Risolia Signed-off-by: Greg Kroah-Hartman [PATCH] USB: usb hub, don't check speed before reset Signaling (even D- vs D+ pullup) may not be stable for a while. At least one OTG root hub won't reliably (<10%) report device speed until after reset (and the OTG state transitions have quiesced for a while). This patch makes that not matter. Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman [PATCH] USB: USB w9968cf compile error On Tue, Jul 13, 2004 at 06:25:59PM -0700, Andrew Morton wrote: >... > All 252 patches: >... > bk-usb.patch >... This patch marks w9968cf_valid_depth as inline, although it's used before it's defined. gcc 3.4 therefore correctly fails with: <-- snip --> ... CC drivers/usb/media/w9968cf.o drivers/usb/media/w9968cf.c: In function `w9968cf_set_picture': drivers/usb/media/w9968cf.c:487: sorry, unimplemented: inlining failed in call to 'w9968cf_valid_depth': function body not available drivers/usb/media/w9968cf.c:1722: sorry, unimplemented: called from here make[3]: *** [drivers/usb/media/w9968cf.o] Error 1 <-- snip --> This patch moves w9968cf_valid_depth above it's first user (it also uses two other functions to keep the ordering of functions a bit more consistent). Signed-off-by: Adrian Bunk Signed-off-by: Greg Kroah-Hartman [PATCH] I2C: patch quirks.c - SMBus hidden on hp laptop This patch unhides the SMBus on the hp nc8000 and nc6000 laptops. The patch has been co-written by Jean Delvare and Rudolf Marek. I've only tested this on nc8000, but it should work for the nc6000 too. Unfortunatley, we had to little information to fix the problem described in the reported bug below, as is probably the same problem. But if we're very lucky it might solve it too. http://bugzilla.kernel.org/show_bug.cgi?id=2976 Signed-off-by: Örjan Persson Signed-off-by: Greg Kroah-Hartman [PATCH] Driver core: Fix OOPS in device_platform_unregister Driver core: platform_device_unregister should release resources first and only then call device_unregister, otherwise if there are no more references to the device it will be freed and the fucntion will try to access freed memory. Signed-off-by: Dmitry Torokhov Signed-off-by: Greg Kroah-Hartman [PATCH] Upgrade security/root_plug.c to new module parameter syntax Hi again, Still doing my compile, and got this: CC [M] security/root_plug.o security/root_plug.c:39: warning: missing initializer security/root_plug.c:39: warning: (near initialization for `__parm_vendor_id.addr') security/root_plug.c:42: warning: missing initializer security/root_plug.c:42: warning: (near initialization for `__parm_product_id.addr') security/root_plug.c:48: warning: missing initializer security/root_plug.c:48: warning: (near initialization for `__parm_debug.addr') Simply upgrading root_plug to use the new module parameter syntax seemed to do the trick. I made the debug writable, the others just readable to root. Signed-off-by: Greg Kroah-Hartman [PATCH] add removeable sysfs block device attribute This patch adds a /block/*/removeable sysfs attribute. A value of 1 indicates the media can change anytime. This is a hint for userland to poll such devices for possible media changes, and leave all others alone. There is currently no way to see if a connected usb-storage device is a disk or a card reader. It will also show 1 for CD and ZIP drives. It was done by Patrick Mansfield a while ago. I can probably not sigh-off his work. ;) Signed-off-by: Greg Kroah-Hartman [PATCH] ide: PIO-out fixes for ide-taskfile.c (CONFIG_IDE_TASKFILE_IO=n) - in task_out_intr() fix off-by-1 bug and (stat & DRQ_STAT) check,   previously "if" was always true for rq->current_nr_sectors == 1 - fail request if DRQ_STAT is not set and rq->current_nr_sectors != 0 (instead of setting handler and waiting for the next IRQ) or if DRQ_STAT is set but !rq->current_nr_sectors (in task_mulout_intr() this was OK) - in task_mulout_intr() check also DRIVE_READY and WRERR_STAT status bits Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: PIO-out ->prehandler() fixes (CONFIG_IDE_TASKFILE_IO=y) Setup handler and output first data block directly from ->prehandler() instead of calling ->handler(). The only change in functionality is that we no longer check DRIVE_READY status bits (there is no need to do it). Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: PIO-out error handling fixes (CONFIG_IDE_TASKFILE_IO=y) We shouldn't ever get into ->handler() if drive is busy so just call ->error() unconditionally if status check fails. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: remove BUSY check from task_in_intr() (CONFIG_IDE_TASKFILE_IO=n) We shouldn't ever get there if drive is busy and we can't start transfer in this case. ide-disk.c:read_intr() also doesn't check for BUSY_STAT bit. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] remove pre_task_out_intr() comment (CONFIG_IDE_TASKFILE_IO=n) disable_irq_nosync() in ide-io.c:ide_do_request() protects pre_task_out_intr() from racing with the task_out_intr(). Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: pre_task_mulout_intr() cleanup (CONFIG_IDE_TASKFILE_IO=n) drive_is_ready() reads STATUS register if CONFIG_IDEPCI_SHARE_IRQ is not defined and ALTSTATUS register if it is defined. Therefore drive_is_ready() in pre_task_mulout_intr() only makes sense if we can't trust STATUS register (because we call ide_wait_stat() which reads STATUS register earlier). Remove this "workaround" for now as it is not present in ide-disk.c and whole multi PIO-out code (CONFIG_IDE_TASKFILE_IO=n) was buggy before. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: no partial completions for PIO (CONFIG_IDE_TASKFILE_IO=y) Don't do partial completions but instead acknowledge already transferred sectors with verified good status on error. This allows us to complete "good" sectors to block layer even if bio they belong to wasn't finished and simplifies code. Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: merge CONFIG_IDE_TASKFILE_IO=y|n PIO handlers together This fixes a couple of CONFIG_IDE_TASKFILE_IO=n issues: - check status after last sector for PIO-in transfers - handle drive->unmask properly in PIO-out prehandlers - use rq->[hard]_nr_sectors where appropriate Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] ide: use "normal" handlers for "flagged" taskfiles (ide-taskfile.c) This fixes following issues for PIO-in: - shared PCI IRQs handling - fail request if the last status is bad and PIO-out: - set hwgroup->handler/timer in prehandlers - handle drive->unmask in prehandlers - check for !rq->nr_sectors and DRQ_STAT bit set - use drive->bad_wstat instead of BAD_W_STAT Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Linus Torvalds [PATCH] CFQ: allocation under lock, missing memset on allocation This fixes two issues in the CFQ IO-scheduler: o Still a bad allocation under the queue lock o We need to clear crq after mempool_alloc(), otherwise the rbtree pointers can contain garbage if slab poisoning is enabled. This causes crashes on front/back merges because rb_next() returns crap. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds NAND flash driver updates. Update the core NAND code: - support multiple chips - support bad block tables - improved generic ECC support and 'spare area' usage. - 16-bit NAND - Large-block NAND devices - Renesas AG-AND devices - M-Systems DiskOnChip devices - Other new board support wrappers Most of the work was done by Thomas Gleixner. Signed-Off-By: David Woodhouse JFFS2 file system update - Improved support for NAND flash - More generic compression support, allowing for extra compressors - Fix potential deadlock with kupdated MTD core include and device code cleanup - Move user-visible bits from headers to include/mtd/ directory. - Update old DiskOnChip drivers for newer hardware. - Switch NFTL and INFTL support to work with new DiskOnChip/NAND code. - New phram driver, reimplenting the ugly slram driver. - Bug fixes in partitioning code NOR flash drivers update - Handle cached access to flash chips on supporting platforms - Handle arrangements of chips larger than a single bus width - Clean up the AMD/Fujitsu chip driver - Update board 'mapping' drivers to match - New mapping drivers for new platforms. [ALPHA] Pass pt_regs as pointer to execve and sigprocmask syscalls. [PATCH] tmpfs preempt count panic Just unearthed another of my warcrimes: reading a 17-page sparse file, I mean holey file, hits the in_interrupt panic in do_exit on a current highmem kernel (but 2.6.7 is okay). Fix mismatched preempt count from shmem_swp_alloc's swapindex hole case by mapping an empty_zero_page. Signed-off-by: Hugh Dickins Signed-off-by: Linus Torvalds [PATCH] ppc32: Fix UART detection on WindRiver SBC8560 The UART is detected as a ST16650V2 but its FIFO doesn't behave nicely. Disable autoprobe and hard-code it to be a ST16650 instead. [PATCH] ppc32: Fix UART initialisation on WindRiver SBC8560. The UART tristates its IRQ output when the OUT2 bit in the MCR isn't set. For reasons not known to civilised man, the hardware engineers stopped it from floating by pulling it _high_ instead of low, so if anybody requests that IRQ before OUT2 is turned on, we die in an IRQ storm. The serial8250 driver does precisely that thing, with precisely that effect. ALPHA_KLUDGE_MCR was designed to fix exactly this kind of problem, so we use it here as intended. Ideally ALPHA_KLUDGE_MCR would go away and be replaced with something like UPF_FORCE_OUT2 and UPF_FORCE_OUT1 flags, but now is not the time to get me started on a cleanup of everything about serial8250 that offends me. [PATCH] ppc32: Fix IRQ setup on WindRiver SBC8560 The internal interrupts are hardcoded to be level-triggered, but we need to make sure the OpenPIC code knows that... [PATCH] ppc32: openpic driver cpumask_t changes This fixes the PPC openpic driver to use cpumask_t where appropriate. Signed-Off-By: David Howells Signed-Off-By: Linus Torvalds Remove /proc/fs/jffs2 support. It wants reimplementing sanely, preferably in sysfs instead. M-Systems DiskOnChip driver: fix DiskOnChip Millennium ECC support and fix a few compiler warnings while we're at it. Make obsolete NOR flash chip drivers depend on BROKEN. If nobody shouts soon about why the new, shiny, generic chip drivers don't work where the old ones do, they can be removed entirely. [PATCH] fix cdrom mt rainier probe Writing to RAM capable media was broken by the moving of write flag detection from probe to drive open time. The media would stay terminally RO due to the set_disk_ro() call. This fixes the code to do the right thing - the detection stays at open time (which it must, since it depends on the media), and we fail with -EROFS if the media can't be written. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds [PATCH] Remove all uses of '#ifdef MODULE_PARM' from kernel I got sidetracked (I do that a lot ;-) and noticed that there are only eight files in 2.6 that have code like: #ifdef MODULE_PARAM MODULE_PARAM(foo, "i"); #endif which I think is old cruft from 2.1.x times. Following patch removes all those eight (six in netfilter, one net driver and one SCSI driver). [PATCH] mmap PROT_NONE fix for NX patch This works around the current PROT_NONE problem from elf binaries that do not have the PT_GNU_STACK so that the do not have execute permission. The problem was that setting "def_flags" to include the VM_EXEC bit for compatibility reasons would also make PROT_NONE pages executable, which is obviously not correct. Signed-off-by: Daniel McNeil Signed-off-by: Linus Torvalds [PATCH] remove bogus casts of pointers to unsigned int in sound/* [PATCH] au88x0: use proper field of snd_kcontrol_t and don't try to store pointer in int The au88x0 driver tries to use the wrong private field - there are two, one of them int and another void *. While it's not a problem on 32bot boxen, it breaks on 64bit ones. Fixed. [PATCH] ic31712: when storing a bitmask in pointer field, use unsigned long [PATCH] annotated sound/pci/nm256/nm256.c [PATCH] NULL noise removal in sound/usb/* [PATCH] mark broken stuff as such in Kconfig A bunch of drivers are broken on sparc64; mark them as such in Kconfig. arlan and smctr are not 64bit-clean; again, markes as such. [PATCH] misc sparse cleanups - missing ; between default: and } in sun4setup.c - cast of pointer to unsigned long long instead of unsigned long in x86_64 signal.c - missed annotations for ioctl structure in sparc64 openpromio.h (should've been in the same patch as the rest of drivers/sbus/* annotations) - 0->NULL in list.h and pmdisk.c [PATCH] switch sys32_timer_create() to compat_alloc_user_space() switched to compat_alloc_user_space(), cleaned up. [PATCH] sparse: beginning of iovec cleanups - infrastructure Beginning of iovec cleanups - added two helpers (kernel_{send,recv}msg) that do sock_sendmsg/sock_recvmsg with kvec instead of iovec; basically, they were abstracted from earlier afs patch. They take kvec/length of kvec as separate arguments, do set_fs(), stick kvec into msghdr and call sock_...msg(). The next group of patches will switch network filesystems to use of kvec for kernel data + use of these helpers. Basically, the same thing we'd done for afs. [PATCH] sparse: iovec cleanups - smbfs smbfs switched to kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - ncpfs ncpfs switched to kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - cifs cifs switched to kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - rxrpc rxrpc (low-level part of afs) switched to kernel_...msg(); it already was using kvec instead of iovec. [PATCH] sparse: iovec cleanups - sunrpc, nfs and nfsd sunrpc, nfs and nfsd switched to use of kvec and kernel_...msg() [PATCH] sparse: iovec cleanups - the rest the rest of iovec cleanups: nbd, dvb-net, sock.c::sock_no_sendpage(), econet over udp and ip_vs switched to use of kvec and kernel_...msg(). [PATCH] annotations and NULL noise removal in drivers/char/drm Massive, but trivial - drm annotated and got 0->NULL where needed. That patch kills ~2200 lines of warnings - out of 5400 that remained at that point. It's a pointer, dummy. Use NULL, not 0. ppc64: More NULL/0 confusion in prom.c [PATCH] 3w-9xxx.c annotated [PATCH] fbmem.c partially annotated partially annotated, fixed dereferencing of userland pointer (trivial, since we'd just copied the entire structure). [PATCH] hfs and hfsplus switched to use of ffs(3) instead of homegrown versions [PATCH] more annotations in binfmt_aout.c [PATCH] pointer-to-number cast in binfmt_elf.c done right [PATCH] Altix serial driver updates Patch for our console driver. We converted the driver to use the serial core functions. Also some changes to use sysfs/udev and a new major number. Cc: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] fix inode state incoherency This patch fixes a hard-to-trigger condition, where the inode is on the inode_in_use list while it's state is dirty. In this state dirty pages are not written back in sync() or from kupdate, only from direct page reclaim. And this causes a livelock in balance_dirty_pages after a while. The actual sequence of events required to get into this state is: thread function inode state inode list ---------------------------------------------------------------------------- 1 __sync_single_inode (background) I_DIRTY sb->s_io 1 do_writepages ... I_LOCKED 2 __writeback_single_inode (sync) sleeps I_LOCKED 1 __sync_single_inode (background) finish 0 inode_in_use 2 __writeback_single_inode (sync) wakeup 0 2 __sync_single_inode (sync) 0 2 do_writepages ... I_LOCKED 3 __mark_inode_dirty I_LOCKED | I_DIRTY 2 __sync_single_inode (sync) finish I_DIRTY left on inode_in_use Signed-off-by: Miklos Szeredi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Fix memory corruption at x86-64 SMP bootup This fixes a long standing corruption bug in the x86-64 code. The SMP trampoline would corrupt page 2, which was sometimes used for other data. This corrupted the ioport/iomem list in some cases and causes oopses while read /proc/iomem. Fix is to check the correct location and don't zero it afterwards because it gets reinitialized for the next CPU anyways. Thanks to Alexander Nyberg for tracking it down. [PATCH] Fix i386 bootup with HIGHMEM+SLAB_DEBUG+NUMA and no real For some reason I booted a NUMA and SLAB_DEBUG i386 kernel on a non NUMA 512MB machine. This caused an oops at bootup in change_page_attr. The reason was that highmem_start_start page ended up zero and that triggered the highmem check in change_page_attr when the slab debug code would unmap a kernel mapping. Fix is straightforward: if there is no highmem set highmem_start_page to max_low_pfn+1 Clean up ptrace child exit case. This also fixes it for when the real parent is ignoring SIGCHLD - noted by David Mosberger. Linux 2.6.8-rc2 Ready for the kernel summit in Ottawa...