commit 3ce54450461bad18bbe1f9f5aa3ecd2f8e8d1235 Author: Linus Torvalds Date: Sun Jan 6 13:45:38 2008 -0800 Linux 2.6.24-rc7 commit a263898f628dd21e59210b547986c154788f628e Author: Ingo Molnar Date: Sun Dec 30 11:58:17 2007 +0100 CPU hotplug: fix cpu_is_offline() on !CONFIG_HOTPLUG_CPU make randconfig bootup testing found that the cpufreq code crashes on bootup, if the powernow-k8 driver is enabled and if maxcpus=1 passed on the boot line to a !CONFIG_HOTPLUG_CPU kernel. First lockdep found out that there's an inconsistent unlock sequence: ===================================== [ BUG: bad unlock balance detected! ] ------------------------------------- swapper/1 is trying to release lock (&per_cpu(cpu_policy_rwsem, cpu)) at: [] unlock_policy_rwsem_write+0x3c/0x42 but there are no more locks to release! Call Trace: [] unlock_policy_rwsem_write+0x3c/0x42 [] print_unlock_inbalance_bug+0x104/0x12c [] mark_held_locks+0x56/0x94 [] unlock_policy_rwsem_write+0x3c/0x42 [] cpufreq_add_dev+0x2a8/0x5c4 ... then shortly afterwards the cpufreq code crashed on an assert: ------------[ cut here ]------------ kernel BUG at drivers/cpufreq/cpufreq.c:1068! invalid opcode: 0000 [1] SMP [...] Call Trace: [] sysdev_driver_unregister+0x5b/0x91 [] cpufreq_register_driver+0x15d/0x1a2 [] powernowk8_init+0x86/0x94 [...] ---[ end trace 1e9219be2b4431de ]--- the bug was caused by maxcpus=1 bootup, which brought up the secondary core as !cpu_online() but !cpu_is_offline() either, which on on !CONFIG_HOTPLUG_CPU is always 0 (include/linux/cpu.h): /* CPUs don't go offline once they're online w/o CONFIG_HOTPLUG_CPU */ static inline int cpu_is_offline(int cpu) { return 0; } but the cpufreq code uses cpu_online() and cpu_is_offline() in a mixed way - the low-level drivers use cpu_online(), while the cpufreq core uses cpu_is_offline(). This opened up the possibility to add the non-initialized sysdev device of the secondary core: cpufreq-core: trying to register driver powernow-k8 cpufreq-core: adding CPU 0 powernow-k8: BIOS error - no PSB or ACPI _PSS objects cpufreq-core: initialization failed cpufreq-core: adding CPU 1 cpufreq-core: initialization failed which then blew up. The fix is to make cpu_is_offline() always the negation of cpu_online(). With that fix applied the kernel boots up fine without crashing: Calling initcall 0xffffffff80cc0510: powernowk8_init+0x0/0x94() powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ processors (1 cpu cores) (version 2.20.00) powernow-k8: BIOS error - no PSB or ACPI _PSS objects initcall 0xffffffff80cc0510: powernowk8_init+0x0/0x94() returned -19. initcall 0xffffffff80cc0510 ran for 19 msecs: powernowk8_init+0x0/0x94() Calling initcall 0xffffffff80cc328f: init_lapic_nmi_sysfs+0x0/0x39() We could fix this by making CPU enumeration aware of max_cpus, but that would be more fragile IMO, and the cpu_online(cpu) != cpu_is_offline(cpu) possibility was quite confusing and a continuous source of bugs too. Most distributions have kernels with CPU hotplug enabled, so this bug remained hidden for a long time. Bug forensics: The broken cpu_is_offline() API variant was introduced via: commit a59d2e4e6977e7b94e003c96a41f07e96cddc340 Author: Rusty Russell Date: Mon Mar 8 06:06:03 2004 -0800 [PATCH] minor cleanups for hotplug CPUs ( this predates linux-2.6.git, this commit is available from Thomas's historic git tree. ) Then 1.5 years later the cpufreq code made use of it: commit c32b6b8e524d2c337767d312814484d9289550cf Author: Ashok Raj Date: Sun Oct 30 14:59:54 2005 -0800 [PATCH] create and destroy cpufreq sysfs entries based on cpu notifiers + if (cpu_is_offline(cpu)) + return 0; which is a correct use of the subtly broken new API. v2.6.15 then shipped with this bug included. then it took two more years for random-kernel qa to hit it. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 57a04513cb35086d54bcb2cb92e6627fc8fa0fae Author: Ingo Molnar Date: Sun Jan 6 21:09:53 2008 +0100 hda_intel suspend latency: shorten codec read not sleeping for every codec read/write but doing a short udelay and a conditional reschedule has cut suspend+resume latency by about 1 second on my T60. The patch also fixes the unexpected codec-connection errors that happen more often in the new power-save mode: http://lkml.org/lkml/2007/11/8/255 http://bugzilla.kernel.org/show_bug.cgi?id=9332 Signed-off-by: Ingo Molnar Acked-by: Takashi Iwai Signed-off-by: Linus Torvalds commit 3fee37c1e2579ed3d6090f690e5fd8cf7fa3bb44 Author: Akos Maroy Date: Sun Jan 6 11:15:55 2008 +0100 fix: using joysticks in 32 bit applications on 64 bit systems unfortunately 32 bit apps don't see the joysticks on a 64 bit system. this prevents one playing X-Plane (http://www.x-plane.com/) or other 32-bit games with joysticks. this is a known issue, and already raised several times: http://readlist.com/lists/vger.kernel.org/linux-kernel/28/144411.html http://www.brettcsmith.org/wiki/wiki.cgi?action=browse&diff=1&id=OzyComputer/Joystick unfortunately this is still not fixed in the mainline kernel. it would be nice to have this fixed, so that people can play these games without having to patch their kernel. the following patch solves the problem on 2.6.22. Signed-off-by: Thomas Gleixner Acked-by: Christoph Hellwig Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 7b3d9545f9ac8b31528dd2d6d8ec8d19922917b8 Author: Linus Torvalds Date: Sun Jan 6 10:17:12 2008 -0800 Revert "scsi: revert "[SCSI] Get rid of scsi_cmnd->done"" This reverts commit ac40532ef0b8649e6f7f83859ea0de1c4ed08a19, which gets us back the original cleanup of 6f5391c283d7fdcf24bf40786ea79061919d1e1d. It turns out that the bug that was triggered by that commit was apparently not actually triggered by that commit at all, and just the testing conditions had changed enough to make it appear to be due to it. The real problem seems to have been found by Peter Osterlund: "pktcdvd sets it [block device size] when opening the /dev/pktcdvd device, but when the drive is later opened as /dev/scd0, there is nothing that sets it back. (Btw, 40944 is possible if the disk is a CDRW that was formatted with "cdrwtool -m 10236".) The problem is that pktcdvd opens the cd device in non-blocking mode when pktsetup is run, and doesn't close it again until pktsetup -d is run. The effect is that if you meanwhile open the cd device, blkdev.c:do_open() doesn't call bd_set_size() because bdev->bd_openers is non-zero." In particular, to repeat the bug (regardless of whether commit 6f5391c283d7fdcf24bf40786ea79061919d1e1d is applied or not): " 1. Start with an empty drive. 2. pktsetup 0 /dev/scd0 3. Insert a CD containing an isofs filesystem. 4. mount /dev/pktcdvd/0 /mnt/tmp 5. umount /mnt/tmp 6. Press the eject button. 7. Insert a DVD containing a non-writable filesystem. 8. mount /dev/scd0 /mnt/tmp 9. find /mnt/tmp -type f -print0 | xargs -0 sha1sum >/dev/null 10. If the DVD contains data beyond the physical size of a CD, you get I/O errors in the terminal, and dmesg reports lots of "attempt to access beyond end of device" errors." which in turn is because the nested open after the media change won't cause the size to be set properly (because the original open still holds the block device, and we only do the bd_set_size() when we don't have other people holding the device open). The proper fix for that is probably to just do something like bdev->bd_inode->i_size = (loff_t)get_capacity(disk)<<9; in fs/block_dev.c:do_open() even for the cases where we're not the original opener (but *not* call bd_set_size(), since that will also change the block size of the device). Cc: Peter Osterlund Cc: James Bottomley Cc: Matthew Wilcox Cc: Ingo Molnar Cc: Andrew Morton Signed-off-by: Linus Torvalds commit 911833440b498e3e4fe2f12c1ae2bd44400c7004 Author: Dave Dillow Date: Thu Jan 3 21:34:49 2008 -0500 [SCSI] SRP transport: only remove our own entries The SCSI SRP transport class currently iterates over all children devices of the host that is being removed in srp_remove_host(). However, not all of those children were created by the SRP transport, and removing them will cause corruption and an oops when their creator tries to remove them. Signed-off-by: David Dillow Acked-by: FUJITA Tomonori Signed-off-by: James Bottomley commit 7fde4d779b83898851959f837c9b26fe07ee91c9 Author: Matthias Goebl Date: Fri Jan 4 03:45:28 2008 -0800 [ISDN]: i4l: Fix DLE handling for i4l-audio The DLE handling in i4l-audio seems to be broken. It produces spurious DLEs so asterisk 1.2.24 with chan_modem_i4l gets irritated, the error message is: "chan_modem_i4l.c:450 i4l_read: Value of escape is ^ (17)". -> There shouldn't be a DLE-^. If a spurious DLE-ETX occurs, the audio connection even dies. I use a "AVM Fritz!PCI" isdn card. I found two issues that only appear if ISDN_AUDIO_SKB_DLECOUNT(skb) > 0: - The loop in isdn_tty.c:isdn_tty_try_read() doesn't escape a DLE if it's the last character. - The loop in isdn_common.c:isdn_readbchan_tty() doesn't copy its characters, it only remembers the last one ("last = *p;"). Compare it with the loop in isdn_common.c:isdn_readbchan(), that *does* copy them ("*cp++ = *p;") correctly. The special handling of the "last" character made it more difficult. I compared it to linux-2.4.19: There was no "last"-handling and both loops did escape and copy all characters correctly. Signed-off-by: Matthias Goebl Signed-off-by: David S. Miller commit 00409bb045887ec5e7b9e351bc080c38ab6bfd33 Author: Matthias Goebl Date: Fri Jan 4 02:19:30 2008 -0800 [ISDN] i4l: 'NO CARRIER' message lost after ldisc flush The ISDN tty layer doesn't produce a 'NO CARRIER' message after hangup. I suppose it broke when tty_buffer_flush() has been added to tty_ldisc_flush() in the commit below. For isdn_tty_modem_result(RESULT_NO_CARRIER..) the message inserted via isdn_tty_at_cout() -> tty_insert_flip_char() is flushed immediately by tty_ldisc_flush() -> tty_buffer_flush(). More annoyingly, the audio abort sequence DLE-ETX is also lost. This patch fixes only active audio connections, because I assume that nobody changes the line discipline for audio. For non-audio connections the problem remains. Maybe we can remove the tty_ldisc_flush() in isdn_tty_modem_result() at all because it's done at tty_close? On Mon, May 07, 2007 at 04:05:57PM -0500, Paul Fulghum wrote: > Flush the tty flip buffer when the line discipline > input queue is flushed, including the user call > tcflush(TCIFLUSH/TCIOFLUSH). This prevents unexpected > stale data after a user application calls tcflush(). > > Cc: Alan Cox > Cc: Antonino Ingargiola > Signed-off-by: Paul Fulghum > > --- a/drivers/char/tty_io.c 2007-05-04 05:46:55.000000000 -0500 > +++ b/drivers/char/tty_io.c 2007-05-05 03:23:46.000000000 -0500 > @@ -1240,6 +1263,7 @@ void tty_ldisc_flush(struct tty_struct * > ld->flush_buffer(tty); > tty_ldisc_deref(ld); > } > + tty_buffer_flush(tty); [..] Signed-off-by: Matthias Goebl Signed-off-by: David S. Miller commit 134d99e302618eeb102c2a5be1f9e98696288bdd Author: Li Zefan Date: Fri Jan 4 01:52:02 2008 -0800 [CONNECTOR]: Return proper error code in cn_call_callback() Error code should be set to EINVAL instead of ENODEV if !queue_work(). There's another call of queue_work() which may set err to EINVAL. Signed-off-by: Li Zefan Signed-off-by: David S. Miller commit 44344b2a85f03326c7047a8c861b0c625c674839 Author: Mark McLoughlin Date: Fri Jan 4 00:56:25 2008 -0800 [INET]: Fix netdev renaming and inet address labels When re-naming an interface, the previous secondary address labels get lost e.g. $> brctl addbr foo $> ip addr add 192.168.0.1 dev foo $> ip addr add 192.168.0.2 dev foo label foo:00 $> ip addr show dev foo | grep inet inet 192.168.0.1/32 scope global foo inet 192.168.0.2/32 scope global foo:00 $> ip link set foo name bar $> ip addr show dev bar | grep inet inet 192.168.0.1/32 scope global bar inet 192.168.0.2/32 scope global bar:2 Turns out to be a simple thinko in inetdev_changename() - clearly we want to look at the address label, rather than the device name, for a suffix to retain. Signed-off-by: Mark McLoughlin Signed-off-by: David S. Miller commit 14be85f555fa53a3b80119569e4c2fe88aa9fd3e Author: David S. Miller Date: Fri Jan 4 00:16:58 2008 -0800 [CASSINI]: Bump driver version and release date. Signed-off-by: David S. Miller commit 86216268b9cdad57f9aa540ebf49cbae2f38b583 Author: David S. Miller Date: Fri Jan 4 00:23:18 2008 -0800 [CASSINI]: Fix two obvious NAPI bugs. 1) close should do napi_disable() not napi_enable 2) remove unused local var 'todo' Signed-off-by: David S. Miller commit d011a231675b240157a3c335dd53e9b849d7d30d Author: David S. Miller Date: Fri Jan 4 00:03:56 2008 -0800 [CASSINI]: Set skb->truesize properly on receive packets. skb->truesize was not being incremented at all to reflect the page based data added to RX SKBs. Signed-off-by: David S. Miller commit 9e1848b60d09a715ff1e19aa6fda47e061d04965 Author: David S. Miller Date: Thu Jan 3 20:11:31 2008 -0800 [CASSINI]: Program parent Intel31154 bridge when necessary. Signed-off-by: David S. Miller commit 9de4dfb4c7176e5bb232a21cdd8df78da2b15cac Author: David S. Miller Date: Thu Jan 3 19:33:50 2008 -0800 [CASSINI]: Revert 'dont touch page_count'. This reverts changeset fa4f0774d7c6cccb4d1fda76b91dd8eddcb2dd6a ([CASSINI]: dont touch page_count) because it breaks the driver. The local page counting added by this changeset did not account for the asynchronous page count changes done by kfree_skb() and friends. The change adds extra atomics and on top of it all appears to be totally unnecessary as well. Signed-off-by: David S. Miller Acked-by: Nick Piggin commit e5e025401f6e926c1d9dc3f3f2813cf98a2d8708 Author: Al Viro Date: Thu Jan 3 18:49:00 2008 -0800 [CASSINI]: Fix endianness bug. Here's proposed fix for RX checksum handling in cassini; it affects little-endian working with half-duplex gigabit, but obviously needs testing on big-endian too. The problem is, we need to convert checksum to fixed-endian *before* correcting for (unstripped) FCS. On big-endian it won't matter (conversion is no-op), on little-endian it will, but only if FCS is not stripped by hardware; i.e. in half-duplex gigabit mode when ->crc_size is set. cassini.c part is that fix, cassini.h one consists of trivial endianness annotations. With that applied the sucker is endian-clean, according to sparse. Signed-off-by: Al Viro Signed-off-by: David S. Miller commit 2d60abc2a937bf77575c3b8c83faeeb84a84e654 Author: Eric Dumazet Date: Thu Jan 3 20:43:21 2008 -0800 [XFRM]: Do not define km_migrate() if !CONFIG_XFRM_MIGRATE In include/net/xfrm.h we find : #ifdef CONFIG_XFRM_MIGRATE extern int km_migrate(struct xfrm_selector *sel, u8 dir, u8 type, struct xfrm_migrate *m, int num_bundles); ... #endif We can also guard the function body itself in net/xfrm/xfrm_state.c with same condition. (Problem spoted by sparse checker) make C=2 net/xfrm/xfrm_state.o ... net/xfrm/xfrm_state.c:1765:5: warning: symbol 'km_migrate' was not declared. Should it be static? ... Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 76975f8a3186dae501584d0155ea410464f62815 Author: Julia Lawall Date: Tue Jan 1 19:30:30 2008 -0800 [X25]: Add missing x25_neigh_put The function x25_get_neigh increments a reference count. At the point of the second goto out, the result of calling x25_get_neigh is only stored in a local variable, and thus no one outside the function will be able to decrease the reference count. Thus, x25_neigh_put should be called before the return in this case. The problem was found using the following semantic match. (http://www.emn.fr/x-info/coccinelle/) // @@ type T,T1,T2; identifier E; statement S; expression x1,x2,x3; int ret; @@ T E; ... * if ((E = x25_get_neigh(...)) == NULL) S ... when != x25_neigh_put(...,(T1)E,...) when != if (E != NULL) { ... x25_neigh_put(...,(T1)E,...); ...} when != x1 = (T1)E when != E = x3; when any if (...) { ... when != x25_neigh_put(...,(T2)E,...) when != if (E != NULL) { ... x25_neigh_put(...,(T2)E,...); ...} when != x2 = (T2)E ( * return; | * return ret; ) } // Signed-off-by: Julia Lawall Signed-off-by: David S. Miller commit 2022c1f136067f673964dcaffa1cae1008ddcd74 Author: Russ Anderson Date: Thu Jan 3 10:23:49 2008 -0600 [IA64] Update Altix nofault code Montecito and Montvale behaves slightly differently than previous Itanium processors, resulting in the MCA due to a failed PIO read to sometimes surfacing outside the nofault code. This code is based on discussions with Intel CPU architects and verified at customer sites. Signed-off-by: Russ Anderson Signed-off-by: Tony Luck commit 4ca8ad7e4c38cd7f32b11e60418d06fa912a1a37 Author: Russ Anderson Date: Thu Dec 20 17:46:52 2007 -0600 [IA64] Update Altix BTE error return status patch I neglected to send Tony the most recent version of the patch ("Fix Altix BTE error return status") applied as commit: 64135fa97ce016058f95345425a9ebd04ee1bd2a This patch gets it up to date. Without this patch on shub2, if there is no error xpcBteUnmappedError is returned instead of xpcSuccess. Signed-off-by: Russ Anderson (rja@sgi.com) Signed-off-by: Tony Luck commit ecb77fa96ceda9cae88015bfe3293ffe19006159 Author: Samuel Thibault Date: Thu Jan 3 16:17:54 2008 +0000 Console is utf-8 by default The console is now by default in UTF-8 mode. Fix the documentation on the default value, so that we can explain behaviour that otherwise causes bug-reports like this: http://bugzilla.kernel.org/show_bug.cgi?id=9319 Also add the needed "vt." prefix, so that the boot-time config options to switch back to the legacy 8-bit mode is actually documented correctly. Signed-off-by: Samuel Thibault Signed-off-by: Linus Torvalds commit b0e47c8b79154772a436f25bf7646733e1d6194c Author: David Dillow Date: Thu Jan 3 10:25:27 2008 -0800 IB/srp: Fix list corruption/oops on module reload Add a missing call to srp_remove_host() in srp_remove_one() so that we don't leak SRP transport class list entries. Tested-by: David Dillow Acked-by: FUJITA Tomonori Signed-off-by: Roland Dreier commit e6e21970baff4845de74584e2efc8c964a55d574 Author: Trond Myklebust Date: Wed Jan 2 16:27:16 2008 -0500 NFSv4: Fix open_to_lock_owner sequenceid allocation... NFSv4 file locking is currently completely broken since it doesn't respect the OPEN sequencing when it is given an unconfirmed lock_owner and needs to do an open_to_lock_owner. Worse: it breaks the sunrpc rules by doing a GFP_KERNEL allocation inside an rpciod callback. Fix is to preallocate the open seqid structure in nfs4_alloc_lockdata if we see that the lock_owner is unconfirmed. Then, in nfs4_lock_prepare() we wait for either the open_seqid, if the lock_owner is still unconfirmed, or else fall back to waiting on the standard lock_seqid. Signed-off-by: Trond Myklebust commit bb22629ee87eed5054f8b508dbe7c58abad0a324 Author: Trond Myklebust Date: Wed Jan 2 15:19:18 2008 -0500 NFSv4: nfs4_open_confirm must not set the open_owner as confirmed on error RFC3530 states that the open_owner is confirmed if and only if the client sends an OPEN_CONFIRM request with the appropriate sequence id and stateid within the lease period. Signed-off-by: Trond Myklebust commit 3392c34922130d1dca9ad436c358330daa85e94e Author: James Morris Date: Wed Dec 26 11:20:43 2007 +1100 NFS: add newline to kernel warning message in auth_gss code Add newline to kernel warning message in gss_create(). Signed-off-by: James Morris Signed-off-by: Trond Myklebust commit b274b48f3ef6e43e3831e8793c697a9573a607af Author: Trond Myklebust Date: Wed Jan 2 13:52:03 2008 -0500 NFSv4: Fix circular locking dependency in nfs4_kill_renewd Erez Zadok reports: ======================================================= [ INFO: possible circular locking dependency detected ] 2.6.24-rc6-unionfs2 #80 ------------------------------------------------------- umount.nfs4/4017 is trying to acquire lock: (&(&clp->cl_renewd)->work){--..}, at: [] __cancel_work_timer+0x83/0x17f but task is already holding lock: (&clp->cl_sem){----}, at: [] nfs4_kill_renewd+0x17/0x29 [nfs] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&clp->cl_sem){----}: [] __lock_acquire+0x9cc/0xb95 [] lock_acquire+0x5f/0x78 [] down_read+0x3a/0x4c [] nfs4_renew_state+0x1c/0x1b8 [nfs] [] run_workqueue+0xd9/0x1ac [] worker_thread+0x7a/0x86 [] kthread+0x3b/0x62 [] kernel_thread_helper+0x7/0x10 [] 0xffffffff -> #0 (&(&clp->cl_renewd)->work){--..}: [] __lock_acquire+0x8bc/0xb95 [] lock_acquire+0x5f/0x78 [] __cancel_work_timer+0xb7/0x17f [] cancel_delayed_work_sync+0xb/0xd [] nfs4_kill_renewd+0x1e/0x29 [nfs] [] nfs_free_client+0x37/0x9e [nfs] [] nfs_put_client+0x5d/0x62 [nfs] [] nfs_free_server+0x75/0xae [nfs] [] nfs4_kill_super+0x27/0x2b [nfs] [] deactivate_super+0x3f/0x51 [] mntput_no_expire+0x42/0x67 [] path_release_on_umount+0x15/0x18 [] sys_umount+0x1a3/0x1cb [] sys_oldumount+0x19/0x1b [] sysenter_past_esp+0x5f/0xa5 [] 0xffffffff Looking at the code, it would seem that taking the clp->cl_sem in nfs4_kill_renewd is completely redundant, since we're already guaranteed to have exclusive access to the nfs_client (we're shutting down). Signed-off-by: Trond Myklebust commit e9cc6c234bfe414ef36f484e3ad8be621854c440 Author: Trond Myklebust Date: Wed Jan 2 13:28:57 2008 -0500 NFS: Fix a possible Oops in fs/nfs/super.c Sigh... commit 4584f520e1f773082ef44ff4f8969a5d992b16ec (NFS: Fix NFS mountpoint crossing...) had a slight flaw: server can be NULL if sget() returned an existing superblock. Fix the fix by dereferencing s->s_fs_info. Thanks to Coverity/Adrian Bunk and Frank Filz for spotting the bug. (See http://bugzilla.kernel.org/show_bug.cgi?id=9647) Also add in the same namespace Oops fix for NFSv4 in both the mountpoint crossing case, and the referral case. Signed-off-by: Trond Myklebust commit 58e6e78119da2bdade9f6f588155f0320072b76b Author: Jean Delvare Date: Thu Jan 3 07:33:31 2008 -0500 hwmon: (w83627ehf) Be more careful when changing VID input level The VID input level change has been reported to cause trouble. Be more careful in this respect: * Only change the level on the W83627EHF/EHG. The W83627DHG is more complex in this respect. * Don't change the level if the VID pins are in output mode. * Only set the level to TTL if VRM 9.x is used. Signed-off-by: Jean Delvare Signed-off-by: Mark M. Hoffman commit b8c9a18712f7b617fda66d878ce3759c9e575ba0 Author: Linus Torvalds Date: Wed Jan 2 13:48:27 2008 -0800 Fix kernel/ptrace.c compile problem (missing "may_attach()") The previous commit missed one use of "may_attach()" that had been renamed to __ptrace_may_attach(). Tssk, tssk, Al. Signed-off-by: Linus Torvalds commit 831830b5a2b5d413407adf380ef62fe17d6fcbf2 Author: Al Viro Date: Wed Jan 2 14:09:57 2008 +0000 restrict reading from /proc//maps to those who share ->mm or can ptrace pid Contents of /proc/*/maps is sensitive and may become sensitive after open() (e.g. if target originally shares our ->mm and later does exec on suid-root binary). Check at read() (actually, ->start() of iterator) time that mm_struct we'd grabbed and locked is - still the ->mm of target - equal to reader's ->mm or the target is ptracable by reader. Signed-off-by: Al Viro Acked-by: Rik van Riel Signed-off-by: Linus Torvalds commit ac40532ef0b8649e6f7f83859ea0de1c4ed08a19 Author: Ingo Molnar Date: Wed Jan 2 17:25:34 2008 +0100 scsi: revert "[SCSI] Get rid of scsi_cmnd->done" This reverts commit 6f5391c283d7fdcf24bf40786ea79061919d1e1d ("[SCSI] Get rid of scsi_cmnd->done") that was supposed to be a cleanup commit, but apparently it causes regressions: Bug 9370 - v2.6.24-rc2-409-g9418d5d: attempt to access beyond end of device http://bugzilla.kernel.org/show_bug.cgi?id=9370 this patch should be reintroduced in a more split-up form to make testing of it easier. Signed-off-by: Ingo Molnar Acked-by: Matthew Wilcox Cc: James Bottomley Signed-off-by: Linus Torvalds commit 158a962422e4a54dc256b6a9b9562f3d30d34d9c Author: Linus Torvalds Date: Wed Jan 2 13:04:48 2008 -0800 Unify /proc/slabinfo configuration Both SLUB and SLAB really did almost exactly the same thing for /proc/slabinfo setup, using duplicate code and per-allocator #ifdef's. This just creates a common CONFIG_SLABINFO that is enabled by both SLUB and SLAB, and shares all the setup code. Maybe SLOB will want this some day too. Reviewed-by: Pekka Enberg Signed-off-by: Linus Torvalds commit 751bf4d7865e4ced406be93b04c7436d866d3684 Author: James Bottomley Date: Wed Jan 2 11:14:30 2008 -0600 [SCSI] scsi_sysfs: restore prep_fn when ULD is removed A recent bug report: http://bugzilla.kernel.org/show_bug.cgi?id=9674 Was caused because the ULDs now set their own prep functions, but don't necessarily reset the prep function back to the SCSI default when they are removed. This leads to panics if commands are sent to the device after the module is removed because the prep_fn is still pointing to the old module code. The fix for this is to implement a bus remove method that resets the prep_fn pointer correctly before calling the ULD specific driver remove method. Signed-off-by: James Bottomley commit 6b6adc22a01941165d5af9a3e69e28e948b28f47 Author: Pekka Enberg Date: Wed Jan 2 13:07:25 2008 +0200 slub: register slabinfo to procfs We need to register slabinfo to procfs when CONFIG_SLUB is enabled to make the file actually visible to user-space. Signed-off-by: Pekka Enberg Acked-by: Ingo Molnar Signed-off-by: Linus Torvalds commit a5a971129cc6155e26315fd28a450505ccc35fd8 Author: Paul Mackerras Date: Wed Jan 2 15:56:30 2008 +1100 [POWERPC] Fix build failure on Cell when CONFIG_SPU_FS=y Commit aed3a8c9bb1a8623a618232087c5ff62718e3b9a introduced a definition of notify_spus_active in .../cell/spu_syscalls.c, and another definition under #ifndef MODULE in .../cell/spufs/sched.c. The latter is not necessary and causes the build to fail when CONFIG_SPU_FS=y, so this removes it. It also removes the export of do_notify_spus_active, which is unnecessary. Signed-off-by: Paul Mackerras Acked-by: Arnd Bergmann Acked-by: Jeremy Kerr commit 57ed3eda977a215f054102b460ab0eb5d8d112e6 Author: Pekka J Enberg Date: Tue Jan 1 17:23:28 2008 +0100 slub: provide /proc/slabinfo This adds a read-only /proc/slabinfo file on SLUB, that makes slabtop work. [ mingo@elte.hu: build fix. ] Cc: Andi Kleen Cc: Christoph Lameter Cc: Peter Zijlstra Signed-off-by: Pekka Enberg Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 476c6c11a9ee4610ff0e4941e3851729f7caf062 Author: Rusty Russell Date: Tue Jan 1 21:48:36 2008 +1100 fix lguest rmmod "bad pgd" After 17d57a9206b4de6ad082ac9f2d2346985abbd2aa ("x86: fix x86-32 early fixmap initialization.") removing lg.ko caused a printk from vunmap: mm/memory.c:115: bad pgd 004b3027. On the second use after module load, the kernel crashes. This fixes the immediate problem (accessed and dirty bits not set as expected in pmd_none_or_clear_bad). I can't see why this would cause a crash, but I haven't been able to reproduce it once this is applied. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds commit 56986d4210e5077d67e4eff538a316a6cc4e5158 Author: Mike Frysinger Date: Tue Jan 1 19:12:15 2008 +0100 x86: fix asm-x86/msr.h for user-space export Use __asm__ and __volatile__ in code that is exported to userspace. Wrap kernel functions with __KERNEL__ so they get scrubbed. No code changed: text data bss dec hex filename 9681036 1698924 3407872 14787832 e1a4f8 vmlinux.before 9681036 1698924 3407872 14787832 e1a4f8 vmlinux.after Signed-off-by: Mike Frysinger Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit e0c4ae06495494a38843da8445e2b6e1f59b9253 Author: Mike Frysinger Date: Tue Jan 1 19:12:15 2008 +0100 x86: fix asm-x86/byteorder.h for userspace export Since asm-x86/byteorder.h is exported to userspace, use __asm__ rather than asm in its code. Signed-Off-By: Mike Frysinger Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 8f115cd580121a169cc964e1b3288f3116c67f3e Author: Richard Purdie Date: Mon Dec 31 23:11:11 2007 +0000 leds: Fix locomo LED driver oops Fix locomo-leds to use the correct struct device to prevent an oops. Signed-off-by: Richard Purdie commit 72f8da329e07ad8a72c1f0e96b8955cfeb7c7329 Author: Richard Purdie Date: Mon Dec 31 23:09:44 2007 +0000 leds: Fix leds_list_lock locking issues Covert leds_list_lock to a rw_sempahore to match previous LED trigger locking fixes, fixing lock ordering. Signed-off-by: Richard Purdie commit 90b2628f1fe94a667330d425a7fb76ec8d2a49ec Author: Ingo Molnar Date: Sun Dec 30 17:24:35 2007 +0100 sched: fix gcc warnings Meelis Roos reported these warnings on sparc64: CC kernel/sched.o In file included from kernel/sched.c:879: kernel/sched_debug.c: In function 'nsec_high': kernel/sched_debug.c:38: warning: comparison of distinct pointer types lacks a cast the debug check in do_div() is over-eager here, because the long long is always positive in these places. Mark this by casting them to unsigned long long. no change in code output: text data bss dec hex filename 51471 6582 376 58429 e43d sched.o.before 51471 6582 376 58429 e43d sched.o.after md5: 7f7729c111f185bf3ccea4d542abc049 sched.o.before.asm 7f7729c111f185bf3ccea4d542abc049 sched.o.after.asm Signed-off-by: Ingo Molnar commit 38b7da09cfdb2202f08476d6fb22a47649a177ec Author: Dave Young Date: Sat Dec 29 19:17:47 2007 -0800 [BLUETOOTH]: put_device before device_del fix Because of workqueue delay, the put_device could be called before device_del, so move it to del_conn. Signed-off-by: Dave Young Signed-off-by: David S. Miller commit 2072c228c9a05c004a230620196da7607cdcc5b6 Author: Gavin McCullagh Date: Sat Dec 29 19:11:21 2007 -0800 [TCP]: use non-delayed ACK for congestion control RTT When a delayed ACK representing two packets arrives, there are two RTT samples available, one for each packet. The first (in order of seq number) will be artificially long due to the delay waiting for the second packet, the second will trigger the ACK and so will not itself be delayed. According to rfc1323, the SRTT used for RTO calculation should use the first rtt, so receivers echo the timestamp from the first packet in the delayed ack. For congestion control however, it seems measuring delayed ack delay is not desirable as it varies independently of congestion. The patch below causes seq_rtt and last_ackt to be updated with any available later packet rtts which should have less (and hopefully zero) delack delay. The rtt value then gets passed to ca_ops->pkts_acked(). Where TCP_CONG_RTT_STAMP was set, effort was made to supress RTTs from within a TSO chunk (!fully_acked), using only the final ACK (which includes any TSO delay) to generate RTTs. This patch removes these checks so RTTs are passed for each ACK to ca_ops->pkts_acked(). For non-delay based congestion control (cubic, h-tcp), rtt is sometimes used for rtt-scaling. In shortening the RTT, this may make them a little less aggressive. Delay-based schemes (eg vegas, veno, illinois) should get a cleaner, more accurate congestion signal, particularly for small cwnds. The congestion control module can potentially also filter out bad RTTs due to the delayed ack alarm by looking at the associated cnt which (where delayed acking is in use) should probably be 1 if the alarm went off or greater if the ACK was triggered by a packet. Signed-off-by: Gavin McCullagh Acked-by: Ilpo Järvinen Signed-off-by: David S. Miller commit fb445ee5f9bfc7cbef9e397556170c608dc02955 Author: David S. Miller Date: Sat Dec 29 01:19:49 2007 -0800 [SERIAL]: Fix section mismatches in Sun serial console drivers. We're exporting an __init function, oops :-) The core issue here is that add_preferred_console() is marked as __init, this makes it impossible to invoke this thing from a driver probe routine which is what the Sparc serial drivers need to do. There is no harm in dropping the __init marker. This code will actually work properly when invoked from a modular driver, except that init will probably not pick up the console change without some other support code. Then we can drop the __init from sunserial_console_match() and we're no longer exporting an __init function to modules. Signed-off-by: David S. Miller commit 9cecd07c3f7a818a5865daad8cb5be408508dc99 Author: Simon Horman Date: Thu Dec 27 21:19:10 2007 -0800 [IPV4] Fix ip=dhcp regression David Brownell pointed out a regression in my recent "Fix ip command line processing" patch. It turns out to be a fairly blatant oversight on my part whereby ic_enable is never set, and thus autoconfiguration is never enabled. Clearly my testing was broken :-( The solution that I have is to set ic_enable to 1 if we hit ip_auto_config_setup(), which basically means that autoconfiguration is activated unless told otherwise. I then flip ic_enable to 0 if ip=off, ip=none, ip=::::::off or ip=::::::none using ic_proto_name(); The incremental patch is below, let me know if a non-incremental version is prepared, as I did as for the original patch to be reverted pending a fix. Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit ad7edfe0490877864dc0312e5f3315ea37fc4b3a Author: Linus Torvalds Date: Thu Dec 27 21:21:36 2007 -0800 [PCI] Do not enable CRS Software Visibility by default It appears that some PCI-E bridges do the wrong thing in the presense of CRS Software Visibility and MMCONFIG. In particular, it looks like an ATI bridge (device ID 7936) will return 0001 in the vendor ID field of any bridged devices indefinitely. Not enabling CRS SV avoids the problem, and as we currently do not really make good use of the feature anyway (we just time out rather than do any threaded discovery as suggested by the CRS specs), we're better off just not enabling it. This should fix a slew of problem reports with random devices (generally graphics adapters or fairly high-performance networking cards, since it only affected PCI-E) not getting properly recognized on these AMD systems. If we really want to use CRS-SV, we may end up eventually needing a whitelist of systems where this should be enabled, along with some kind of "pcibios_enable_crs()" query to call the system-specific code. Suggested-by: Loic Prylli Tested-by: Kai Ruhnau Cc: Matthew Wilcox Cc: Greg Kroah-Hartman Signed-off-by: Linus Torvalds commit ec5d2dfe72cf4808ae4ecee03454a4d91dfcbe0c Author: Geoff Levand Date: Mon Dec 24 04:41:01 2007 +1100 [POWERPC] PS3: Fix printing of os-area magic numbers Fix a bug in the printing of the os-area magic numbers which assumed that magic numbers were zero terminated strings. The magic numbers are represented in memory as integers. If the os-area sections are not initialized correctly they could contained random data that would be printed to the display. Also unify the handling of header and db magic numbers and make both of type array of u8. Signed-off-by: Geoff Levand Signed-off-by: Paul Mackerras commit aed3a8c9bb1a8623a618232087c5ff62718e3b9a Author: Bob Nelson Date: Sat Dec 15 01:27:30 2007 +1100 [POWERPC] Oprofile: Remove dependency on spufs module This removes an OProfile dependency on the spufs module. This dependency was causing a problem for multiplatform systems that are built with support for Oprofile on Cell but try to load the oprofile module on a non-Cell system. Signed-off-by: Bob Nelson Signed-off-by: Arnd Bergmann Acked-by: Jeremy Kerr Signed-off-by: Paul Mackerras commit d4a7dd8e637b322faaa934ffcd6dd07711af831f Author: Herbert Xu Date: Fri Dec 28 11:05:46 2007 +1100 [CRYPTO] padlock: Fix spurious ECB page fault The xcryptecb instruction always processes an even number of blocks so we need to ensure th existence of an extra block if we have to process an odd number of blocks. Signed-off-by: Herbert Xu commit 49eaaa1a6c950e7a92c4386c199b8ec950f840b9 Author: Christoph Lameter Date: Wed Dec 26 12:43:01 2007 -0800 Revert quicklist need->flush fix Did not fix the reported issue. Apart from other weirdness this causes a bad link between the TLB flushing logic and the quicklists. If there is indeed an issue that an arch needs a tlb flush before free then the arch code needs to set tlb->need_flush before calling quicklist_free. Signed-off-by: Christoph Lameter Signed-off-by: Linus Torvalds commit a6c05c3d064dbb83be88cba3189beb5db9d2dfc3 Author: Simon Horman Date: Tue Dec 25 20:54:42 2007 -0800 [IPV4]: Fix ip command line processing. Recently the documentation in Documentation/nfsroot.txt was update to note that in fact ip=off and ip=::::::off as the latter is ignored and the default (on) is used. This was certainly a step in the direction of reducing confusion. But it seems to me that the code ought to be fixed up so that ip=::::::off actually turns off ip autoconfiguration. This patch also notes more specifically that ip=on (aka ip=::::::on) is the default. Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit ecef969e5b376f98b142e22deb1cec2f23e4f5d6 Author: Stephen Hemminger Date: Tue Dec 25 17:23:59 2007 -0800 [VETH]: move veth.h to include/linux Move veth.h from net/ to linux/ since it is a user api, and add it to user header processing Kbuild. [ Use header-y as suggested by Sam Ravnborg. -DaveM ] Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 75ec533ec3335913009c32de878d5ed7cbe0d41c Author: Stephen Hemminger Date: Mon Dec 24 21:59:24 2007 -0800 [NET] tc_nat: header install iproute2 build needs tc_nat.h header from kernel make install_headers. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit c6e991de4bd22dcdf9b9d9035e18b63b0bf2d198 Author: Toyo Abe Date: Mon Dec 24 21:29:35 2007 -0800 [TUNTAP]: Fix wrong debug message. This is a trivial fix of debug message. When a persist flag is set, the message should say "enabled". Signed-off-by: Toyo Abe Signed-off-by: David S. Miller commit fae718ddaf2b00e222dddec6717aca023376723c Author: Patrick McHardy Date: Mon Dec 24 21:09:10 2007 -0800 [NETFILTER]: nf_conntrack_ipv4: fix module parameter compatibility Some users do "modprobe ip_conntrack hashsize=...". Since we have the module aliases this loads nf_conntrack_ipv4 and nf_conntrack, the hashsize parameter is unknown for nf_conntrack_ipv4 however and makes it fail. Allow to specify hashsize= for both nf_conntrack and nf_conntrack_ipv4. Note: the nf_conntrack message in the ringbuffer will display an incorrect hashsize since nf_conntrack is first pulled in as a dependency and calculates the size itself, then it gets changed through a call to nf_conntrack_set_hashsize(). Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit 81100eb80add328c4d2a377326f15aa0e7236398 Author: Johannes Berg Date: Tue Dec 18 15:11:35 2007 +0100 mac80211: warn when receiving frames with unaligned data This patch makes mac80211 warn (once) when the driver passes up a frame in which the payload data is not aligned on a four-byte boundary, with a long comment for people who run into the condition and need to know what to do. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 0d17440688ad83de46e94e9fa11edb5a7fb3d180 Author: Johannes Berg Date: Mon Dec 17 15:07:43 2007 +0100 mac80211: round station cleanup timer The station cleanup timer runs every ten seconds, the exact timing is not relevant at all so it can well run together with other things to save power. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit bcea1db16ba1c45ccebb3bfb8441642d1342c4d5 Author: David S. Miller Date: Tue Dec 25 02:20:33 2007 -0800 [SPARC64]: Implement pci_resource_to_user() This makes libpciaccess able to mmap() resources of the device properly. Signed-off-by: David S. Miller commit 00684418707c7a1e36ebdedc4b30fbba5d5860b1 Author: Linus Torvalds Date: Tue Dec 25 20:16:16 2007 -0800 Revert "x86: fix show cpuinfo cpu number always zero" This reverts commit fbdcf18df73758b2e187ab94678b30cd5f6ff9f9. As pointed out by Yanmin Zhang, the problem was already fixed differently (and correctly), and rather than fix anything, it actually causes us to create a sub-optimal sched-domains hierarchy (not setting up the domain belonging to the core) when CONFIG_X86_HT=y. Requested-by: Yanmin Zhang Acked-by: Ingo Molnar Signed-off-by: Linus Torvalds commit deffca117b90dadec395c0cf3ee816de27dfe2fd Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:44 2007 +0100 cmd64x: fix hwif->chipset setup commit 528a572daea90aa41db92683e5a8756acef514c4 ("ide: add ->chipset field to ide_pci_device_t") broke hwif->chipset setup (it is now set to ide_cmd646 for CMD648 instead of CMD646). It seems that the breakage happend while I was moving patches around (cmd64x_chipsets[] entries for CMD646 and CMD648 are identical except for 'name' field). Fix it and bump driver version. Cc: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit c404c199f71127ebc1929e6657d3d4f0d6c2f08a Author: Borislav Petkov Date: Mon Dec 24 15:23:44 2007 +0100 MAINTAINERS: update ide-cd entry Reopen ide-cd for maintainership. Signed-off-by: Borislav Petkov Signed-off-by: Bartlomiej Zolnierkiewicz commit 8606ab094cfe909f83deedf1fac86993d7c9a9ad Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:44 2007 +0100 ide-cd: fix 'ireason' reporting in cdrom_pc_intr() Mask 'ireason' variable so only the valid interrupt reason bits will be reported on "drive appears confused" error. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 5744a06134c8f4e77ad14016420aac308c763454 Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:44 2007 +0100 ide-cd: fix error message in cdrom_pc_intr() Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 52ef2ed08164dbde07203ee245584d59ebf5c487 Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:43 2007 +0100 ide-cd: add error message for DMA error to cdrom_read_intr() Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit b481b23868928443931190c91e7c06e23913149d Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:43 2007 +0100 ide-cd: fix error messages in cdrom_write_intr() Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 31a71191650dce1bb4a7de6147f1947795826cda Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:43 2007 +0100 ide-cd: add missing 'ireason' masking to cdrom_write_intr() Mask 'ireason' variable with 0x3 so the valid interrupt reason value is passed to cdrom_write_check_ireason() for checking. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 35379c071a61d025153723f2acb2cc19cc3ca78c Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:43 2007 +0100 ide-cd: fix error messages in cdrom_{read,write}_check_ireason() Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 05017db3b3e0f0a294a38c38d7adb7d2c0c9844b Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:43 2007 +0100 ide-cd: use ide_cd_release() in ide_cd_probe() Use ide_cd_release() to do the cleanup if ide_cdrom_setup() fails. It fixes: - the default drive->dsc_overlap value not being restored - the default drive->queue's prep_rq_fn not being restored - struct gendisk 'g' not being freed - wrong function name being reported on unregister_cdrom() error Signed-off-by: Bartlomiej Zolnierkiewicz commit aa5dc8ebd9ef7521461b1b47ec918be841a21313 Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:43 2007 +0100 ide-cd: fix ACER/AOpen 24X CDROM speed reporting on big-endian machines * Fix ACER/AOpen 24X CDROM speed reporting on big-endian machines by adding missing le16_to_cpu() calls. While at it: * Replace ntohs() by be16_to_cpu(). Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit 3cbd814ef3d4c80392377e6ce5816058258f1484 Author: Bartlomiej Zolnierkiewicz Date: Mon Dec 24 15:23:43 2007 +0100 ide-cd: fix SAMSUNG CD-ROM SCR-3231 quirk cdi->mask is cleared by ide_cdrom_register() which is called after the quirk. Fix it by adding new ->no_speed_select flag to struct ide_cd_config_flags and using it in ide_cdrom_register() to set CDC_SELECT_SPEED flag. Acked-by: Sergei Shtylyov Signed-off-by: Bartlomiej Zolnierkiewicz commit a1c6d28c2b3ec919c37cb7026ed8af70fe7cb098 Author: Joe Perches Date: Mon Dec 24 15:23:42 2007 +0100 drivers/ide/: Spelling fixes Signed-off-by: Joe Perches Cc: Andrew Morton , Signed-off-by: Bartlomiej Zolnierkiewicz commit c3c4c839336767da2d0c18e8e9bab33bef64ef8d Author: Hans Verkuil Date: Fri Dec 21 06:35:55 2007 -0300 V4L/DVB (6876): ivtv: mspx4xx needs a longer i2c udelay Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 867fee9b251f808c184a703ed4a56e8fb9afd741 Author: Michael Krufky Date: Wed Dec 19 02:14:44 2007 -0300 V4L/DVB (6871): Kconfig: VIDEO_CX23885 must select DVB_LGDT330X Signed-off-by: Michael Krufky Signed-off-by: Mauro Carvalho Chehab commit c63f702068a445f682d7590c5fadfc266785a071 Author: Al Viro Date: Sun Dec 23 20:01:04 2007 +0000 uml: user of helper_wait() got missed when it got extra arguments Signed-off-by: Al Viro Signed-off-by: Linus Torvalds commit db99247ac68fc352100090ad7704fb5efb9327b6 Author: Cory T. Tusar Date: Sun Dec 23 12:34:51 2007 -0800 tty: fix logic change introduced by wait_event_interruptible_timeout() Commit 5a52bd4a2dcb570333ce6fe2e16cd311650dbdc8 introduced a subtle logic change in tty_wait_until_sent(). The original version would only error out of the 'do { ... } while (timeout)' loop if signal_pending() evaluated to true; a timeout or break due to an empty buffer would fall out of the loop and into the tty->driver->wait_until_sent handling. The current implementation will error out on either a pending signal or an empty buffer, falling through to the tty->driver->wait_until_sent handling only on a timeout. The ->wait_until_sent() will not be reached if the buffer empties before timeout jiffies have elapsed. This behavior differs from that prior to commit 5a52bd4a2dcb570333ce6fe2e16cd311650dbdc8. I turned this up while using a little serial download utility to bootstrap an ARM-based eval board. The util worked fine on 2.6.22.x, but consistently failed on 2.6.23.x. Once I'd determined that, I narrowed things down with git bisect, and found the above difference in logic in tty_wait_until_sent() by inspection. This change reverts the logic flow in tty_wait_until_sent() to match that prior to the aforementioned commit. Signed-off-by: Cory T. Tusar Cc: Alan Cox Acked-by: Jiri Slaby Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 870e6f7e15980d1a33615de572078406737ac22e Author: Paul Mundt Date: Sat Dec 22 14:03:30 2007 -0800 kconfig: obey KCONFIG_ALLCONFIG choices with randconfig. Currently when using KCONFIG_ALLCONFIG with randconfig the choice options are clobbered. As recommended by Roman, this adds an is_new test to see whether to select a new option or obey the existing one. This is a resend of the earlier patch a couple of weeks ago, since there was no reply. Original thread is at http://lkml.org/lkml/2007/11/28/94 Signed-off-by: Paul Mundt Cc: Roman Zippel Cc: Sam Ravnborg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7bbaac12a6036f55111a54b01908d0f3afe8622d Author: David Brownell Date: Sat Dec 22 14:03:29 2007 -0800 pcmcia: remove pxa2xx_lubbock build warning Init section confusion. There will likely be some other similar issues, introduced by I'm-not-sure-what-patch. Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f16b34aa13e8c55085f346bcf07afb2312c56c0a Author: Peter Zijlstra Date: Sat Dec 22 14:03:29 2007 -0800 lib: proportion: fix underflow in prop_norm_percpu() Zhe Jiang noticed that its possible to underflow pl->events in prop_norm_percpu() when the value returned by percpu_counter_read() is less than the error on that read and the period delay > 1. In that case half might not trigger the batch increment and the value will be identical on the next iteration, causing the same half to be subtracted again and again. Fix this by rewriting the division as a single subtraction instead of a subtraction loop and using percpu_counter_sum() when the value returned by percpu_counter_read() is smaller than the error. The latter is still needed if we want pl->events to shrink properly in the error region. [akpm@linux-foundation.org: cleanups] Signed-off-by: Peter Zijlstra Reviewed-by: Jiang Zhe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cc295d0e95063809af31971e4aec1d809247f13b Author: Daniel Walker Date: Sat Dec 22 14:03:28 2007 -0800 ps3: vuart: fix error path locking This stray down would cause a permanent sleep which doesn't seem correct. The other uses of this semaphore appear fairly mutex like it's even initialized with init_MUTEX() .. So here a patch for removing this one down(). Signed-off-by: Geoff Levand Signed-off-by: Daniel Walker Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 04bdfb9191eaf7330ac88edf83d7b49878c9b2d1 Author: Joe Perches Date: Sat Dec 22 14:03:27 2007 -0800 MAINTAINERS: mailing list archives are web links L: entries should be email addresses Change L:http entries to W:http Signed-off-by: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 16317ec2e5a85884fea680d24c1b228a5602159f Author: Eric Sandeen Date: Sat Dec 22 14:03:26 2007 -0800 ecryptfs: redo dget,mntget on dentry_open failure Thanks to Jeff Moyer for pointing this out. If the RDWR dentry_open() in ecryptfs_init_persistent_file fails, it will do a dput/mntput. Need to re-take references if we retry as RDONLY. Signed-off-by: Eric Sandeen Acked-by: Mike Halcrow Signed-off-by: Jeff Moyer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c8161f64ccdcc3ac05c7bbfebc031e7ad5ca6412 Author: Eric Sandeen Date: Sat Dec 22 14:03:26 2007 -0800 ecryptfs: fix unlocking in error paths Thanks to Josef Bacik for finding these. A couple of ecryptfs error paths don't properly unlock things they locked. Signed-off-by: Eric Sandeen Cc: Josef Bacik Cc: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c525460e2754dbb33abe2b37d3d941126b2ea830 Author: Jan Kara Date: Sat Dec 22 14:03:25 2007 -0800 Don't send quota messages repeatedly when hardlimit reached We should send quota message to netlink only once when hardlimit is reached. Otherwise user could easily make the system busy by trying to exceed the hardlimit (and also the messages could be anoying if you cannot stop writing just now). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 22dd483721939b4ea22d5d3925e69112f63c42bc Author: Jan Kara Date: Sat Dec 22 14:03:25 2007 -0800 Fix computation of SKB size for quota messages Fix computation of size of skb needed for quota message. We should use netlink provided functions and not just an ad-hoc number. Also don't print the return value from nla_put_foo() as it is always -1. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b88629060b03adc58639f818fe0968bf5fe81b5d Author: Eric Sandeen Date: Sat Dec 22 14:03:24 2007 -0800 ecryptfs: fix string overflow on long cipher names Passing a cipher name > 32 chars on mount results in an overflow when the cipher name is printed, because the last character in the struct ecryptfs_key_tfm's cipher_name string was never zeroed. Signed-off-by: Eric Sandeen Acked-by: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ed367fc3a7349b17354c7acef551533337764859 Author: Christoph Lameter Date: Sat Dec 22 14:03:23 2007 -0800 quicklists: do not release off node pages early quicklists must keep even off node pages on the quicklists until the TLB flush has been completed. Signed-off-by: Christoph Lameter Cc: Dhaval Giani Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 014840ec57760ec555cd6f694d1f65a4f54e4155 Author: Martin Kusserow Date: Fri Dec 21 12:02:17 2007 +0100 USB: New device ID for the CP2101 driver attached please find a new device ID for CP2101 driver. This device is a usb stick from Dynastream to communicate with ANT wireless devices which I suppose is fairly similar to the ANT dev board having product id 0x1003. From: Martin Kusserow Signed-off-by: Greg Kroah-Hartman commit ed0ccdbb616cd7e1d5570b8078e0deb37c1c3c16 Author: Kevin R Page Date: Thu Dec 13 01:10:48 2007 +0000 USB: VID/PID update for sierra Adds VID/PID for the MC8775 found internally in the Thinkpad X61s laptop (and likely others). For commercial reasons the driver maintainer cannot add VID/PIDs for laptop OEM devices himself. Signed-off-by: Kevin R Page Cc: stable Signed-off-by: Greg Kroah-Hartman commit 3bf44688df34b6cb948d30b85766d0dab6cf6d21 Author: Peter Korsgaard Date: Fri Dec 21 08:33:46 2007 -0800 USB: Unbreak fsl_usb2_udc Commit a4e3ef5... (USB: gadget: gadget_is_{dualspeed,otg} predicates and cleanup) broke fsl_usb2_udc; the build test didn't cover peripheral drivers, just gadget drivers. Signed-off-by: Peter Korsgaard Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit d172f4ef31bec924c6ebcb242c9d7d290811e1e5 Author: Greg Kroah-Hartman Date: Sat Dec 22 21:18:25 2007 -0800 Modules: fix memory leak of module names Due to the change in kobject name handling, the module kobject needs to have a null release function to ensure that the name it previously set will be properly cleaned up. All of this wierdness goes away in 2.6.25 with the rework of the kobject name and cleanup logic, but this is required for 2.6.24. Thanks to Alexey Dobriyan for finding the problem, and to Kay Sievers for pointing out the simple way to fix it after I tried many complex ways. Cc: Alexey Dobriyan Cc: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit e5f114e97d6e4833e90ca408af9eb1e7a3262b5e Author: Hans-Jürgen Koch Date: Wed Dec 5 15:08:07 2007 +0100 UIO: Add a MAINTAINERS entry for Userspace I/O This patch adds an entry for the Userspace I/O framework to MAINTAINERS. Signed-off-by: Hans J. Koch Signed-off-by: Greg Kroah-Hartman commit bdcba1511b98f2e728b3a910b8771a0d3fce5bf3 Author: Gregory CLEMENT Date: Wed Dec 19 18:23:44 2007 +0100 MACB: clear transmit buffers properly on transmit underrun Initially transmit buffer pointers were only reset. But buffer descriptors were possibly still set as ready, and buffer in upper layer was not freed. This caused driver hang under big load. Now reset clean properly the buffer descriptor and freed upper layer. Signed-off-by: Gregory CLEMENT Signed-off-by: Haavard Skinnemoen Signed-off-by: Jeff Garzik commit 9914cad54c79d0b89b1f066c0894f00e1344131c Author: Al Viro Date: Sat Dec 22 19:44:10 2007 +0000 3c359 endianness annotations and fixes Same story as with olympic - htons(readw()) when swab16(readw()) is needed, missing conversions to le32 when dealing with shared descriptors, etc. Olympic got those fixes in 2.4.0-test2, 3c359 didn't. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit cc154ac64aa8d3396b187f64cef01ce67f433324 Author: Al Viro Date: Sat Dec 22 18:56:53 2007 +0000 fec_mpc52xx: write in C... If you need to find a difference between addresses of two struct members, subtract offsetof() or cast addresses to char * and subtract those if you prefer it that way. Doing that same with s/char */u32/, OTOH... Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit b1e247ad8e4ff29b5c7fa2b9a081b4a0f483b0d3 Author: Al Viro Date: Sat Dec 22 18:56:13 2007 +0000 3c574 and 3c589 endianness fixes (.24?) Both store MAC address in CIS; there's no decoder for that type (0x88) so the drivers work with raw data. It is byteswapped, so ntohs() works for little-endian, but for big-endian it's wrong. ntohs(le16_to_cpu()) does the right thing on both (and always expands to swab16()). Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit cf96237837ec6d4fc48bc2f735c71027cc0fc5fa Author: Al Viro Date: Sat Dec 22 18:55:29 2007 +0000 rrunner: use offsetof() instead of homegrown insanity Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 95e0918dbb6d83020ef3eb0a4276413264abd14d Author: Al Viro Date: Sat Dec 22 18:55:39 2007 +0000 r8169 endianness missing conversions in a couple of places Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 78ce8d3d1c75c22ae593ad4ccaffa19ee0e2576d Author: Al Viro Date: Sat Dec 22 18:11:18 2007 +0000 dl2k endianness fixes (.24 fodder?) * shift before cpu_to_le64(), not after it * writel() converts to l-e itself * misc missing conversions * in set_multicast() hash_table[] is host-endian; we feed it to card via writel() and populate it as host-endian, so we'd better put the first element into it also in host-endian * pci_unmap_single() et.al. expect host-endian, not little-endian Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit e5a314210087558f21617255754e7687e9a7f81d Author: Al Viro Date: Sat Dec 22 17:53:02 2007 +0000 yellowfin: annotations and fixes (.24 fodder?) pci_unmap_single() and friends getting a little-endian address... Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 51bf2976b55d07f9daae9697a0a3ac9f58abcedc Author: Al Viro Date: Sat Dec 22 17:42:36 2007 +0000 asix fixes * usb_control_message() to/from stack (breaks on e.g. arm); some places did kmalloc() for buffer, some just worked from stack. Added kmalloc()/memcpy()/kfree() in asix_read_cmd()/asix_write_cmd(), removed that crap from callers. * Fixed a leak in ax88172_bind() - on success it forgot to kfree() the buffer. * Endianness bug in ax88178_bind() - we read a word from eeprom and work with it without converting to host-endian Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 7fd71e58b038a7244c2ac1ee579c43947f3968c4 Author: Al Viro Date: Sat Dec 22 17:27:24 2007 +0000 cycx: annotations and fixes (.24 fodder?) skb->protocol is net-endian, TYVM... Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 71f1bb1a8f17db3caba1237dfd478c2a13faf63e Author: Al Viro Date: Fri Dec 21 06:21:14 2007 +0000 typhoon: trivial endianness annotations Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 8cc085c7aceb78d26d0a5355e111b2330f089161 Author: Al Viro Date: Fri Dec 21 06:21:03 2007 +0000 typhoon: memory corruptor on big-endian if TSO is enabled txlo_dma_addr should be host-endian; we pass it to typhoon_tso_fill(), which does arithmetics on it, converts to l-e and passes it to card. Unfortunately, we forgot le32_to_cpu() when initializing it from face->txLoAddr, which sits in shared memory and is little-endian. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 8a5ed9efe661dd42bc140e522c2635e0d7b26141 Author: Al Viro Date: Fri Dec 21 06:20:53 2007 +0000 typhoon: missed rx overruns on big-endian rxBuffCleared is little-endian; we miss le32_to_cpu() in checks for rx ring overruns. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit b46281f9c5d6ab7b6e412e83f8c62cecf4ebbdfd Author: Al Viro Date: Fri Dec 21 06:20:43 2007 +0000 typhoon: set_settings broken on big-endian One cpu_to_le16() too many when passing argument for TYPHOON_CMD_XCVR_SELECT; we end up passing host-endian while the hardware expects little-endian. The other place doing that (typhoon_start_runtime()) does the right thing, so the card will recover at the next ifconfig up/tx timeout/resume, which limits the amount of mess, but still, WTF? Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit fdcfd77c813ef7997a60856812805f4cfbeb6222 Author: Al Viro Date: Fri Dec 21 06:20:33 2007 +0000 typhoon: missing le32_to_cpu() in get_drvinfo in typhoon_get_drvinfo() .parm2 is little-endian; not critical since we just get the firmware id flipped in get_drvinfo output on big-endian boxen, but... Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 73eac0640ebfb30fee99e06ee029444af0d7ae8d Author: Al Viro Date: Fri Dec 21 06:20:23 2007 +0000 typhoon: endianness bug in tx/rx byte counters txBytes and rxBytesGood are both 64bit; using le32_to_cpu() won't work on big-endian for obvious reasons. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 76be895001f2b0bee42a7685e942d3e08d5dd46c Author: Christoph Lameter Date: Fri Dec 21 14:37:37 2007 -0800 SLUB: Improve hackbench speed Increase the mininum number of partial slabs to keep around and put partial slabs to the end of the partial queue so that they can add more objects. Signed-off-by: Christoph Lameter Reviewed-by: Pekka Enberg Acked-by: Ingo Molnar Signed-off-by: Linus Torvalds commit d883a0367149506e8b7a3f31891d1ea30b9377f3 Author: Denis V. Lunev Date: Fri Dec 21 02:01:53 2007 -0800 [IPV4]: OOPS with NETLINK_FIB_LOOKUP netlink socket [ Regression added by changeset: cd40b7d3983c708aabe3d3008ec64ffce56d33b0 [NET]: make netlink user -> kernel interface synchronious -DaveM ] nl_fib_input re-reuses incoming skb to send the reply. This means that this packet will be freed twice, namely in: - netlink_unicast_kernel - on receive path Use clone to send as a cure, the caller is responsible for kfree_skb on error. Thanks to Alexey Dobryan, who originally found the problem. Signed-off-by: Denis V. Lunev Signed-off-by: David S. Miller commit 1ac70e7ad24a88710cf9b6d7ababaefa2b575df0 Author: Wei Yongjun Date: Thu Dec 20 14:36:44 2007 -0800 [NET]: Fix function put_cmsg() which may cause usr application memory overflow When used function put_cmsg() to copy kernel information to user application memory, if the memory length given by user application is not enough, by the bad length calculate of msg.msg_controllen, put_cmsg() function may cause the msg.msg_controllen to be a large value, such as 0xFFFFFFF0, so the following put_cmsg() can also write data to usr application memory even usr has no valid memory to store this. This may cause usr application memory overflow. int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data) { struct cmsghdr __user *cm = (__force struct cmsghdr __user *)msg->msg_control; struct cmsghdr cmhdr; int cmlen = CMSG_LEN(len); ~~~~~~~~~~~~~~~~~~~~~ int err; if (MSG_CMSG_COMPAT & msg->msg_flags) return put_cmsg_compat(msg, level, type, len, data); if (cm==NULL || msg->msg_controllen < sizeof(*cm)) { msg->msg_flags |= MSG_CTRUNC; return 0; /* XXX: return error? check spec. */ } if (msg->msg_controllen < cmlen) { ~~~~~~~~~~~~~~~~~~~~~~~~ msg->msg_flags |= MSG_CTRUNC; cmlen = msg->msg_controllen; } cmhdr.cmsg_level = level; cmhdr.cmsg_type = type; cmhdr.cmsg_len = cmlen; err = -EFAULT; if (copy_to_user(cm, &cmhdr, sizeof cmhdr)) goto out; if (copy_to_user(CMSG_DATA(cm), data, cmlen - sizeof(struct cmsghdr))) goto out; cmlen = CMSG_SPACE(len); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ If MSG_CTRUNC flags is set, msg->msg_controllen is less than CMSG_SPACE(len), "msg->msg_controllen -= cmlen" will cause unsinged int type msg->msg_controllen to be a large value. ~~~~~~~~~~~~~~~~~~~~~~~~~~~ msg->msg_control += cmlen; msg->msg_controllen -= cmlen; ~~~~~~~~~~~~~~~~~~~~~ err = 0; out: return err; } The same promble exists in put_cmsg_compat(). This patch can fix this problem. Signed-off-by: Wei Yongjun Signed-off-by: David S. Miller commit c5c0f33d8e5b1219c86757e6afffd6f96823e521 Author: Joe Perches Date: Thu Dec 20 14:05:37 2007 -0800 [ATM]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit e00ccd4a787fe03887f81467babcf8d057f8718d Author: Joe Perches Date: Thu Dec 20 14:05:03 2007 -0800 [NETFILTER] ipv4: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit c82381775062cd8d55579959e1fd710f0e607985 Author: Joe Perches Date: Thu Dec 20 14:04:24 2007 -0800 [NETFILTER]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 7aa1b54b74d813e01c46a5344c52f06037a95da0 Author: Joe Perches Date: Thu Dec 20 14:03:52 2007 -0800 [SCTP]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit e185446ce83f327428624fc4a0392794249311a2 Author: Joe Perches Date: Thu Dec 20 14:03:11 2007 -0800 [NETLABEL]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 9a94b35184bf095b885ca80099381f8547d5be3a Author: Joe Perches Date: Thu Dec 20 14:02:40 2007 -0800 [PKT_SCHED]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 53ccaae1ef749ef87a484a0aa5351c557c0a690e Author: Joe Perches Date: Thu Dec 20 14:02:06 2007 -0800 [NET] net/core/: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit bea851954717ebb0dee557a951e28bb277e1cc1d Author: Joe Perches Date: Thu Dec 20 14:01:35 2007 -0800 [IPV6]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit cc53ded272ecf8d62c9f3b48baadc5165a0b6d7b Author: Joe Perches Date: Thu Dec 20 14:00:51 2007 -0800 [IRDA]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 5e8e034cc5154abd639aa5c05d13e24e535c6a9c Author: Joe Perches Date: Thu Dec 20 13:59:39 2007 -0800 [DCCP]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit f4ab2f72e9340207ae95e2a7622a74220a61f46a Author: Joe Perches Date: Thu Dec 20 13:56:32 2007 -0800 [NET] include/net/: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 5b2afff23ab7f34222398fc357253c1e5caed363 Author: Joe Perches Date: Thu Dec 20 13:55:45 2007 -0800 [SPARC32]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 33ccc190d1ef5a7ad519c35bb1ef1d0d68a65287 Author: Joe Perches Date: Thu Dec 20 13:55:10 2007 -0800 [SPARC64]: Spelling fixes Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 36bb61346d9e64b55285f27363e93a6e96f2abba Author: David S. Miller Date: Thu Dec 20 01:29:45 2007 -0800 [SPARC64]: Fix OOPS in dma_sync_*_for_device() I included these operations vector cases for situations where we never need to do anything, the entries aren't filled in by any implementation, so we OOPS trying to invoke NULL pointer functions. Really make them NOPs, to fix the bug. Signed-off-by: David S. Miller commit c6e6ca712b5cc06a662f900c0484d49d7334af64 Author: David S. Miller Date: Thu Dec 20 00:25:54 2007 -0800 [NET]: Correct two mistaken skb_reset_mac_header() conversions. This operation helper abstracts: skb->mac_header = skb->data; but it was done in two more places which were actually: skb->mac_header = skb->network_header; and those are corrected here. Signed-off-by: David S. Miller commit 1d0691674764098304ae4c63c715f5883b4d3784 Author: Timo Teras Date: Thu Dec 20 00:10:33 2007 -0800 [IPV4] ip_gre: set mac_header correctly in receive path mac_header update in ipgre_recv() was incorrectly changed to skb_reset_mac_header() when it was introduced. Signed-off-by: Timo Teras Signed-off-by: David S. Miller commit 5951cab136d8b7e84696061dc2e69c402bc94f61 Author: Paul Moore Date: Thu Dec 20 00:00:45 2007 -0800 [XFRM]: Audit function arguments misordered In several places the arguments to the xfrm_audit_start() function are in the wrong order resulting in incorrect user information being reported. This patch corrects this by pacing the arguments in the correct order. Signed-off-by: Paul Moore Signed-off-by: David S. Miller commit f398035f2dec0a6150833b0bc105057953594edb Author: Herbert Xu Date: Wed Dec 19 23:44:29 2007 -0800 [IPSEC]: Avoid undefined shift operation when testing algorithm ID The aalgos/ealgos fields are only 32 bits wide. However, af_key tries to test them with the expression 1 << id where id can be as large as 253. This produces different behaviour on different architectures. The following patch explicitly checks whether ID is greater than 31 and fails the check if that's the case. We cannot easily extend the mask to be longer than 32 bits due to exposure to user-space. Besides, this whole interface is obsolete anyway in favour of the xfrm_user interface which doesn't use this bit mask in templates (well not within the kernel anyway). Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit e0260feddf8a68301c75cdfff9ec251d5851b006 Author: Mark Ryden Date: Wed Dec 19 23:38:11 2007 -0800 [IPV4] ARP: Remove not used code In arp_process() (net/ipv4/arp.c), there is unused code: definition and assignment of tha (target hw address ). Signed-off-by: Mark Ryden Signed-off-by: David S. Miller commit 412e9e7800360ec93b6ba319b30666f6bfc721bd Author: Reinette Chatre Date: Tue Dec 18 22:01:02 2007 -0800 ipw2200: prevent alloc of unspecified size on stack if log_len is larger than 4K then we are killing the stack. allocate on heap instead and limit size to what practically can be used (PAGE_SIZE) Signed-off-by: Reinette Chatre Signed-off-by: John W. Linville commit b24d22b1d12c436a86282347868785207cff8a88 Author: Zhu Yi Date: Wed Dec 19 13:59:52 2007 +0800 iwlwifi: fix possible priv->mutex deadlock during suspend This patch moves _cancel_deferred_work out of mutex protection and removes unnecessary mutex in pci_suspend and pci_resume. Cc: Johannes Berg Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 7d2e941b0b741d17e95baf095dbf1c77f2b95b56 Author: Michael Wu Date: Tue Dec 18 18:36:10 2007 -0500 p54: add Kconfig description Some people would like to know what p54 is. Signed-off-by: Michael Wu Signed-off-by: John W. Linville commit 9934550d7ff69b222d4c751b5712204d5511c39e Author: Matthias Mueller Date: Sun Dec 2 17:17:51 2007 -0500 rtl8187: Add USB ID for Sitecom WL-168 v1 001 Thanks to Matthias Mueller for reporting this device. Signed-off-by: Michael Wu Signed-off-by: John W. Linville commit 286e310f94b9459f3fa975333781c969b1041522 Author: Al Viro Date: Mon Dec 17 23:00:31 2007 -0800 [TG3]: Endianness bugfix. tg3_nvram_write_block_unbuffered() is reading data from nvram into allocated buffer before overwriting a part of it with user-supplied data. Then it feeds the entire page back to nvram. It should be storing the words it had read as little-endian, not as host-endian. Note that tg3_set_eeprom() does exactly that for padding the same data to full words before it gets passed down to tg3_nvram_write_block() and then to tg3_nvram_write_block_unbuffered(). Moreover, when we get to sending the entire thing back to nvram, we go through it word-by-word, doing essentially writel(swab32(le32_to_cpu(word)), ...) so if we want them to reach the card in host-independent endianness, we'd better really have all that buffer filled with fixed-endian. For user-supplied part we obviously do have that (it's an array of octets memcpy'd in), ditto for padding of user-supplied part to word boundaries (taken care of in tg3_set_eeprom()). The rest of the buffer gets filled by tg3_nvram_write_block_unbuffered() and it would damn better be consistent with that (and with tg3_get_eeprom(), while we are at it - there we also convert the words read from nvram to little-endian before returning the buffer to user). The bug should get triggered on big-endian boxen when set_eeprom is done for less than entire page. Then the words that should've been unaffected at all will actually get byteswapped in place in nvram. Signed-off-by: Al Viro Signed-off-by: David S. Miller commit b9fc7dc514566e9788c7f064bb08f8b6e2fe6f72 Author: Al Viro Date: Mon Dec 17 22:59:57 2007 -0800 [TG3]: Endianness annotations. Fixed misannotations, introduced a new helper - tg3_nvram_read_le(). It gets __le32 * instead of u32 * and puts there the value converted to little-endian. A lot of callers of tg3_nvram_read() were doing that; converted them to tg3_nvram_read_le(). At that point the driver is practically endian-clean; the only remaining place is an actual bug, AFAICS; will be dealt with in the next patch. Signed-off-by: Al Viro Signed-off-by: David S. Miller commit 20880e8936e467fe30d79aa838c8d24b7073648f Author: Cyrill Gorcunov Date: Thu Dec 13 16:17:03 2007 -0800 NET: mac80211: fix inappropriate memory freeing Fix inappropriate memory freeing in case of requested rate_control_ops was not found. In this case the list head entity is going to be accidentally wasted. Signed-off-by: Cyrill Gorcunov Acked-by: Michael Wu Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 3333590e94262aebb5d0fb767cc7ed8b2359705c Author: Johannes Berg Date: Wed Dec 12 16:31:52 2007 +0100 mac80211: fix header ops When using recvfrom() on a SOCK_DGRAM packet socket, I noticed that the MAC address passed back for wireless frames was always completely wrong. The reason for this is that the header parse function assigned to our virtual interfaces is a function parsing an 802.11 rather than 802.3 header. This patch fixes it by keeping the default ethernet header operations assigned. Signed-off-by: Johannes Berg Signed-off-by: John W. Linville commit 2d192d9552881f4cf88e62072047c72ef2b5aa7f Author: Michael Wu Date: Sat Nov 10 00:15:25 2007 -0500 mac80211: Drop out of associated state if link is lost There is no point in staying in IEEE80211_ASSOCIATED if there is no sta_info entry to receive frames with. Signed-off-by: Michael Wu Signed-off-by: John W. Linville