commit ebf53826e105f488f4f628703a108e98940d1dc5 Author: Linus Torvalds Date: Tue Feb 1 13:05:49 2011 +1000 Linux 2.6.38-rc3 commit 0fd08c5545a806c960a6597fae4a2e656eb7ead9 Merge: 7921127 d1205f8 Author: Linus Torvalds Date: Tue Feb 1 09:41:02 2011 +1000 Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: NFS: NFSv4 readdir loses entries NFS: Micro-optimize nfs4_decode_dirent() NFS: Fix an NFS client lockdep issue NFS construct consistent co_ownerid for v4.1 NFS: nfs_wcc_update_inode() should set nfsi->attr_gencount NFS improve pnfs_put_deviceid_cache debug print NFS fix cb_sequence error processing NFS do not find client in NFSv4 pg_authenticate NLM: Fix "kernel BUG at fs/lockd/host.c:417!" or ".../host.c:283!" NFS: Prevent memory allocation failure in nfsacl_encode() NFS: nfsacl_{encode,decode} should return signed integer NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!" NFS: Fix "kernel BUG at fs/aio.c:554!" NFS4: Avoid potential NULL pointer dereference in decode_and_add_ds(). NFS: fix handling of malloc failure during nfs_flush_multi() commit 7921127e297ea203b794c4a1c3ef3eb0ee52acbf Merge: 35a8524 e98ff0f Author: Linus Torvalds Date: Tue Feb 1 08:30:31 2011 +1000 Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm: ARM: smp_on_up: allow non-ARM SMP processors ARM: io: ensure inb/outb() et.al. are properly ordered on ARMv6+ ARM: initrd: disable initrd if passed address overlaps reserved region ARM: footbridge: fix debug macros ARM: mmci: round down the bytes transferred on error ARM: mmci: complete the transaction on error ARM: 6642/1: mmci: calculate remaining bytes at error correctly commit 35a8524ffe84667e805b9249316e729e050c83b2 Merge: ffbbf2d 0e6d8ca Author: Linus Torvalds Date: Tue Feb 1 08:27:55 2011 +1000 Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: arch/arm/mach-omap2/dma.c: Convert IS_ERR result to PTR_ERR arm: omap2: mux: fix compile warning omap1: Simplify use of omap_irq_flags omap2+: Fix unused variable warning for omap_irq_base commit ffbbf2da9e578dc7b7ae4f945412c4b74f54b20e Author: Randy Dunlap Date: Mon Jan 31 09:29:14 2011 -0800 kernel.h: fix kernel-doc warning Fix kernel-doc warning in kernel.h from commit 7ef88ad56145 ("BUILD_BUG_ON: make it handle more cases"): Warning(include/linux/kernel.h:605): No description found for parameter 'condition' Warning(include/linux/kernel.h:605): Excess function parameter 'cond' description in 'BUILD_BUG_ON' Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds commit fb9f1f17e9c117c0bf7a8f1b7a0efe5db5bc1836 Merge: 2426ec8 24446fc Author: Linus Torvalds Date: Tue Feb 1 08:15:40 2011 +1000 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs * 'for-linus' of git://oss.sgi.com/xfs/xfs: xfs: xfs_bmap_add_extent_delay_real should init br_startblock xfs: fix dquot shaker deadlock xfs: handle CIl transaction commit failures correctly xfs: limit extsize to size of AGs and/or MAXEXTLEN xfs: prevent extsize alignment from exceeding maximum extent size xfs: limit extent length for allocation to AG size xfs: speculative delayed allocation uses rounddown_power_of_2 badly xfs: fix efi item leak on forced shutdown xfs: fix log ticket leak on forced shutdown. commit 2426ec8fe78884272a12a0a0f38b008a6195f094 Author: Michael S. Tsirkin Date: Mon Jan 31 16:46:20 2011 +1030 virtio: update MAINTAINERS Patches should keep coming through Rusty but it helps if I'm Cc'd as well. Signed-off-by: Michael S. Tsirkin Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds commit cbae48738f23d5409138700c5ccdfd6e4e0d6032 Merge: fb1c634 fd96d0d Author: Linus Torvalds Date: Tue Feb 1 08:07:40 2011 +1000 Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (42 commits) usb: gadget: composite: avoid access beyond array max length USB: serial: handle Data Carrier Detect changes USB: gadget: Fix endpoint representation in ci13xxx_udc USB: gadget: Fix error path in ci13xxx_udc gadget probe function usb: pch_udc: Fix the worning log issue at gadget driver remove USB: serial: Updated support for ICOM devices USB: ehci-mxc: add work-around for efika mx/sb bug USB: unbreak ehci-mxc on otg port of i.MX27 drivers: update to pl2303 usb-serial to support Motorola cables USB: adding USB support for Cinterion's HC2x, EU3 and PH8 products USB serial: add missing .usb_driver field in serial drivers USB: ehci-fsl: Fix 'have_sysif_regs' detection USB: g_printer: fix bug in module parameter definitions USB: g_printer: fix bug in unregistration USB: uss720: remove duplicate USB device MAINTAINERS: add ueagle-atm entry USB: EHCI: fix DMA deallocation bug USB: pch_udc: support new device ML7213 IOH usb: pch_udc: Fixed issue which does not work with g_serial usb: set ep_dev async suspend should be later than device_initialize ... commit fb1c6348b22dde3ef75b53ec23982bf1bc617c32 Merge: abfa44b 6b28405 Author: Linus Torvalds Date: Tue Feb 1 08:06:31 2011 +1000 Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 * 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (26 commits) staging: r8712u: Add new device IDs staging: brcm80211: fix suspend/resume issue in brcmsmac staging: brcm80211: remove assert to avoid panic since 2.6.37 kernel Staging: iio: Aditional fixpoint formatted output bugfix staging: usbip: vhci: use urb->dev->portnum to find port staging: usbip: vhci: handle EAGAIN from SO_RCVTIMEO staging: usbip: vhci: friendly log messages for connection errors staging: usbip: vhci: refuse to enqueue for dead connections staging: usbip: vhci: give back URBs from in-flight unlink requests staging: usbip: vhci: update reference count for usb_device staging: usbip: stub: update refcounts for devices and interfaces staging: tidspbridge: replace mbox callback with notifier_call staging: comedi: ni_labpc: Use shared IRQ for PCMCIA card Staging: speakup: &&/|| confusion in silent_store() iio: Fixpoint formatted output bugfix staging: rt2860: Fix incorrect netif_stop_queue usage warning staging: r8712u: Fix memory leak in firmware loading staging: tidspbridge: configure full L1 MMU range staging: rt2870sta: Add ID for Linksys WUSB100v2 Staging: xgfib: put parenthesis in the right place ... commit abfa44b5fd4a2f5d7549005bec465d4823a263ff Merge: 70d1f36 fed7bb3 Author: Linus Torvalds Date: Tue Feb 1 08:05:19 2011 +1000 Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 * 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: tty/serial: fix apbuart build n_hdlc: fix read and write locking serial: unbreak billionton CF card tty: use for_each_console() and WARN() on sysfs failures vt: fix issue when fbcon wants to takeover a second time. Fix up trivial conflict in drivers/tty/tty_io.c commit e98ff0f55a0232b578c9aa7f1c245868277ac7bc Author: Russell King Date: Sun Jan 30 16:40:20 2011 +0000 ARM: smp_on_up: allow non-ARM SMP processors Allow non-ARM SMP processors to use the SMP_ON_UP feature. CPUs supporting SMP must have the new CPU ID format, so check for this first. Then check for ARM11MPCore, which fails the MPIDR check. Lastly check the MPIDR reports multiprocessing extensions and that the CPU is part of a multiprocessing system. Cc: Reported-and-Tested-by: Stephen Boyd Acked-by: Will Deacon Signed-off-by: Russell King commit c1928022ef94662a88329e35fa0968b1be328b8e Author: Russell King Date: Sun Jan 30 11:29:40 2011 +0000 ARM: io: ensure inb/outb() et.al. are properly ordered on ARMv6+ Ensure that the ISA/PCI IO space accessors are properly ordered on ARMv6+ architectures. These should always be ordered with respect to all other accesses. This also fixes __iormb() and __iowmb() not being visible to ioread/ iowrite if a platform defines its own MMIO accessors. Signed-off-by: Russell King commit b0a2679d27408d97ce31e5f800b44227d3388b84 Author: Russell King Date: Sun Jan 30 11:21:05 2011 +0000 ARM: initrd: disable initrd if passed address overlaps reserved region Disable the initrd if the passed address already overlaps the reserved region. This avoids oopses on Netwinders when NeTTrom tells the kernel that an initrd is located at mem+4MB, but this overlaps the BSS, resulting in the kernels in-use BSS being freed. This should be applied to v2.6.37-stable. Cc: Signed-off-by: Russell King commit 5f2c1b30c7f60670c8b9d1cb1ea7c818b9c743a6 Author: Russell King Date: Fri Jan 28 20:57:57 2011 +0000 ARM: footbridge: fix debug macros 0ea1293 (arm: return both physical and virtual addresses from addruart) changed the way the 'addruart' worked, making it return both the virt and phys addresses. Unfortunately, for footbridge, these were reversed. Fix that. Tested on Netwinder. Signed-off-by: Russell King commit 613b152c63e35095a929f9bb80441cbe91ff5e80 Author: Russell King Date: Sun Jan 30 21:06:53 2011 +0000 ARM: mmci: round down the bytes transferred on error We should not report incomplete blocks on error. Return the number of bytes successfully transferred, rounded down to the nearest block. Acked-by: Linus Walleij Signed-off-by: Russell King commit ccff9b51825b7335889b780bdf7de84ca803e291 Author: Russell King Date: Sun Jan 30 21:03:50 2011 +0000 ARM: mmci: complete the transaction on error When we encounter an error, make sure we complete the transaction otherwise we'll leave the request dangling. Acked-by: Linus Walleij Signed-off-by: Russell King commit 70d1f365568e0cdbc9f4ab92428e1830fdb09ab0 Merge: 54e74b8 3a0592b Author: Linus Torvalds Date: Mon Jan 31 13:04:51 2011 +1000 Merge branch 'for-linus' of git://git.infradead.org/ubi-2.6 * 'for-linus' of git://git.infradead.org/ubi-2.6: Revert "UBI: use mtd->writebufsize to set minimal I/O unit size" commit 54e74b87e2a9941c6fa82189f270b47cceeba714 Author: Dmitry Torokhov Date: Fri Jan 28 23:33:29 2011 -0800 Input: rc-keymap - return KEY_RESERVED for unknown mappings Do not respond with -EINVAL to EVIOCGKEYCODE for not-yet-mapped scancodes, but rather return KEY_RESERVED. This fixes breakage with Ubuntu's input-kbd utility that stopped returning full keymaps for remote controls. Tested-by: Mauro Carvalho Chehab Tested-by: Mark Lord Signed-off-by: Dmitry Torokhov Signed-off-by: Linus Torvalds commit 1ca05b7fc2672ea870bd58f45dc8d36d2b980f94 Merge: aa5bd67 c63fe0a Author: Linus Torvalds Date: Mon Jan 31 13:02:34 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: synaptics - retry failed resets when reconnecting Input: synaptics - fix reconnect logic on MT devices Input: tegra-kbc - fix keymap entry for LeftMeta key Input: tegra-kbc - fix build error commit aa5bd67dcfdf9af34c7fa36ebc87d4e1f7e91873 Author: Kacper Kornet Date: Sat Jan 29 00:21:04 2011 +0100 Fix prlimit64 for suid/sgid processes Since check_prlimit_permission always fails in the case of SUID/GUID processes, such processes are not able to read or set their own limits. This commit changes this by assuming that process can always read/change its own limits. Signed-off-by: Kacper Kornet Acked-by: Jiri Slaby Signed-off-by: Linus Torvalds commit 2f215a7d6d1d8ed0bbdda4fc4f7d64e3a1d46acc Author: Huang Weiyi Date: Fri Jan 28 22:05:25 2011 +0800 intel_scu_ipc: remove duplicated #include Remove duplicated #include('s) in drivers/platform/x86/intel_scu_ipc.c Signed-off-by: Huang Weiyi Signed-off-by: Linus Torvalds commit af5eb745efe97d91d2cbe793029838b3311c15da Author: Anton Altaparmakov Date: Fri Jan 28 20:45:28 2011 +0000 NTFS: Fix invalid pointer dereference in ntfs_mft_record_alloc(). In ntfs_mft_record_alloc() when mapping the new extent mft record with map_extent_mft_record() we overwrite @m with the return value and on error, we then try to use the old @m but that is no longer there as @m now contains an error code instead so we crash when dereferencing the error code as if it were a pointer. The simple fix is to use a temporary variable to store the return value thus preserving the original @m for later use. This is a backport from the commercial Tuxera-NTFS driver and is well tested... Thanks go to Julia Lawall for pointing this out (whilst I had fixed it in the commercial driver I had failed to fix it in the Linux kernel). Signed-off-by: Anton Altaparmakov Signed-off-by: Linus Torvalds commit 9fbf0c08d441888b977f7c459c8aa57f2c0cb6ad Merge: 4fda116 ee2c925 Author: Linus Torvalds Date: Mon Jan 31 12:56:27 2011 +1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: cifs: More crypto cleanup (try #2) CIFS: Add strictcache mount option CIFS: Implement cifs_strict_writev (try #4) [CIFS] Replace cifs md5 hashing functions with kernel crypto APIs commit 4fda116852fe21a3897c478ce64b77bb1ec6b3d6 Merge: 52cea8a 6ae4bd1 Author: Linus Torvalds Date: Mon Jan 31 12:55:38 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm: kmemleak: Allow kmemleak metadata allocations to fail kmemleak: remove memset by using kzalloc commit 52cea8a4b0634421ddafcfef98c07cf5c378a71f Merge: 7bfeea0 5f92acc8 Author: Linus Torvalds Date: Mon Jan 31 12:54:54 2011 +1000 Merge branch 'zerolen' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 * 'zerolen' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6: Delete zero-length drivers/staging/vme/bridges/Module.symvers commit 7bfeea05d9b1cc75c2d7410b92b7774870688379 Merge: f9a3d1d dcc3c4c Author: Linus Torvalds Date: Mon Jan 31 12:53:12 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: HDA: Fix automute on Thinkpad L412/L512 ALSA: HDA: Fix dmesg output of HDMI supported bits ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture ASoC: correct link specifications for corgi, poodle and spitz ASoC: Samsung: Fix outdated cpu_dai_name for s3c24xx i2s ASoC: Fix codec device id format used by some dai_links ALSA: azt3328 - fix broken AZF_FMT_XLATE macro ALSA: Xonar, CS43xx: Don't overrun static array ASoC: Handle low measured DC offsets for wm_hubs devices ASoC: da8xx/omap-l1xx: match codec_name with i2c ids ASoC: WM8994: fix wrong value in tristate function ASoC: WM8995: Fix incorrect use of snd_soc_update_bits() commit f9a3d1d74bdacf8a5ef8025233e61546cb809dc8 Merge: ef9f2fa 729a6a3 Author: Linus Torvalds Date: Mon Jan 31 12:51:28 2011 +1000 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: set queue DMA alignment to sector size for ATAPI too libata: DVR-212D can't do SETXFER DVD-RW DVR-212D ahci: add HFLAG_YES_FBS and apply it to 88SE9128 pata_hpt37x: inherit prereset() method for HPT374 ahci: AHCI mode SATA patch for Intel DH89xxCC DeviceIDs pata_hpt37x: fold 'if' statement into 'switch' pata_hpt{37x|3x2n}: use pr_*(DRV_NAME ...) instead of printk(KERN_* ...) pata_hpt{366|37x}: use pr_warning(...) instead of printk(KERN_WARNING ...) pata_mpc52xx: inherit from ata_bmdma_port_ops commit ef9f2fa17f3d6973a479a7677a023ee3604a52cb Merge: 1f0324c b48b5f5 Author: Linus Torvalds Date: Mon Jan 31 12:49:26 2011 +1000 Merge branch 'for-linus' of git://android.git.kernel.org/kernel/tegra * 'for-linus' of git://android.git.kernel.org/kernel/tegra: ARM: tegra: clock: Add forward reference to struct clk ARM: tegra: irq: Rename gic pointers to avoid conflicts arm/tegra: Fix tegra irq_data conversion commit 3a0592b1dd69cfc403ee7514c47b9d57d8bbd6d7 Author: Artem Bityutskiy Date: Sat Jan 29 18:27:13 2011 +0200 Revert "UBI: use mtd->writebufsize to set minimal I/O unit size" This reverts commit a121f643993474548fe98144514c50dd4f3dbe76. Unfortunately, this commit breaks UBIFS backward compatibility and makes new UBIFS refuse older UBIFS-formatted media: UBIFS error: validate_sb: min. I/O unit mismatch: 8 in superblock, 64 real Thus, we have to revert this patch and work on a better solution. Reported-by: Holger Brunck Signed-off-by: Artem Bityutskiy commit c63fe0a41fd2374be0ebe93c053820a0eed9cefe Author: Alexandre Peixoto Ferreira Date: Fri Jan 28 22:05:14 2011 -0800 Input: synaptics - retry failed resets when reconnecting On some machines, like Dell Studio XPS 16 (1640), touchpad fails to respond to the standard query after first reset but may start responding later, so let's repeat reset sequence several (3) times. Signed-off-by: Alexandre Peixoto Ferreira Signed-off-by: Dmitry Torokhov commit baddf58963241307b29e027a9fb28dfe55939db8 Author: Alexandre Peixoto Ferreira Date: Fri Jan 28 22:05:14 2011 -0800 Input: synaptics - fix reconnect logic on MT devices synaptics_set_advanced_gesture_mode() affect capabilities bits we should perform comparison after calling this function, otherwise they will never match and we will be forced to perform full reconnect. Signed-off-by: Alexandre Peixoto Ferreira Signed-off-by: Dmitry Torokhov commit e7acc84a27fe53b198cd98cc7deaabb5dd0f20c4 Author: Rakesh Iyer Date: Fri Jan 28 22:05:14 2011 -0800 Input: tegra-kbc - fix keymap entry for LeftMeta key Correct key mapping for Left Meta key. Signed-off-by: Rakesh Iyer Signed-off-by: Dmitry Torokhov commit 7530c4a197f3dd63f1381c1cdf93e4d2b8429ef5 Author: Rakesh Iyer Date: Fri Jan 28 22:05:14 2011 -0800 Input: tegra-kbc - fix build error Fix build error introduced by variable name change. Signed-off-by: Rakesh Iyer Signed-off-by: Dmitry Torokhov commit d1205f87bbb8040c1408bbd9e0a720310b2b0b9b Author: Chuck Lever Date: Fri Jan 28 12:41:05 2011 -0500 NFS: NFSv4 readdir loses entries On recent 2.6.38-rc kernels, connectathon basic test 6 fails on NFSv4 mounts of OpenSolaris with something like: > ./test6: readdir > ./test6: (/mnt/klimt/matisse.test) didn't read expected 'file.12' dir entry, pass 0 > ./test6: (/mnt/klimt/matisse.test) didn't read expected 'file.82' dir entry, pass 0 > ./test6: (/mnt/klimt/matisse.test) didn't read expected 'file.164' dir entry, pass 0 > ./test6: (/mnt/klimt/matisse.test) Test failed with 3 errors > basic tests failed > Tests failed, leaving /mnt/klimt mounted > [cel@matisse cthon04]$ I narrowed the problem down to nfs4_decode_dirent() reporting that the decode buffer had overflowed while decoding the entries for those missing files. verify_attr_len() assumes both it's pointer arguments reside on the same page. When these arguments point to locations on two different pages, verify_attr_len() can report false errors. This can happen now that a large NFSv4 readdir result can span pages. We have reasonably good checking in nfs4_decode_dirent() anyway, so it should be safe to simply remove the extra checking. At a guess, this was introduced by commit 6650239a, "NFS: Don't use vm_map_ram() in readdir". Cc: stable@kernel.org [2.6.37] Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit c08e76d0cd4beb759a73c1835d98f5fccc126ed1 Author: Chuck Lever Date: Fri Jan 28 12:40:55 2011 -0500 NFS: Micro-optimize nfs4_decode_dirent() Make the decoding of NFSv4 directory entries slightly more efficient by: 1. Avoiding unnecessary byte swapping when checking XDR booleans, and 2. Not bumping "p" when its value will be immediately replaced by xdr_inline_decode() This commit makes nfs4_decode_dirent() consistent with similar logic in the other two decode_dirent() functions. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit e00b8a24041f37e56b4b8415ce4eba1cbc238065 Author: Trond Myklebust Date: Thu Jan 27 14:55:39 2011 -0500 NFS: Fix an NFS client lockdep issue There is no reason to be freeing the delegation cred in the rcu callback, and doing so is resulting in a lockdep complaint that rpc_credcache_lock is being called from both softirq and non-softirq contexts. Reported-by: Chuck Lever Signed-off-by: Trond Myklebust Cc: stable@kernel.org commit 24446fc66fdebbdd8baca0f44fd2a47ad77ba580 Author: bpm@sgi.com Date: Wed Jan 19 17:41:58 2011 +0000 xfs: xfs_bmap_add_extent_delay_real should init br_startblock When filling in the middle of a previous delayed allocation in xfs_bmap_add_extent_delay_real, set br_startblock of the new delay extent to the right to nullstartblock instead of 0 before inserting the extent into the ifork (xfs_iext_insert), rather than setting br_startblock afterward. Adding the extent into the ifork with br_startblock=0 can lead to the extent being copied into the btree by xfs_bmap_extent_to_btree if we happen to convert from extents format to btree format before updating br_startblock with the correct value. The unexpected addition of this delay extent to the btree can cause subsequent XFS_WANT_CORRUPTED_GOTO filesystem shutdown in several xfs_bmap_add_extent_delay_real cases where we are converting a delay extent to real and unexpectedly find an extent already inserted. For example: 911 case BMAP_LEFT_FILLING: 912 /* 913 * Filling in the first part of a previous delayed allocation. 914 * The left neighbor is not contiguous. 915 */ 916 trace_xfs_bmap_pre_update(ip, idx, state, _THIS_IP_); 917 xfs_bmbt_set_startoff(ep, new_endoff); 918 temp = PREV.br_blockcount - new->br_blockcount; 919 xfs_bmbt_set_blockcount(ep, temp); 920 xfs_iext_insert(ip, idx, 1, new, state); 921 ip->i_df.if_lastex = idx; 922 ip->i_d.di_nextents++; 923 if (cur == NULL) 924 rval = XFS_ILOG_CORE | XFS_ILOG_DEXT; 925 else { 926 rval = XFS_ILOG_CORE; 927 if ((error = xfs_bmbt_lookup_eq(cur, new->br_startoff, 928 new->br_startblock, new->br_blockcount, 929 &i))) 930 goto done; 931 XFS_WANT_CORRUPTED_GOTO(i == 0, done); With the bogus extent in the btree we shutdown the filesystem at 931. The conversion from extents to btree format happens when the number of extents in the inode increases above ip->i_df.if_ext_max. xfs_bmap_extent_to_btree copies extents from the ifork into the btree, ignoring all delalloc extents which are denoted by br_startblock having some value of nullstartblock. SGI-PV: 1013221 Signed-off-by: Ben Myers Reviewed-by: Dave Chinner Signed-off-by: Alex Elder commit 0fbca4d1c3932c27c4794bf5c2b5fc961cf5a54f Author: Dave Chinner Date: Fri Jan 28 11:20:46 2011 +1100 xfs: fix dquot shaker deadlock Commit 368e136 ("xfs: remove duplicate code from dquot reclaim") fails to unlock the dquot freelist when the number of loop restarts is exceeded in xfs_qm_dqreclaim_one(). This causes hangs in memory reclaim. Rework the loop control logic into an unwind stack that all the different cases jump into. This means there is only one set of code that processes the loop exit criteria, and simplifies the unlocking of all the items from different points in the loop. It also fixes a double increment of the restart counter from the qi_dqlist_lock case. Reported-by: Malcolm Scott Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit c6f990d1ff8e4e53b12f4175eb7d7ea710c3ca73 Author: Dave Chinner Date: Thu Jan 27 13:23:28 2011 +1100 xfs: handle CIl transaction commit failures correctly Failure to commit a transaction into the CIL is not handled correctly. This currently can only happen when racing with a shutdown and requires an explicit shutdown check, so it rare and can be avoided. Remove the shutdown check and make the CIL commit a void function to indicate it will always succeed, thereby removing the incorrectly handled failure case. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 5315837daee7ed76c31ef643915f7d76ef8c1aa3 Author: Dave Chinner Date: Thu Jan 27 12:18:18 2011 +1100 xfs: limit extsize to size of AGs and/or MAXEXTLEN The extent size hint can be set to larger than an AG. This means that the alignment process can push the range to be allocated outside the bounds of the AG, resulting in assert failures or corrupted bmbt records. Similarly, if the extsize is larger than the maximum extent size supported, the alignment process will produce extents that are too large to fit into the bmbt records, resulting in a different type of assert/corruption failure. Fix this by limiting extsize at the time іt is set firstly to be less than MAXEXTLEN, then to be a maximum of half the size of the AGs in the filesystem for non-realtime inodes. Realtime inodes do not allocate out of AGs, so don't have to be restricted by the size of AGs. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 4ce159890c00e2cc705e955a939bf1dca7b07ab8 Author: Dave Chinner Date: Thu Jan 27 12:17:58 2011 +1100 xfs: prevent extsize alignment from exceeding maximum extent size When doing delayed allocation, if the allocation size is for a maximally sized extent, extent size alignment can push it over this limit. This results in an assert failure in xfs_bmbt_set_allf() as the extent length is too large to find in the extent record. Fix this by ensuring that we allow for space that extent size alignment requires (up to 2 * (extsize -1) blocks as we have to handle both head and tail alignment) when limiting the maximum size of the extent. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 14b064ceaa6f51a7426cc45b4b43685b94380658 Author: Dave Chinner Date: Thu Jan 27 12:16:28 2011 +1100 xfs: limit extent length for allocation to AG size Delayed allocation extents can be larger than AGs, so when trying to convert a large range we may scan every AG inside xfs_bmap_alloc_nullfb() trying to find an AG with a size larger than an AG. We should stop when we find the first AG with a maximum possible allocation size. This causes excessive CPU usage when there are lots of AGs. The same problem occurs when doing preallocation of a range larger than an AG. Fix the problem by limiting real allocation lengths to the maximum that an AG can support. This means if we have empty AGs, we'll stop the search at the first of them. If there are no empty AGs, we'll still scan them all, but that is a different problem.... Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit b8fc82630ae289bb4e661567808afc59e3298dce Author: Dave Chinner Date: Thu Jan 27 12:14:12 2011 +1100 xfs: speculative delayed allocation uses rounddown_power_of_2 badly rounddown_power_of_2() returns an undefined result when passed a value of zero. The specualtive delayed allocation code is doing this when the inode is zero length. Hence occasionally the preallocation is much, much larger than is necessary (e.g. 8GB for a 270 _byte_ file). Ensure we don't even pass a zero value to this function so the result of preallocation is always the desired size. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit e34a314c5e49fe6b763568f6576b19f1299c33c2 Author: Dave Chinner Date: Thu Jan 27 12:13:35 2011 +1100 xfs: fix efi item leak on forced shutdown After test 139, kmemleak shows: unreferenced object 0xffff880078b405d8 (size 400): comm "xfs_io", pid 4904, jiffies 4294909383 (age 1186.728s) hex dump (first 32 bytes): 60 c1 17 79 00 88 ff ff 60 c1 17 79 00 88 ff ff `..y....`..y.... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [] kmemleak_alloc+0x2d/0x60 [] kmem_cache_alloc+0x13f/0x2b0 [] kmem_zone_alloc+0x77/0xf0 [] kmem_zone_zalloc+0x1e/0x50 [] xfs_efi_init+0x4b/0xb0 [] xfs_trans_get_efi+0x58/0x90 [] xfs_bmap_finish+0x8b/0x1d0 [] xfs_itruncate_finish+0x2c4/0x5d0 [] xfs_setattr+0x8df/0xa70 [] xfs_vn_setattr+0x1b/0x20 [] notify_change+0x170/0x2e0 [] do_truncate+0x66/0xa0 [] sys_ftruncate+0xdb/0xe0 [] system_call_fastpath+0x16/0x1b [] 0xffffffffffffffff The cause of the leak is that the "remove" parameter of IOP_UNPIN() is never set when a CIL push is aborted. This means that the EFI item is never freed if it was in the push being cancelled. The problem is specific to delayed logging, but has uncovered a couple of problems with the handling of IOP_UNPIN(remove). Firstly, we cannot safely call xfs_trans_del_item() from IOP_UNPIN() in the CIL commit failure path or the iclog write failure path because for delayed loging we have no transaction context. Hence we must only call xfs_trans_del_item() if the log item being unpinned has an active log item descriptor. Secondly, xfs_trans_uncommit() does not handle log item descriptor freeing during the traversal of log items on a transaction. It can reference a freed log item descriptor when unpinning an EFI item. Hence it needs to use a safe list traversal method to allow items to be removed from the transaction during IOP_UNPIN(). Signed-off-by: Dave Chinner Reviewed-by: Alex Elder commit 5f92acc896564ac91df84cc133d09f9820f00061 Author: Jeff Garzik Date: Fri Jan 28 03:23:42 2011 -0500 Delete zero-length drivers/staging/vme/bridges/Module.symvers Signed-off-by: Jeff Garzik commit 729a6a300e628a48cf12bac93a964a535e83cd1d Author: Tejun Heo Date: Thu Jan 20 13:59:06 2011 +0100 libata: set queue DMA alignment to sector size for ATAPI too ata_pio_sectors() expects buffer for each sector to be contained in a single page; otherwise, it ends up overrunning the first page. This is achieved by setting queue DMA alignment. If sector_size is smaller than PAGE_SIZE and all buffers are sector_size aligned, buffer for each sector is always contained in a single page. This wasn't applied to ATAPI devices but IDENTIFY_PACKET is executed as ATA_PROT_PIO and thus uses ata_pio_sectors(). Newer versions of udev issue IDENTIFY_PACKET with unaligned buffer triggering the problem and causing oops. This patch fixes the problem by setting sdev->sector_size to ATA_SECT_SIZE on ATATPI devices and always setting DMA alignment to sector_size. While at it, add a warning for the unlikely but still possible scenario where sector_size is larger than PAGE_SIZE, in which case the alignment wouldn't be enough. Signed-off-by: Tejun Heo Reported-by: John Stanley Tested-by: John Stanley Cc: stable@kernel.org Signed-off-by: Jeff Garzik commit 4a5610a04d415ed94af75bb1159d2621d62c8328 Author: Francesco Antonacci Date: Tue Jan 25 11:54:43 2011 +0100 libata: DVR-212D can't do SETXFER DVD-RW DVR-212D PIONEER DVR-212D can't do SETXFER like its sibling DVRTD08. Add ATA_HORKAGE_NOSETXFER for it. Reported in bko#27502. https://bugzilla.kernel.org/show_bug.cgi?id=27502 Signed-off-by: Francesco Antonacci Acked-by: Tejun Heo Signed-off-by: Jeff Garzik commit 10aca06c82a85fe7dcb3d8ad1b0b66e8635c8b8b Author: Anssi Hannula Date: Tue Jan 18 20:03:26 2011 -0500 ahci: add HFLAG_YES_FBS and apply it to 88SE9128 Commit 5f173107ecad83a50 added HFLAG_YES_FBS workaround for 88SE9128 (1b4b:9123). However, that change inadvertently caused the legacy IDE interface of the controller (with the same pci id) to become associated with the AHCI driver as well, causing the driver to try to bring the interface up in vain. Fix that by matching against class as well. Signed-off-by: Anssi Hannula Signed-off-by: Jeff Garzik commit defed5593149e65cd7b7eaa32ccbf2e795ea55f1 Author: Sergei Shtylyov Date: Tue Jan 11 21:01:23 2011 +0300 pata_hpt37x: inherit prereset() method for HPT374 Commit ab81a505ae6be069be5b67acd7e1bab3cfb53968 (pata_hpt37x: unify ->pre_reset methods) neglected to remove the initializer for the prereset() method from 'hpt374_fn1_port_ops' (it's inherited from 'hpt372_port_ops' anyway), as well as to update the comment in hpt37x_init_one()... Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit a4a461a6df6c0481d5a3d61660ed97f5b539cf16 Author: Seth Heasley Date: Mon Jan 10 12:57:17 2011 -0800 ahci: AHCI mode SATA patch for Intel DH89xxCC DeviceIDs This patch adds the AHCI-mode SATA DeviceID for the Intel DH89xxCC PCH. Signed-off-by: Seth Heasley Signed-off-by: Jeff Garzik commit 910f7bb164fa888ff925e337bf8fd479abb157f9 Author: Sergei Shtylyov Date: Mon Jan 10 22:31:13 2011 +0300 pata_hpt37x: fold 'if' statement into 'switch' hpt37x_init_one() has a large *if* statement which should really be folded into the *switch* statement that currently constitutes its *else* branch, reducing one level of indentation... Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 40d69ba029c8d5de51aaeb5358999266c482d00a Author: Sergei Shtylyov Date: Mon Jan 10 21:39:34 2011 +0300 pata_hpt{37x|3x2n}: use pr_*(DRV_NAME ...) instead of printk(KERN_* ...) ... the same as the 'pata_hpt366' driver does. Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit bfdd7c58cf3392333bba161491a2ef0741b970ba Author: Sergei Shtylyov Date: Mon Jan 10 21:34:27 2011 +0300 pata_hpt{366|37x}: use pr_warning(...) instead of printk(KERN_WARNING ...) ... in hpt_dma_blacklisted(). Signed-off-by: Sergei Shtylyov Signed-off-by: Jeff Garzik commit 77c5fd19075d299fe820bb59bb21b0b113676e20 Author: Tejun Heo Date: Sun Jan 9 17:48:20 2011 -0500 pata_mpc52xx: inherit from ata_bmdma_port_ops pata_mpc52xx supports BMDMA but inherits ata_sff_port_ops which triggers BUG_ON() when a DMA command is issued. Fix it. Signed-off-by: Tejun Heo Reported-by: Roman Fietze Cc: Sergei Shtylyov Cc: stable@kernel.org Signed-off-by: Jeff Garzik commit dcc3c4c016481de3fdb99c1f6ecb04d4229513d4 Merge: ded9f52 a3adfa0 Author: Takashi Iwai Date: Fri Jan 28 08:25:43 2011 +0100 Merge branch 'fix/asoc' into for-linus commit 1f0324caefd39985e9fe052fac97da31694db31e Merge: 0b6bb66 23febed Author: Linus Torvalds Date: Fri Jan 28 12:24:34 2011 +1000 Merge branch 'stable/bug-fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen * 'stable/bug-fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: xen/setup: Route halt operations to safe_halt pvop. xen/e820: Guard against E820_RAM not having page-aligned size or start. xen/p2m: Mark INVALID_P2M_ENTRY the mfn_list past max_pfn. commit 0b6bb66d1247601e4a2560bb048d64c606bd7b73 Author: Andreas Gruenbacher Date: Wed Jan 26 15:55:36 2011 +0100 Export the augmented rbtree helper functions The augmented rbtree helper functions are not exported to modules right now. (We have started using augmented rbtrees in the upcoming version of drbd.) Signed-off-by: Andreas Gruenbacher Signed-off-by: Linus Torvalds commit b12ece7d852efbc8db45371c068900fcc62002d4 Merge: 363aab2 d66bbd4 Author: Linus Torvalds Date: Fri Jan 28 12:12:58 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: ceph: avoid picking MDS that is not active ceph: avoid immediate cap check after import ceph: fix flushing of caps vs cap import ceph: fix erroneous cap flush to non-auth mds ceph: fix cap_wanted_delay_{min,max} mount option initialization ceph: fix xattr rbtree search ceph: fix getattr on directory when using norbytes commit 363aab29eb89b46d14d44e4a44a5fff57e30bcfc Merge: bffb276 b9020c9 Author: Linus Torvalds Date: Fri Jan 28 12:10:13 2011 +1000 Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm/nv50: fix regression on IGPs drm/radeon/kms: re-emit full context state for evergreen blits drm/radeon/kms: release CMASK access in preclose_kms drm/radeon/kms: fix r6xx+ scanout on BE systems drm/radeon/kms: clean up some magic numbers drm/radeon/kms: only enable HDMI mode if radeon audio is enabled radeon/kms: fix dp displayport mode validation drm/nvc0/grctx: correct an off-by-one drm/nv50: Fix race with PFIFO during PGRAPH context destruction. drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200. drm/nvc0: implement irq handler for whatever's at 0x14xxxx drm/nvc0: fix incorrect TPC register setup drm/nouveau: probe for adt7473 before f75375 drm/nouveau: remove dead function definition commit b9020c9e5953f6938e1968ba0034b46292ac5d51 Merge: 1e644d6 153e019 Author: Dave Airlie Date: Fri Jan 28 11:12:53 2011 +1000 Merge branch 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes * 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6: drm/nv50: fix regression on IGPs commit 153e019ff398063b8486acadfad9adb806e99474 Author: Ben Skeggs Date: Thu Jan 27 10:42:50 2011 +1000 drm/nv50: fix regression on IGPs Signed-off-by: Ben Skeggs commit 1e644d6dce366a7bae22484f60133b61ba322911 Author: Alex Deucher Date: Thu Jan 27 17:01:52 2011 -0500 drm/radeon/kms: re-emit full context state for evergreen blits clear state doesn't seem to work properly in some cases Fixes hangs in heavy 3D on some evergreen cards reported on IRC. May fix: https://bugs.freedesktop.org/show_bug.cgi?id=33381 possibly others. Signed-off-by: Alex Deucher Cc: stable@kernel.org Signed-off-by: Dave Airlie commit dca0d6129f3ec77bcf42ce85bcd64c87e5cf0c04 Author: Marek Olšák Date: Thu Jan 27 22:46:15 2011 +0100 drm/radeon/kms: release CMASK access in preclose_kms Signed-off-by: Marek Olšák Signed-off-by: Dave Airlie commit 0e6d8cad448bde3d846961bb43db15daae94562e Author: Julia Lawall Date: Thu Jan 27 15:49:06 2011 +0000 arch/arm/mach-omap2/dma.c: Convert IS_ERR result to PTR_ERR This code elsewhere returns a negative constant to an indicate an error, while IS_ERR returns the result of a >= operation. The semantic patch that fixes this problem is as follows: (http://coccinelle.lip6.fr/) // @@ expression x; @@ if (...) { ... - return IS_ERR(x); + return PTR_ERR(x); } // Signed-off-by: Julia Lawall Acked-by: Jarkko Nikula Signed-off-by: Tony Lindgren commit afb7d7099e27f30caf69b3ce80a4cb86612a0b87 Author: Felipe Balbi Date: Mon Jan 17 06:31:18 2011 +0200 arm: omap2: mux: fix compile warning Commit 8419fdbaf2118a0a169441be82f09f7be93a5ca1 (omap2+: Add omap_mux_get_by_name) introduced the following compile warning: arch/arm/mach-omap2/mux.c: In function '_omap_mux_get_by_name': arch/arm/mach-omap2/mux.c:163:17: warning: 'found_mode' may be used uninitialized in this function Signed-off-by: Felipe Balbi [tony@atomide.com: updated comments] Signed-off-by: Tony Lindgren commit efe318a333767cbd20746f8d57f3ca7e398d9255 Author: Tony Lindgren Date: Thu Jan 27 15:52:16 2011 -0800 omap1: Simplify use of omap_irq_flags Commit 03a9e5126147c9f92aeba4b34f62b15b625087fb (omap1: Use asm_irq_flags for entry-macro.S) added support for multi-omap builds with addition of the omap_irq_flags. Commit 9f9605c2eda9679e6f63c605cbd9cbf6a9a7f3fa (omap2+: Fix unused variable warning for omap_irq_base) simplified omap2+ entry-macro.S by moving omap_irq_flags out of entry-macro.S. Simplify omap1 entry-macro.S in a similar way to keep the code consistent. Based on a similar earlier patch for omap2+ by Russell King . Signed-off-by: Tony Lindgren commit 9f9605c2eda9679e6f63c605cbd9cbf6a9a7f3fa Author: Russell King Date: Fri Jan 7 11:57:44 2011 +0000 omap2+: Fix unused variable warning for omap_irq_base Commit 5d190c40100793a6dfc37bf325677c10f3c80edf (omap2+: Initialize omap_irq_base for entry-macro.S from platform code) simplified the handling of omap_irq_base for multi-omap builds. However, this patch also introduced a build warning for !MULTI_OMAP2 builds: arch/arm/mach-omap2/io.c: In function 'omap_irq_base_init': arch/arm/mach-omap2/io.c:322: warning: unused variable 'omap_irq_base' Fix this by removing the ifdef. Also simplify things further by moving omap_irq_base out of entry-macro.S. Signed-off-by: Russell King [tony@atomide.com: updated comments] Signed-off-by: Tony Lindgren commit f5a106d9e2a5d947e106c3caace373ded1a695ed Author: Linus Walleij Date: Thu Jan 27 17:44:34 2011 +0100 ARM: 6642/1: mmci: calculate remaining bytes at error correctly The MMCIDATACNT register contain the number of byte left at error not the number of words, so loose the << 2 thing. Further if CRC fails on the first block, we may end up with a negative number of transferred bytes which is not good, and the formula was in wrong order. Signed-off-by: Linus Walleij Signed-off-by: Russell King commit bffb276fffc93000e05a19ee0bdee844dff6a88d Merge: f7b548f 05ca62c Author: Linus Torvalds Date: Fri Jan 28 06:45:04 2011 +1000 Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: Use rq->clock_task instead of rq->clock for correctly maintaining load averages sched: Fix/remove redundant cfs_rq checks sched: Fix sign under-flows in wake_affine commit f7b548fa3d74f0db9af4fd41fbef973231d384fd Merge: 95f9354 889a7a6 Author: Linus Torvalds Date: Fri Jan 28 06:43:41 2011 +1000 Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: percpu, x86: Fix percpu_xchg_op() x86: Remove left over system_64.h x86-64: Don't use pointer to out-of-scope variable in dump_trace() commit 95f9354b4cd23902e0556348325366378cb5e621 Merge: 7205649 a34650f Author: Linus Torvalds Date: Fri Jan 28 06:39:08 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: mmc: bfin_sdh: fix alloc size for private data mmc: sdhci-s3c: add platform_8bit_width() hook mmc: jz4740: don't treat NULL clk as an error mmc: mmci: don't read command response when invalid mmc: ushc: Remove duplicate include of usb.h commit 7205649778ca4a110d6098f8defd7312f0bb7289 Merge: 0b711ca 4bb9ebc Author: Linus Torvalds Date: Fri Jan 28 06:35:51 2011 +1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (43 commits) bnx2: Eliminate AER error messages on systems not supporting it cnic: Fix big endian bug xfrm6: Don't forget to propagate peer into ipsec route. tg3: Use new VLAN code bonding: update documentation - alternate configuration. TCP: fix a bug that triggers large number of TCP RST by mistake MAINTAINERS: remove Reinette Chatre as iwlwifi maintainer rt2x00: add device id for windy31 usb device mac80211: fix a crash in ieee80211_beacon_get_tim on change_interface ipv6: Revert 'administrative down' address handling changes. textsearch: doc - fix spelling in lib/textsearch.c. USB NET KL5KUSB101: Fix mem leak in error path of kaweth_download_firmware() pch_gbe: don't use flush_scheduled_work() bnx2: Always set ETH_FLAG_TXVLAN net: clear heap allocation for ethtool_get_regs() ipv6: Always clone offlink routes. dcbnl: make get_app handling symmetric for IEEE and CEE DCBx tcp: fix bug in listening_get_next() inetpeer: Use correct AVL tree base pointer in inet_getpeer(). GRO: fix merging a paged skb after non-paged skbs ... commit 0b711cac8b9e604c93b32ca6e0b6b73261056d65 Merge: b17b849 a20f0bc Author: Linus Torvalds Date: Fri Jan 28 06:34:19 2011 +1000 Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging: hwmon: (lis3) turn down the no IRQ message hwmon: (asus_atk0110) Override interface detection on Sabertooth X58 hwmon: (applesmc) Properly initialize lockdep attributes commit b17b849946e581ad58af74933d4fb63ad8812937 Merge: 785eb10 c3810c8 Author: Linus Torvalds Date: Fri Jan 28 06:32:49 2011 +1000 Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: PM / Runtime: Don't enable interrupts while running in_interrupt commit 785eb10b9f1cf1a1b9e3bb5175da04dc0ffba553 Merge: 6fb1b30 6cb8e87 Author: Linus Torvalds Date: Fri Jan 28 06:32:05 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6: avr32: add missing include causing undefined pgtable_page_* references commit ee2c9258501f83d3ed0fd09ce5df1cec53312cf0 Author: Shirish Pargaonkar Date: Thu Jan 27 09:58:04 2011 -0600 cifs: More crypto cleanup (try #2) Replaced md4 hashing function local to cifs module with kernel crypto APIs. As a result, md4 hashing function and its supporting functions in file md4.c are not needed anymore. Cleaned up function declarations, removed forward function declarations, and removed a header file that is being deleted from being included. Verified that sec=ntlm/i, sec=ntlmv2/i, and sec=ntlmssp/i work correctly. Signed-off-by: Shirish Pargaonkar Reviewed-by: Jeff Layton Signed-off-by: Steve French commit 6ae4bd1f0bc479984f30061b5e5116060c24a267 Author: Catalin Marinas Date: Thu Jan 27 10:30:26 2011 +0000 kmemleak: Allow kmemleak metadata allocations to fail This patch adds __GFP_NORETRY and __GFP_NOMEMALLOC flags to the kmemleak metadata allocations so that it has a smaller effect on the users of the kernel slab allocator. Since kmemleak allocations can now fail more often, this patch also reduces the verbosity by passing __GFP_NOWARN and not dumping the stack trace when a kmemleak allocation fails. Signed-off-by: Catalin Marinas Reported-by: Toralf Förster Acked-by: Pekka Enberg Acked-by: David Rientjes Cc: Ted Ts'o commit 0a08739e81671de2cb690774937fe510c000b27f Author: Jesper Juhl Date: Sat Oct 30 23:43:05 2010 +0200 kmemleak: remove memset by using kzalloc We don't need to memset if we just use kzalloc() rather than kmalloc() in kmemleak_test_init(). Signed-off-by: Jesper Juhl Reviewed-by: Minchan Kim Signed-off-by: Catalin Marinas commit 23febeddbe67e5160929f7c48f7bfe83c2eecb99 Author: Stefano Stabellini Date: Wed Jan 26 17:07:27 2011 +0000 xen/setup: Route halt operations to safe_halt pvop. With this patch, the cpuidle driver does not load and does not issue the mwait operations. Instead the hypervisor is doing them (b/c we call the safe_halt pvops call). This fixes quite a lot of bootup issues wherein the user had to force interrupts for the continuation of the bootup. Details are discussed in: http://lists.xensource.com/archives/html/xen-devel/2011-01/msg00535.html [v2: Wrote the commit description] Reported-by: Daniel De Graaf Tested-by: Daniel De Graaf Signed-off-by: Konrad Rzeszutek Wilk commit 7cb31b752c71e0bd405c1139e1907c3335877dff Author: Stefano Stabellini Date: Thu Jan 27 10:13:25 2011 -0500 xen/e820: Guard against E820_RAM not having page-aligned size or start. Under Dell Inspiron 1525, and Intel SandyBridge SDP's the BIOS e820 RAM is not page-aligned: [ 0.000000] Xen: 0000000000100000 - 00000000df66d800 (usable) We were not handling that and ended up setting up a pagetable that included up to df66e000 with the disastrous effect that when memset(NODE_DATA(nodeid), 0, sizeof(pg_data_t)); tried to clear the page it would crash at the 2K mark. Initially reported by Michael Young @ http://lists.xensource.com/archives/html/xen-devel/2011-01/msg00108.html The fix is to page-align the size and also take into consideration the start of the E820 (in case that is not page-aligned either). This fixes the bootup failure on those affected machines. This patch is a rework of the Micheal A Young initial patch and considers the case if the start is not page-aligned. Reported-by: Michael A Young Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Michael A Young commit cf04d120d9413de581437cf9a29f138ec1178f65 Author: Stefan Bader Date: Thu Jan 27 10:03:14 2011 -0500 xen/p2m: Mark INVALID_P2M_ENTRY the mfn_list past max_pfn. In case the mfn_list does not have enough entries to fill a p2m page we do not want the entries from max_pfn up to the boundary to be filled with unknown values. Hence set them to INVALID_P2M_ENTRY. Signed-off-by: Konrad Rzeszutek Wilk commit b48b5f51568977592f1bfce91c1c6378b0a5a4f5 Author: Colin Cross Date: Sat Jan 22 21:24:14 2011 -0800 ARM: tegra: clock: Add forward reference to struct clk Signed-off-by: Colin Cross commit cc939754db459d9caf3d77eef4f8a58bd8e15077 Author: Colin Cross Date: Sun Nov 28 20:14:53 2010 -0800 ARM: tegra: irq: Rename gic pointers to avoid conflicts A future patch will export gic_mask_irq and gic_unmask_irq. Rename the pointers in arch/arm/mach-tegra/irq.c to avoid a compile error. Signed-off-by: Colin Cross commit 867996cb4fc51aeccb2148f30356a00352e0f22f Author: Grant Likely Date: Sat Jan 15 22:41:27 2011 -0700 arm/tegra: Fix tegra irq_data conversion Commit 37337a8d5e68d6e19075dbdb3acf4f1011dae972, "ARM: tegra: irq_data conversion." missed changing one reference to 'irq' in the function tegra_gpio_irq_set_type(). This patch fixes the build error. Signed-off-by: Grant Likely Acked-by: Lennert Buytenhek Acked-by: Olof Johansson Signed-off-by: Colin Cross commit fa6bee46a655a750afb9a78a7ddf9a3bcda97db8 Author: Alex Deucher Date: Tue Jan 25 11:55:50 2011 -0500 drm/radeon/kms: fix r6xx+ scanout on BE systems R6xx+ have per-block swappers. BE content in the framebuffer will now be swapped properly during scanout. Untested, however, the same code is reported working in the UMS ddx. Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit d75ee3be44380040b9d2c7925298dc52e049768d Author: Alex Deucher Date: Mon Jan 24 23:24:59 2011 -0500 drm/radeon/kms: clean up some magic numbers Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit 9453d621186426500aa50049dfa0a8b15c86201d Author: Alex Deucher Date: Mon Jan 24 22:25:48 2011 -0500 drm/radeon/kms: only enable HDMI mode if radeon audio is enabled Force DVI mode if the user specifies radeon.audio=0. The driver doesn't handle HDMI mode properly in some cases. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=27731 Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit 6bba2e116808ca12e30c8d88dfedabf8b8d67390 Author: Jerome Glisse Date: Wed Jan 26 17:51:03 2011 -0500 radeon/kms: fix dp displayport mode validation Check if there is a big enough dp clock & enough dp lane to drive the video mode provided. Signed-off-by: Jerome Glisse Reviewed-By: Alex Deucher Cc: Signed-off-by: Dave Airlie commit 7db37c5e6575b229a5051be1d3ef15257ae0ba5d Author: Dave Chinner Date: Thu Jan 27 12:02:00 2011 +1100 xfs: fix log ticket leak on forced shutdown. The kmemleak detector shows this after test 139: unreferenced object 0xffff880079b88bb0 (size 264): comm "xfs_io", pid 4904, jiffies 4294909382 (age 276.824s) hex dump (first 32 bytes): 00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N.......... ff ff ff ff ff ff ff ff 48 7b c9 82 ff ff ff ff ........H{...... backtrace: [] kmemleak_alloc+0x2d/0x60 [] kmem_cache_alloc+0x13f/0x2b0 [] kmem_zone_alloc+0x77/0xf0 [] kmem_zone_zalloc+0x1e/0x50 [] xlog_ticket_alloc+0x34/0x170 [] xlog_cil_push+0xa4/0x3f0 [] xlog_cil_force_lsn+0x15a/0x160 [] _xfs_log_force_lsn+0x75/0x2d0 [] _xfs_trans_commit+0x2bd/0x2f0 [] xfs_iomap_write_allocate+0x1ad/0x350 [] xfs_map_blocks+0x21f/0x370 [] xfs_vm_writepage+0x1c7/0x550 [] __writepage+0x1a/0x50 [] write_cache_pages+0x1c2/0x4c0 [] generic_writepages+0x27/0x30 [] xfs_vm_writepages+0x5d/0x80 By inspection, the leak occurs when xlog_write() returns and error and we jump to the abort path without dropping the reference on the active ticket. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder commit 4bb9ebc78097376b3734c6d3001a96aecac0f7bb Author: Michael Chan Date: Tue Jan 25 22:14:51 2011 +0000 bnx2: Eliminate AER error messages on systems not supporting it On PPC for example, AER is not supported and we see unnecessary AER error message without this patch: bnx2 0003:01:00.1: pci_cleanup_aer_uncorrect_error_status failed 0xfffffffb Reported-by: Breno Leitao Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 5138826b52f8bc441770069b1b305e1d1426ae9e Author: Michael Chan Date: Tue Jan 25 22:14:50 2011 +0000 cnic: Fix big endian bug The chip's page tables did not set up properly on big endian machines, causing EEH errors on PPC machines. Reported-by: Breno Leitao Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 7cc2edb83447775a34ed3bf9d29d8295a434b523 Author: David S. Miller Date: Wed Jan 26 13:41:03 2011 -0800 xfrm6: Don't forget to propagate peer into ipsec route. Like ipv4, we have to propagate the ipv6 route peer into the ipsec top-level route during instantiation. Signed-off-by: David S. Miller commit 34c92049ac15dcb731dc455d165b4c3c1df569cf Author: Matt Carlson Date: Wed Jan 26 13:13:10 2011 -0800 tg3: Use new VLAN code This patch pivots the tg3 driver to the new VLAN infrastructure. All references to vlgrp have been removed. The driver still attempts to disable VLAN tag stripping if CONFIG_VLAN_8021Q or CONFIG_VLAN_8021Q_MODULE is not defined. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 9b6941d8b103fe95d1a90b7996046be9ee0e55e4 Merge: de221bd acd9f9c Author: David S. Miller Date: Wed Jan 26 11:49:49 2011 -0800 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 commit ded9f5238bb719737f82b0b5b957937cb0203804 Author: David Henningsson Date: Wed Jan 26 11:46:12 2011 +0100 ALSA: HDA: Fix automute on Thinkpad L412/L512 BugLink: http://bugs.launchpad.net/bugs/707902 More Thinkpad machines with invalid SKU found, that disables automute between speakers and headphones on these machines. Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai commit 6cb8e872c800be55496a56d1e1a6aafba8fa936d Author: Hans-Christian Egtvedt Date: Mon Jan 24 13:51:58 2011 +0100 avr32: add missing include causing undefined pgtable_page_* references This patch adds the linux/mm.h header file to the AVR32 arch pgalloc.c implementation to fix the undefined reference to pgtable_page_ctor() and pgtable_page_dtor(). Signed-off-by: Hans-Christian Egtvedt commit 05ca62c6ca17f39b88fa956d5ebc1fa6e93ad5e3 Author: Paul Turner Date: Fri Jan 21 20:45:02 2011 -0800 sched: Use rq->clock_task instead of rq->clock for correctly maintaining load averages The delta in clock_task is a more fair attribution of how much time a tg has been contributing load to the current cpu. While not really important it also means we're more in sync (by magnitude) with respect to periodic updates (since __update_curr deltas are clock_task based). Signed-off-by: Paul Turner Signed-off-by: Peter Zijlstra LKML-Reference: <20110122044852.007092349@google.com> Signed-off-by: Ingo Molnar commit b815f1963e47b9b69bb17e0588bd5af5b1114ae0 Author: Paul Turner Date: Fri Jan 21 20:45:00 2011 -0800 sched: Fix/remove redundant cfs_rq checks Since updates are against an entity's queuing cfs_rq it's not possible to enter update_cfs_{shares,load} with a NULL cfs_rq. (Indeed, update_cfs_load would crash prior to the check if we did anyway since we load is examined during the initializers). Also, in the update_cfs_load case there's no point in maintaining averages for rq->cfs_rq since we don't perform shares distribution at that level -- NULL check is replaced accordingly. Thanks to Dan Carpenter for pointing out the deference before NULL check. Signed-off-by: Paul Turner Signed-off-by: Peter Zijlstra LKML-Reference: <20110122044851.825284940@google.com> Signed-off-by: Ingo Molnar commit e37b6a7b27b400c3aa488db8c6629a05095bc79c Author: Paul Turner Date: Fri Jan 21 20:44:59 2011 -0800 sched: Fix sign under-flows in wake_affine While care is taken around the zero-point in effective_load to not exceed the instantaneous rq->weight, it's still possible (e.g. using wake_idx != 0) for (load + effective_load) to underflow. In this case the comparing the unsigned values can result in incorrect balanced decisions. Signed-off-by: Paul Turner Signed-off-by: Peter Zijlstra LKML-Reference: <20110122044851.734245014@google.com> Signed-off-by: Ingo Molnar commit 52bb4a7391321b9f32c0b6e032d0a5e1796f1968 Merge: 6663050 5d07929 Author: Dave Airlie Date: Wed Jan 26 17:12:42 2011 +1000 Merge branch 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes * 'drm-nouveau-next' of git://git.freedesktop.org/git/nouveau/linux-2.6: drm/nvc0/grctx: correct an off-by-one drm/nv50: Fix race with PFIFO during PGRAPH context destruction. drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200. drm/nvc0: implement irq handler for whatever's at 0x14xxxx drm/nvc0: fix incorrect TPC register setup drm/nouveau: probe for adt7473 before f75375 drm/nouveau: remove dead function definition commit 889a7a6a5d5e64063effd40056bdc7b8fb336bd1 Author: Eric Dumazet Date: Tue Jan 25 17:31:54 2011 +0100 percpu, x86: Fix percpu_xchg_op() These recent percpu commits: 2485b6464cf8: x86,percpu: Move out of place 64 bit ops into X86_64 section 8270137a0d50: cpuops: Use cmpxchg for xchg to avoid lock semantics Caused this 'perf top' crash: Kernel panic - not syncing: Fatal exception in interrupt Pid: 0, comm: swapper Tainted: G D 2.6.38-rc2-00181-gef71723 #413 Call Trace: [] ? panic ? kmsg_dump ? kmsg_dump ? oops_end ? no_context ? __bad_area_nosemaphore ? perf_output_begin ? bad_area_nosemaphore ? do_page_fault ? __task_pid_nr_ns ? perf_event_tid ? __perf_event_header__init_id ? validate_chain ? perf_output_sample ? trace_hardirqs_off ? page_fault ? irq_work_run ? update_process_times ? tick_sched_timer ? tick_sched_timer ? __run_hrtimer ? hrtimer_interrupt ? account_system_vtime ? smp_apic_timer_interrupt ? apic_timer_interrupt ... Looking at assembly code, I found: list = this_cpu_xchg(irq_work_list, NULL); gives this wrong code : (gcc-4.1.2 cross compiler) ffffffff810bc45e: mov %gs:0xead0,%rax cmpxchg %rax,%gs:0xead0 jne ffffffff810bc45e test %rax,%rax je ffffffff810bc4aa Tell gcc we dirty eax/rax register in percpu_xchg_op() Compiler must use another register to store pxo_new__ We also dont need to reload percpu value after a jump, since a 'failed' cmpxchg already updated eax/rax Wrong generated code was : xor %rax,%rax /* load 0 into %rax */ 1: mov %gs:0xead0,%rax cmpxchg %rax,%gs:0xead0 jne 1b test %rax,%rax After patch : xor %rdx,%rdx /* load 0 into %rdx */ mov %gs:0xead0,%rax 1: cmpxchg %rdx,%gs:0xead0 jne 1b: test %rax,%rax Signed-off-by: Eric Dumazet Cc: Arnaldo Carvalho de Melo Cc: Linus Torvalds Cc: Frederic Weisbecker Cc: Steven Rostedt Cc: Peter Zijlstra Cc: Christoph Lameter Cc: Tejun Heo LKML-Reference: <1295973114.3588.312.camel@edumazet-laptop> Signed-off-by: Ingo Molnar commit 9a57c3e487d25f69715705dfeef6eb9e4d666ad7 Author: Yinghai Lu Date: Mon Jan 24 17:13:53 2011 -0800 x86: Remove left over system_64.h Left-over from the x86 merge ... Signed-off-by: Yinghai Lu LKML-Reference: <4D3E23D1.7010405@kernel.org> Signed-off-by: Ingo Molnar commit 6fb1b304255efc5c4c93874ac8c066272e257e28 Merge: ac751ef 409550f Author: Linus Torvalds Date: Wed Jan 26 16:31:44 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: wacom - pass touch resolution to clients through input_absinfo Input: wacom - add 2 Bamboo Pen and touch models Input: sysrq - ensure sysrq_enabled and __sysrq_enabled are consistent Input: sparse-keymap - fix KEY_VSW handling in sparse_keymap_setup Input: tegra-kbc - add tegra keyboard driver Input: gpio_keys - switch to using request_any_context_irq Input: serio - allow registered drivers to get status flag Input: ct82710c - return proper error code for ct82c710_open Input: bu21013_ts - added regulator support Input: bu21013_ts - remove duplicate resolution parameters Input: tnetv107x-ts - don't treat NULL clk as an error Input: tnetv107x-keypad - don't treat NULL clk as an error Fix up trivial conflicts in drivers/input/keyboard/Makefile due to additions of tc3589x/Tegra drivers commit a34650f0f1ca589cda09c48cb62baf15e680a247 Author: Sonic Zhang Date: Tue Jan 11 22:39:35 2011 -0500 mmc: bfin_sdh: fix alloc size for private data The bfin_sdh driver allocates the wrong size for the private data in the mmc_host. The first parameter of mmc_alloc_host should be the size of the local driver struct rather than the common mmc_host. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger Cc: Signed-off-by: Chris Ball commit 548f07d2a36a4b085c059edb25edb3cd8d71fe3e Author: Jaehoon Chung Date: Wed Jan 12 11:59:12 2011 +0900 mmc: sdhci-s3c: add platform_8bit_width() hook We have 8-bit width support but is not a v3 controller. So we need platform_8bit_width() to support 8-bit buswidth. Also we need MMC_CAP_8_BIT_DATA, so we add it in platdata. This gets 8-bit support working again on s3c, after we previously disabled 8-bit by default on non-v3 controllers. Signed-off-by: Jaehoon Chung Signed-off-by: Kyungmin Park Signed-off-by: Chris Ball commit c7a360b05b5430ac1d75dc7d53c586ada60a05cb Author: Andy Adamson Date: Tue Jan 25 19:15:32 2011 -0500 NFS construct consistent co_ownerid for v4.1 As stated in section 2.4 of RFC 5661, subsequent instances of the client need to present the same co_ownerid. Concatinate the client's IP dot address, host name, and the rpc_auth pseudoflavor to form the co_ownerid. Signed-off-by: Andy Adamson Signed-off-by: Trond Myklebust commit 3119cbda858fc9ae10a69919e5f278abd6d93bb5 Author: Jamie Iles Date: Tue Jan 11 12:43:50 2011 +0000 mmc: jz4740: don't treat NULL clk as an error clk_get() returns a struct clk cookie to the driver and some platforms may return NULL if they only support a single clock. clk_get() has only failed if it returns a ERR_PTR() encoded pointer. Signed-off-by: Jamie Iles Signed-off-by: Chris Ball commit 9047b435a0b43952f5d1f7eb15a9b63a36efc7f2 Author: Russell King - ARM Linux Date: Tue Jan 11 16:35:56 2011 +0000 mmc: mmci: don't read command response when invalid Don't read the command response from the registers when either the command timed out (because there was no response from the card) or the checksum on the response was invalid. Signed-off-by: Russell King Signed-off-by: Chris Ball commit 021cb59ae3869fb18ebc9fceb959f379c5ca835c Author: Jesper Juhl Date: Mon Jan 10 21:56:08 2011 +0100 mmc: ushc: Remove duplicate include of usb.h Including usb.h once is enough in drivers/mmc/host/ushc.c This removes the duplicate. Signed-off-by: Jesper Juhl Signed-off-by: Chris Ball commit 409550f2902470f0387fe40a7db441526e16b2c0 Author: Ping Cheng Date: Tue Jan 25 18:03:13 2011 -0800 Input: wacom - pass touch resolution to clients through input_absinfo Also remove fake ABS_RX/ABS_RY "axes" that were used to report physical dimensions now that we have better way. Signed-off-by: Ping Cheng Reviewed-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov commit ac751efa6a0d70f2c9daef5c7e3a92270f5c2dff Author: Torben Hohn Date: Tue Jan 25 15:07:35 2011 -0800 console: rename acquire/release_console_sem() to console_lock/unlock() The -rt patches change the console_semaphore to console_mutex. As a result, a quite large chunk of the patches changes all acquire/release_console_sem() to acquire/release_console_mutex() This commit makes things use more neutral function names which dont make implications about the underlying lock. The only real change is the return value of console_trylock which is inverted from try_acquire_console_sem() This patch also paves the way to switching console_sem from a semaphore to a mutex. [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: make console_trylock return 1 on success, per Geert] Signed-off-by: Torben Hohn Cc: Thomas Gleixner Cc: Greg KH Cc: Ingo Molnar Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3689456b4bd36027022b3215eb2acba51cd0e6b5 Author: Phillip Lougher Date: Tue Jan 25 15:07:34 2011 -0800 squashfs: fix use of uninitialised variable in zlib & xz decompressors Fix potential use of uninitialised variable caused by recent decompressor code optimisations. In zlib_uncompress (zlib_wrapper.c) we have int zlib_err, zlib_init = 0; ... do { ... if (avail == 0) { offset = 0; put_bh(bh[k++]); continue; } ... zlib_err = zlib_inflate(stream, Z_SYNC_FLUSH); ... } while (zlib_err == Z_OK); If continue is executed (avail == 0) then the while condition will be evaluated testing zlib_err, which is uninitialised first time around the loop. Fix this by getting rid of the 'if (avail == 0)' condition test, this edge condition should not be being handled in the decompressor code, and instead handle it generically in the caller code. Similarly for xz_wrapper.c. Incidentally, on most architectures (bar Mips and Parisc), no uninitialised variable warning is generated by gcc, this is because the while condition test on continue is optimised out and not performed (when executing continue zlib_err has not been changed since entering the loop, and logically if the while condition was true previously, then it's still true). Signed-off-by: Phillip Lougher Reported-by: Jesper Juhl Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ac15ee691fe84cb46cbd2497ddcb10e246f7ee47 Author: Toshiyuki Okajima Date: Tue Jan 25 15:07:32 2011 -0800 radix_tree: radix_tree_gang_lookup_tag_slot() may never return Executed command: fsstress -d /mnt -n 600 -p 850 crash> bt PID: 7947 TASK: ffff880160546a70 CPU: 0 COMMAND: "fsstress" #0 [ffff8800dfc07d00] machine_kexec at ffffffff81030db9 #1 [ffff8800dfc07d70] crash_kexec at ffffffff810a7952 #2 [ffff8800dfc07e40] oops_end at ffffffff814aa7c8 #3 [ffff8800dfc07e70] die_nmi at ffffffff814aa969 #4 [ffff8800dfc07ea0] do_nmi_callback at ffffffff8102b07b #5 [ffff8800dfc07f10] do_nmi at ffffffff814aa514 #6 [ffff8800dfc07f50] nmi at ffffffff814a9d60 [exception RIP: __lookup_tag+100] RIP: ffffffff812274b4 RSP: ffff88016056b998 RFLAGS: 00000287 RAX: 0000000000000000 RBX: 0000000000000002 RCX: 0000000000000006 RDX: 000000000000001d RSI: ffff88016056bb18 RDI: ffff8800c85366e0 RBP: ffff88016056b9c8 R8: ffff88016056b9e8 R9: 0000000000000000 R10: 000000000000000e R11: ffff8800c8536908 R12: 0000000000000010 R13: 0000000000000040 R14: ffffffffffffffc0 R15: ffff8800c85366e0 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 #7 [ffff88016056b998] __lookup_tag at ffffffff812274b4 #8 [ffff88016056b9d0] radix_tree_gang_lookup_tag_slot at ffffffff81227605 #9 [ffff88016056ba20] find_get_pages_tag at ffffffff810fc110 #10 [ffff88016056ba80] pagevec_lookup_tag at ffffffff81105e85 #11 [ffff88016056baa0] write_cache_pages at ffffffff81104c47 #12 [ffff88016056bbd0] generic_writepages at ffffffff81105014 #13 [ffff88016056bbe0] do_writepages at ffffffff81105055 #14 [ffff88016056bbf0] __filemap_fdatawrite_range at ffffffff810fb2cb #15 [ffff88016056bc40] filemap_write_and_wait_range at ffffffff810fb32a #16 [ffff88016056bc70] generic_file_direct_write at ffffffff810fb3dc #17 [ffff88016056bce0] __generic_file_aio_write at ffffffff810fcee5 #18 [ffff88016056bda0] generic_file_aio_write at ffffffff810fd085 #19 [ffff88016056bdf0] do_sync_write at ffffffff8114f9ea #20 [ffff88016056bf00] vfs_write at ffffffff8114fcf8 #21 [ffff88016056bf30] sys_write at ffffffff81150691 #22 [ffff88016056bf80] system_call_fastpath at ffffffff8100c0b2 I think this root cause is the following: radix_tree_range_tag_if_tagged() always tags the root tag with settag if the root tag is set with iftag even if there are no iftag tags in the specified range (Of course, there are some iftag tags outside the specified range). =============================================================================== [[[Detailed description]]] (1) Why cannot radix_tree_gang_lookup_tag_slot() return forever? __lookup_tag(): - Return with 0. - Return with the index which is not bigger than the old one as the input parameter. Therefore the following "while" repeats forever because the above conditions cause "ret" not to be updated and the cur_index cannot be changed into the bigger one. (So, radix_tree_gang_lookup_tag_slot() cannot return forever.) radix_tree_gang_lookup_tag_slot(): 1178 while (ret < max_items) { 1179 unsigned int slots_found; 1180 unsigned long next_index; /* Index of next search */ 1181 1182 if (cur_index > max_index) 1183 break; 1184 slots_found = __lookup_tag(node, results + ret, 1185 cur_index, max_items - ret, &next_index, tag); 1186 ret += slots_found; // cannot update ret because slots_found == 0. // so, this while loops forever. 1187 if (next_index == 0) 1188 break; 1189 cur_index = next_index; 1190 } (2) Why does __lookup_tag() return with 0 and doesn't update the index? Assuming the following: - the one of the slot in radix_tree_node is NULL. - the one of the tag which corresponds to the slot sets with PAGECACHE_TAG_TOWRITE or other. - In a certain height(!=0), the corresponding index is 0. a) __lookup_tag() notices that the tag is set. 1005 static unsigned int 1006 __lookup_tag(struct radix_tree_node *slot, void ***results, unsigned long index, 1007 unsigned int max_items, unsigned long *next_index, unsigned int tag) 1008 { 1009 unsigned int nr_found = 0; 1010 unsigned int shift, height; 1011 1012 height = slot->height; 1013 if (height == 0) 1014 goto out; 1015 shift = (height-1) * RADIX_TREE_MAP_SHIFT; 1016 1017 while (height > 0) { 1018 unsigned long i = (index >> shift) & RADIX_TREE_MAP_MASK ; 1019 1020 for (;;) { 1021 if (tag_get(slot, tag, i)) 1022 break; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * the index is not updated yet. b) __lookup_tag() notices that the slot is NULL. 1023 index &= ~((1UL << shift) - 1); 1024 index += 1UL << shift; 1025 if (index == 0) 1026 goto out; /* 32-bit wraparound */ 1027 i++; 1028 if (i == RADIX_TREE_MAP_SIZE) 1029 goto out; 1030 } 1031 height--; 1032 if (height == 0) { /* Bottom level: grab some items */ ... 1055 } 1056 shift -= RADIX_TREE_MAP_SHIFT; 1057 slot = rcu_dereference_raw(slot->slots[i]); 1058 if (slot == NULL) 1059 break; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ c) __lookup_tag() doesn't update the index and return with 0. 1060 } 1061 out: 1062 *next_index = index; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1063 return nr_found; 1064 } (3) Why is the slot NULL even if the tag is set? Because radix_tree_range_tag_if_tagged() always sets the root tag with PAGECACHE_TAG_TOWRITE if the root tag is set with PAGECACHE_TAG_DIRTY, even if there is no tag which can be set with PAGECACHE_TAG_TOWRITE in the specified range (from *first_indexp to last_index). Of course, some PAGECACHE_TAG_DIRTY nodes must exist outside the specified range. (radix_tree_range_tag_if_tagged() is called only from tag_pages_for_writeback()) 640 unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root, 641 unsigned long *first_indexp, unsigned long last_index, 642 unsigned long nr_to_tag, 643 unsigned int iftag, unsigned int settag) 644 { 645 unsigned int height = root->height; 646 struct radix_tree_path path[height]; 647 struct radix_tree_path *pathp = path; 648 struct radix_tree_node *slot; 649 unsigned int shift; 650 unsigned long tagged = 0; 651 unsigned long index = *first_indexp; 652 653 last_index = min(last_index, radix_tree_maxindex(height)); 654 if (index > last_index) 655 return 0; 656 if (!nr_to_tag) 657 return 0; 658 if (!root_tag_get(root, iftag)) { 659 *first_indexp = last_index + 1; 660 return 0; 661 } 662 if (height == 0) { 663 *first_indexp = last_index + 1; 664 root_tag_set(root, settag); 665 return 1; 666 } ... 733 root_tag_set(root, settag); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 734 *first_indexp = index; 735 736 return tagged; 737 } As the result, there is no radix_tree_node which is set with PAGECACHE_TAG_TOWRITE but the root tag(radix_tree_root) is set with PAGECACHE_TAG_TOWRITE. [figure: inside radix_tree] (Please see the figure with typewriter font) =========================================== [roottag = DIRTY] | tag=0:NOTHING tag[0 0 0 1] 1:DIRTY [x x x +] 2:WRITEBACK | 3:DIRTY,WRITEBACK p 4:TOWRITE <---> 5:DIRTY,TOWRITE ... specified range (index: 0 to 2) * There is no DIRTY tag within the specified range. (But there is a DIRTY tag outside that range.) | | | | | | | | | after calling tag_pages_for_writeback() | | | | | | | | | v v v v v v v v v [roottag = DIRTY,TOWRITE] | p is "page". tag[0 0 0 1] x is NULL. [x x x +] +- is a pointer to "page". | p * But TOWRITE tag is set on the root tag. ============================================ After that, radix_tree_extend() via radix_tree_insert() is called when the page is added. This function sets the new radix_tree_node with PAGECACHE_TAG_TOWRITE to succeed the status of the root tag. 246 static int radix_tree_extend(struct radix_tree_root *root, unsigned long index) 247 { 248 struct radix_tree_node *node; 249 unsigned int height; 250 int tag; 251 252 /* Figure out what the height should be. */ 253 height = root->height + 1; 254 while (index > radix_tree_maxindex(height)) 255 height++; 256 257 if (root->rnode == NULL) { 258 root->height = height; 259 goto out; 260 } 261 262 do { 263 unsigned int newheight; 264 if (!(node = radix_tree_node_alloc(root))) 265 return -ENOMEM; 266 267 /* Increase the height. */ 268 node->slots[0] = radix_tree_indirect_to_ptr(root->rnode); 269 270 /* Propagate the aggregated tag info into the new root */ 271 for (tag = 0; tag < RADIX_TREE_MAX_TAGS; tag++) { 272 if (root_tag_get(root, tag)) 273 tag_set(node, tag, 0); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 274 } =========================================== [roottag = DIRTY,TOWRITE] | : tag[0 0 0 1] [0 0 0 0] [x x x +] [+ x x x] | | p p (new page) | | | | | | | | | after calling radix_tree_insert | | | | | | | | | v v v v v v v v v [roottag = DIRTY,TOWRITE] | tag [5 0 0 0] * DIRTY and TOWRITE tags are [+ + x x] succeeded to the new node. | | tag [0 0 0 1] [0 0 0 0] [x x x +] [+ x x x] | | p p ============================================ After that, the index 3 page is released by remove_from_page_cache(). Then we can make the situation that the tag is set with PAGECACHE_TAG_TOWRITE and that the slot which corresponds to the tag is NULL. =========================================== [roottag = DIRTY,TOWRITE] | tag [5 0 0 0] [+ + x x] | | tag [0 0 0 1] [0 0 0 0] [x x x +] [+ x x x] | | p p (remove) | | | | | | | | | after calling remove_page_cache | | | | | | | | | v v v v v v v v v [roottag = DIRTY,TOWRITE] | tag [4 0 0 0] * Only DIRTY tag is cleared [x + x x] because no TOWRITE tag is existed | in the bottom node. [0 0 0 0] [+ x x x] | p ============================================ To solve this problem Change to that radix_tree_tag_if_tagged() doesn't tag the root tag if it doesn't set any tags within the specified range. Like this. ============================================ 640 unsigned long radix_tree_range_tag_if_tagged(struct radix_tree_root *root, 641 unsigned long *first_indexp, unsigned long last_index, 642 unsigned long nr_to_tag, 643 unsigned int iftag, unsigned int settag) 644 { 650 unsigned long tagged = 0; ... 733 if (tagged) ^^^^^^^^^^^^^^^^^^^^^^^^ 734 root_tag_set(root, settag); 735 *first_indexp = index; 736 737 return tagged; 738 } ============================================ Signed-off-by: Toshiyuki Okajima Acked-by: Jan Kara Cc: Dave Chinner Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1817dc0370873caff77b924b53ae489edaf9b1e2 Author: Voss, Nikolaus Date: Tue Jan 25 15:07:29 2011 -0800 drivers/clocksource/tcb_clksrc.c: fix init sequence setup_irq() was called before clockevents_register_device() which is needed by the irq handler. Bug was reproducible by restarting the kernel using kexec (reliable crash). Signed-off-by: Nikolaus Voss Cc: David Brownell Cc: Haavard Skinnemoen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 52dbb9050936fd33ceb45f10529dbc992507c058 Author: KAMEZAWA Hiroyuki Date: Tue Jan 25 15:07:29 2011 -0800 memcg: fix race at move_parent around compound_order() A fix up mem_cgroup_move_parent() which use compound_order() in asynchronous manner. This compound_order() may return unknown value because we don't take lock. Use PageTransHuge() and HPAGE_SIZE instead of it. Also clean up for mem_cgroup_move_parent(). - remove unnecessary initialization of local variable. - rename charge_size -> page_size - remove unnecessary (wrong) comment. - added a comment about THP. Note: Current design take compound_page_lock() in caller of move_account(). This should be revisited when we implement direct move_task of hugepage without splitting. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: KAMEZAWA Hiroyuki Reviewed-by: Johannes Weiner Acked-by: Daisuke Nishimura Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3d37c4a9199920964ffdfaec6335d93b9dcf9ca5 Author: KAMEZAWA Hiroyuki Date: Tue Jan 25 15:07:28 2011 -0800 memcg: bugfix check mem_cgroup_disabled() at split fixup mem_cgroup_disabled() should be checked at splitting. If disabled, no heavy work is necesary. Signed-off-by: KAMEZAWA Hiroyuki Acked-by: Daisuke Nishimura Reviewed-by: Johannes Weiner Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 01c88e2d6b7330c0cc5867fe2297e7d826e1337d Author: KAMEZAWA Hiroyuki Date: Tue Jan 25 15:07:27 2011 -0800 memcg: fix account leak at failure of memsw acconting Commit 4b53433468 ("memcg: clean up try_charge main loop") removes a cancel of charge at case: memory charge-> success. mem+swap charge-> failure. This leaks usage of memory. Fix it. Signed-off-by: KAMEZAWA Hiroyuki Reviewed-by: Johannes Weiner Acked-by: Daisuke Nishimura Cc: Balbir Singh Cc: [2.6.36+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 28bd65781c848d95ba6a7f58b5c4b8265a804ec6 Author: Minchan Kim Date: Tue Jan 25 15:07:26 2011 -0800 mm: migration: clarify migrate_pages() comment Callers of migrate_pages should putback_lru_pages to return pages isolated to LRU or free list. Now comment is rather confusing. It says caller always have to call it. It is more clear to point out that the caller has to call it if migrate_pages's return value isn't zero. Signed-off-by: Minchan Kim Cc: Christoph Lameter Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 33a938774fdb9933e9c77504b035f4f87c0859df Author: Andrea Arcangeli Date: Tue Jan 25 15:07:25 2011 -0800 mm: compaction: don't depend on HUGETLB_PAGE Commit 5d6892407 ("thp: select CONFIG_COMPACTION if TRANSPARENT_HUGEPAGE enabled") causes this warning during the configuration process: warning: (TRANSPARENT_HUGEPAGE) selects COMPACTION which has unmet direct dependencies (EXPERIMENTAL && HUGETLB_PAGE && MMU) COMPACTION doesn't depend on HUGETLB_PAGE, it doesn't depend on THP either, it is also useful for regular alloc_pages(order > 0) including the very kernel stack during fork (THREAD_ORDER = 1). It's always better to enable COMPACTION. The warning should be an error because we would end up with MIGRATION not selected, and COMPACTION wouldn't work without migration (despite it seems to build with an inline migrate_pages returning -ENOSYS). I'd also like to remove EXPERIMENTAL: compaction has been in the kernel for some releases (for full safety the default remains disabled which I think is enough). Signed-off-by: Andrea Arcangeli Reported-by: Luca Tettamanti Tested-by: Luca Tettamanti Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8dba474f034c322d96ada39cb20cac711d80dcb2 Author: Jesper Juhl Date: Tue Jan 25 15:07:24 2011 -0800 mm/memcontrol.c: fix uninitialized variable use in mem_cgroup_move_parent() In mm/memcontrol.c::mem_cgroup_move_parent() there's a path that jumps to the 'put_back' label ret = __mem_cgroup_try_charge(NULL, gfp_mask, &parent, false, charge); if (ret || !parent) goto put_back; where we'll if (charge > PAGE_SIZE) compound_unlock_irqrestore(page, flags); but, we have not assigned anything to 'flags' at this point, nor have we called 'compound_lock_irqsave()' (which is what sets 'flags'). The 'put_back' label should be moved below the call to compound_unlock_irqrestore() as per this patch. Signed-off-by: Jesper Juhl Cc: Balbir Singh Cc: Daisuke Nishimura Cc: KAMEZAWA Hiroyuki Cc: Pavel Emelianov Cc: "Kirill A. Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2ff754fa8f416e82327f2d8f1354a033b66286df Author: David Rientjes Date: Tue Jan 25 15:07:23 2011 -0800 mm: clear pages_scanned only if draining a pcp adds pages to the buddy allocator Commit 0e093d99763e ("writeback: do not sleep on the congestion queue if there are no congested BDIs or if significant congestion is not being encountered in the current zone") uncovered a livelock in the page allocator that resulted in tasks infinitely looping trying to find memory and kswapd running at 100% cpu. The issue occurs because drain_all_pages() is called immediately following direct reclaim when no memory is freed and try_to_free_pages() returns non-zero because all zones in the zonelist do not have their all_unreclaimable flag set. When draining the per-cpu pagesets back to the buddy allocator for each zone, the zone->pages_scanned counter is cleared to avoid erroneously setting zone->all_unreclaimable later. The problem is that no pages may actually be drained and, thus, the unreclaimable logic never fails direct reclaim so the oom killer may be invoked. This apparently only manifested after wait_iff_congested() was introduced and the zone was full of anonymous memory that would not congest the backing store. The page allocator would infinitely loop if there were no other tasks waiting to be scheduled and clear zone->pages_scanned because of drain_all_pages() as the result of this change before kswapd could scan enough pages to trigger the reclaim logic. Additionally, with every loop of the page allocator and in the reclaim path, kswapd would be kicked and would end up running at 100% cpu. In this scenario, current and kswapd are all running continuously with kswapd incrementing zone->pages_scanned and current clearing it. The problem is even more pronounced when current swaps some of its memory to swap cache and the reclaimable logic then considers all active anonymous memory in the all_unreclaimable logic, which requires a much higher zone->pages_scanned value for try_to_free_pages() to return zero that is never attainable in this scenario. Before wait_iff_congested(), the page allocator would incur an unconditional timeout and allow kswapd to elevate zone->pages_scanned to a level that the oom killer would be called the next time it loops. The fix is to only attempt to drain pcp pages if there is actually a quantity to be drained. The unconditional clearing of zone->pages_scanned in free_pcppages_bulk() need not be changed since other callers already ensure that draining will occur. This patch ensures that free_pcppages_bulk() will actually free memory before calling into it from drain_all_pages() so zone->pages_scanned is only cleared if appropriate. Signed-off-by: David Rientjes Cc: Mel Gorman Reviewed-by: Johannes Weiner Cc: Minchan Kim Cc: Wu Fengguang Cc: KAMEZAWA Hiroyuki Cc: KOSAKI Motohiro Reviewed-by: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f33261d75b88f55a08e6a9648cef73509979bfba Author: David Rientjes Date: Tue Jan 25 15:07:20 2011 -0800 mm: fix deferred congestion timeout if preferred zone is not allowed Before 0e093d99763e ("writeback: do not sleep on the congestion queue if there are no congested BDIs or if significant congestion is not being encountered in the current zone"), preferred_zone was only used for NUMA statistics, to determine the zoneidx from which to allocate from given the type requested, and whether to utilize memory compaction. wait_iff_congested(), though, uses preferred_zone to determine if the congestion wait should be deferred because its dirty pages are backed by a congested bdi. This incorrectly defers the timeout and busy loops in the page allocator with various cond_resched() calls if preferred_zone is not allowed in the current context, usually consuming 100% of a cpu. This patch ensures preferred_zone is an allowed zone in the fastpath depending on whether current is constrained by its cpuset or nodes in its mempolicy (when the nodemask passed is non-NULL). This is correct since the fastpath allocation always passes ALLOC_CPUSET when trying to allocate memory. In the slowpath, this patch resets preferred_zone to the first zone of the allowed type when the allocation is not constrained by current's cpuset, i.e. it does not pass ALLOC_CPUSET. This patch also ensures preferred_zone is from the set of allowed nodes when called from within direct reclaim since allocations are always constrained by cpusets in this context (it is blockable). Both of these uses of cpuset_current_mems_allowed are protected by get_mems_allowed(). Signed-off-by: David Rientjes Cc: Mel Gorman Cc: Johannes Weiner Cc: Minchan Kim Cc: Wu Fengguang Cc: KAMEZAWA Hiroyuki Cc: KOSAKI Motohiro Acked-by: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4f542e3dd90a96ee0f8fcb8173cb4104f5f753e6 Author: Alexander Gordeev Date: Tue Jan 25 15:07:19 2011 -0800 pps: claim parallel port exclusively Both pps_parport and pps_gen_parport are written in a way that they can't share a port with any other driver. This can result in locking up the process that loads modules or even the whole kernel if the modules are compiled in. Use PARPORT_FLAG_EXCL to indicate this. Signed-off-by: Alexander Gordeev Cc: Alexander Gordeev Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a783ac4453405b579ab7732ba3c0efc07a4b7a61 Author: Rodolfo Giometti Date: Tue Jan 25 15:07:17 2011 -0800 pps ktimer: remove noisy message Signed-off-by: Rodolfo Giometti Reported-by: Ingo Molnar Cc: Alexander Gordeev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cbeb4b7ad5346516d2ee726395eb5722b25a0a01 Author: Alexander Gordeev Date: Tue Jan 25 15:07:16 2011 -0800 parport: make lockdep happy with waitlist_lock parport_unregister_device() should never be used when interrupts are enabled in hardware and irq handler is registered so there is no need to disable interrupts when using waitlist_lock. But there is no way to explain this subtle semantics to lockdep analyzer. So disable interrupts here too to simplify things. The price is negligible. Signed-off-by: Alexander Gordeev Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0766d20fdb9178b908f0268c16b464c11822c5c2 Author: Feng Tang Date: Tue Jan 25 15:07:15 2011 -0800 langwell_gpio: modify EOI handling following change of kernel irq subsystem Latest kernel has many changes in IRQ subsystem and its interfaces, like adding "irq_eoi" for struct irq_chip, this patch is a follow up change for that. Also remove the unnecessary cast for a "void *". Signed-off-by: Feng Tang Cc: Alek Du Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8cc667be8fad9ad0bb3a95116be9f80a3b3efcf Author: Axel Lin Date: Tue Jan 25 15:07:14 2011 -0800 leds: leds-pwm: return proper error if pwm_request failed Return PTR_ERR(led_dat->pwm) instead of 0 if pwm_request failed Signed-off-by: Axel Lin Cc: Richard Purdie Cc: Luotao Fu Cc: Reviewed-by: Dmitry Torokhov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f95ba941d1bee594d536cdcbf879a0865381b903 Author: Andrew Morton Date: Tue Jan 25 15:07:11 2011 -0800 mm/pgtable-generic.c: fix CONFIG_SWAP=n build mips (and sparc32): In file included from arch/mips/include/asm/tlb.h:21, from mm/pgtable-generic.c:9: include/asm-generic/tlb.h: In function `tlb_flush_mmu': include/asm-generic/tlb.h:76: error: implicit declaration of function `release_pages' include/asm-generic/tlb.h: In function `tlb_remove_page': include/asm-generic/tlb.h:105: error: implicit declaration of function `page_cache_release' free_pages_and_swap_cache() and free_page_and_swap_cache() are macros which call release_pages() and page_cache_release(). The obvious fix is to include pagemap.h in swap.h, where those macros are defined. But that breaks sparc for weird reasons. So fix it within mm/pgtable-generic.c instead. Reported-by: Yoichi Yuasa Cc: Geert Uytterhoeven Acked-by: Sam Ravnborg Cc: Sergei Shtylyov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cacf061c5e42a040200463afccd9178ace680322 Author: Andrea Arcangeli Date: Tue Jan 25 15:07:09 2011 -0800 thp: fix PARAVIRT x86 32bit noPAE This fixes TRANSPARENT_HUGEPAGE=y with PARAVIRT=y and HIGHMEM64=n. The #ifdef that this patch removes was erratically introduced to fix a build error for noPAE (where pmd.pmd doesn't exist). So then the kernel built but it failed at runtime because set_pmd_at was a noop. This will correct it by enabling set_pmd_at for noPAE mode too. Signed-off-by: Andrea Arcangeli Reported-by: werner Reported-by: Minchan Kim Tested-by: Minchan Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6663050edd9c2e8b1e1f55c09459144d84c045f0 Merge: 3af0365 2f8e728 Author: Linus Torvalds Date: Wed Jan 26 09:04:18 2011 +1000 Merge branch 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm: ALSA: AACI: fix timeout duration ALSA: AACI: fix timeout condition checking ARM: 6636/1: ep93xx: default multiplexed gpio ports to gpio mode ARM: 6637/1: Make the argument to virt_to_phys() "const volatile" ARM: twd: ensure timer reload is reprogrammed on entry to periodic mode ARM: 6635/2: Configure reference clock for Versatile Express timers ARM: versatile: name configuration options after actual board names ARM: realview: name configuration options after actual board names ARM: realview,vexpress: fix section mismatch warning for pen_release ARM: 6632/3: mmci: stop using the blockend interrupts commit 3af03655e885ba7f48ca6318e231a7086a51082e Merge: 01ed875 0ca7a5b Author: Linus Torvalds Date: Wed Jan 26 09:03:36 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: nilfs2: fix crash after one superblock became unavailable commit 01ed875a12eacd5ece370b20ccf8f51543feb172 Merge: 8348ad7 5df1abd Author: Linus Torvalds Date: Wed Jan 26 09:02:55 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: m68k/amiga: Fix "debug=mem" m68k/atari: Rename "scc" to "atari_scc" m68k: Uninline strchr() commit 8348ad7c178627a302d579906096108b02052730 Merge: 9948d37 170c7ab Author: Linus Torvalds Date: Wed Jan 26 09:02:14 2011 +1000 Merge branch 'rmobile-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 * 'rmobile-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: ARM: mach-shmobile: AG5EVM LCDC / MIPI-DSI platform data ARM: mach-shmobile: sh73a0 CPGA fix for PLL CFG bit ARM: mach-shmobile: mackerel: clarify shdi/mmcif switch settings ARM: mach-shmobile: sh73a0 CPGA fix for IrDA MSTP ARM: mach-shmobile: sh73a0 CPGA fix for FRQCRA M3 ARM: mach-shmobile: remove sh7367 on-chip set_irq_type() ARM: mach-shmobile: sh7372 INTCS MFIS2 interrupt update ARM: mach-shmobile: ag5evm: Add IrDA support ARM: mach-shmobile: clock-sh7372: fixup pllc2 set_rate mmc: sh_mmcif: Convert to __raw_xxx() I/O accessors. ARM: mach-shmobile: ag5evm requires GPIOLIB ARM: mach-shmobile: fix cpu_base of gic_init() on sh73a0 commit 9948d378b99b06f6f34164dd8ff827e228ae9251 Merge: fd3830b 45f1798 Author: Linus Torvalds Date: Wed Jan 26 09:01:22 2011 +1000 Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6 * 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6: mailmap: Add an entry for Axel Lin. video: fix some comments in drivers/video/console/vgacon.c drivers/video/bf537-lq035.c: Add missing IS_ERR test video: pxa168fb: remove a redundant pxa168fb_check_var call video: da8xx-fb: fix fb_probe error path video: pxa3xx-gcu: Return -EFAULT when copy_from_user() fails video: nuc900fb: properly free resources in nuc900fb_remove video: nuc900fb: fix compile error commit fd3830b379b87b9a47d796d79d1e41f73e1973fa Merge: ceb73c1 75a9fa0 Author: Linus Torvalds Date: Wed Jan 26 09:00:17 2011 +1000 Merge branch 'sh-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 * 'sh-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: sh: Fix build of sh7750 base boards sh: update INTC to clear IRQ sense valid flag sh: Fix sh build failure when CONFIG_SFC=m sh: fix MSIOF0 SPI on ecovec: it conflicts with VOU sh: support XZ-compressed kernel. sh: Fix up breakage from asm-generic/pgtable.h changes. commit ceb73c12047b8d543570b23353e7848eb7c540a1 Author: David Howells Date: Tue Jan 25 16:34:28 2011 +0000 KEYS: Fix __key_link_end() quota fixup on error Fix __key_link_end()'s attempt to fix up the quota if an error occurs. There are two erroneous cases: Firstly, we always decrease the quota if the preallocated replacement keyring needs cleaning up, irrespective of whether or not we should (we may have replaced a pointer rather than adding another pointer). Secondly, we never clean up the quota if we added a pointer without the keyring storage being extended (we allocate multiple pointers at a time, even if we're not going to use them all immediately). We handle this by setting the bottom bit of the preallocation pointer in __key_link_begin() to indicate that the quota needs fixing up, which is then passed to __key_link() (which clears the whole thing) and __key_link_end(). Signed-off-by: David Howells Signed-off-by: Linus Torvalds commit f5c66d70ac2a9016a7ad481bd37e39afd7dd7369 Author: Alan Cox Date: Tue Jan 25 14:33:36 2011 +0000 intel_scu_ipcutils: Fix the license tag GPL V2 should be GPL v2 Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds commit 9cfe268ec4f76b7636687ccbe99be75e00085f32 Author: Alan Cox Date: Tue Jan 25 14:18:38 2011 +0000 Documentation: Fix kernel parameter ordering A B C D E ... Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds commit ecb5646cb098d9d1961c4b1af7b776c73b7541ac Author: Axel Lin Date: Tue Jan 25 14:12:12 2011 +0000 intel_scu_ipc: fix signedness bug busy_loop() returns negative error code, thus change err variable from u32 to int to properly propagate correct error code. Also remove unneeded initialization for err and i variables. Signed-off-by: Axel Lin Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds commit de221bd5eb5e754806fcc39c40bb12b96515d9c5 Author: Nicolas de Pesloüan Date: Mon Jan 24 13:21:37 2011 +0000 bonding: update documentation - alternate configuration. The bonding documentation used to provide configuration details and examples for initscripts and sysconfig only. This patch describe the third possible configuration: /etc/network/interfaces. Signed-off-by: Nicolas de Pesloüan Signed-off-by: David S. Miller commit 44f5324b5d13ef2187729d949eca442689627f39 Author: Jerry Chu Date: Tue Jan 25 13:46:30 2011 -0800 TCP: fix a bug that triggers large number of TCP RST by mistake This patch fixes a bug that causes TCP RST packets to be generated on otherwise correctly behaved applications, e.g., no unread data on close,..., etc. To trigger the bug, at least two conditions must be met: 1. The FIN flag is set on the last data packet, i.e., it's not on a separate, FIN only packet. 2. The size of the last data chunk on the receive side matches exactly with the size of buffer posted by the receiver, and the receiver closes the socket without any further read attempt. This bug was first noticed on our netperf based testbed for our IW10 proposal to IETF where a large number of RST packets were observed. netperf's read side code meets the condition 2 above 100%. Before the fix, tcp_data_queue() will queue the last skb that meets condition 1 to sk_receive_queue even though it has fully copied out (skb_copy_datagram_iovec()) the data. Then if condition 2 is also met, tcp_recvmsg() often returns all the copied out data successfully without actually consuming the skb, due to a check "if ((chunk = len - tp->ucopy.len) != 0) {" and "len -= chunk;" after tcp_prequeue_process() that causes "len" to become 0 and an early exit from the big while loop. I don't see any reason not to free the skb whose data have been fully consumed in tcp_data_queue(), regardless of the FIN flag. We won't get there if MSG_PEEK is on. Am I missing some arcane cases related to urgent data? Signed-off-by: H.K. Jerry Chu Signed-off-by: David S. Miller commit acd9f9cc305ca2e5da2a39f6f6160cd4b476e38b Author: Reinette Chatre Date: Tue Jan 25 08:38:06 2011 -0800 MAINTAINERS: remove Reinette Chatre as iwlwifi maintainer Signed-off-by: Reinette Chatre Signed-off-by: Wey-Yi Guy Signed-off-by: John W. Linville commit 9c4cf6d94fb362c27a24df5223ed6e327eb7279a Author: Greg Kroah-Hartman Date: Tue Jan 25 17:42:29 2011 +0800 rt2x00: add device id for windy31 usb device This patch adds the device id for the windy31 USB device to the rt73usb driver. Thanks to Ralf Flaxa for reporting this and providing testing and a sample device. Reported-by: Ralf Flaxa Tested-by: Ralf Flaxa Cc: stable Signed-off-by: Greg Kroah-Hartman Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit eb3e554b4b3a56386ef5214dbe0e3935a350178b Author: Felix Fietkau Date: Mon Jan 24 19:28:49 2011 +0100 mac80211: fix a crash in ieee80211_beacon_get_tim on change_interface Some drivers (e.g. ath9k) do not always disable beacons when they're supposed to. When an interface is changed using the change_interface op, the mode specific sdata part is in an undefined state and trying to get a beacon at this point can produce weird crashes. To fix this, add a check for ieee80211_sdata_running before using anything from the sdata. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit 2f8e7285606bcdf8f574bff633675eabcee83d5e Merge: 250c7a6 8cb2815 Author: Russell King Date: Tue Jan 25 21:18:11 2011 +0000 Merge branch 'mmci' into fixes commit 250c7a61c35a258e2422b3d55c61bfbad33326be Author: Russell King Date: Wed Jan 12 23:42:57 2011 +0000 ALSA: AACI: fix timeout duration Relying on the access time of peripherals is unreliable - it depends on the speed of the CPU and the bus. On Versatile Express, these timeouts were expiring, causing the driver to fail. Add udelay(1) to ensure that they don't expire early, and adjust timeouts to give a reasonable margin over the response times. Signed-off-by: Russell King commit 69058cd6d10423126ab6aeb568f4af2bd34c49fe Author: Russell King Date: Wed Jan 12 23:17:24 2011 +0000 ALSA: AACI: fix timeout condition checking Ensure that a timeout coincident with the condition being waited for results in success rather than failure. This helps avoid timeout conditions being inappropriately flagged. Signed-off-by: Russell King commit fd015480c29deb52ae3bfaf41e888c450765edd8 Author: Hartley Sweeten Date: Tue Jan 25 01:05:35 2011 +0100 ARM: 6636/1: ep93xx: default multiplexed gpio ports to gpio mode The EP93xx C and D GPIO ports are multiplexed with the Keypad Interface peripheral.  At power-up they default into non-GPIO mode with the Key Matrix controller enabled so these ports are unusable for GPIO.  Note that the Keypad Interface peripheral is only available in the EP9307, EP9312, and EP9315 processor variants. The keypad support will clear the DeviceConfig bits appropriately to enable the Keypad Interface when the driver is loaded.  And, when the driver is unloaded it will set the bits to return the ports to GPIO mode. To make these ports available for GPIO after power-up on all EP93xx processor variants, set the KEYS and GONK bits in the DeviceConfig register. Similarly, the E, G, and H ports are multiplexed with the IDE Interface peripheral.  At power-up these also default into non-GPIO mode.  Note that the IDE peripheral is only available in the EP9312 and EP9315 processor variants. Since an IDE driver is not even available in mainline, set the EONIDE, GONIDE, and HONIDE bits in the DeviceConfig register so that these ports will be available for GPIO use after power-up. Signed-off-by: H Hartley Sweeten Acked-by: Ryan Mallon Signed-off-by: Russell King commit 05b112ff98070dc1f3293e8cd8e4c6f468d1084a Author: Catalin Marinas Date: Tue Jan 25 11:18:25 2011 +0100 ARM: 6637/1: Make the argument to virt_to_phys() "const volatile" Changing the virt_to_phys() argument to "const volatile void *" avoids compiler warnings in some situations where this function is used. Signed-off-by: Catalin Marinas Acked-by: Stephen Boyd Acked-by: Arnd Bergmann Signed-off-by: Russell King commit 03399c1cb4e2503e92d10c1ce38ac2e69b7d2380 Author: Russell King Date: Tue Jan 25 10:35:36 2011 +0000 ARM: twd: ensure timer reload is reprogrammed on entry to periodic mode Ensure that the twd timer reload value is reprogrammed each time we enter periodic mode. This ensures that the reload value is always reset correctly. Tested-by: Santosh Shilimkar Acked-by: Colin Cross Signed-off-by: Russell King commit 73a8bd74e2618990dbb218c3d82f53e60acd9af0 Author: David S. Miller Date: Sun Jan 23 23:27:15 2011 -0800 ipv6: Revert 'administrative down' address handling changes. This reverts the following set of commits: d1ed113f1669390da9898da3beddcc058d938587 ("ipv6: remove duplicate neigh_ifdown") 29ba5fed1bbd09c2cba890798c8f9eaab251401d ("ipv6: don't flush routes when setting loopback down") 9d82ca98f71fd686ef2f3017c5e3e6a4871b6e46 ("ipv6: fix missing in6_ifa_put in addrconf") 2de795707294972f6c34bae9de713e502c431296 ("ipv6: addrconf: don't remove address state on ifdown if the address is being kept") 8595805aafc8b077e01804c9a3668e9aa3510e89 ("IPv6: only notify protocols if address is compeletely gone") 27bdb2abcc5edb3526e25407b74bf17d1872c329 ("IPv6: keep tentative addresses in hash table") 93fa159abe50d3c55c7f83622d3f5c09b6e06f4b ("IPv6: keep route for tentative address") 8f37ada5b5f6bfb4d251a7f510f249cb855b77b3 ("IPv6: fix race between cleanup and add/delete address") 84e8b803f1e16f3a2b8b80f80a63fa2f2f8a9be6 ("IPv6: addrconf notify when address is unavailable") dc2b99f71ef477a31020511876ab4403fb7c4420 ("IPv6: keep permanent addresses on admin down") because the core semantic change to ipv6 address handling on ifdown has broken some things, in particular "disable_ipv6" sysctl handling. Stephen has made several attempts to get things back in working order, but nothing has restored disable_ipv6 fully yet. Reported-by: Eric W. Biederman Tested-by: Eric W. Biederman Signed-off-by: David S. Miller commit 27dc1cd3ad9300f81e1219e5fc305d91d85353f8 Author: Trond Myklebust Date: Tue Jan 25 15:28:21 2011 -0500 NFS: nfs_wcc_update_inode() should set nfsi->attr_gencount If the call to nfs_wcc_update_inode() results in an attribute update, we need to ensure that the inode's attr_gencount gets bumped too, otherwise we are not protected against races with other GETATTR calls. Signed-off-by: Trond Myklebust commit b2a2897dc4a59684321de425652061c62a0569d0 Author: Andy Adamson Date: Tue Jan 25 15:38:03 2011 +0000 NFS improve pnfs_put_deviceid_cache debug print What we really want to know is the ref count. Signed-off-by: Andy Adamson Signed-off-by: Trond Myklebust commit 2c4cdf8f6d3cfb48036400952329555099c8c92c Author: Andy Adamson Date: Tue Jan 25 15:38:02 2011 +0000 NFS fix cb_sequence error processing Always assign the cb_process_state nfs_client pointer so a processing error in cb_sequence after the nfs_client is found and referenced returns a non-NULL cb_process_state nfs_client and the matching nfs_put_client in nfs4_callback_compound dereferences the client. Signed-off-by: Andy Adamson Signed-off-by: Trond Myklebust commit 778be232a207e79088ba70d832ac25dfea6fbf1a Author: Andy Adamson Date: Tue Jan 25 15:38:01 2011 +0000 NFS do not find client in NFSv4 pg_authenticate The information required to find the nfs_client cooresponding to the incoming back channel request is contained in the NFS layer. Perform minimal checking in the RPC layer pg_authenticate method, and push more detailed checking into the NFS layer where the nfs_client can be found. Signed-off-by: Andy Adamson Signed-off-by: Trond Myklebust commit 80c30e8de4f81851b1f712bcc596e11d53bc76f1 Author: Chuck Lever Date: Mon Jan 24 20:50:26 2011 +0000 NLM: Fix "kernel BUG at fs/lockd/host.c:417!" or ".../host.c:283!" Nick Bowler reports: > We were just having some NFS server troubles, and my client machine > running 2.6.38-rc1+ (specifically, commit 2b1caf6ed7b888c95) crashed > hard (syslog output appended to this mail). > > I'm not sure what the exact timeline was or how to reproduce this, > but the server was rebooted during all this. Since I've never seen > this happen before, it is possibly a regression from previous kernel > releases. However, I recently updated my nfs-utils (on the client) to > version 1.2.3, so that might be related as well. [ BUG output redacted ] When done searching, the for_each_host loop in next_host_state() falls through and returns the final host on the host chain without bumping it's reference count. Since the host's ref count is only one at that point, releasing the host in nlm_host_rebooted() attempts to destroy the host prematurely, and therefore hits a BUG(). Likely, the original intent of the for_each_host behavior in next_host_state() was to handle the case when the host chain is empty. Searching the chain and finding no suitable host to return needs to be handled as well. Defensively restructure next_host_state() always to return NULL when the loop falls through. Introduced by commit b10e30f6 "lockd: reorganize nlm_host_rebooted". Cc: J. Bruce Fields Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit f61f6da0d53842e849bab7f69e1431bd3de1136d Author: Chuck Lever Date: Fri Jan 21 03:05:38 2011 +0000 NFS: Prevent memory allocation failure in nfsacl_encode() nfsacl_encode() allocates memory in certain cases. This of course is not guaranteed to work. Since commit 9f06c719 "SUNRPC: New xdr_streams XDR encoder API", the kernel's XDR encoders can't return a result indicating possibly a failure, so a memory allocation failure in nfsacl_encode() has become fatal (ie, the XDR code Oopses) in some cases. However, the allocated memory is a tiny fixed amount, on the order of 40-50 bytes. We can easily use a stack-allocated buffer for this, with only a wee bit of nose-holding. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 731f3f482ad3b2c58a1af2d0a9a634a82803706a Author: Chuck Lever Date: Fri Jan 21 03:05:28 2011 +0000 NFS: nfsacl_{encode,decode} should return signed integer Clean up. The nfsacl_encode() and nfsacl_decode() functions return negative errno values, and each call site verifies that the returned value is not negative. Change the synopsis of both of these functions to reflect this usage. Document the synopsis and return values. Reported-by: Trond Myklebust Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit ee5dc7732bd557bae6d10873a0aac606d2c551fb Author: Chuck Lever Date: Fri Jan 21 03:05:18 2011 +0000 NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!" Milan Broz reports: > on today Linus' tree I get OOps if using nfs. > > server (2.6.36) exports dir: > /dir 172.16.1.0/24(rw,async,all_squash,no_subtree_check,anonuid=500,anongid=500) > > on client it is mounted in fstab > server:/dir /mnt/tst nfs rw,soft 0 0 > > and these commands OOpses it (simplified from a configure script): > > cd /dir > touch x > install x y > > [ 105.327701] ------------[ cut here ]------------ > [ 105.327979] kernel BUG at fs/nfs/nfs3xdr.c:1338! > [ 105.328075] invalid opcode: 0000 [#1] PREEMPT SMP > [ 105.328223] last sysfs file: /sys/devices/virtual/bdi/0:16/uevent > [ 105.328349] Modules linked in: usbcore dm_mod > [ 105.328553] > [ 105.328678] Pid: 3710, comm: install Not tainted 2.6.37+ #423 440BX Desktop Reference Platform/VMware Virtual Platform > [ 105.328853] EIP: 0060:[] EFLAGS: 00010282 CPU: 0 > [ 105.329152] EIP is at nfs3_xdr_enc_setacl3args+0x61/0x98 > [ 105.329249] EAX: ffffffea EBX: ce941d98 ECX: 00000000 EDX: 00000004 > [ 105.329340] ESI: ce941cd0 EDI: 000000a4 EBP: ce941cc0 ESP: ce941cb4 > [ 105.329431] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 > [ 105.329525] Process install (pid: 3710, ti=ce940000 task=ced36f20 task.ti=ce940000) > [ 105.336600] Stack: > [ 105.336693] ce941cd0 ce9dc000 00000000 ce941cf8 c12ecd02 c12f43e0 c116c00b cf754158 > [ 105.336982] ce9dc004 cf754284 ce9dc004 cf7ffee8 ceff9978 ce9dc000 cf7ffee8 ce9dc000 > [ 105.337182] ce9dc000 ce941d14 c12e698d cf75412c ce941d98 cf7ffee8 cf7fff20 00000000 > [ 105.337405] Call Trace: > [ 105.337695] [] rpcauth_wrap_req+0x75/0x7f > [ 105.337806] [] ? xdr_encode_opaque+0x12/0x15 > [ 105.337898] [] ? nfs3_xdr_enc_setacl3args+0x0/0x98 > [ 105.337988] [] call_transmit+0x17e/0x1e8 > [ 105.338072] [] __rpc_execute+0x6d/0x1a6 > [ 105.338155] [] rpc_execute+0x34/0x37 > [ 105.338235] [] rpc_run_task+0xb5/0xbd > [ 105.338316] [] rpc_call_sync+0x3d/0x58 > [ 105.338402] [] nfs3_proc_setacls+0x18e/0x24f > [ 105.338493] [] ? __kmalloc+0x148/0x1c4 > [ 105.338579] [] ? posix_acl_alloc+0x12/0x22 > [ 105.338665] [] nfs3_proc_setacl+0xa0/0xca > [ 105.338748] [] nfs3_setxattr+0x62/0x88 > [ 105.338834] [] ? sub_preempt_count+0x7c/0x89 > [ 105.338926] [] ? nfs3_setxattr+0x0/0x88 > [ 105.339026] [] __vfs_setxattr_noperm+0x26/0x95 > [ 105.339114] [] vfs_setxattr+0x5b/0x76 > [ 105.339211] [] setxattr+0x9d/0xc3 > [ 105.339298] [] ? handle_pte_fault+0x258/0x5cb > [ 105.339428] [] ? __free_pages+0x1a/0x23 > [ 105.339517] [] ? up_read+0x16/0x2c > [ 105.339599] [] ? fget+0x0/0xa3 > [ 105.339677] [] ? fget+0x0/0xa3 > [ 105.339760] [] ? get_parent_ip+0xb/0x31 > [ 105.339843] [] ? sub_preempt_count+0x7c/0x89 > [ 105.339931] [] sys_fsetxattr+0x51/0x79 > [ 105.340014] [] sysenter_do_call+0x12/0x32 > [ 105.340133] Code: 2e 76 18 00 58 31 d2 8b 7f 28 f6 43 04 01 74 03 8b 53 08 6a 00 8b 46 04 6a 01 8b 0b 52 89 fa e8 85 10 f8 ff 83 c4 0c 85 c0 79 04 <0f> 0b eb fe 31 c9 f6 43 04 04 74 03 8b 4b 0c 68 00 10 00 00 8d > [ 105.350321] EIP: [] nfs3_xdr_enc_setacl3args+0x61/0x98 SS:ESP 0068:ce941cb4 > [ 105.364385] ---[ end trace 01fcfe7f0f7f6e4a ]--- nfs3_xdr_enc_setacl3args() is not properly setting up the target buffer before nfsacl_encode() attempts to encode the ACL. Introduced by commit d9c407b1 "NFS: Introduce new-style XDR encoding functions for NFSv3." Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit 839f7ad6932d95f4d5ae7267b95c574714ff3d5b Author: Chuck Lever Date: Fri Jan 21 15:54:57 2011 +0000 NFS: Fix "kernel BUG at fs/aio.c:554!" Nick Piggin reports: > I'm getting use after frees in aio code in NFS > > [ 2703.396766] Call Trace: > [ 2703.396858] [] ? native_sched_clock+0x27/0x80 > [ 2703.396959] [] ? put_lock_stats+0xe/0x40 > [ 2703.397058] [] ? lock_release_holdtime+0xa8/0x140 > [ 2703.397159] [] lock_acquire+0x95/0x1b0 > [ 2703.397260] [] ? aio_put_req+0x2b/0x60 > [ 2703.397361] [] ? get_parent_ip+0x11/0x50 > [ 2703.397464] [] _raw_spin_lock_irq+0x41/0x80 > [ 2703.397564] [] ? aio_put_req+0x2b/0x60 > [ 2703.397662] [] aio_put_req+0x2b/0x60 > [ 2703.397761] [] do_io_submit+0x2be/0x7c0 > [ 2703.397895] [] sys_io_submit+0xb/0x10 > [ 2703.397995] [] system_call_fastpath+0x16/0x1b > > Adding some tracing, it is due to nfs completing the request then > returning something other than -EIOCBQUEUED, so aio.c > also completes the request. To address this, prevent the NFS direct I/O engine from completing async iocbs when the forward path returns an error without starting any I/O. This fix appears to survive ^C during both "xfstest no. 208" and "fsx -Z." It's likely this bug has existed for a very long while, as we are seeing very similar symptoms in OEL 5. Copying stable. Cc: Stable Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust commit ad3d2eedf0ed3611f5f86b9e4d0d15cc76c63465 Author: Jesper Juhl Date: Mon Jan 17 18:41:50 2011 +0000 NFS4: Avoid potential NULL pointer dereference in decode_and_add_ds(). On Mon, 17 Jan 2011, Mi Jinlong wrote: > > > Jesper Juhl: > > strrchr() can return NULL if nothing is found. If this happens we'll > > dereference a NULL pointer in > > fs/nfs/nfs4filelayoutdev.c::decode_and_add_ds(). > > > > I tried to find some other code that guarantees that this can never > > happen but I was unsuccessful. So, unless someone else can point to some > > code that ensures this can never be a problem, I believe this patch is > > needed. > > > > While I was changing this code I also noticed that all the dprintk() > > statements, except one, start with "%s:". The one missing the ":" I added > > it to. > > Maybe another one also should be changed at decode_and_add_ds() at line 243: > > 243 printk("%s Decoded address and port %s\n", __func__, buf); > Missed that one. Thanks. Signed-off-by: Jesper Juhl Signed-off-by: Trond Myklebust commit c3810c88788d505d4ffd786addd111b745e42161 Author: Alan Stern Date: Tue Jan 25 20:50:07 2011 +0100 PM / Runtime: Don't enable interrupts while running in_interrupt This patch (as1445) fixes a bug in the runtime PM core left over from the addition of the no_callbacks flag. If this flag is set then it is possible for rpm_suspend() to be called in_interrupt, so when releasing spinlocks it's important not to re-enable interrupts. To avoid an unnecessary save-and-restore of the interrupt flag, the patch also inlines a pm_request_idle() call. This fixes Bugzilla #27482. (The offending code was added in 2.6.37, so it's not necessary to apply this to any earlier stable kernels.) Signed-off-by: Alan Stern Reported-by: tim blechmann CC: Signed-off-by: Rafael J. Wysocki commit d39454ffe4a3c85428483b8a8a8e5e797b6363d5 Author: Pavel Shilovsky Date: Mon Jan 24 14:16:35 2011 -0500 CIFS: Add strictcache mount option Use for switching on strict cache mode. In this mode the client reads from the cache all the time it has Oplock Level II, otherwise - read from the server. As for write - the client stores a data in the cache in Exclusive Oplock case, otherwise - write directly to the server. Signed-off-by: Pavel Shilovsky Reviewed-by: Jeff Layton Signed-off-by: Steve French commit 72432ffcf555decbbae47f1be338e1d2f210aa69 Author: Pavel Shilovsky Date: Mon Jan 24 14:16:35 2011 -0500 CIFS: Implement cifs_strict_writev (try #4) If we don't have Exclusive oplock we write a data to the server. Also set invalidate_mapping flag on the inode if we wrote something to the server. Add cifs_iovec_write to let the client write iovec buffers through CIFSSMBWrite2. Signed-off-by: Pavel Shilovsky Reviewed-by: Jeff Layton Signed-off-by: Steve French commit 93c100c0b423266c0ee28497e90fdf27c05e6b8e Author: Steve French Date: Tue Jan 25 19:28:43 2011 +0000 [CIFS] Replace cifs md5 hashing functions with kernel crypto APIs Replace remaining use of md5 hash functions local to cifs module with kernel crypto APIs. Remove header and source file containing those local functions. Signed-off-by: Shirish Pargaonkar Reviewed-by: Jeff Layton Signed-off-by: Steve French commit d757534ed15387202e322854cd72dc58bbb975de Author: David Henningsson Date: Tue Jan 25 19:44:26 2011 +0100 ALSA: HDA: Fix dmesg output of HDMI supported bits This typo caused the dmesg output of the supported bits of HDMI to be cut off early. Cc: stable@kernel.org Signed-off-by: David Henningsson Signed-off-by: Takashi Iwai commit a20f0bc10c47fcf62be027e1a50b62791052ab56 Author: Kalhan Trisal Date: Tue Jan 25 14:24:37 2011 +0000 hwmon: (lis3) turn down the no IRQ message Turn down the no IRQ message - on some platforms that's a normal state of affairs. Signed-off-by: Kalhan Trisal Signed-off-by: Alan Cox Acked-by: Eric Piel Signed-off-by: Guenter Roeck commit fd76804f3f5484b35e6a51214c91e916ebba05aa Author: Hans-Christian Egtvedt Date: Mon Jan 24 16:09:56 2011 +0100 ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture This patch fixes the non-compiling AC97C driver for AVR32 architecture by include mach/hardware.h only for AT91 architecture. The AVR32 architecture does not supply the hardware.h include file. Signed-off-by: Hans-Christian Egtvedt CC: stable@kernel.org Signed-off-by: Takashi Iwai commit baaece224570a935210a59257b5d9073e99843ea Author: Pawel Moll Date: Tue Jan 25 15:53:03 2011 +0100 ARM: 6635/2: Configure reference clock for Versatile Express timers Timers on Versatile Express mainboard are used as system clock/event sources. Driver assumes that they are clocked with 1MHz signal. Old V2M firmware apparently configured it by default, but on newer boards one can observe that "sleep 1" command takes over 30 seconds to finish, as the timers are fed with 32kHz instead... This patch performs required magic and also removes code clearing timer's control registers, as exactly the same operations are performed by the timer driver few jiffies later. Signed-off-by: Pawel Moll Tested-by: Will Deacon Signed-off-by: Russell King commit d66bbd441c08fe00ed2add1cf70cb243ebc2b27e Author: Sage Weil Date: Fri Jan 21 21:16:46 2011 -0800 ceph: avoid picking MDS that is not active Ignore replication or auth frag data if it indicates an MDS that is not active. This can happen if the MDS shuts down and the client has stale data about the namespace distribution across the MDS cluster. If that's the case, fall back to directing the request based on the auth cap (which should always be accurate). Signed-off-by: Sage Weil commit a3adfa00e8089aa72826c6ba04bcb18cfceaf0a9 Author: Dmitry Eremin-Solenikov Date: Fri Jan 21 22:14:17 2011 +0300 ASoC: correct link specifications for corgi, poodle and spitz ASoC DAI link descriptions for Corgi, Poodle and Spitz platforms contained incorrect names for cpu_dai and codec, which effectievly disabled sound on theese platforms. Fix that errors. Signed-off-by: Dmitry Eremin-Solenikov Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit 518aa59f6e45b3c90b849187ae1d56757d074b92 Author: Lars-Peter Clausen Date: Mon Jan 24 22:12:42 2011 +0100 ASoC: Samsung: Fix outdated cpu_dai_name for s3c24xx i2s During the multi-component patch the s3c24xx i2s driver was renamed from "s3c24xx-i2s" to "s3c24xx-iis", while the sound board drivers were not updated to reflect this change as well. As a result there is no match between the dai_link and the i2s driver and no sound card is instantiated. This patch fixes the problem by updating the sound board drivers to use "s3c24xx-iis" for the cpu_dai_name. Signed-off-by: Lars-Peter Clausen Acked-by: Jassi Brar Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit 81d7da5404aad930a4e4f6111e4f16b752183018 Author: Lars-Peter Clausen Date: Mon Jan 24 22:09:22 2011 +0100 ASoC: Fix codec device id format used by some dai_links The id part of an I2C device name is created with the "%d-%04x" format string. So for example for an I2C device which is connected to the adapter with the id 0 and has its address set to 0x1a the id part of the devices name would be "0-001a". Currently some sound board drivers have the id part the codec_name field of their dai_link structures set as if it had been created by a "%d-0x%x" format string. For example "0-0x1a" instead of "0-001a". As a result there is no match between the codec device and the dai_link and no sound card is instantiated. This patch fixes it. Signed-off-by: Lars-Peter Clausen Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit e5310f611d17ed4e92e0d4e46fd9f6fb40e66df3 Author: Russell King Date: Mon Jan 24 12:00:01 2011 +0000 ARM: versatile: name configuration options after actual board names Update the option text to those which appear on the front of the appropriate board user guides. This gives consistent board naming, and makes it obvious which option is for which platform. Acked-by: Catalin Marinas Signed-off-by: Russell King commit d2a1c9ad785897850db0d46f4ba02364d89386b5 Author: Russell King Date: Mon Jan 24 10:58:24 2011 +0000 ARM: realview: name configuration options after actual board names As no one seems to really know which configuration options tie up with which boards, I thought I'd do some investigation and try to work it out. After discussion with some folk in linaro, I think I have this nailed. The names are updated to use the name on the front of the appropriate board user guide for the various baseboards, which I've taken to be the official name for each board. I haven't significantly updated the descriptions for the tiles as that is even less clear - as far as I can see on ARMs website, there is no Cortex-A9 tile for Realview EB - only ARM11MPCore, ARM1156T2F-S, ARM1176TZF-S and Cortex-R4F. So exactly what this 'Multicore Cortex-A9 Tile' is... Acked-by: Catalin Marinas Signed-off-by: Russell King commit ec15038f2becd710eef7485baff7830abb1c9330 Author: Russell King Date: Sat Jan 22 17:22:34 2011 +0000 ARM: realview,vexpress: fix section mismatch warning for pen_release Fix two section mismatch warnings in the platform SMP bringup code for Realview and Versatile Express: WARNING: arch/arm/mach-realview/built-in.o(.text+0x8ac): Section mismatch in reference from the function write_pen_release() to the variable .cpuinit.data:pen_release The function write_pen_release() references the variable __cpuinitdata pen_release. This is often because write_pen_release lacks a __cpuinitdata annotation or the annotation of pen_release is wrong. WARNING: arch/arm/mach-vexpress/built-in.o(.text+0x7b4): Section mismatch in reference from the function write_pen_release() to the variable .cpuinit.data:pen_release The function write_pen_release() references the variable __cpuinitdata pen_release. This is often because write_pen_release lacks a __cpuinitdata annotation or the annotation of pen_release is wrong. Signed-off-by: Russell King commit de0368d5fec7b9ef95228510f2edb79610beb448 Author: Jesper Dangaard Brouer Date: Mon Jan 24 02:41:37 2011 +0000 textsearch: doc - fix spelling in lib/textsearch.c. Found the following spelling errors while reading the textsearch code: "facitilies" -> "facilities" "continously" -> "continuously" "arbitary" -> "arbitrary" "patern" -> "pattern" "occurences" -> "occurrences" I'll try to push this patch through DaveM, given the only users of textsearch is in the net/ tree (nf_conntrack_amanda.c, xt_string.c and em_text.c) Signed-off-by: Jesper Sander Signed-off-by: Jesper Dangaard Brouer Signed-off-by: David S. Miller commit 986e3f6e2b4582d9a7e61de5090042d5af85da44 Author: Jesper Juhl Date: Sun Jan 23 12:19:55 2011 +0000 USB NET KL5KUSB101: Fix mem leak in error path of kaweth_download_firmware() We will leak the storage allocated by request_firmware() if the size of the firmware is greater than KAWETH_FIRMWARE_BUF_SIZE. This removes the leak by calling release_firmware() before we return -ENOSPC. Signed-off-by: Jesper Juhl Signed-off-by: David S. Miller commit 2321f3b4afc7c017f34b0cad0624b3b9ebdf2ba4 Author: Tejun Heo Date: Mon Jan 24 23:19:10 2011 -0800 pch_gbe: don't use flush_scheduled_work() Directly cancel adapter->reset_task instead of using to-be-deprecated flush_scheduled_work(). Signed-off-by: Tejun Heo Signed-off-by: David S. Miller commit 7c8104774e59549c37dd1cb0a8ec4f131094664c Author: Michael Chan Date: Mon Jan 24 12:59:02 2011 +0000 bnx2: Always set ETH_FLAG_TXVLAN TSO does not work if the VLAN tag is in the packet (non-accelerated). We may be able to remove this restriction in future firmware. Reported-by: Eric Dumazet Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit c9ba374d24882c04e7cc000d8cf3b0fe56511b84 Author: Andreas Mohr Date: Tue Jan 25 06:46:31 2011 +0100 ALSA: azt3328 - fix broken AZF_FMT_XLATE macro Cleanly revert to non-macro implementation of snd_azf3328_codec_setfmt(), to fix last-minute functionality breakage induced by following checkpatch.pl recommendations without giving them their due full share of thought ("revolting computer, ensuing PEBKAC"). I would like to thank Jiri Slaby for his very timely (in -rc1 even) and unexpected (uncommon hardware) "recognition of the dangerous situation" due to his very commendable static parser use. :) Reported-by: Jiri Slaby Signed-off-by: Andreas Mohr Signed-off-by: Takashi Iwai commit 45f1798484748894c348a76fcf0b9ec43d891795 Author: Paul Mundt Date: Tue Jan 25 15:30:55 2011 +0900 mailmap: Add an entry for Axel Lin. Not all of Axel's patches have used a consistent casing, so fix it up here. Signed-off-by: Paul Mundt commit 63b1dd07fa378f2683ad03e543c36ec76f489364 Author: Amerigo Wang Date: Wed Jan 19 06:24:02 2011 +0000 video: fix some comments in drivers/video/console/vgacon.c Now vgacon_scrollback_startup() uses slab, not bootmem, the comment above it is obsolete, so does __init_refok. Signed-off-by: WANG Cong Signed-off-by: Paul Mundt commit 5dc1365cefb6bd8770d54a2154097445c30fe4bc Author: Julia Lawall Date: Mon Jan 24 19:55:21 2011 +0000 drivers/video/bf537-lq035.c: Add missing IS_ERR test lcd_device_register may return ERR_PTR, so a check is added for this value before the dereference. All of the other changes reorganize the error handling code in this function to avoid duplicating all of it in the added case. In the original code, in one case, the global variable fb_buffer was set to NULL in error code that appears after this variable is initialized. This is done now in all error handling code that has this property. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier f; @@ f(...) { ... return ERR_PTR(...); } @@ identifier r.f, fld; expression x; statement S1,S2; @@ x = f(...) ... when != IS_ERR(x) ( if (IS_ERR(x) ||...) S1 else S2 | *x->fld ) // Signed-off-by: Julia Lawall Acked-by: Mike Frysinger Signed-off-by: Paul Mundt commit e88e43b0c564864c883103483bad6219f77dfb52 Author: axel lin Date: Fri Jan 21 11:18:06 2011 +0000 video: pxa168fb: remove a redundant pxa168fb_check_var call Current implementation calls pxa168fb_check_var twice in pxa168fb_probe. Signed-off-by: Axel Lin Signed-off-by: Paul Mundt commit 360c202bebfecbedb129c07361ae8a738552eae3 Author: axel lin Date: Thu Jan 20 03:50:51 2011 +0000 video: da8xx-fb: fix fb_probe error path Current implementation puts CONFIG_CPU_FREQ at wrong place, CONFIG_CPU_FREQ is for lcd_da8xx_cpufreq_deregister not for unregister_framebuffer. Signed-off-by: Axel Lin Signed-off-by: Paul Mundt commit 75a9fa0a769a373bda0b0f49101f066618b7effb Author: Nobuhiro Iwamatsu Date: Mon Jan 24 01:40:17 2011 +0000 sh: Fix build of sh7750 base boards Renamed platform_register_device to platform_device_register. Signed-off-by: Nobuhiro Iwamatsu Signed-off-by: Paul Mundt commit b7c7d01aaed1f71d9afe815a569f0a81465a1744 Author: Eugene Teo Date: Mon Jan 24 21:05:17 2011 -0800 net: clear heap allocation for ethtool_get_regs() There is a conflict between commit b00916b1 and a77f5db3. This patch resolves the conflict by clearing the heap allocation in ethtool_get_regs(). Cc: stable@kernel.org Signed-off-by: Eugene Teo Signed-off-by: David S. Miller commit c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 Merge: 842d9b2 f1d0c99 Author: Linus Torvalds Date: Tue Jan 25 14:23:54 2011 +1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: Make CIFS mount work in a container. CIFS: Remove pointless variable assignment in cifs_dfs_do_automount() commit 5d07929808a6430d3d844db4da828dfadbc49cd2 Author: Ben Skeggs Date: Fri Jan 21 22:34:13 2011 +1000 drm/nvc0/grctx: correct an off-by-one Signed-off-by: Ben Skeggs commit 34311c730147def6862304488ee1f7c3f4acd74b Author: Francisco Jerez Date: Mon Jan 24 01:47:42 2011 +0100 drm/nv50: Fix race with PFIFO during PGRAPH context destruction. Reported-by: Xavier Chantry Signed-off-by: Francisco Jerez Signed-off-by: Ben Skeggs commit 670820c0e6a9c82dd2f96663dc4c6aec2a18c32b Author: Francisco Jerez Date: Sat Dec 25 15:43:30 2010 +0100 drm/nouveau: Workaround incorrect DCB entry on a GeForce3 Ti 200. Fixes the DVI-D output on that board (fdo bug 32645). Reported-by: Bryan Quigley Signed-off-by: Francisco Jerez Signed-off-by: Ben Skeggs commit 51f73d64b46cb765cd5bee3b8d9f5980c44c6446 Author: Ben Skeggs Date: Fri Jan 21 13:53:21 2011 +1000 drm/nvc0: implement irq handler for whatever's at 0x14xxxx This is just barely enough to stop a never-ending IRQ storm that can be triggered by our 3D driver. We have no idea what this engine is.. Signed-off-by: Ben Skeggs commit 0f1cb203b46f8f836afdd2198060ff6169aa7272 Author: Ben Skeggs Date: Fri Jan 21 11:15:16 2011 +1000 drm/nvc0: fix incorrect TPC register setup Was hitting TPC+1's regs by accident, oops. Reported-by: Christoph Bumiller Signed-off-by: Ben Skeggs commit b26e72fbb58d3665a75b58679535a8e283da5a11 Author: Ben Skeggs Date: Wed Jan 19 15:54:10 2011 +1000 drm/nouveau: probe for adt7473 before f75375 There's a reported case where probing for f75375 causes the system to hang completely, in this case there's an adt7473 at the same i2c address. Signed-off-by: Ben Skeggs commit 1c2a679aa99d4b9d01004863d72d818534d4ac54 Author: Ben Skeggs Date: Tue Jan 18 14:46:19 2011 +1000 drm/nouveau: remove dead function definition Signed-off-by: Ben Skeggs commit 842d9b2c6a9189c8954d1d03dadde7403992baed Merge: 5e82ea9 727a99a Author: Linus Torvalds Date: Tue Jan 25 11:01:33 2011 +1000 Merge branch 'for-38-rc3' of git://codeaurora.org/quic/kernel/davidb/linux-msm * 'for-38-rc3' of git://codeaurora.org/quic/kernel/davidb/linux-msm: drivers: mmc: msm: remove clock disable in probe mmc: msm: fix dma usage not to use internal APIs commit 5e82ea99827f6aa122fbb08f8659e76226ce107b Merge: ec30f34 abb72c8 Author: Linus Torvalds Date: Tue Jan 25 10:46:14 2011 +1000 Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm/radeon/kms: add new radeon_info ioctl query for clock crystal freq drm/i915: Prevent uninitialised reads during error state capture drm/i915: Use consistent mappings for OpRegion between ACPI and i915 drm/i915: Handle the no-interrupts case for UMS by polling drm/i915: Disable high-precision vblank timestamping for UMS drm/i915: Increase the amount of defense before computing vblank timestamps drm/i915,agp/intel: Do not clear stolen entries drm/radeon/kms: simplify atom adjust pll setup drm/radeon/kms: match r6xx/r7xx/evergreen asic_reset with previous asics drm/radeon/kms: make the mac rv630 quirk generic drm/radeon/kms: fix a spelling error in an error message drm/radeon/kms: Initialize pageflip spinlocks. drm/i915: Recognise non-VGA display devices drm/i915: Fix use of invalid array size for ring->sync_seqno drm/i915/ringbuffer: Fix use of stale HEAD position whilst polling for space drm/i915: Don't kick-off hangcheck after a DRI interrupt drm/i915: Add dependency on CONFIG_TMPFS drm/i915: Initialise ring vfuncs for old DRI paths drm/i915: make the blitter report buffer modifications to the FBC unit drm/i915: set more FBC chicken bits commit d80bc0fd262ef840ed4e82593ad6416fa1ba3fc4 Author: David S. Miller Date: Mon Jan 24 16:01:58 2011 -0800 ipv6: Always clone offlink routes. Do not handle PMTU vs. route lookup creation any differently wrt. offlink routes, always clone them. Reported-by: PK Signed-off-by: David S. Miller commit 3dce38a02d6370dca690cd923619d4b00024b723 Author: John Fastabend Date: Fri Jan 21 16:35:18 2011 +0000 dcbnl: make get_app handling symmetric for IEEE and CEE DCBx The IEEE get/set app handlers use generic routines and do not require the net_device to implement the dcbnl_ops routines. This patch makes it symmetric so user space and drivers do not have to handle the CEE version and IEEE DCBx versions differently. Signed-off-by: John Fastabend Signed-off-by: David S. Miller commit 5955e7524790a2c8972487ab43347c28a1931521 Merge: fd0273c 3a5655a Author: David S. Miller Date: Mon Jan 24 15:16:11 2011 -0800 Merge branch 'can/at91_can-for-net-2.6' of git://git.pengutronix.de/git/mkl/linux-2.6 commit abb72c828878a2c69b2cfb33ac30007c8ecd735e Merge: 58bbf01 8e934db Author: Dave Airlie Date: Tue Jan 25 08:41:58 2011 +1000 Merge branch 'drm-intel-fixes-2' of ssh://master.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel into drm-fixes * 'drm-intel-fixes-2' of ssh://master.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel: (30 commits) drm/i915: Prevent uninitialised reads during error state capture drm/i915: Use consistent mappings for OpRegion between ACPI and i915 drm/i915: Handle the no-interrupts case for UMS by polling drm/i915: Disable high-precision vblank timestamping for UMS drm/i915: Increase the amount of defense before computing vblank timestamps drm/i915,agp/intel: Do not clear stolen entries Remove MAYBE_BUILD_BUG_ON BUILD_BUG_ON: make it handle more cases module: fix missing semicolons in MODULE macro usage param: add null statement to compiled-in module params module: fix linker error for MODULE_VERSION when !MODULE and CONFIG_SYSFS=n module: show version information for built-in modules in sysfs selinux: return -ENOMEM when memory allocation fails tpm: fix panic caused by "tpm: Autodetect itpm devices" TPM: Long default timeout fix trusted keys: Fix a memory leak in trusted_update(). keys: add trusted and encrypted maintainers encrypted-keys: rename encrypted_defined files to encrypted trusted-keys: rename trusted_defined files to trusted drm/i915: Recognise non-VGA display devices ... commit fd0273c5033630b8673554cd39660435d1ab2ac4 Author: Eric Dumazet Date: Mon Jan 24 14:41:20 2011 -0800 tcp: fix bug in listening_get_next() commit a8b690f98baf9fb19 (tcp: Fix slowness in read /proc/net/tcp) introduced a bug in handling of SYN_RECV sockets. st->offset represents number of sockets found since beginning of listening_hash[st->bucket]. We should not reset st->offset when iterating through syn_table[st->sbucket], or else if more than ~25 sockets (if PAGE_SIZE=4096) are in SYN_RECV state, we exit from listening_get_next() with a too small st->offset Next time we enter tcp_seek_last_pos(), we are not able to seek past already found sockets. Reported-by: PK CC: Tom Herbert Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 58bbf018a70c562437eeae121a5d021ba7fe56a5 Author: Alex Deucher Date: Mon Jan 24 17:14:26 2011 -0500 drm/radeon/kms: add new radeon_info ioctl query for clock crystal freq Needed for timer queries in the 3D driver. Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit 3408404a4c2a4eead9d73b0bbbfe3f225b65f492 Author: David S. Miller Date: Mon Jan 24 14:37:46 2011 -0800 inetpeer: Use correct AVL tree base pointer in inet_getpeer(). Family was hard-coded to AF_INET but should be daddr->family. This fixes crashes when unlinking ipv6 peer entries, since the unlink code was looking up the base pointer properly. Reported-by: Eric Dumazet Signed-off-by: David S. Miller commit d1dc7abf2fafa34b0ffcd070fd59405aa9c0a4d8 Author: Michal Schmidt Date: Mon Jan 24 12:08:48 2011 +0000 GRO: fix merging a paged skb after non-paged skbs Suppose that several linear skbs of the same flow were received by GRO. They were thus merged into one skb with a frag_list. Then a new skb of the same flow arrives, but it is a paged skb with data starting in its frags[]. Before adding the skb to the frag_list skb_gro_receive() will of course adjust the skb to throw away the headers. It correctly modifies the page_offset and size of the frag, but it leaves incorrect information in the skb: ->data_len is not decreased at all. ->len is decreased only by headlen, as if no change were done to the frag. Later in a receiving process this causes skb_copy_datagram_iovec() to return -EFAULT and this is seen in userspace as the result of the recv() syscall. In practice the bug can be reproduced with the sfc driver. By default the driver uses an adaptive scheme when it switches between using napi_gro_receive() (with skbs) and napi_gro_frags() (with pages). The bug is reproduced when under rx load with enough successful GRO merging the driver decides to switch from the former to the latter. Manual control is also possible, so reproducing this is easy with netcat: - on machine1 (with sfc): nc -l 12345 > /dev/null - on machine2: nc machine1 12345 < /dev/zero - on machine1: echo 1 > /sys/module/sfc/parameters/rx_alloc_method # use skbs echo 2 > /sys/module/sfc/parameters/rx_alloc_method # use pages - See that nc has quit suddenly. [v2: Modified by Eric Dumazet to avoid advancing skb->data past the end and to use a temporary variable.] Signed-off-by: Michal Schmidt Acked-by: Eric Dumazet Signed-off-by: David S. Miller commit 2e5aa6824d9e0248d734573dad8858a2cc279cfe Author: Jesper Juhl Date: Mon Jan 24 22:41:11 2011 +0100 x86-64: Don't use pointer to out-of-scope variable in dump_trace() In arch/x86/kernel/dumpstack_64.c::dump_trace() we have this code: ... if (!stack) { unsigned long dummy; stack = &dummy; if (task && task != current) stack = (unsigned long *)task->thread.sp; } bp = stack_frame(task, regs); /* * Print function call entries in all stacks, starting at the * current stack address. If the stacks consist of nested * exceptions */ tinfo = task_thread_info(task); for (;;) { char *id; unsigned long *estack_end; estack_end = in_exception_stack(cpu, (unsigned long)stack, &used, &id); ... You'll notice that we assign to 'stack' the address of the variable 'dummy' which is only in-scope inside the 'if (!stack)'. So when we later access stack (at the end of the above, and assuming we did not take the 'if (task && task != current)' branch) we'll be using the address of a variable that is no longer in scope. I believe this patch is the proper fix, but I freely admit that I'm not 100% certain. Signed-off-by: Jesper Juhl LKML-Reference: Signed-off-by: H. Peter Anvin commit e92427b289d252cfbd4cb5282d92f4ce1a5bb1fb Merge: c506653 ec30f34 Author: David S. Miller Date: Mon Jan 24 13:17:06 2011 -0800 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 commit c506653d35249bb4738bb139c24362e1ae724bc1 Author: Eric Dumazet Date: Mon Jan 24 13:16:16 2011 -0800 net: arp_ioctl() must hold RTNL Commit 941666c2e3e0 "net: RCU conversion of dev_getbyhwaddr() and arp_ioctl()" introduced a regression, reported by Jamie Heilman. "arp -Ds 192.168.2.41 eth0 pub" triggered the ASSERT_RTNL() assert in pneigh_lookup() Removing RTNL requirement from arp_ioctl() was a mistake, just revert that part. Reported-by: Jamie Heilman Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 6b28405395f7ec492ea69f541cc774adcb9e00ca Author: Axel Köllhofer Date: Sat Jan 22 14:33:50 2011 -0600 staging: r8712u: Add new device IDs This patch adds several new device ids to the r8712u staging driver. The new ids were retrieved from latest vendor driver (v2.6.6.0.20101111) downloadable from www.realtek.com.tw Signed-off-by: Axel Koellhofer Signed-off-by: Larry Finger Cc: Stable [2.6.37] Signed-off-by: Greg Kroah-Hartman commit ec30f343d61391ab23705e50a525da1d55395780 Author: Shaohua Li Date: Mon Jan 24 08:00:01 2011 +0000 fix a shutdown regression in intel_idle Fix a shutdown regression caused by 2a2d31c8dc6f ("intel_idle: open broadcast clock event"). The clockevent framework can automatically shutdown broadcast timers for hotremove CPUs. And we get a shutdown regression when we shutdown broadcast timer for hot remove CPU, so just delete some code. Also fix some section mismatch. Reported-by: Ari Savolainen Signed-off-by: Shaohua Li Tested-by: Linus Torvalds Cc: stable@kernel.org Signed-off-by: Linus Torvalds commit 34686fe689bf62d34af5379240caf7c446607ead Merge: 500d85c 4fb699b Author: Linus Torvalds Date: Tue Jan 25 05:29:49 2011 +1000 Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: omap: DMA: clear interrupt status correctly OMAP3: Devkit8000: Fix tps65930 pullup/pulldown configuration arm: omap3: cm-t3517: minor comment fix arm: omap3: cm-t3517: rtc fix omap1: Fix sched_clock implementation when both MPU timer and 32K timer are used omap1: Fix booting for 15xx and 730 with omap1_defconfig omap1: Fix sched_clock for the MPU timer OMAP: PRCM: remove duplicated headers OMAP4: clockdomain: bypass unimplemented wake-up dependency functions on OMAP4 OMAP: counter_32k: init clocksource as part of machine timer init commit 500d85ce39e4d21368fbcdfec6cf3052170aeec8 Merge: ce84d53 00e99a4 Author: Linus Torvalds Date: Tue Jan 25 05:26:47 2011 +1000 Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: perf tools: Fix time function double declaration with glibc perf tools: Fix build by checking if extra warnings are supported perf tools: Fix build when using gcc 3.4.6 perf tools: Add missing header, fixes build perf tools: Fix 64 bit integer format strings perf test: Fix build on older glibcs perf: perf_event_exit_task_context: s/rcu_dereference/rcu_dereference_raw/ perf test: Use cpu_map->[cpu] when setting affinity perf symbols: Fix annotation of thumb code perf: Annotate cpuctx->ctx.mutex to avoid a lockdep splat powerpc, perf: Fix frequency calculation for overflowing counters (FSL version) perf: Fix perf_event_init_task()/perf_event_free_task() interaction perf: Fix find_get_context() vs perf_event_exit_task() race commit ce84d539ce47484ff3cbc9c67b3eb69ae88954f9 Merge: bc09475 b5cc8ca Author: Linus Torvalds Date: Tue Jan 25 05:25:55 2011 +1000 Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: RTC: Remove Kconfig symbol for UIE emulation RTC: Properly handle rtc_read_alarm error propagation and fix bug RTC: Propagate error handling via rtc_timer_enqueue properly acpi_pm: Clear pmtmr_ioport if acpi_pm initialization fails rtc: Cleanup removed UIE emulation declaration hrtimers: Notify hrtimer users of switches to NOHZ mode commit bc094757f4f3d7b8211a8a1ed7605ffd7c728f75 Merge: 4398f31 3ff6dca Author: Linus Torvalds Date: Tue Jan 25 05:25:13 2011 +1000 Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: Fix poor interactivity on UP systems due to group scheduler nice tune bug commit 4398f31ca7989cbddca96267e3d018d440bac30e Merge: d315777 8969691 Author: Linus Torvalds Date: Tue Jan 25 05:24:12 2011 +1000 Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Fix jump label with RO/NX module protection crash x86, hotplug: Fix powersavings with offlined cores on AMD x86, mcheck, therm_throt.c: Export symbol platform_thermal_notify to allow coretemp to handler intr x86: Use asm-generic/cacheflush.h x86: Update CPU cache attributes table descriptors commit 8e934dbf264418afe4d1dff34ce074ecc14280db Author: Chris Wilson Date: Mon Jan 24 12:34:00 2011 +0000 drm/i915: Prevent uninitialised reads during error state capture error_bo and pinned_bo could be used uninitialised if there were no active buffers. Caught by kmemcheck. Signed-off-by: Chris Wilson commit b705120e4198315f4ae043de06c62f65e0851fd3 Author: Michael Karcher Date: Sun Jan 23 18:17:17 2011 +0000 drm/i915: Use consistent mappings for OpRegion between ACPI and i915 The opregion is a shared memory region between ACPI and the graphics driver. As the ACPI mapping has been changed to cachable in commit 6d5bbf00d251cc73223a71422d69e069dc2e0b8d, mapping the intel opregion non-cachable now fails. As no bus-master hardware is involved in the opregion, cachable map should do no harm. Tested on a Fujitsu Lifebook P8010. Signed-off-by: Michael Karcher [ickle: convert to acpi_os_ioremap for consistency] Signed-off-by: Chris Wilson commit 8a327f23e23fa509e6e3c2263ae1cc0a67dec387 Merge: 5a9a8d1 d315777 Author: Chris Wilson Date: Sun Jan 23 17:22:16 2011 +0000 Merge remote branch 'linus/master' into drm-intel-fixes Merge with Linus to resolve conflicting fixes for the reusing the stale HEAD value during intel_ring_wait(). Conflicts: drivers/gpu/drm/i915/intel_ringbuffer.c commit 5a9a8d1a99c617df82339456fbdd30d6ed3a856b Author: Chris Wilson Date: Sun Jan 23 13:03:24 2011 +0000 drm/i915: Handle the no-interrupts case for UMS by polling If the driver calls into the kernel to wait for a breadcrumb to pass, but hasn't enabled interrupts, fallback to polling the breadcrumb value. Reported-by: Chris Clayton Tested-by: Chris Clayton Signed-off-by: Chris Wilson commit 3885c6bbd0c6c9cc3c8e6d4f723abc87c593b07a Author: Chris Wilson Date: Sun Jan 23 10:45:14 2011 +0000 drm/i915: Disable high-precision vblank timestamping for UMS We only have sufficient information for accurate (sub-frame) timestamping when the modesetting is under our control. Reported-by: Chris Clayton Tested-by: Chris Clayton Reviewed-by: Mario Kleiner Signed-off-by: Chris Wilson commit 4041b85323ca00faaf8cdae22ac5cc16f1af2451 Author: Chris Wilson Date: Sat Jan 22 10:07:56 2011 +0000 drm/i915: Increase the amount of defense before computing vblank timestamps Reported-by: Chris Clayton Tested-by: Chris Clayton Signed-off-by: Chris Wilson commit bee4a186c16bed0d7e91425ca9356c2e8c015f8d Author: Chris Wilson Date: Fri Jan 21 10:54:32 2011 +0000 drm/i915,agp/intel: Do not clear stolen entries We can only utilize the stolen portion of the GTT if we are in sole charge of the hardware. This is only true if using GEM and KMS, otherwise VESA continues to access stolen memory. Reported-by: Arnd Bergmann Reported-by: Frederic Weisbecker Tested-by: Jiri Olsa Tested-by: Frederic Weisbecker Cc: Daniel Vetter Signed-off-by: Chris Wilson commit d38acb49b7368ac4e8ec0db0055155be0805db5d Author: Ping Cheng Date: Mon Jan 24 09:32:50 2011 -0800 Input: wacom - add 2 Bamboo Pen and touch models Reported-by: David Foley Signed-off-by: Ping Cheng Signed-off-by: Dmitry Torokhov commit 8c6a98b22b750c9eb52653ba643faa17db8d3881 Author: Andy Whitcroft Date: Mon Jan 24 09:31:38 2011 -0800 Input: sysrq - ensure sysrq_enabled and __sysrq_enabled are consistent Currently sysrq_enabled and __sysrq_enabled are initialised separately and inconsistently, leading to sysrq being actually enabled by reported as not enabled in sysfs. The first change to the sysfs configurable synchronises these two: static int __read_mostly sysrq_enabled = 1; static int __sysrq_enabled; Add a common define to carry the default for these preventing them becoming out of sync again. Default this to 1 to mirror previous behaviour. Signed-off-by: Andy Whitcroft Cc: stable@kernel.org Signed-off-by: Dmitry Torokhov commit 8cb2815574278a1bf966f041cbfe5b7c91472dcd Author: Linus Walleij Date: Mon Jan 24 15:22:13 2011 +0100 ARM: 6632/3: mmci: stop using the blockend interrupts Implement a suggestion from Russell to drop the use of blockend interrupts altogether and instead rely on the data counter. Tested with error-free cards on U300, U8500 and RealView PB1176. Signed-off-by: Ulf Hansson Signed-off-by: Linus Walleij Signed-off-by: Russell King commit 3a5655a5b545e9647c3437473ee3d815fe1b9050 Author: Marc Kleine-Budde Date: Mon Jan 10 20:44:22 2011 +0100 can: at91_can: make can_id of mailbox 0 configurable Due to a chip bug (errata 50.2.6.3 & 50.3.5.3 in "AT91SAM9263 Preliminary 6249H-ATARM-27-Jul-09") the contents of mailbox 0 may be send under certain conditions (even if disabled or in rx mode). The workaround in the errata suggests not to use the mailbox and load it with an unused identifier. This patch implements the second part of the workaround. A sysfs entry "mb0_id" is introduced. While the interface is down it can be used to configure the can_id of mailbox 0. The default value id 0x7ff. In order to use an extended can_id add the CAN_EFF_FLAG (0x80000000U) to the can_id. Example: - standard id 0x7ff: echo 0x7ff > /sys/class/net/can0/mb0_id - extended id 0x1fffffff: echo 0x9fffffff > /sys/class/net/can0/mb0_id Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger Acked-by: Kurt Van Dijck For the Documentation-part: Acked-by: Wolfram Sang commit 9e0a2d1ca3de6e284e99ad5cae1ae33ecb74c479 Author: Marc Kleine-Budde Date: Sun Jan 9 22:46:25 2011 +0100 can: at91_can: don't use mailbox 0 Due to a chip bug (errata 50.2.6.3 & 50.3.5.3 in "AT91SAM9263 Preliminary 6249H-ATARM-27-Jul-09") the contents of mailbox 0 may be send under certain conditions (even if disabled or in rx mode). The workaround in the errata suggests not to use the mailbox and load it with a unused identifier. This patch implements the first part of the workaround, it updates AT91_MB_RX_NUM and AT91_MB_RX_FIRST (and the inline documentation) so that mailbox 0 stays unused. Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger Acked-by: Kurt Van Dijck commit 0909c1ec6f016b3f580fa2f4630659a5874a8ef8 Author: Marc Kleine-Budde Date: Thu Jan 6 09:58:42 2011 +0100 can: at91_can: clean up usage of AT91_MB_RX_FIRST and AT91_MB_RX_NUM This patch cleans up the usage of two macros which specify the mailbox usage. AT91_MB_RX_FIRST and AT91_MB_RX_NUM define the first and the number of RX mailboxes. The current driver uses these variables in an unclean way; assuming that AT91_MB_RX_FIRST is 0; This patch cleans up the usage of these macros, no longer assuming AT91_MB_RX_FIRST == 0. Signed-off-by: Marc Kleine-Budde Acked-by: Wolfgang Grandegger commit 3ff6dcac735704824c1dff64dc6863c390d364cc Author: Yong Zhang Date: Mon Jan 24 15:33:52 2011 +0800 sched: Fix poor interactivity on UP systems due to group scheduler nice tune bug Michael Witten and Christian Kujau reported that the autogroup scheduling feature hurts interactivity on their UP systems. It turns out that this is an older bug in the group scheduling code, and the wider appeal provided by the autogroup feature exposed it more prominently. When on UP with FAIR_GROUP_SCHED enabled, tune shares only affect tg->shares, but is not reflected in tg->se->load. The reason is that update_cfs_shares() does nothing on UP. So introduce update_cfs_shares() for UP && FAIR_GROUP_SCHED. This issue was found when enable autogroup scheduling was enabled, but it is an older bug that also exists on cgroup.cpu on UP. Reported-and-Tested-by: Michael Witten Reported-and-Tested-by: Christian Kujau Signed-off-by: Yong Zhang Acked-by: Pekka Enberg Acked-by: Mike Galbraith Acked-by: Peter Zijlstra Cc: Linus Torvalds LKML-Reference: <20110124073352.GA24186@windriver.com> Signed-off-by: Ingo Molnar commit d315777b32a4696feb86f2a0c9e9f39c94683649 Merge: 5a05a6d 1765e3a Author: Linus Torvalds Date: Mon Jan 24 19:58:39 2011 +1000 Merge branch 'BUG_ON' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus * 'BUG_ON' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: Remove MAYBE_BUILD_BUG_ON BUILD_BUG_ON: make it handle more cases commit 5a05a6d7a51bcc47c5c6f0ed68e433f9a01afd89 Merge: d20761a 577d6a7 Author: Linus Torvalds Date: Mon Jan 24 19:57:43 2011 +1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: module: fix missing semicolons in MODULE macro usage param: add null statement to compiled-in module params module: fix linker error for MODULE_VERSION when !MODULE and CONFIG_SYSFS=n module: show version information for built-in modules in sysfs commit d20761a7995773dfae4a54fdd26a7857b861adb5 Merge: ff5fdb6 3ac285f Author: Linus Torvalds Date: Mon Jan 24 19:56:47 2011 +1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: selinux: return -ENOMEM when memory allocation fails tpm: fix panic caused by "tpm: Autodetect itpm devices" TPM: Long default timeout fix trusted keys: Fix a memory leak in trusted_update(). keys: add trusted and encrypted maintainers encrypted-keys: rename encrypted_defined files to encrypted trusted-keys: rename trusted_defined files to trusted commit f1d0c998653f1eeec60ee6420e550135b62dbab4 Author: Rob Landley Date: Sat Jan 22 15:44:05 2011 -0600 Make CIFS mount work in a container. Teach cifs about network namespaces, so mounting uses adresses/routing visible from the container rather than from init context. A container is a chroot on steroids that changes more than just the root filesystem the new processes see. One thing containers can isolate is "network namespaces", meaning each container can have its own set of ethernet interfaces, each with its own own IP address and routing to the outside world. And if you open a socket in _userspace_ from processes within such a container, this works fine. But sockets opened from within the kernel still use a single global networking context in a lot of places, meaning the new socket's address and routing are correct for PID 1 on the host, but are _not_ what userspace processes in the container get to use. So when you mount a network filesystem from within in a container, the mount code in the CIFS driver uses the host's networking context and not the container's networking context, so it gets the wrong address, uses the wrong routing, and may even try to go out an interface that the container can't even access... Bad stuff. This patch copies the mount process's network context into the CIFS structure that stores the rest of the server information for that mount point, and changes the socket open code to use the saved network context instead of the global network context. I.E. "when you attempt to use these addresses, do so relative to THIS set of network interfaces and routing rules, not the old global context from back before we supported containers". The big long HOWTO sets up a test environment on the assumption you've never used ocntainers before. It basically says: 1) configure and build a new kernel that has container support 2) build a new root filesystem that includes the userspace container control package (LXC) 3) package/run them under KVM (so you don't have to mess up your host system in order to play with containers). 4) set up some containers under the KVM system 5) set up contradictory routing in the KVM system and the container so that the host and the container see different things for the same address 6) try to mount a CIFS share from both contexts so you can both force it to work and force it to fail. For a long drawn out test reproduction sequence, see: http://landley.livejournal.com/47024.html http://landley.livejournal.com/47205.html http://landley.livejournal.com/47476.html Signed-off-by: Rob Landley Reviewed-by: Jeff Layton Signed-off-by: Steve French commit 1765e3a4933ea0870fabd755feffc5473c4363ce Author: Rusty Russell Date: Mon Jan 24 14:45:10 2011 -0600 Remove MAYBE_BUILD_BUG_ON Now BUILD_BUG_ON() can handle optimizable constants, we don't need MAYBE_BUILD_BUG_ON any more. Signed-off-by: Rusty Russell commit 7ef88ad561457c0346355dfd1f53e503ddfde719 Author: Rusty Russell Date: Mon Jan 24 14:45:10 2011 -0600 BUILD_BUG_ON: make it handle more cases BUILD_BUG_ON used to use the optimizer to do code elimination or fail at link time; it was changed to first the size of a negative array (a nicer compile time error), then (in 8c87df457cb58fe75b9b893007917cf8095660a0) to a bitfield. This forced us to change some non-constant cases to MAYBE_BUILD_BUG_ON(); as Jan points out in that commit, it didn't work as intended anyway. bitfields: needs a literal constant at parse time, and can't be put under "if (__builtin_constant_p(x))" for example. negative array: can handle anything, but if the compiler can't tell it's a constant, silently has no effect. link time: breaks link if the compiler can't determine the value, but the linker output is not usually as informative as a compiler error. If we use the negative-array-size method *and* the link time trick, we get the ability to use BUILD_BUG_ON() under __builtin_constant_p() branches, and maximal ability for the compiler to detect errors at build time. We also document it thoroughly. Signed-off-by: Rusty Russell Cc: Jan Beulich Acked-by: Hollis Blanchard commit 577d6a7c3a0e273e115c65a148b71be6c1950f69 Author: Rusty Russell Date: Mon Jan 24 14:32:52 2011 -0600 module: fix missing semicolons in MODULE macro usage You always needed them when you were a module, but the builtin versions of the macros used to be more lenient. Reported-by: Stephen Rothwell Signed-off-by: Rusty Russell commit b75be4204e7871869b2c268c00783703197aaa7d Author: Linus Walleij Date: Wed Jan 5 13:27:04 2011 +0100 param: add null statement to compiled-in module params Add an unused struct declaration statement requiring a terminating semicolon to the compile-in case to provoke an error if __MODULE_INFO() is used without the terminating semicolon. Previously MODULE_ALIAS("foo") (no semicolon) compiled fine if MODULE was not selected. Cc: Dan Carpenter Signed-off-by: Linus Walleij Signed-off-by: Rusty Russell commit 3b90a5b292321b2acac3921f77046ae195aef53f Author: Rusty Russell Date: Mon Jan 24 14:32:51 2011 -0600 module: fix linker error for MODULE_VERSION when !MODULE and CONFIG_SYSFS=n lib/built-in.o:(__modver+0x8): undefined reference to `__modver_version_show' lib/built-in.o:(__modver+0x2c): undefined reference to `__modver_version_show' Simplest to just not emit anything: if they've disabled SYSFS they probably want the smallest kernel possible. Reported-by: Randy Dunlap Signed-off-by: Rusty Russell commit e94965ed5beb23c6fabf7ed31f625e66d7ff28de Author: Dmitry Torokhov Date: Wed Dec 15 14:00:19 2010 -0800 module: show version information for built-in modules in sysfs Currently only drivers that are built as modules have their versions shown in /sys/module//version, but this information might also be useful for built-in drivers as well. This especially important for drivers that do not define any parameters - such drivers, if built-in, are completely invisible from userspace. This patch changes MODULE_VERSION() macro so that in case when we are compiling built-in module, version information is stored in a separate section. Kernel then uses this data to create 'version' sysfs attribute in the same fashion it creates attributes for module parameters. Signed-off-by: Dmitry Torokhov Signed-off-by: Rusty Russell commit 3f391c79b0686ce183668c6e2b7d02f3e716766c Author: Jesper Juhl Date: Sat Jan 22 21:07:16 2011 +0100 CIFS: Remove pointless variable assignment in cifs_dfs_do_automount() In fs/cifs/cifs_dfs_ref.c::cifs_dfs_do_automount() we have this code: ... mnt = ERR_PTR(-EINVAL); if (IS_ERR(tlink)) { mnt = ERR_CAST(tlink); goto free_full_path; } ses = tlink_tcon(tlink)->ses; rc = get_dfs_path(xid, ses, full_path + 1, cifs_sb->local_nls, &num_referrals, &referrals, cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); cifs_put_tlink(tlink); mnt = ERR_PTR(-ENOENT); ... The assignment of 'mnt = ERR_PTR(-EINVAL);' is completely pointless. If we take the 'if (IS_ERR(tlink))' branch we'll set 'mnt' again and we'll also do so if we do not take the branch. There is no way we'll ever use 'mnt' with the assigned 'ERR_PTR(-EINVAL)' value, so we may as well just remove the pointless assignment. Signed-off-by: Jesper Juhl Signed-off-by: Steve French commit b526ce2264e93b64853478ae50725a30c1dc7abf Author: Alex Deucher Date: Thu Jan 20 23:35:58 2011 +0000 drm/radeon/kms: simplify atom adjust pll setup Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit 8d96fe9381fa235a81c73c8f940e2fcc84f41caf Author: Alex Deucher Date: Fri Jan 21 15:38:22 2011 +0000 drm/radeon/kms: match r6xx/r7xx/evergreen asic_reset with previous asics Don't reset if the engine isn't busy. This matches the behavior of previous asics. Reseting a non-hung block can lead to a hang. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=33272 Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit be23da8ad219650517cbbb7acbeaeb235667113a Author: Alex Deucher Date: Tue Jan 18 18:26:11 2011 +0000 drm/radeon/kms: make the mac rv630 quirk generic Seems some other boards do this as well. Reported-by: Andrea Merello Signed-off-by: Alex Deucher Cc: stable@kernel.org Signed-off-by: Dave Airlie commit 369d7ec14cf2a07d3c7826d806f61477866ba523 Author: Alex Deucher Date: Mon Jan 17 18:08:58 2011 +0000 drm/radeon/kms: fix a spelling error in an error message Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit 29d9ebc4820ee4e03776ddd9a34f3d0097595405 Author: Michel Dänzer Date: Tue Jan 11 10:44:54 2011 +0100 drm/radeon/kms: Initialize pageflip spinlocks. I'm amazed but not really surprised this worked on x86... Signed-off-by: Michel Dänzer Signed-off-by: Dave Airlie commit 3ac285ff23cd6e1bc402b6db836521bce006eb89 Author: Davidlohr Bueso Date: Fri Jan 21 12:28:04 2011 -0300 selinux: return -ENOMEM when memory allocation fails Return -ENOMEM when memory allocation fails in cond_init_bool_indexes, correctly propagating error code to caller. Signed-off-by: Davidlohr Bueso Signed-off-by: James Morris commit e5cce6c13c25d9ac56955a3ae2fd562719848172 Author: Olof Johansson Date: Thu Jan 6 21:24:01 2011 -0600 tpm: fix panic caused by "tpm: Autodetect itpm devices" commit 3f0d3d016d89a5efb8b926d4707eb21fa13f3d27 adds a check for PNP device id to the common tpm_tis_init() function, which in some cases (force=1) will be called without the device being a member of a pnp_dev. Oopsing and panics ensue. Move the test up to before the call to tpm_tis_init(), since it just modifies a global variable anyway. Signed-off-by: Olof Johansson Acked-by: Rajiv Andrade Signed-off-by: James Morris commit c4ff4b829ef9e6353c0b133b7adb564a68054979 Author: Rajiv Andrade Date: Fri Nov 12 22:30:02 2010 +0100 TPM: Long default timeout fix If duration variable value is 0 at this point, it's because chip->vendor.duration wasn't filled by tpm_get_timeouts() yet. This patch sets then the lowest timeout just to give enough time for tpm_get_timeouts() to further succeed. This fix avoids long boot times in case another entity attempts to send commands to the TPM when the TPM isn't accessible. Signed-off-by: Rajiv Andrade Signed-off-by: James Morris commit 5403110943a2dcf1f96416d7a412a8b46895facd Author: Jesper Juhl Date: Sun Jan 23 22:40:42 2011 +0100 trusted keys: Fix a memory leak in trusted_update(). One failure path in security/keys/trusted.c::trusted_update() does not free 'new_p' while the others do. This patch makes sure we also free it in the remaining path (if datablob_parse() returns different from Opt_update). Signed-off-by: Jesper Juhl Signed-off-by: James Morris commit 7f3c68bee977ab872827e44de017216736fe21d7 Author: Mimi Zohar Date: Tue Jan 18 09:07:13 2011 -0500 keys: add trusted and encrypted maintainers Add myself and David Safford as maintainers for trusted/encrypted keys. Signed-off-by: Mimi Zohar Acked-by: David Howells Signed-off-by: James Morris commit b9703449347603289cac0bd04e574ac2e777275d Author: Mimi Zohar Date: Tue Jan 18 09:07:12 2011 -0500 encrypted-keys: rename encrypted_defined files to encrypted Rename encrypted_defined.c and encrypted_defined.h files to encrypted.c and encrypted.h, respectively. Based on request from David Howells. Signed-off-by: Mimi Zohar Acked-by: David Howells Signed-off-by: James Morris commit 4b174b6d281f5c87234fc65bafc02877f565c5cf Author: Mimi Zohar Date: Tue Jan 18 09:07:11 2011 -0500 trusted-keys: rename trusted_defined files to trusted Rename trusted_defined.c and trusted_defined.h files to trusted.c and trusted.h, respectively. Based on request from David Howells. Signed-off-by: Mimi Zohar Acked-by: David Howells Signed-off-by: James Morris commit fd96d0d8d8079b1ea7a7e8943a4da9dfc9621124 Merge: 3c47eb0 50d6467 Author: Greg Kroah-Hartman Date: Mon Jan 24 08:11:18 2011 +0900 Merge branch 'for-usb-linus' of master.kernel.org:/pub/scm/linux/kernel/git/sarah/xhci into usb-linus * 'for-usb-linus' of master.kernel.org:/pub/scm/linux/kernel/git/sarah/xhci: xhci: Remove more doorbell-related reads xHCI: fix printk_ratelimit() usage xHCI: replace dev_dbg() with xhci_dbg() xHCI: fix cycle bit set in giveback_first_trb() xHCI: remove redundant parameter in giveback_first_trb() xHCI: fix queue_trb in isoc transfer xhci: Use GFP_NOIO during device reset. usb: Realloc xHCI structures after a hub is verified. xhci: Do not run xhci_cleanup_msix with irq disabled xHCI: synchronize irq in xhci_suspend() xhci: Resume bus on any port status change. commit 86ca33e82597c0aeb15fbdfb9619e86ef6b0f704 Author: Luca Tettamanti Date: Sat Jan 22 16:07:11 2011 +0100 hwmon: (asus_atk0110) Override interface detection on Sabertooth X58 ASUS Sabertooth X58 has a bug in ACPI that prevents the reading of MCH temperature when the "old" ATK0110 interface is used. Add a DMI entry to override the detection heuristic and force the use of the "new" interface on this board. Signed-off-by: Luca Tettamanti Tested-by: Joris Creyghton Signed-off-by: Guenter Roeck commit 9d1f8a40ddab65a5cedb69b369ee4c0c6e4acf6b Author: Henrik Rydberg Date: Sat Jan 22 20:55:39 2011 +0100 hwmon: (applesmc) Properly initialize lockdep attributes The switch to dynamically allocated sysfs attributes left the internal lockdep members uninitialized, causing a formal bug. This patch adds sysfs_attr_init() to the node creation function, remedying the problem. Reported-and-tested-by: Stefan Richter Signed-off-by: Henrik Rydberg Signed-off-by: Guenter Roeck commit 8969691343354bdd80eff5405a0f879edbf013d6 Author: matthieu castet Date: Sun Jan 23 15:45:52 2011 +0100 x86: Fix jump label with RO/NX module protection crash If we use jump table in module init, there are marked as removed in __jump_table section after init is done. But we already applied ro permissions on the module, so we can't modify a read only section (crash in remove_jump_label_module_init). Make the __jump_table section rw. Signed-off-by: Matthieu CASTET Cc: Xiaotian Feng Cc: Jason Baron Cc: Steven Rostedt Cc: Frederic Weisbecker Cc: Peter Zijlstra Cc: Arjan van de Ven Cc: Siarhei Liakh Cc: Xuxian Jiang Cc: James Morris Cc: Rusty Russell Cc: Dave Jones Cc: Kees Cook Cc: Linus Torvalds Cc: Andrew Morton LKML-Reference: <4D3C3F20.7030203@free.fr> Signed-off-by: Ingo Molnar commit 934f992c763ae1e5eefcce8af769c16444085df7 Author: Chris Wilson Date: Thu Jan 20 13:09:12 2011 +0000 drm/i915: Recognise non-VGA display devices Starting with SandyBridge (though possible with earlier hacked BIOSes), the BIOS may initialise the IGFX as secondary to a discrete GPU. Prior, it would simply disable the integrated GPU. So we adjust our PCI class mask to match any DISPLAY_CLASS device. In such a configuration, the IGFX is not a primary VGA controller and so should not take part in VGA arbitration, and the error return from vga_client_register() is expected. Signed-off-by: Chris Wilson Cc: stable@kernel.org commit 076e2c0eb83f1a0e2e7d0ae1e4d4c0f7b13f1f64 Author: Chris Wilson Date: Fri Jan 21 10:07:18 2011 +0000 drm/i915: Fix use of invalid array size for ring->sync_seqno There are I915_NUM_RINGS-1 inter-ring synchronisation counters, but we were clearing I915_NUM_RINGS of them. Oops. Reported-by: Jiri Slaby Tested-by: Jiri Slaby Signed-off-by: Chris Wilson commit 5df1abdbd37af2ae317a1c5b5944173284dc55d6 Author: Geert Uytterhoeven Date: Fri Jan 7 13:25:29 2011 +0100 m68k/amiga: Fix "debug=mem" `debug=mem' on Amiga has been broken for a while. early_param() processing is done very/too early, i.e. before amiga_identify() / amiga_chip_init(), causing amiga_savekmsg_setup() not to find any Chip RAM. As we don't plan to free this memory anyway, just steal it from the initial Chip RAM memory block instead. Signed-off-by: Geert Uytterhoeven commit de339e4b792aed799bec23251e83f594ac44ae04 Author: Geert Uytterhoeven Date: Sun Jan 16 20:47:47 2011 +0100 m68k/atari: Rename "scc" to "atari_scc" It's a way too generic name for a global #define and conflicts with a variable with the same name, causing build errors like: | drivers/staging/brcm80211/brcmfmac/../util/siutils.c: In function ‘_si_clkctl_cc’: | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1364: error: expected identifier or ‘(’ before ‘volatile’ | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1364: error: expected ‘)’ before ‘(’ token | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1421: error: incompatible types in assignment | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1422: error: invalid operands to binary & | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1423: error: invalid operands to binary & | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1424: error: invalid operands to binary | | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: aggregate value used where an integer was expected | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1425: error: incompatible type for argument 4 of ‘bcmsdh_reg_write’ | drivers/staging/brcm80211/brcmfmac/../util/siutils.c:1428: error: invalid operands to binary & | make[8]: *** [drivers/staging/brcm80211/brcmfmac/../util/siutils.o] Error 1 Signed-off-by: Geert Uytterhoeven commit ff5fdb61493d95332945630fcae249f896098652 Author: Randy Dunlap Date: Sat Jan 22 20:16:06 2011 -0800 fs: fix new dcache.c kernel-doc warnings Fix new fs/dcache.c kernel-doc warnings: Warning(fs/dcache.c:184): No description found for parameter 'dentry' Warning(fs/dcache.c:296): No description found for parameter 'parent' Warning(fs/dcache.c:1985): No description found for parameter 'dparent' Warning(fs/dcache.c:1985): Excess function parameter 'parent' description in 'd_validate' Signed-off-by: Randy Dunlap Cc: Alexander Viro Cc: Nick Piggin Signed-off-by: Linus Torvalds commit 9b310acc335cb0da7d743e2b60f999587beb6496 Author: Randy Dunlap Date: Sat Jan 22 20:16:12 2011 -0800 rapidio: fix new kernel-doc warnings Fix new rapidio kernel-doc warnings: Warning(drivers/rapidio/rio-scan.c:953): No description found for parameter 'prev' Warning(drivers/rapidio/rio-scan.c:953): No description found for parameter 'prev_port' Signed-off-by: Randy Dunlap Cc: Alexandre Bounine Cc: Matt Porter Signed-off-by: Linus Torvalds commit fcf285643433c6f6663182e9f4b3c9169fa22e3e Author: Randy Dunlap Date: Sat Jan 22 19:50:03 2011 -0800 docbook: fix broken serial to tty/serial movement Fix move of drivers/serial/ to drivers/tty/, where it broke one of the docbook files: docproc: drivers/serial/serial_core.c: No such file or directory Signed-off-by: Randy Dunlap Signed-off-by: Linus Torvalds commit fed7bb324cffd980a4a576514ced3ff52f68f319 Author: Randy Dunlap Date: Wed Jan 19 14:34:35 2011 -0800 tty/serial: fix apbuart build Fix build errors by selecting SERIAL_CORE: ERROR: "uart_register_driver" [drivers/tty/serial/apbuart.ko] undefined! ERROR: "uart_write_wakeup" [drivers/tty/serial/apbuart.ko] undefined! ERROR: "uart_update_timeout" [drivers/tty/serial/apbuart.ko] undefined! ERROR: "uart_get_divisor" [drivers/tty/serial/apbuart.ko] undefined! ERROR: "uart_get_baud_rate" [drivers/tty/serial/apbuart.ko] undefined! ERROR: "uart_add_one_port" [drivers/tty/serial/apbuart.ko] undefined! ERROR: "uart_unregister_driver" [drivers/tty/serial/apbuart.ko] undefined! ERROR: "uart_remove_one_port" [drivers/tty/serial/apbuart.ko] undefined! Signed-off-by: Randy Dunlap Cc: Daniel Hellstrom Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 1035b63d3c6fc34a9b8c4a181366eec6d6158b31 Author: Paul Fulghum Date: Tue Jan 18 14:03:25 2011 -0800 n_hdlc: fix read and write locking Fix locking in read and write code of n_hdlc line discipline. 2.6.36 replaced lock_kernel() with tty_lock(). The tty mutex is not dropped automatically when the thread sleeps like the BKL. This results in a blocked read or write holding the tty mutex and stalling operations by other devices that use the tty mutex. A review of n_hdlc read and write code shows: 1. neither BKL or tty mutex are required for correct operation 2. read can block while read data is available if data is posted between availability check and call to interruptible_sleep_on() 3. write does not set process state to TASK_INTERRUPTIBLE on each pass through the processing loop which can cause unneeded scheduling of the thread The unnecessary tty mutex references have been removed. Read changed to use same code as n_tty read for completing reads and blocking. Write corrected to set process state to TASK_INTERRUPTIBLE on each pass through processing loop. Signed-off-by: Paul Fulghum Acked-by: Arnd Bergmann Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit d0694e2aeb815042aa0f3e5036728b3db4446f1d Author: Pavel Machek Date: Sun Jan 9 08:38:48 2011 +0100 serial: unbreak billionton CF card Unbreak Billionton CF bluetooth card. This actually fixes a regression on zaurus. Signed-off-by: Pavel Machek Cc: stable Signed-off-by: Greg Kroah-Hartman commit a2a6a822adc2a91c677cb60e9bc6ffe26fa90e9f Author: Kay Sievers Date: Sun Jan 9 16:39:14 2011 +0100 tty: use for_each_console() and WARN() on sysfs failures This fixes the build warnings in the tty code, and uses the proper function for iterating over the console devices. Signed-off-by: Kay Sievers Signed-off-by: Greg Kroah-Hartman commit c55c63c6539499379ab4a7e8a5c0f857351fb946 Author: Dave Airlie Date: Fri Jan 7 09:57:41 2011 +1000 vt: fix issue when fbcon wants to takeover a second time. With framebuffer handover and multiple GPUs, we get into a position where the fbcon unbinds the vesafb framebuffer for GPU 1, but we still have a radeon framebuffer bound from GPU 0, so we don't unregister the console driver. Then when we tried to bind the new radeon framebuffer for GPU1 we never get to the bind call as we fail due to the console being registered already. This changes the return value to -EBUSY when the driver is already registered and continues to bind for -EBUSY. Signed-off-by: Dave Airlie Cc: Alan Cox Signed-off-by: Greg Kroah-Hartman commit 3c47eb06f08eb970ea9d696bcdb57a175d37b470 Author: Maulik Mankad Date: Thu Jan 13 18:19:56 2011 +0530 usb: gadget: composite: avoid access beyond array max length One of the USB CV MSC tests issues Get Max LUN request with invalid wIndex (wIndex = 65535) parameter. Add proper handling to prevent array index out of bounds issue. Signed-off-by: Maulik Mankad Cc: David Brownell Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit d14fc1a74e846d7851f24fc9519fe87dc12a1231 Author: Libor Pechacek Date: Fri Jan 14 14:30:21 2011 +0100 USB: serial: handle Data Carrier Detect changes Alan's commit 335f8514f200e63d689113d29cb7253a5c282967 introduced .carrier_raised function in several drivers. That also means tty_port_block_til_ready can now suspend the process trying to open the serial port when Carrier Detect is low and put it into tty_port.open_wait queue. We need to wake up the process when Carrier Detect goes high and trigger TTY hangup when CD goes low. Some of the devices do not report modem status line changes, or at least we don't understand the status message, so for those we remove .carrier_raised again. Signed-off-by: Libor Pechacek Cc: stable Signed-off-by: Greg Kroah-Hartman commit ca9cfea09fc5802074f79d086547c6363ddc894b Author: Pavankumar Kondeti Date: Tue Jan 11 09:19:22 2011 +0530 USB: gadget: Fix endpoint representation in ci13xxx_udc Fix a bug where only half the number of endpoints supported by the hardware are exposed to gadget. If DEN filed in the DCCPARAMS register has 'N' then 'N' IN endpoints and 'N" OUT endpoints can be supported. But only 'N' bidirectional endpoints are added to the gadget ep_list. This patch also ensures that the data and handshake transactions of previous setup packet are flushed upon a new setup packet arrival on ep0. Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit 49d3df53a80deed2251b91f50ae9e1c5caf7ded7 Author: Pavankumar Kondeti Date: Tue Jan 11 09:19:21 2011 +0530 USB: gadget: Fix error path in ci13xxx_udc gadget probe function Don't call gadget driver's unbind when bind is failed. Initialize udc->driver only after gadget driver bind is successful. Otherwise pull-up can be enabled upon VBUS session even when no gadget is bounded. Signed-off-by: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman commit 15680cdfc69a7277ba87a8a3a3242d67c4ba5916 Author: Toshiharu Okada Date: Tue Jan 18 20:26:27 2011 +0900 usb: pch_udc: Fix the worning log issue at gadget driver remove When removing a serial gadget driver, the kernel warning message is outputted. This patch fixed this issue. The pch_udc driver did not have disconnection processing of gadget. Signed-off-by: Toshiharu Okada Signed-off-by: Greg Kroah-Hartman commit a9d61bc49188e32d2ae9cf0f683cde3e1744feef Author: Pieter Maes Date: Tue Jan 18 00:26:16 2011 +0100 USB: serial: Updated support for ICOM devices I found the original patch on the db0fhn repeater wiki (couldn't find the email of the origial author) I guess it was never commited. I updated and added some Icom HAM-radio devices to the ftdi driver. Added extra comments to make clear what devices it are. Signed-off-by: Pieter Maes Cc: stable Signed-off-by: Greg Kroah-Hartman commit a464dc4d4044c936d4558725fa2229fb4a1aa932 Author: Arnaud Patard (Rtp) Date: Tue Jan 18 00:04:12 2011 +0100 USB: ehci-mxc: add work-around for efika mx/sb bug Add support for setting CHRGVBUS to workaround a hardware bug on efika mx/sb boards. See http://lists.infradead.org/pipermail/linux-arm-kernel/2011-January/037341.html Signed-off-by: Arnaud Patard Signed-off-by: Greg Kroah-Hartman commit 3bb8029a2445e289efade6133b01545143336f70 Author: Eric Bénard Date: Thu Jan 13 14:53:17 2011 +0100 USB: unbreak ehci-mxc on otg port of i.MX27 commit 711669e5b80b6f2d88f61ed8a9681f83d8cbd201 fixed port 0 support for i.MX51 but broke it for (at least) i.MX27 which doesn't have a usb_phy1 clock but has a pdev->id 0. Signed-off-by: Eric Bénard Cc: Arnaud Patard Cc: Sascha Hauer Signed-off-by: Greg Kroah-Hartman commit 96a3e79edff6f41b0f115a82f1a39d66218077a7 Author: Dario Lombardo Date: Fri Jan 21 15:35:19 2011 +0100 drivers: update to pl2303 usb-serial to support Motorola cables Added 0x0307 device id to support Motorola cables to the pl2303 usb serial driver. This cable has a modified chip that is a pl2303, but declares itself as 0307. Fixed by adding the right device id to the supported devices list, assigning it the code labeled PL2303_PRODUCT_ID_MOTOROLA. Signed-off-by: Dario Lombardo Cc: stable Signed-off-by: Greg Kroah-Hartman commit aa52b3a92918039b273fc9d1994bd34227c40269 Author: Nicolaus Colberg Date: Wed Jan 12 16:30:03 2011 +0100 USB: adding USB support for Cinterion's HC2x, EU3 and PH8 products /drivers/usb/serial/option.c: Adding support for Cinterion's HC25, HC28, HC28J, EU3-E, EU3-P and PH8 by correcting/adding Cinterion's and Siemens' Vendor IDs as well as Product IDs and USB_DEVICE tuples Signed-off-by: Nicolaus Colberg Cc: stable Signed-off-by: Greg Kroah-Hartman commit 5620b5f7f19e9ee3fcf6ecf493fed7821b7b495b Author: Alan Stern Date: Tue Jan 11 14:16:50 2011 -0500 USB serial: add missing .usb_driver field in serial drivers This patch (as1443) fixes a bug found in many of the USB serial drivers: They don't set the .usb_driver field in their usb_serial_driver structure. This field is needed for assigning dynamic IDs for device matching. In addition, starting with the 2.6.37 kernel, the .usb_driver field is needed for proper autosuspend operation. Without it, attempts to open the device file will fail. Signed-off-by: Alan Stern Reported-by: Dan Williams CC: Signed-off-by: Greg Kroah-Hartman commit cc604ddd118cf4a699c12bc41a5fa2d2f225f702 Author: Peter Tyser Date: Mon Jan 10 17:34:14 2011 -0600 USB: ehci-fsl: Fix 'have_sysif_regs' detection Previously a check was done on an ID register at the base of a CPU's internal USB registers to determine if system interface regsiters were present. The check looked for an ID register that had the format ID[0:5] == ~ID[8:13] as described in the MPC5121 User's Manual to determine if a MPC5121 or MPC83xx/85xx was being used. There are two issues with this method: - The ID register is not defined on the MPC83xx/85xx CPUs, so its unclear what is being checked on them. - Newer CPUs such as the P4080 also don't document the ID register, but do share the same format as the MPC5121. Thus the previous code did not set 'have_sysif_regs' properly which results in the P4080 not properly initializing its USB ports. Using the device tree 'compatible' node is a cleaner way to determine if 'have_sysif_regs' should be set and resolves the USB initialization issue seen on the P4080. Tested on a P4080-based system and compile tested on mpc512x_defconfig with Freescale EHCI driver enabled. Cc: Anatolij Gustschin Cc: David Brownell Cc: Kumar Gala Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Peter Tyser Signed-off-by: Greg Kroah-Hartman commit ad84e4a9efb7c8ed322bafb6ebdb9c3a49a3d3a8 Author: Alan Stern Date: Mon Jan 10 11:24:14 2011 -0500 USB: g_printer: fix bug in module parameter definitions This patch (as1442) fixes a bug in g_printer: Module parameters should not be marked "__initdata" if they are accessible in sysfs (i.e., if the mode value in the module_param() macro is nonzero). Otherwise attempts to access the parameters will cause addressing violations. Character-string module parameters must not be marked "__initdata" if the module can be unloaded, because the kernel needs to access the parameter variable at unload time in order to free the dynamically-allocated string. Signed-off-by: Alan Stern CC: Roland Kletzing CC: Craig W. Nadler CC: Signed-off-by: Greg Kroah-Hartman commit d5aa475180d03d45c5dc6134aa833f1b3e89c45e Author: Alan Stern Date: Mon Jan 10 11:23:05 2011 -0500 USB: g_printer: fix bug in unregistration This patch (as1441) fixes a bug in g_printer. The gadget driver, char device number, and class device should be unregistered in reverse order of registration. As it is now, when the module is unloaded the class device gets unregistered first, causing a crash when the unbind method tries to access it. This fixes Bugzilla #25882. Signed-off-by: Alan Stern CC: Roland Kletzing CC: Craig W. Nadler CC: Signed-off-by: Greg Kroah-Hartman commit bbfba05283ba482ab7c119150fd3c5611939f9fd Author: Sergei Shtylyov Date: Sat Jan 8 18:30:30 2011 +0300 USB: uss720: remove duplicate USB device Commit ecc1624a2fff45780959efbcb73ace18fdb3c58d (USB: misc: uss720.c: add another vendor/product ID) duplicated entry in the driver's USB device ID table. Remove the duplicate. Signed-off-by: Sergei Shtylyov Signed-off-by: Greg Kroah-Hartman commit 65519263df87acf09992675304a654d6874f73fd Author: Stanislaw Gruszka Date: Sat Jan 8 15:19:40 2011 +0100 MAINTAINERS: add ueagle-atm entry Cc: Matthieu Castet Signed-off-by: Stanislaw Gruszka Signed-off-by: Greg Kroah-Hartman commit f75593ceaa08e6d27aec1a5de31cded19e850dd1 Author: Alan Stern Date: Thu Jan 6 10:17:09 2011 -0500 USB: EHCI: fix DMA deallocation bug This patch (as1440) fixes a bug in ehci-hcd. ehci->periodic_size is used to compute the size in a dma_alloc_coherent() call, but then it gets changed later on. As a result, the corresponding call to dma_free_coherent() passes a different size from the original allocation. Fix the problem by adjusting ehci->periodic_size before carrying out any of the memory allocations. Signed-off-by: Alan Stern Tested-by: Larry Finger CC: David Brownell CC: Signed-off-by: Greg Kroah-Hartman commit 06f1b9715c324589b42be69ad33422b83bd42f02 Author: Tomoya MORINAGA Date: Thu Jan 6 09:16:31 2011 +0900 USB: pch_udc: support new device ML7213 IOH Support new device OKI SEMICONDUCTOR's ML7213 IOH(Input/Output Hub) which is for IVI(In-Vehicle Infotainment) use. The ML7213 is companion chip for Intel Atom E6xx series. The ML7213 is completely compatible for Intel EG20T PCH. Signed-off-by: Tomoya MORINAGA Signed-off-by: Greg Kroah-Hartman commit abab0c67c061612cf559ab27ce1340774d7c292d Author: Toshiharu Okada Date: Wed Dec 29 10:07:33 2010 +0900 usb: pch_udc: Fixed issue which does not work with g_serial This PCH_UDC driver does not work normally when "Serial gadget" is used. The receiving data of control transmission (EP0 Control OUT Transaction) has not received correctly. This patch fixed this issue. The following was modified. - The buffer size. - The change processing of a receiving buffer (The temporary buffer and the buffer prepared by gadget). - The setup processing of a DMA descriptor. Currently the PCH_UDC driver can work normally with "Serial gadget" or "File-backed Storage Gadget". Signed-off-by: Toshiharu Okada Signed-off-by: Greg Kroah-Hartman commit 956227120f2e8eed8ca459879d7eafee78591cc1 Author: Peter Chen Date: Wed Jan 5 14:50:54 2011 +0800 usb: set ep_dev async suspend should be later than device_initialize The dev->power.async_suspend can only be set at the condition of dev->power.status is DPM_ON. The dev->power.status will be initialized as DPM_ON at device_initialize. Signed-off-by: Peter Chen Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 20831ad23978d0543b0b23128621b6d8ee7757f1 Author: Ming Lei Date: Tue Jan 4 20:21:32 2011 +0800 usb: otg: nop: fix oops triggered by otg_register_notifier This patch adds BLOCKING_INIT_NOTIFIER_HEAD in nop_usb_xceiv_probe, so that we can avoid oops caused by uninitialized nop->otg.notifier.rwsem which will be touched in otg_register_notifier path. Reported-by: Gupta, Ajay Kumar Tested-by: Gupta, Ajay Kumar Cc: Balbi, Felipe Cc: David Brownell Signed-off-by: Ming Lei Signed-off-by: Greg Kroah-Hartman commit 0cdfb819b6a97e79c7a0aa0c471cd7000367103b Author: David Sterba Date: Mon Dec 27 18:49:58 2010 +0100 USB: cdc-wdm: fix misuse of logical operation in place of bitop CC: Greg Kroah-Hartman CC: Oliver Neukum CC: Marcel Holtmann Signed-off-by: David Sterba Signed-off-by: Greg Kroah-Hartman commit 952eca0a95e27660f7a56a7186b9bd09d791ced4 Author: Melchior FRANZ Date: Wed Dec 22 13:55:24 2010 +0100 USB: DL100B webmail notifier: initialize return value If case of an unknown usb_device_id->driver_info (which could only occur if the info got corrupted somewhere outside the usbled driver), a debug message depended on an uninitialized value. This was harmless, but ugly, and gets fixed with this patch. Signed-off-by: Melchior FRANZ Signed-off-by: Greg Kroah-Hartman commit baab93afc2844b68d57b0dcca5e1d34c5d7cf411 Author: Alex He Date: Tue Dec 21 17:45:46 2010 +0800 USB: EHCI: ASPM quirk of ISOC on AMD Hudson AMD Hudson also needs the same ASPM quirk as SB800 Signed-off-by: Alex He Cc: stable Signed-off-by: Greg Kroah-Hartman commit 1e4cba8bd2cddd10849e769ff502e255c27c81b4 Author: Fabio Estevam Date: Mon Dec 20 21:54:30 2010 -0200 usb: otg: Make USB3319 ULPI ID generic On a system with a USB3317 ULPI transceiver the following message is shown on kernel boot: ULPI transceiver vendor/product ID 0x0424/0x0006 Found SMSC USB3319 ULPI transceiver. ULPI integrity check: passed. The reason is that USB3317 has the same vendor/product ID as USB3319. Make the ULPI ID generic for the USB331x transceivers. Signed-off-by: Fabio Estevam Acked-by: Igor Grinberg Signed-off-by: Greg Kroah-Hartman commit 12f68c480c7155a66bd2a76ab2fef28dd5f93fa2 Author: Alan Stern Date: Mon Jan 3 16:47:49 2011 -0500 USB: usb-storage: unusual_devs entry for CamSport Evo This patch (as1438) adds an unusual_devs entry for the MagicPixel FW_Omega2 chip, used in the CamSport Evo camera. The firmware incorrectly reports a vendor-specific bDeviceClass. Signed-off-by: Alan Stern Reported-by: Cc: stable Signed-off-by: Greg Kroah-Hartman commit 9926c0df7b31b2128eebe92e0e2b052f380ea464 Author: Craig Shelley Date: Sun Jan 2 21:59:08 2011 +0000 USB: CP210x Removed incorrect device ID Device ID removed 0x10C4/0x8149 for West Mountain Radio Computerized Battery Analyzer. This device is actually based on a SiLabs C8051Fxxx, see http://www.etheus.net/SiUSBXp_Linux_Driver for further info. Signed-off-by: Craig Shelley Cc: stable Signed-off-by: Greg Kroah-Hartman commit faea63f7ccfddfb8fc19798799fcd38c58415172 Author: Craig Shelley Date: Sun Jan 2 21:51:46 2011 +0000 USB: CP210x Add two device IDs Device Ids added for IRZ Automation Teleport SG-10 GSM/GPRS Modem and DekTec DTA Plus VHF/UHF Booster/Attenuator. Signed-off-by: Craig Shelley Cc: stable Signed-off-by: Greg Kroah-Hartman commit a58861fbde2a350df4d27fc62fb42905669b37ce Author: Dan Williams Date: Fri Dec 31 10:51:51 2010 -0600 USB: qcaux: add Pantech UML290 device ID Another CDC-ACM + vendor specific interface layout for the QCDM port. Signed-off-by: Dan Williams Cc: stable Signed-off-by: Greg Kroah-Hartman commit 7e1e7bd9dbd469267b6e6de1bf8d71a7d65ce86a Author: Richard Schütz Date: Wed Dec 22 14:28:56 2010 +0100 USB: usb-storage: unusual_devs update for TrekStor DataStation maxi g.u external hard drive enclosure The TrekStor DataStation maxi g.u external hard drive enclosure uses a JMicron USB to SATA chip which needs the US_FL_IGNORE_RESIDUE flag to work properly. Signed-off-by: Richard Schütz Cc: stable Signed-off-by: Greg Kroah-Hartman commit cae41118f50ef0c431e13159df6d7dd8bbd54004 Author: Richard Schütz Date: Sun Dec 19 21:18:38 2010 +0100 USB: usb-storage: unusual_devs update for Cypress ATACB New device ID added for unusual Cypress ATACB device. Signed-off-by: Richard Schütz Cc: stable Signed-off-by: Greg Kroah-Hartman commit 00e99a49f6f3a6b5a84ba8bf8f632c9b974bea7a Author: Thomas Renninger Date: Fri Jan 21 15:30:09 2011 +0100 perf tools: Fix time function double declaration with glibc It's enough to include the local "debug.h" file to trigger it. man time reveals this is already declared in glibc: time - get time in seconds -> rename the variable. Cc: Ingo Molnar Cc: arjan@infradead.org LPU-Reference: <1295620209-13859-2-git-send-email-trenn@suse.de> Signed-off-by: Thomas Renninger Signed-off-by: Arnaldo Carvalho de Melo commit 065bef5af620dcedeb6dc26fdc0b1739a3c9adef Author: Arnaldo Carvalho de Melo Date: Sat Jan 22 19:29:53 2011 -0200 perf tools: Fix build by checking if extra warnings are supported The -Wstack-protector and -Wvolatile-register-var warnings, for instance, are not supported by gcc 3.4.6. So fix by doing the same check we already do for -fstack-protector-all. With this and the other patches in this series, perf builds unmodified on, for instance, RHEL4. Cc: Eric Dumazet Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Tom Zanussi LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 5c7a66822c8b619966d9367594054778608fc5d1 Author: Arnaldo Carvalho de Melo Date: Sat Jan 22 19:12:38 2011 -0200 perf tools: Fix build when using gcc 3.4.6 [acme@localhost linux]$ make O=~acme/git/build/perf -C tools/perf make: Entering directory `/home/acme/git/linux/tools/perf' Makefile:526: No libdw.h found or old libdw.h found or elfutils is older than 0.138, disables dwarf support. Please install new elfutils-devel/libdw-dev Makefile:582: newt not found, disables TUI support. Please install newt-devel or libnewt-dev CC /home/acme/git/build/perf/builtin-annotate.o In file included from builtin-annotate.c:23: util/parse-events.h:26: warning: declaration of 'evsel_list' shadows a global declaration util/parse-events.h:12: warning: shadowed declaration is here make: *** [/home/acme/git/build/perf/builtin-annotate.o] Error 1 make: Leaving directory `/home/acme/git/linux/tools/perf' [acme@localhost linux]$ gcc --version | head -1 gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11) [acme@localhost linux]$ Fix it by renaming the parameter to evlist. Cc: Eric Dumazet Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Tom Zanussi LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit a860a60818e48134c60315bf32f87575771e6602 Author: Arnaldo Carvalho de Melo Date: Sat Jan 22 19:07:36 2011 -0200 perf tools: Add missing header, fixes build We need the definiton for __always_inline in bitops.h to fix the build on distros where it isn't available or compiler.h doesn't get included indirectly. One of the fixes needed to build perf on RHEL4 systems, for instance. Cc: Eric Dumazet Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Tom Zanussi LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit 9486aa38771661e96fbb51c549b9901b5df609d8 Author: Arnaldo Carvalho de Melo Date: Sat Jan 22 20:37:02 2011 -0200 perf tools: Fix 64 bit integer format strings Using %L[uxd] has issues in some architectures, like on ppc64. Fix it by making our 64 bit integers typedefs of stdint.h types and using PRI[ux]64 like, for instance, git does. Reported by Denis Kirjanov that provided a patch for one case, I went and changed all cases. Reported-by: Denis Kirjanov Tested-by: Denis Kirjanov LKML-Reference: <20110120093246.GA8031@hera.kernel.org> Cc: Denis Kirjanov Cc: Frederic Weisbecker Cc: Ingo Molnar Cc: Mike Galbraith Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Pingtian Han Cc: Stephane Eranian Cc: Tom Zanussi Signed-off-by: Arnaldo Carvalho de Melo commit 57b84e53171ce672683faf1cab2e660965a6bdaf Author: Arnaldo Carvalho de Melo Date: Sat Jan 22 23:14:20 2011 -0200 perf test: Fix build on older glibcs Where we don't have CPU_ALLOC & friends. As the tools are being used in older distros where the only allowed change are to replace the kernel, like RHEL4 and 5. Reported-by: Eric Dumazet Cc: Eric Dumazet Cc: Frederic Weisbecker Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Paul Mackerras Cc: Stephane Eranian LKML-Reference: Signed-off-by: Arnaldo Carvalho de Melo commit f9b07897c6288d7e5fc1fd004fccb0c5f1a0e570 Author: Geert Uytterhoeven Date: Sat Jan 8 21:57:48 2011 +0100 m68k: Uninline strchr() Some versions of gcc replace calls to strstr() with single-character "needle" string parameters by calls to strchr() behind our back. If strchr() is defined as an inline function, this causes linking errors like ERROR: "strchr" [drivers/target/target_core_mod.ko] undefined! As m68k is the only architecture that has an inline strchr() and this inline version is not an optimized asm version, uninline strchr() and use the standard out-of-line C version in lib/string.c instead. This also decreases the defconfig/allmodconfig kernel image sizes by a few hundred bytes. Signed-off-by: Geert Uytterhoeven commit 233d84c46c2253d13e10b42d88c14748fbb67a98 Author: Jesper Juhl Date: Thu Jan 20 22:37:43 2011 +0100 ALSA: Xonar, CS43xx: Don't overrun static array 'cs4398_regs' in 'struct xonar_cs43xx' is an array of 'u8' with a size of 8. So, this code in sound/pci/oxygen/xonar_cs43xx.c::dump_d1_registers() for (i = 2; i <= 8; ++i) snd_iprintf(buffer, " %02x", data->cs4398_regs[i]); will overrun the array when 'i == 8'. I guess that what's needed to fix it is the trivial patch below, but I must admit that I have no idea about this code, so I may very well be wrong. Additionally, I have no way to actually test this, so all I know is that the below compiles. Someone who actually knows this code should take a look before anything is comitted - consider the below (not much more than) a bug report. Signed-off-by: Jesper Juhl Acked-by: Clemens Ladisch commit 4032ec639af9b735fdd903fab09de567bd73eaa0 Author: Arend van Spriel Date: Fri Jan 21 13:36:44 2011 +0100 staging: brcm80211: fix suspend/resume issue in brcmsmac PCI PM suspend callback took down the interface and resume brought it back up. In the mac80211 context this is done in subsequent calls. Rework implementation so that suspend only stores config, and sets PCI power state. The resume return to full power state (D0), restores the config, and brings hardware back up. Full bringup is done by subsequent mac80211 calls. Reviewed-by: Brett Rudley Signed-off-by: Arend van Spriel Cc: stable Signed-off-by: Greg Kroah-Hartman commit d062d44a8386c82c06e483f0c0d1124ba3cab2c8 Author: Arend van Spriel Date: Fri Jan 21 13:34:15 2011 +0100 staging: brcm80211: remove assert to avoid panic since 2.6.37 kernel The driver assumed it would receive skb packets from MAC80211 which are not cloned. To guard this assumption an assert was placed in the transmit routine. As of kernel 2.6.37 it turns out MAC80211 does pass skb packets that are cloned. The assert is also not needed as it does not lead to a failure state in our driver when the packet is cloned. Therefore the assert can safely be removed. > commit f8a0a781488ec7288d1049e5d2022850aa98f7b6 > Author: Felix Fietkau > Date: Sat Dec 18 19:30:50 2010 +0100 > > mac80211: fix potentially redundant skb data copying > > When an skb is shared, it needs to be duplicated, along with its data > If the skb does not have enough headroom, using skb_copy might cause t > buffer to be copied twice (once by skb_copy and once by pskb_expand_he > Fix this by using skb_clone initially and letting ieee80211_skb_resize > out the rest. > > Signed-off-by: Felix Fietkau > Signed-off-by: John W. Linville > Acked-by: Brett Rudley Signed-off-by: Arend van Spriel Cc: stable Signed-off-by: Greg Kroah-Hartman commit 41135b1ca228b6ea1a0ab9d903dd54396ebd485d Author: Roland Stigge Date: Fri Jan 21 09:57:28 2011 +0100 Staging: iio: Aditional fixpoint formatted output bugfix iio: Additional fixpoint formatted output bugfixes Fix some ADC/DAC drivers' _scale interface to correct fixpoint formatted output This patch adds the fixes to ad7887_core.c and ad5446.c Signed-off-by: Roland Stigge Signed-off-by: Greg Kroah-Hartman commit 01bb2dc4e47639c8e7eddb1718720a051bcdc955 Merge: 806839b ffb5e0f Author: Ingo Molnar Date: Sat Jan 22 11:08:52 2011 +0100 Merge branch 'perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 into perf/urgent commit 0ca7a5b9ac5d301845dd6382ff25a699b6263a81 Author: Ryusuke Konishi Date: Fri Jan 21 16:40:31 2011 +0900 nilfs2: fix crash after one superblock became unavailable Fixes the following kernel oops in nilfs_setup_super() which could arise if one of two super-blocks is unavailable. > BUG: unable to handle kernel NULL pointer dereference at (null) > Pid: 3529, comm: mount.nilfs2 Not tainted 2.6.37 #1 / > EIP: 0060:[] EFLAGS: 00010202 CPU: 3 > EIP is at memcpy+0xc/0x1b > Call Trace: > [] ? nilfs_setup_super+0x6c/0xa5 [nilfs2] > [] ? nilfs_get_root_dentry+0x81/0xcb [nilfs2] > [] ? nilfs_mount+0x4f9/0x62c [nilfs2] > [] ? kstrdup+0x36/0x3f > [] ? nilfs_mount+0x0/0x62c [nilfs2] > [] ? vfs_kern_mount+0x4d/0x12c > [] ? get_fs_type+0x76/0x8f > [] ? do_kern_mount+0x33/0xbf > [] ? do_mount+0x2ed/0x714 > [] ? copy_mount_options+0x28/0xfc > [] ? sys_mount+0x72/0xaf > [] ? syscall_call+0x7/0xb Reported-by: Wakko Warner Signed-off-by: Ryusuke Konishi Tested-by: Wakko Warner Cc: stable [2.6.37, 2.6.36] LKML-Reference: <20110121024918.GA29598@animx.eu.org> commit 0a0b7a5f7a043d86a95990d3227cf7e823ae52ac Author: Kurt Van Dijck Date: Tue Jan 11 04:34:28 2011 +0000 can: add driver for Softing card This patch adds the driver that creates a platform:softing device from a pcmcia_device Note: the Kconfig indicates a dependency on the softing.ko driver, but this is purely to make configuration intuitive. This driver will work independent, but no CAN network devices appear until softing.ko is loaded too. Signed-off-by: Kurt Van Dijck Acked-by: Wolfgang Grandegger Signed-off-by: David S. Miller commit 03fd3cf5a179da12e6bee5e9d74b648aff68dc4c Author: Kurt Van Dijck Date: Tue Jan 11 04:32:31 2011 +0000 can: add driver for Softing card This patch adds a driver for the platform:softing device. This will create (up to) 2 CAN network devices from 1 platform:softing device Signed-off-by: Kurt Van Dijck Acked-by: Wolfgang Grandegger Signed-off-by: David S. Miller commit 93789b32dbf355e70f18b17a82e8661677a7f7fb Author: Borislav Petkov Date: Thu Jan 20 15:42:52 2011 +0100 x86, hotplug: Fix powersavings with offlined cores on AMD ea53069231f9317062910d6e772cca4ce93de8c8 made a CPU use monitor/mwait when offline. This is not the optimal choice for AMD wrt to powersavings and we'd prefer our cores to halt (i.e. enter C1) instead. For this, the same selection whether to use monitor/mwait has to be used as when we select the idle routine for the machine. With this patch, offlining cores 1-5 on a X6 machine allows core0 to boost again. [ hpa: putting this in urgent since it is a (power) regression fix ] Reported-by: Andreas Herrmann Cc: stable@kernel.org # 37.x Cc: H. Peter Anvin Cc: Arjan van de Ven Cc: Len Brown Cc: Venkatesh Pallipadi Cc: Peter Zijlstra Signed-off-by: Borislav Petkov LKML-Reference: <1295534572-10730-1-git-send-email-bp@amd64.org> Signed-off-by: H. Peter Anvin commit 727a99a576ba562e5074d54cfcc57a1ce101c240 Author: Daniel Walker Date: Tue Jan 18 10:14:33 2011 -0800 drivers: mmc: msm: remove clock disable in probe The probe function adds the MMC host which can start accepting request immediately. There is an assumption here that no requests happen immediatly, but it's not always the case. This assumption can causes a BUG() when the clocks are disabled. The fix is to just remove the clock disable in the probe function. Signed-off-by: Daniel Walker commit 208028de5fa7732704d12cdd3f8fd45d2d8445e3 Author: Daniel Walker Date: Tue Jan 18 15:03:25 2011 -0800 mmc: msm: fix dma usage not to use internal APIs Remove parts of this driver which use internal API calls. This replaces the calls as suggested by Russell King. Cc: Russell King - ARM Linux Signed-off-by: Daniel Walker commit 2221eca0a2c0f7f9918efdcaa52fb8e1adff991f Author: Vasiliy Kulikov Date: Fri Jan 21 16:24:23 2011 -0800 atm: idt77105: fix fetch_stats() result copy_to_user() used PRIV(dev)->stats instead of local stats variable. Zero stats were returned to user in case of (zero != 0), also memcpy() was pointless. Signed-off-by: Vasiliy Kulikov Signed-off-by: David S. Miller commit 806839b22cbda90176d7f8d421889bddd7826e93 Author: Oleg Nesterov Date: Fri Jan 21 18:45:47 2011 +0100 perf: perf_event_exit_task_context: s/rcu_dereference/rcu_dereference_raw/ In theory, almost every user of task->child->perf_event_ctxp[] is wrong. find_get_context() can install the new context at any moment, we need read_barrier_depends(). dbe08d82ce3967ccdf459f7951d02589cf967300 "perf: Fix find_get_context() vs perf_event_exit_task() race" added rcu_dereference() into perf_event_exit_task_context() to make the precedent, but this makes __rcu_dereference_check() unhappy. Use rcu_dereference_raw() to shut up the warning. Reported-by: Ingo Molnar Signed-off-by: Oleg Nesterov Cc: acme@redhat.com Cc: paulus@samba.org Cc: stern@rowland.harvard.edu Cc: a.p.zijlstra@chello.nl Cc: fweisbec@gmail.com Cc: roland@redhat.com Cc: prasad@linux.vnet.ibm.com Cc: Paul E. McKenney LKML-Reference: <20110121174547.GA8796@redhat.com> Signed-off-by: Ingo Molnar commit bdc4bf652bc0271ba8f1f25bbd3dbac90bead44e Author: Jesper Juhl Date: Fri Jan 21 13:40:54 2011 -0600 rtlwifi: Fix possible NULL dereference In drivers/net/wireless/rtlwifi/pci.c::_rtl_pci_rx_interrupt() we call dev_alloc_skb(), which may fail and return NULL, but we do not check the returned value against NULL before dereferencing the returned pointer. This may lead to a NULL pointer dereference which means we'll crash - not good. In a separate call to dev_alloc_skb(), the debug level is changed so that the failure message will always be logged. Signed-off-by: Jesper Juhl Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 783cd01e140d9db5c2d2279a96b81e16f9d81fef Author: Felix Fietkau Date: Fri Jan 21 18:52:38 2011 +0100 ath9k: add missing ps wakeup/restore calls There are several places where ath_reset() was called without proper calls to ath9k_ps_wakeup/ath9k_ps_restore. To fix this, add those calls directly to ath_reset and drop them from callers where it makes sense. Also add them to the config callback around ath_update_txpow to fix a crash that happens when the tx power changed before any vif is brought up. Signed-off-by: Felix Fietkau Cc: stable@kernel.org Signed-off-by: John W. Linville commit 6f4810101a629b31b5427872a09ea092cfc5c4bd Author: Luis R. Rodriguez Date: Thu Jan 20 17:47:39 2011 -0800 ath9k_hw: disabled PAPRD for AR9003 AR9003's PAPRD was enabled prematurely, and is causing some large discrepancies on throughput and network connectivity. For example downlink (RX) throughput against an AR9280 AP can vary widlely from 43-73 Mbit/s while disabling this gets AR9382 (2x2) up to around 93 Mbit/s in a 2.4 GHz HT20 setup. Cc: stable@kernel.org Cc: Paul Shaw Signed-off-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit 239712ebb2b4750431980d33993ea05c6ac7ff65 Author: Wey-Yi Guy Date: Thu Jan 20 08:08:04 2011 -0800 iwlwifi: don't read sku information from EEPROM for 4965 For all the new devices, the sku information should read from EEPROM but for legacy devices such as 4965, appearly the EEPROM does not contain the necessary information. so skip the read from EEPROM and go back to use software configuration. Reported-by: Helmut Schaa Signed-off-by: Wey-Yi Guy Tested-by: Helmut Schaa Signed-off-by: John W. Linville commit ffb5e0fb44d0829021a51f972df90166bc9b700e Author: Han Pingtian Date: Thu Jan 20 19:47:07 2011 +0800 perf test: Use cpu_map->[cpu] when setting affinity When some of CPUs are offline: # cat /sys/devices/system/cpu/online 0,6-31 perf test will fail on #3 testcase: 3: detect open syscall event on all cpus: --- start --- perf_evsel__read_on_cpu: expected to intercept 111 calls on cpu 0, got 681 perf_evsel__read_on_cpu: expected to intercept 112 calls on cpu 1, got 117 perf_evsel__read_on_cpu: expected to intercept 113 calls on cpu 2, got 118 perf_evsel__read_on_cpu: expected to intercept 114 calls on cpu 3, got 119 perf_evsel__read_on_cpu: expected to intercept 115 calls on cpu 4, got 120 perf_evsel__read_on_cpu: expected to intercept 116 calls on cpu 5, got 121 perf_evsel__read_on_cpu: expected to intercept 117 calls on cpu 6, got 122 perf_evsel__read_on_cpu: expected to intercept 118 calls on cpu 7, got 123 perf_evsel__read_on_cpu: expected to intercept 119 calls on cpu 8, got 124 perf_evsel__read_on_cpu: expected to intercept 120 calls on cpu 9, got 125 perf_evsel__read_on_cpu: expected to intercept 121 calls on cpu 10, got 126 .... This patch try to use 'cpus->map[cpu]' when setting cpu affinity, and will check the return code of sched_setaffinity() LKML-Reference: <20110120114707.GA11781@hpt.nay.redhat.com> Signed-off-by: Han Pingtian Signed-off-by: Arnaldo Carvalho de Melo commit b2f8fb237e9cc407a02aca401369c15babae35dd Author: Dr. David Alan Gilbert Date: Fri Jan 21 16:40:19 2011 +0000 perf symbols: Fix annotation of thumb code In ARM's Thumb mode the bottom bit of the symbol address is set to mark the function as Thumb; the instructions are in reality 2 or 4 byte on 2 byte alignments, and when the +1 address is used in annotate it causes objdump to disassemble invalid instructions. The patch removes that bottom bit during symbol loading. Many thinks to Dave Martin for comments on an initial version of the patch. (For reference this corresponds to this bug https://bugs.launchpad.net/linux-linaro/+bug/677547 ) Cc: Ingo Molnar Cc: Dave Martin LKML-Reference: <20110121163922.GA31398@davesworkthinkpad> Signed-off-by: Dr. David Alan Gilbert Signed-off-by: Arnaldo Carvalho de Melo commit 20a4e7fc7e213365ea3771d7bf1e10a6bab853be Author: Mark Brown Date: Fri Jan 21 12:47:33 2011 +0000 ASoC: Handle low measured DC offsets for wm_hubs devices The DC servo codes are actually signed numbers so need to be treated as such. Signed-off-by: Mark Brown Acked-by: Liam Girdwood Cc: stable@kernel.org commit dc5a460a1bfa44273653700e33d4e7051194cbfd Author: Rajashekhara, Sudhakar Date: Fri Jan 21 20:10:01 2011 +0530 ASoC: da8xx/omap-l1xx: match codec_name with i2c ids The codec_name entry for da8xx evm in sound/soc/davinci/davinci-evm.c is not matching with the i2c ids in the board file. Without this fix the soundcard does not get detected on da850/omap-l138/am18x evm. Signed-off-by: Rajashekhara, Sudhakar Tested-by: Dan Sharon Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org (for 2.6.37) commit b5cc8ca1c9c3a37eaddf709b2fd3e1699aee41ba Author: Uwe Kleine-König Date: Fri Jan 21 16:56:46 2011 +0100 RTC: Remove Kconfig symbol for UIE emulation The effect of changing the value of this symbol is gone since 042620a (RTC: Remove UIE emulation). Remove symbol too. Signed-off-by: Uwe Kleine-König Cc: Alessandro Zummo Cc: Richard Cochran Cc: John Stultz LKML-Reference: <1295625406-15340-1-git-send-email-u.kleine-koenig@pengutronix.de> Signed-off-by: Thomas Gleixner commit d5553a556165535337ece8592f066407c62eec2e Author: John Stultz Date: Thu Jan 20 15:26:13 2011 -0800 RTC: Properly handle rtc_read_alarm error propagation and fix bug In reviewing cases where the virtualized interfaces didn't propagate errors properly, I noticed rtc_read_alarm needed fixing. In doing so I noticed my RTC rework dropped a memset and that the behavior of rtc_read_alarm shouldn't be conditionalized on the alarm.enabled flag (as the alarm may be set, but the irqs may be disabled). So those were corrected as well. CC: Thomas Gleixner Signed-off-by: John Stultz LKML-Reference: <1295565973-14358-2-git-send-email-john.stultz@linaro.org> Signed-off-by: Thomas Gleixner commit aa0be0f4659f91f31e45adc422b1788cb36ffddc Author: John Stultz Date: Thu Jan 20 15:26:12 2011 -0800 RTC: Propagate error handling via rtc_timer_enqueue properly In cases where RTC hardware does not support alarms, the virtualized RTC interfaces did not have a way to propagate the error up to userland. This patch extends rtc_timer_enqueue so it catches errors from the hardware and returns them upwards to the virtualized interfaces. To simplify error handling, it also internalizes the management of the timer->enabled bit into rtc_timer_enqueue and rtc_timer_remove. Also makes rtc_timer_enqueue and rtc_timer_remove static. Reported-by: David Daney Reported-by: Andreas Schwab Reported-by: Geert Uytterhoeven Diagnosed-by: David Daney Tested-by: David Daney Signed-off-by: John Stultz LKML-Reference: <1295565973-14358-1-git-send-email-john.stultz@linaro.org> Signed-off-by: Thomas Gleixner commit db6b175fa6ad1408cbb2fb62949a6d55cfece03e Author: Konrad Rzeszutek Wilk Date: Fri Jan 14 09:47:26 2011 -0800 acpi_pm: Clear pmtmr_ioport if acpi_pm initialization fails If the acpi pm timer throws invalid data, clear pmtmr_ioport so the pm timer won't accidentally be used. This was found when using Xen where there is a acpi pm reported, but gives bogus values, and other code was continuing to try to use the pm timer after the initialization failed. [jstultz: Catch additional failure and reword changelog message. ] Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: John Stultz LKML-Reference: <1295027246-11110-1-git-send-email-johnstul@us.ibm.com> Signed-off-by: Thomas Gleixner commit 1daeddd5962acad1bea55e524fc0fadf32654a21 Author: John Stultz Date: Thu Jan 13 09:30:49 2011 -0800 rtc: Cleanup removed UIE emulation declaration rtc_dev_update_irq_enable_emul was removed in commit 042620a018afcfba1d678062b62e463b9e43a68d (UIE emulation is now handled via hrtimer), but the declaration was missed. This patch cleans it up. Signed-off-by: John Stultz LKML-Reference: <1294939849-20608-1-git-send-email-john.stultz@linaro.org> Signed-off-by: Thomas Gleixner commit 547e9fd7d328af261f184bf66effc5033c886498 Author: Peter Zijlstra Date: Wed Jan 19 12:51:39 2011 +0100 perf: Annotate cpuctx->ctx.mutex to avoid a lockdep splat Lockdep spotted: loop_1b_instruc/1899 is trying to acquire lock: (event_mutex){+.+.+.}, at: [] perf_trace_init+0x3b/0x2f7 but task is already holding lock: (&ctx->mutex){+.+.+.}, at: [] perf_event_init_context+0xc0/0x218 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #3 (&ctx->mutex){+.+.+.}: -> #2 (cpu_hotplug.lock){+.+.+.}: -> #1 (module_mutex){+.+...}: -> #0 (event_mutex){+.+.+.}: But because the deadlock would be cpuhotplug (cpu-event) vs fork (task-event) it cannot, in fact, happen. We can annotate this by giving the perf_event_context used for the cpuctx a different lock class from those used by tasks. Signed-off-by: Peter Zijlstra LKML-Reference: Signed-off-by: Ingo Molnar commit f21bbec9ffcaf73e99938209e52b757d93f9133b Author: Fenghua Yu Date: Thu Jan 20 20:12:40 2011 -0800 x86, mcheck, therm_throt.c: Export symbol platform_thermal_notify to allow coretemp to handler intr In therm_throt.c, commit 9e76a97efd31a08cb19d0ba12013b8fb4ad3e474 patch doesn't export the symbol platform_thermal_notify. Other drivers (e.g. drivers/hwmon/coretemp.c) can not find the symbol platform_thermal_notify when defining threshould interrupt handler. Please apply this patch to allow threshold interrupt handler in coretemp. Signed-off-by: Fenghua Yu Cc: R Durgadoss Cc: khali@linux-fr.org Cc: lm-sensors@lm-sensors.org Cc: Guenter Roeck LKML-Reference: <20110121041239.GB26954@linux-os.sc.intel.com> Signed-off-by: Ingo Molnar commit cc67ba6352ecbf6891083a18f8c78fa639ebd274 Author: Akinobu Mita Date: Thu Jan 20 20:32:14 2011 +0900 x86: Use asm-generic/cacheflush.h The implementation of the cache flushing interfaces on the x86 is identical with the default implementation in asm-generic. Signed-off-by: Akinobu Mita Cc: "H. Peter Anvin" Cc: arnd@arndb.de LKML-Reference: <1295523136-4277-2-git-send-email-akinobu.mita@gmail.com> Signed-off-by: Ingo Molnar commit 9190b3b3208d052d98cb601fcc192f3f71a5658b Author: Eric Dumazet Date: Thu Jan 20 23:31:33 2011 -0800 net_sched: accurate bytes/packets stats/rates In commit 44b8288308ac9d (net_sched: pfifo_head_drop problem), we fixed a problem with pfifo_head drops that incorrectly decreased sch->bstats.bytes and sch->bstats.packets Several qdiscs (CHOKe, SFQ, pfifo_head, ...) are able to drop a previously enqueued packet, and bstats cannot be changed, so bstats/rates are not accurate (over estimated) This patch changes the qdisc_bstats updates to be done at dequeue() time instead of enqueue() time. bstats counters no longer account for dropped frames, and rates are more correct, since enqueue() bursts dont have effect on dequeue() rate. Signed-off-by: Eric Dumazet Acked-by: Stephen Hemminger Signed-off-by: David S. Miller commit cb1b145929b5b7e1bdc5f76dd2905df9f89c038e Author: Dmitry Torokhov Date: Thu Jan 20 23:05:17 2011 -0800 Input: sparse-keymap - fix KEY_VSW handling in sparse_keymap_setup We were forgetting to set up device capabilities for KEY_VSW entries. Reported-by: Tapio Vihuri Tested-by: Tapio Vihuri Signed-off-by: Dmitry Torokhov commit 11f5b30dacdd77bee1028764d91ad58b6c73d50c Author: Rakesh Iyer Date: Wed Jan 19 23:38:47 2011 -0800 Input: tegra-kbc - add tegra keyboard driver This patch adds support for the internal matrix keyboard controller for Nvidia Tegra platforms. Signed-off-by: Rakesh Iyer Reviewed-by: Trilok Soni Signed-off-by: Dmitry Torokhov commit 94a8cab8caaa56824981c17b6898b73627e8382f Author: Philippe Langlais Date: Thu Jan 20 23:09:30 2011 -0800 Input: gpio_keys - switch to using request_any_context_irq The driver does not require hardirq context and can work with threaded interrupts as well, so let's switch to request_any_context_irq which will select the context that is available for us. Signed-off-by: Philippe Langlais Signed-off-by: Dmitry Torokhov commit 48c27016e18f8608c12b7516515ad773093198d8 Author: David Engraf Date: Thu Jan 20 23:05:17 2011 -0800 Input: serio - allow registered drivers to get status flag Parse and pass the status byte information to the registered serio drivers as well as the data bytes. Signed-off-by: David Engraf Signed-off-by: Dmitry Torokhov commit b30532515f0a62bfe17207ab00883dd262497006 Author: Neil Horman Date: Thu Jan 20 09:02:31 2011 +0000 bonding: Ensure that we unshare skbs prior to calling pskb_may_pull Recently reported oops: kernel BUG at net/core/skbuff.c:813! invalid opcode: 0000 [#1] SMP last sysfs file: /sys/devices/virtual/net/bond0/broadcast CPU 8 Modules linked in: sit tunnel4 cpufreq_ondemand acpi_cpufreq freq_table bonding ipv6 dm_mirror dm_region_hash dm_log cdc_ether usbnet mii serio_raw i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support shpchp ioatdma i7core_edac edac_core bnx2 ixgbe dca mdio sg ext4 mbcache jbd2 sd_mod crc_t10dif mptsas mptscsih mptbase scsi_transport_sas dm_mod [last unloaded: microcode] Modules linked in: sit tunnel4 cpufreq_ondemand acpi_cpufreq freq_table bonding ipv6 dm_mirror dm_region_hash dm_log cdc_ether usbnet mii serio_raw i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support shpchp ioatdma i7core_edac edac_core bnx2 ixgbe dca mdio sg ext4 mbcache jbd2 sd_mod crc_t10dif mptsas mptscsih mptbase scsi_transport_sas dm_mod [last unloaded: microcode] Pid: 0, comm: swapper Not tainted 2.6.32-71.el6.x86_64 #1 BladeCenter HS22 -[7870AC1]- RIP: 0010:[] [] pskb_expand_head+0x36/0x1e0 RSP: 0018:ffff880028303b70 EFLAGS: 00010202 RAX: 0000000000000002 RBX: ffff880c6458ec80 RCX: 0000000000000020 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880c6458ec80 RBP: ffff880028303bc0 R08: ffffffff818a6180 R09: ffff880c6458ed64 R10: ffff880c622b36c0 R11: 0000000000000400 R12: 0000000000000000 R13: 0000000000000180 R14: ffff880c622b3000 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff880028300000(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: 00000038653452a4 CR3: 0000000001001000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process swapper (pid: 0, threadinfo ffff8806649c2000, task ffff880c64f16ab0) Stack: ffff880028303bc0 ffffffff8104fff9 000000000000001c 0000000100000000 <0> ffff880000047d80 ffff880c6458ec80 000000000000001c ffff880c6223da00 <0> ffff880c622b3000 0000000000000000 ffff880028303c10 ffffffff81407f7a Call Trace: [] ? __wake_up_common+0x59/0x90 [] __pskb_pull_tail+0x2aa/0x360 [] bond_arp_rcv+0x2c0/0x2e0 [bonding] [] ? packet_rcv+0x377/0x440 [] netif_receive_skb+0x2db/0x670 [] napi_skb_finish+0x58/0x70 [] napi_gro_receive+0x39/0x50 [] ixgbe_clean_rx_irq+0x35b/0x900 [ixgbe] [] ixgbe_clean_rxtx_many+0x136/0x240 [ixgbe] [] net_rx_action+0x103/0x210 [] __do_softirq+0xb7/0x1e0 [] ? handle_IRQ_event+0x60/0x170 [] call_softirq+0x1c/0x30 [] do_softirq+0x65/0xa0 [] irq_exit+0x85/0x90 [] do_IRQ+0x75/0xf0 [] ret_from_intr+0x0/0x11 [] ? mwait_idle+0x71/0xd0 [] ? atomic_notifier_call_chain+0x1a/0x20 [] cpu_idle+0xb6/0x110 [] start_secondary+0x1fc/0x23f Resulted from bonding driver registering packet handlers via dev_add_pack and then trying to call pskb_may_pull. If another packet handler (like for AF_PACKET sockets) gets called first, the delivered skb will have a user count > 1, which causes pskb_may_pull to BUG halt when it does its skb_shared check. Fix this by calling skb_share_check prior to the may_pull call sites in the bonding driver to clone the skb when needed. Tested by myself and the reported successfully. Signed-off-by: Neil Horman CC: Andy Gospodarek CC: Jay Vosburgh CC: "David S. Miller" Signed-off-by: Jay Vosburgh Signed-off-by: Andy Gospodarek Signed-off-by: David S. Miller commit 6a3c869a6021f4abcd69aa5fbb15c63f69eb36fe Author: Dimitris Michailidis Date: Wed Jan 19 15:29:05 2011 +0000 cxgb4: fix reported state of interfaces without link Currently tools like ip and ifconfig report incorrect state for cxgb4 interfaces that are up but do not have link and do so until first link establishment. This is because the initial netif_carrier_off call is before register_netdev and it needs to be after to be fully effective. Fix this by moving netif_carrier_off into .ndo_open. Signed-off-by: Dimitris Michailidis Signed-off-by: David S. Miller commit 01446ef5af4e8802369bf4d257806e24345a9371 Author: Max Vozeler Date: Wed Jan 12 15:02:05 2011 +0200 staging: usbip: vhci: use urb->dev->portnum to find port The access to pending_port was racy when two devices were being attached at the same time. Signed-off-by: Max Vozeler Tested-by: Mark Wehby Signed-off-by: Greg Kroah-Hartman commit bd65f6233f6bc3233e7910752689fe3a45dc2e0c Author: Max Vozeler Date: Wed Jan 12 15:02:04 2011 +0200 staging: usbip: vhci: handle EAGAIN from SO_RCVTIMEO If there is a receive timeout without any active requests, we can tell the connection was idle and ignore the timeout. If there are active requests for which we expect to receive a reply we close the connection. This makes it possible to set an upper bound on the time a usbip device may be unresponsive. This is a workaround for the lack of heart-beat messages in the USBIP protocol. Extending the protocol would break compatibility with all previous stub versions, so this seems like the lesser evil. Signed-off-by: Max Vozeler Tested-by: Mark Wehby Signed-off-by: Greg Kroah-Hartman commit 7e249c8b0737429bbf534515f81aded93504f449 Author: Max Vozeler Date: Wed Jan 12 15:02:03 2011 +0200 staging: usbip: vhci: friendly log messages for connection errors Also changes the event on connection close to be VDEV_EVENT_DOWN - no functional change. Signed-off-by: Max Vozeler Signed-off-by: Greg Kroah-Hartman commit 6d212153a838354078cc7d96f9bb23b7d1fd3d1b Author: Max Vozeler Date: Wed Jan 12 15:02:02 2011 +0200 staging: usbip: vhci: refuse to enqueue for dead connections There can be requests to enqueue URBs while we are shutting down a connection. Signed-off-by: Max Vozeler Tested-by: Mark Wehby Signed-off-by: Greg Kroah-Hartman commit b92a5e23737172c52656a090977408a80d7f06d1 Author: Max Vozeler Date: Wed Jan 12 15:02:01 2011 +0200 staging: usbip: vhci: give back URBs from in-flight unlink requests If we never received a RET_UNLINK because the TCP connection broke the pending URBs still need to be unlinked and given back. Previously processes would be stuck trying to kill the URB even after the device was detached. Signed-off-by: Max Vozeler Tested-by: Mark Wehby Signed-off-by: Greg Kroah-Hartman commit 7606ee8aa33287dd3e6eb44c78541b87a413a325 Author: Max Vozeler Date: Wed Jan 12 15:02:00 2011 +0200 staging: usbip: vhci: update reference count for usb_device This fixes an oops observed when reading status during removal of a device: [ 1706.648285] general protection fault: 0000 [#1] SMP [ 1706.648294] last sysfs file: /sys/devices/platform/vhci_hcd/status [ 1706.648297] CPU 1 [ 1706.648300] Modules linked in: binfmt_misc microcode fuse loop vhci_hcd(N) usbip(N) usbcore usbip_common_mod(N) rtc_core rtc_lib joydev dm_mirror dm_region_hash dm_log linear dm_snapshot xennet dm_mod ext3 mbcache jbd processor thermal_sys hwmon xenblk cdrom [ 1706.648324] Supported: Yes [ 1706.648327] Pid: 10422, comm: usbip Tainted: G N 2.6.32.12-0.7-xen #1 [ 1706.648330] RIP: e030:[] [] strnlen+0x5/0x40 [ 1706.648340] RSP: e02b:ffff8800a994dd30 EFLAGS: 00010286 [ 1706.648343] RAX: ffffffff80481ec1 RBX: 0000000000000000 RCX: 0000000000000002 [ 1706.648347] RDX: 00200d1d4f1c001c RSI: ffffffffffffffff RDI: 00200d1d4f1c001c [ 1706.648350] RBP: ffff880129a1c0aa R08: ffffffffa01901c4 R09: 0000000000000006 [ 1706.648353] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800a9a1c0ab [ 1706.648357] R13: 00200d1d4f1c001c R14: 00000000ffffffff R15: ffff880129a1c0aa [ 1706.648363] FS: 00007f2f2e9ca700(0000) GS:ffff880001018000(0000) knlGS:0000000000000000 [ 1706.648367] CS: e033 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1706.648370] CR2: 000000000071b048 CR3: 00000000b4b68000 CR4: 0000000000002660 [ 1706.648374] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1706.648378] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 1706.648381] Process usbip (pid: 10422, threadinfo ffff8800a994c000, task ffff88007b170200) [ 1706.648385] Stack: [ 1706.648387] ffffffff801b28c9 0000000000000002 ffffffffa01901c4 ffff8800a9a1c0ab [ 1706.648391] <0> ffffffffa01901c6 ffff8800a994de08 ffffffff801b339b 0000000000000004 [ 1706.648397] <0> 0000000affffffff ffffffffffffffff 00000000000067c0 0000000000000000 [ 1706.648404] Call Trace: [ 1706.648413] [] string+0x39/0xe0 [ 1706.648419] [] vsnprintf+0x1eb/0x620 [ 1706.648423] [] sprintf+0x43/0x50 [ 1706.648429] [] show_status+0x1b9/0x220 [vhci_hcd] [ 1706.648438] [] dev_attr_show+0x27/0x60 [ 1706.648445] [] sysfs_read_file+0x101/0x1d0 [ 1706.648451] [] vfs_read+0xc7/0x130 [ 1706.648457] [] sys_read+0x53/0xa0 [ 1706.648462] [] system_call_fastpath+0x16/0x1b [ 1706.648468] [<00007f2f2de40f30>] 0x7f2f2de40f30 [ 1706.648470] Code: 66 0f 1f 44 00 00 48 83 c2 01 80 3a 00 75 f7 48 89 d0 48 29 f8 f3 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 48 85 f6 74 29 <80> 3f 00 74 24 48 8d 56 ff 48 89 f8 eb 0e 0f 1f 44 00 00 48 83 [ 1706.648507] RIP [] strnlen+0x5/0x40 [ 1706.648511] RSP [ 1706.649575] ---[ end trace b4eb72bf2e149593 ]--- Signed-off-by: Max Vozeler Tested-by: Mark Wehby Signed-off-by: Greg Kroah-Hartman commit 2d8f4595d1f275f424a8920bb2563fc547661213 Author: Max Vozeler Date: Wed Jan 12 15:01:59 2011 +0200 staging: usbip: stub: update refcounts for devices and interfaces The stub driver expects to access the usb interface and usb device structures even if the device has been disconnected in the meantime. This change gets a reference to them in the stub probe function using usb_get_intf()/usb_get_dev() and drops them in the disconnect function. This fixes an oops observed with a Logic Controls Line display (0fa8:a030) which disconnects itself when it is reset: [ 1348.562274] BUG: unable to handle kernel paging request at 5f7433e5 [ 1348.562327] IP: [] usb_lock_device_for_reset+0x22/0xd0 [ 1348.562374] *pde = 00000000 [ 1348.562397] Oops: 0000 [#1] [ 1348.562418] last sysfs file: /sys/devices/pci0000:00/0000:00:10.2/usb4/4-1/bConfigurationValue [ 1348.562454] Modules linked in: usbip vhci_hcd usbip_common_mod fbcon tileblit font bitblit softcursor serio_raw uvesafb pcspkr via_rng snd_via82xx gameport snd_ac97_codec ac97_bus snd_pcm_oss snd_mixer_oss snd_pcm snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_oss snd_seq_midi_event snd_seq snd_timer snd_seq_device snd usbhid hid via_rhine soundcore mii igel_flash aufs pata_via [ 1348.562649] [ 1348.562670] Pid: 2855, comm: usbip_eh Not tainted (2.6.32 #23.37-ud-r113) M300C [ 1348.562704] EIP: 0060:[] EFLAGS: 00010216 CPU: 0 [ 1348.562734] EIP is at usb_lock_device_for_reset+0x22/0xd0 [ 1348.562762] EAX: 5f7433cd EBX: 5f7433cd ECX: de293a5c EDX: dd326a00 [ 1348.562793] ESI: 5f7433cd EDI: 000400f6 EBP: cf43ff48 ESP: cf43ff38 [ 1348.562824] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 [ 1348.562854] Process usbip_eh (pid: 2855, ti=cf43e000 task=d2c7f230 task.ti=cf43e000) [ 1348.562884] Stack: [ 1348.562900] d6ec9960 de2939cc 5f7433cd 5f743431 cf43ff70 df8fd32f de2939cc d2c7f230 [ 1348.562940] <0> cf43ff70 00000282 00000282 de2939cc d2c7f230 d2c7f230 cf43ffa8 df84416d [ 1348.562987] <0> cf43ff88 d2c7f230 de293a24 d2c7f230 00000000 d2c7f230 c014e760 cf43ff94 [ 1348.563042] Call Trace: [ 1348.563073] [] ? stub_device_reset+0x3f/0x110 [usbip] [ 1348.563114] [] ? event_handler_loop+0xcd/0xe8 [usbip_common_mod] [ 1348.563156] [] ? autoremove_wake_function+0x0/0x50 [ 1348.563193] [] ? usbip_thread+0x0/0x60 [usbip_common_mod] [ 1348.563230] [] ? usbip_thread+0x51/0x60 [usbip_common_mod] [ 1348.563265] [] ? kthread+0x74/0x80 [ 1348.563294] [] ? kthread+0x0/0x80 [ 1348.563326] [] ? kernel_thread_helper+0x7/0x10 [ 1348.563351] Code: 00 e8 73 4d 00 00 5d c3 90 55 89 e5 83 ec 10 89 5d f4 89 75 f8 89 7d fc 0f 1f 44 00 00 8b 3d c0 2e 67 c0 81 c7 fa 00 00 00 89 c3 <8b> 40 18 89 d6 85 c0 75 15 b8 ed ff ff ff 8b 5d f4 8b 75 f8 8b [ 1348.563528] EIP: [] usb_lock_device_for_reset+0x22/0xd0 SS:ESP 0068:cf43ff38 [ 1348.563570] CR2: 000000005f7433e5 [ 1348.563593] ---[ end trace 9c3f1e3a2e5299d9 ]--- Signed-off-by: Max Vozeler Tested-by: Mark Wehby Tested-by: Steven Harms Signed-off-by: Greg Kroah-Hartman commit 85d139c977dd13cd1ca5cb3b9d8e39cb477eaf0c Author: Omar Ramirez Luna Date: Fri Jan 14 17:49:51 2011 -0600 staging: tidspbridge: replace mbox callback with notifier_call Lately, mailbox callbacks have been replaced by notifier block call chains, this needs to be changed in the users of mailbox, otherwise compilation will break due to missing parameters. For this new change to work, io_mbox_msg needs to be compatible with the notifier_call definition. Reported-by: Hari Kanigeri Signed-off-by: Omar Ramirez Luna Signed-off-by: Greg Kroah-Hartman commit d1ce318496f5943d2cc5e20171fc383a59a1421f Author: Ian Abbott Date: Wed Jan 19 11:48:44 2011 +0000 staging: comedi: ni_labpc: Use shared IRQ for PCMCIA card The ni_labpc driver module only requests a shared IRQ for PCI devices, requesting a non-shared IRQ for non-PCI devices. As this module is also used by the ni_labpc_cs module for certain National Instruments PCMCIA cards, it also needs to request a shared IRQ for PCMCIA devices, otherwise you get a IRQ mismatch with the CardBus controller. Signed-off-by: Ian Abbott Cc: stable Signed-off-by: Greg Kroah-Hartman commit e7bf352fcd85c33b0805da891fc97fea8b5e996e Author: roel kluin Date: Mon Jan 3 11:59:48 2011 -0800 Staging: speakup: &&/|| confusion in silent_store() Fix test: the branch is always taken. Signed-off-by: Roel Kluin Cc: Andrew Morton Cc: stable Signed-off-by: Greg Kroah-Hartman commit e71a7fd259943a2c2e11484880c80248ad139fe5 Author: Roland Stigge Date: Thu Jan 13 18:37:36 2011 +0100 iio: Fixpoint formatted output bugfix Fix some ADC drivers' _scale interface to correct fixpoint formatted output Signed-off-by: Roland Stigge Acked-by: Jonathan Cameron Acked-by: Michael Hennerich Cc: stable Signed-off-by: Greg Kroah-Hartman commit 9c33008412683eba91bce2dc4575f28c728b6bd1 Author: Denis Kirjanov Date: Mon Jan 10 20:09:30 2011 +0000 staging: rt2860: Fix incorrect netif_stop_queue usage warning The TX queues are allocated inside register_netdev. It doesn't make any sense to stop the queue before allocation. Signed-off-by: Denis Kirjanov Cc: stable Signed-off-by: Greg Kroah-Hartman commit e375870b9295be40de7372c3c9de6799e254c96a Author: Larry Finger Date: Fri Jan 14 14:54:08 2011 -0600 staging: r8712u: Fix memory leak in firmware loading The error path leaks the firmware struct. Signed-off-by: Larry Finger Signed-off-by: Greg Kroah-Hartman commit 8e290fd41a15e392af87a33c9c4db3daffcd558b Author: Guzman Lugo, Fernando Date: Thu Jan 13 23:34:52 2011 -0600 staging: tidspbridge: configure full L1 MMU range IVA MMU can manage up to 4GB of address space through its page tables, given that it's L1 is divided into 1MB sections it requires at least 16KB for its table which represents 4096 entries of 32 bits each. Previously, only 1GB was being handled by setting the page table size to 4KB, any virtual address beyond of the L1 size used, would fall into memory that does not belong to L1 translation tables, leading to unpredictable results. So, set the L1 table size to cover the entire MMU range (4GB) whether is meant to be used or not. Reported-by: Felipe Contreras Signed-off-by: Fernando Guzman Lugo Signed-off-by: Felipe Contreras Signed-off-by: Omar Ramirez Luna Signed-off-by: Greg Kroah-Hartman commit 27c82819a5a42f08fc0f787ab1b0c129cbdda801 Author: Larry Finger Date: Wed Jan 12 22:24:28 2011 -0600 staging: rt2870sta: Add ID for Linksys WUSB100v2 This device was tested with rt2870sta by setting new_id. Signed-off-by: Larry Finger Tested-by: Brian Ormond Cc: Stable Signed-off-by: Greg Kroah-Hartman commit a65fd09ac5490133b09d08be91c31ae2f2fa5cad Author: Dan Carpenter Date: Tue Jan 4 09:02:27 2011 +0300 Staging: xgfib: put parenthesis in the right place In the original code the parenthesis are in the wrong position, so the conditions are always true. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit f32b8453e5a5587ae112ba478ae0bbad74e83d22 Author: Dan Carpenter Date: Thu Dec 23 00:07:33 2010 +0300 Staging: ste_rmi4: use after input_unregister_device() The original code called input_free_device(rmi4_data->input_dev) after input_unregister_device(rmi4_data->input_dev) and that's a double free. This is described in the comments to input_unregister_device(). The normal way to handle this is to make input_register_device() the last function in the probe which can fail. That way you can avoid the call to input_unregister_device() entirely. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit 64911e4b133ff633563d6dd2b021fa1ca0608992 Author: Phillip Simbwa Date: Wed Dec 29 12:01:16 2010 -0800 Staging: ath6kl: fix potential buffer overflow Off by one Signed-off-by: Phillip Simbwa Signed-off-by: Vipin Mehta Signed-off-by: Greg Kroah-Hartman commit a786f915274ba446865a996515c7790a930f04dd Author: Hank Janssen Date: Fri Jan 7 09:25:39 2011 -0800 staging: hv: Removed unneeded call to netif_stop_queue() in hv_netvsc Removed the call to netif_stop_queue() in netvsc_probe() as the queue is not initialized at that point and further call to it after queue initialization is really not necessary. This change was prompted after an upstream change went into 2.6.37 (netif_tx_stop_queue) that now checks if netif_stop_queue is called before register with netdev is done. This will eliminate the warning message to the log when hv_netvsc driver starts up. Signed-off-by: Abhishek Kane Signed-off-by: Haiyang Zhang Signed-off-by: Hank Janssen Cc: stable Signed-off-by: Greg Kroah-Hartman commit d70c673153d42e8aefd5ac296c8159ef222d076b Author: Timo Teräs Date: Fri Dec 17 11:40:24 2010 +0200 staging: hv: fix netvsc sleeping while atomic The channel callbacks are called directly from vmbus_event_dpc which runs in tasklet context. These callbacks need to use GFP_ATOMIC. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16701 Cc: Hank Janssen Cc: Haiyang Zhang Signed-off-by: Timo Teräs Cc: stable Signed-off-by: Greg Kroah-Hartman commit 268eff909afaca93188d2d14554cbf824f6a0e41 Author: Ky Srinivasan Date: Thu Dec 16 18:59:19 2010 -0700 Staging: hv: fix sysfs symlink on hv block device The block device does not create the proper symlink in sysfs because we forgot to set up the gendisk structure properly. This patch fixes the issue. Signed-off-by: K. Y. Srinivasan Cc: Hank Janssen Cc: Haiyang Zhang Cc: stable Signed-off-by: Greg Kroah-Hartman commit c7dca47bd6fbb7c215cb1ce6bc40398b4b017752 Author: Chris Wilson Date: Thu Jan 20 17:00:10 2011 +0000 drm/i915/ringbuffer: Fix use of stale HEAD position whilst polling for space During suspend, Linus found that his machine would hang for 3 seconds, and identified that intel_ring_buffer_wait() was the culprit: "Because from looking at the code, I get the notion that "intel_read_status_page()" may not be exact. But what happens if that inexact value matches our cached ring->actual_head, so we never even try to read the exact case? Does it _stay_ inexact for arbitrarily long times? If so, we might wait for the ring to empty forever (well, until the timeout - the behavior I see), even though the ring really _is_ empty." As the reported HEAD position is only updated every time it crosses a 64k boundary, whilst draining the ring it is indeed likely to remain one value. If that value matches the last known HEAD position, we never read the true value from the register and so trigger a timeout. Reported-by: Linus Torvalds Signed-off-by: Chris Wilson commit fec2be706dfb1f2f70ffd04319841ec0dfc546b2 Author: Greg Kroah-Hartman Date: Thu Jan 20 09:13:14 2011 -0800 Staging: remove unintended Module.symvers file commit a82ad05ecd9dbd909509a332d3aa5f4ac439a054 (staging: vme: tsi148: fix warning in free_irq) accidentally added a Module.symvers file to the git tree. This patch removes it, sorry about that. Reported-by: Toralf Förster Cc: Emilio G. Cota Signed-off-by: Greg Kroah-Hartman commit 170c7ab58f41c526c54e9dd04044857d5d73f9e6 Author: Magnus Damm Date: Thu Jan 20 08:41:03 2011 +0000 ARM: mach-shmobile: AG5EVM LCDC / MIPI-DSI platform data Add platform data for MIPI-DSI and LCDC on the AG5EVM board. The sh73a0 clkdev bindings are also updated. Signed-off-by: Magnus Damm Signed-off-by: Paul Mundt commit 71fc5099ed50d3699ba003042a721a0bf105369d Author: Magnus Damm Date: Thu Jan 20 08:11:11 2011 +0000 ARM: mach-shmobile: sh73a0 CPGA fix for PLL CFG bit PLL1 and PLL2 in the sh73a0 CPGA has a CFG bit that must be taken into account to correctly calculate the frequency. Signed-off-by: Magnus Damm Signed-off-by: Paul Mundt commit 475553de2fc861d53396dd8fd14cc22f30ab97ab Author: Chris Wilson Date: Thu Jan 20 09:52:56 2011 +0000 drm/i915: Don't kick-off hangcheck after a DRI interrupt Hangcheck and error recovery is only used by GEM. Reported-by: Herbert Xu Signed-off-by: Chris Wilson commit f7ab9b407b3bc83161c2aa74c992ba4782e87c9c Author: Chris Wilson Date: Thu Jan 20 10:03:24 2011 +0000 drm/i915: Add dependency on CONFIG_TMPFS Without tmpfs, shmem_readpage() is not compiled in causing an OOPS as soon as we try to allocate some swappable pages for GEM. Jan 19 22:52:26 harlie kernel: Modules linked in: i915(+) drm_kms_helper cfbcopyarea video backlight cfbimgblt cfbfillrect Jan 19 22:52:26 harlie kernel: Jan 19 22:52:26 harlie kernel: Pid: 1125, comm: modprobe Not tainted 2.6.37Harlie #10 To be filled by O.E.M./To be filled by O.E.M. Jan 19 22:52:26 harlie kernel: EIP: 0060:[<00000000>] EFLAGS: 00010246 CPU: 3 Jan 19 22:52:26 harlie kernel: EIP is at 0x0 Jan 19 22:52:26 harlie kernel: EAX: 00000000 EBX: f7b7d000 ECX: f3383100 EDX: f7b7d000 Jan 19 22:52:26 harlie kernel: ESI: f1456118 EDI: 00000000 EBP: f2303c98 ESP: f2303c7c Jan 19 22:52:26 harlie kernel: DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Jan 19 22:52:26 harlie kernel: Process modprobe (pid: 1125, ti=f2302000 task=f259cd80 task.ti=f2302000) Jan 19 22:52:26 harlie kernel: Stack: Jan 19 22:52:26 harlie udevd-work[1072]: '/sbin/modprobe -b pci:v00008086d00000046sv00000000sd00000000bc03sc00i00' unexpected exit with status 0x0009 Jan 19 22:52:26 harlie kernel: c1074061 000000d0 f2f42b80 00000000 000a13d2 f2d5dcc0 00000001 f2303cac Jan 19 22:52:26 harlie kernel: c107416f 00000000 000a13d2 00000000 f2303cd4 f8d620ed f2cee620 00001000 Jan 19 22:52:26 harlie kernel: 00000000 000a13d2 f1456118 f2d5dcc0 f1a40000 00001000 f2303d04 f8d637ab Jan 19 22:52:26 harlie kernel: Call Trace: Jan 19 22:52:26 harlie kernel: [] ? do_read_cache_page+0x71/0x160 Jan 19 22:52:26 harlie kernel: [] ? read_cache_page_gfp+0x1f/0x30 Jan 19 22:52:26 harlie kernel: [] ? i915_gem_object_get_pages+0xad/0x1d0 [i915] Jan 19 22:52:26 harlie kernel: [] ? i915_gem_object_bind_to_gtt+0xeb/0x2d0 [i915] Jan 19 22:52:26 harlie kernel: [] ? i915_gem_object_pin+0x151/0x190 [i915] Jan 19 22:52:26 harlie kernel: [] ? drm_gem_object_init+0x3d/0x60 Jan 19 22:52:26 harlie kernel: [] ? i915_gem_init_ringbuffer+0x105/0x1e0 [i915] Jan 19 22:52:26 harlie kernel: [] ? i915_driver_load+0x667/0x1160 [i915] Reported-by: John J. Stimson-III Signed-off-by: Chris Wilson Cc: stable@kernel.org commit e8616b6ced6137085e6657cc63bc2fe3900b8616 Author: Chris Wilson Date: Thu Jan 20 09:57:11 2011 +0000 drm/i915: Initialise ring vfuncs for old DRI paths We weren't setting up the vfunc table when initialising the old DRI ringbuffer, leading to such OOPSes as: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<(null)>] (null) PGD 10c441067 PUD 1185e5067 PMD 0 Oops: 0010 [#1] PREEMPT SMP last sysfs file: /sys/class/dmi/id/chassis_asset_tag CPU 3 Modules linked in: i915 drm_kms_helper drm fb fbdev i2c_algo_bit cfbcopyarea video backlight output cfbimgblt cfbfillrect autofs4 ipv6 nfs lockd fscache nfs_acl auth_rpcgss sunrpc coretemp hwmon_vid mousedev usbhid hid option usb_wwan snd_hda_codec_via asus_atk0110 atl1e usbserial snd_hda_intel snd_hda_codec firmware_class snd_hwdep snd_pcm snd_seq snd_timer snd_seq_device processor parport_pc thermal snd thermal_sys parport 8250_pnp button rng_core rtc_cmos shpchp hwmon rtc_core ehci_hcd pci_hotplug uhci_hcd soundcore tpm_tis i2c_i801 rtc_lib tpm serio_raw snd_page_alloc tpm_bios i2c_core usbcore psmouse intel_agp sg pcspkr sr_mod evdev cdrom ext3 jbd mbcache dm_mod sd_mod ata_piix libata scsi_mod unix Jan 18 15:49:29 lithui kernel: Pid: 3605, comm: Xorg Not tainted 2.6.36.2 #5 P5KPL-CM/System Product Name RIP: 0010:[<0000000000000000>] [<(null)>] (null) RSP: 0018:ffff8801150d1d40 EFLAGS: 00010202 RAX: 000000000001ffff RBX: ffff88011a011b00 RCX: 000000000001a704 RDX: ffff880118566028 RSI: ffff880118566028 RDI: ffff880117876800 RBP: ffff8801150d1d48 R08: ffff8801195fe300 R09: 00000000c0086444 R10: 0000000000000001 R11: 0000000000003206 R12: ffff880117876800 R13: ffff880118566000 R14: ffff880117876820 R15: ffff8801150d1df8 FS: 00007f1038d456e0(0000) GS:ffff880001780000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 00000001187e7000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process Xorg (pid: 3605, threadinfo ffff8801150d0000, task ffff88011b016e40) Stack: ffffffffa043b8e6 ffff8801150d1d98 ffffffffa041768b dead000000000000 <0> 0000000000000048 00007f1023f2a000 0000000000000044 0000000000000008 <0> ffff88010d26bd80 ffff880117876800 ffff8801150d1df8 ffff8801150d1ea8 Call Trace: [] ? intel_ring_advance+0x16/0x20 [i915] [] i915_irq_emit+0x15b/0x240 [i915] [] drm_ioctl+0x1f1/0x460 [drm] [] ? i915_irq_emit+0x0/0x240 [i915] [] ? do_sync_read+0xd1/0x120 [] ? do_page_fault+0x1df/0x3d0 [] do_vfs_ioctl+0x97/0x550 [] ? security_file_permission+0x7a/0x90 [] sys_ioctl+0x99/0xa0 [] system_call_fastpath+0x16/0x1b Code: Bad RIP value. RIP [<(null)>] (null) RSP CR2: 0000000000000000 Reported-by: Herbert Xu Tested-by: Herbert Xu Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29153 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=23172 Signed-off-by: Chris Wilson Cc: stable@kernel.org commit fb87ec382f9d95469df494bdee9db922594f5cd4 Author: Dave Jones Date: Wed Jan 19 20:20:56 2011 -0500 x86: Update CPU cache attributes table descriptors Update to latest definitions in: http://www.intel.com/Assets/PDF/appnote/241618.pdf [ Note, this update of the doc has removed some old values which we have listed. I think until we have clarification that they were never used in production, they should be left there. ] Signed-off-by: Dave Jones Cc: Arjan van de Ven Cc: "H. Peter Anvin" LKML-Reference: <20110120012055.GA15985@redhat.com> Signed-off-by: Ingo Molnar commit 4fb699b408b559107f1e1b47d176d33361446b69 Author: Adrian Hunter Date: Wed Nov 24 13:23:21 2010 +0200 omap: DMA: clear interrupt status correctly When clearing the DMA channel, clear all status bits. When handling a DMA interrupt, clear only the interrupt status bits that have been read and are passed to the channel's interrupt handler, not every status bit. Signed-off-by: Adrian Hunter Acked-by: Santosh Shilimkar Acked-by: G, Manjunath Kondaiah Signed-off-by: Tony Lindgren commit 35a78fa48678926464138aab3a4dede4503befb5 Author: Daniel Morsing Date: Wed Jan 19 08:19:24 2011 +0000 OMAP3: Devkit8000: Fix tps65930 pullup/pulldown configuration gpio7 on the tps65930 is used as an output on the devkit8000 and gpio1 is not connected. Remove gpio7 and change gpio1 to pulldown Signed-off-by: Daniel Morsing Signed-off-by: Tony Lindgren commit 2216b436ed8788f1a6d51b136ed1421956aa18e0 Author: Igor Grinberg Date: Thu Jan 13 16:24:50 2011 +0000 arm: omap3: cm-t3517: minor comment fix offsets in the comment were wrong - fix this. Signed-off-by: Igor Grinberg Signed-off-by: Tony Lindgren commit fec5568cbcf3b5d701d2adf9a22f0110bcc6eb33 Author: Igor Grinberg Date: Thu Jan 13 16:24:49 2011 +0000 arm: omap3: cm-t3517: rtc fix Fix rtc gpios and mux Signed-off-by: Igor Grinberg Signed-off-by: Tony Lindgren commit 0da2a4ac33c291728d8be5bdb865467dcb078d13 Author: Fred Isaman Date: Wed Jan 19 14:18:50 2011 -0500 NFS: fix handling of malloc failure during nfs_flush_multi() Cleanup of the allocated list entries should not call put_nfs_open_context() on each entry, as the context will always be NULL, causing an oops. Signed-off-by: Fred Isaman Signed-off-by: Trond Myklebust commit 2d0640b47da74cff7c11642c798d40de861ed524 Author: Stephen Boyd Date: Tue Jan 18 22:46:34 2011 -0800 hrtimers: Notify hrtimer users of switches to NOHZ mode When NOHZ=y and high res timers are disabled (via cmdline or Kconfig) tick_nohz_switch_to_nohz() will notify the user about switching into NOHZ mode. Nothing is printed for the case where HIGH_RES_TIMERS=y. Fix this for the HIGH_RES_TIMERS=y case by duplicating the printk from the low res NOHZ path in the high res NOHZ path. This confused me since I was thinking 'dmesg | grep -i NOHZ' would tell me if NOHZ was enabled, but if I have hrtimers there is nothing. Signed-off-by: Stephen Boyd Acked-by: Thomas Gleixner Cc: Peter Zijlstra LKML-Reference: <1295419594-13085-1-git-send-email-sboyd@codeaurora.org> Signed-off-by: Ingo Molnar commit 8c8a9b25b5de3f1eeac721cf34f4379e56d5d694 Author: Anton Blanchard Date: Tue Jan 18 21:44:04 2011 +1100 powerpc, perf: Fix frequency calculation for overflowing counters (FSL version) When fixing the frequency calculations for perf on powerpc I forgot to fix the FSL version. If we dont set event->hw.last_period the frequency to period calculations in perf go haywire and we continually throttle/unthrottle the PMU. Signed-off-by: Anton Blanchard Acked-by: Benjamin Herrenschmidt Cc: Scott Wood Cc: Paul Mackerras Cc: Arnaldo Carvalho de Melo Cc: linuxppc-dev@lists.ozlabs.org Cc: Peter Zijlstra LKML-Reference: <20110118214404.2f42e634@kryten> Signed-off-by: Ingo Molnar commit 8550d7cb6ed6c89add49c3b6ad4c753ab8a3d7f9 Author: Oleg Nesterov Date: Wed Jan 19 19:22:28 2011 +0100 perf: Fix perf_event_init_task()/perf_event_free_task() interaction perf_event_init_task() should clear child->perf_event_ctxp[] before anything else. Otherwise, if perf_event_init_context(perf_hw_context) fails, perf_event_free_task() can free perf_event_ctxp[perf_sw_context] copied from parent->perf_event_ctxp[] by dup_task_struct(). Also move the initialization of perf_event_mutex and perf_event_list from perf_event_init_context() to perf_event_init_context(). Signed-off-by: Oleg Nesterov Acked-by: Peter Zijlstra Cc: Alan Stern Cc: Arnaldo Carvalho de Melo Cc: Frederic Weisbecker Cc: Paul Mackerras Cc: Prasad Cc: Roland McGrath LKML-Reference: <20110119182228.GC12183@redhat.com> Signed-off-by: Ingo Molnar commit dbe08d82ce3967ccdf459f7951d02589cf967300 Author: Oleg Nesterov Date: Wed Jan 19 19:22:07 2011 +0100 perf: Fix find_get_context() vs perf_event_exit_task() race find_get_context() must not install the new perf_event_context if the task has already passed perf_event_exit_task(). If nothing else, this means the memory leak. Initially ctx->refcount == 2, it is supposed that perf_event_exit_task_context() should participate and do the necessary put_ctx(). find_lively_task_by_vpid() checks PF_EXITING but this buys nothing, by the time we call find_get_context() this task can be already dead. To the point, cmpxchg() can succeed when the task has already done the last schedule(). Change find_get_context() to populate task->perf_event_ctxp[] under task->perf_event_mutex, this way we can trust PF_EXITING because perf_event_exit_task() takes the same mutex. Also, change perf_event_exit_task_context() to use rcu_dereference(). Probably this is not strictly needed, but with or without this change find_get_context() can race with setup_new_exec()->perf_event_exit_task(), rcu_dereference() looks better. Signed-off-by: Oleg Nesterov Acked-by: Peter Zijlstra Cc: Alan Stern Cc: Arnaldo Carvalho de Melo Cc: Frederic Weisbecker Cc: Paul Mackerras Cc: Prasad Cc: Roland McGrath LKML-Reference: <20110119182207.GB12183@redhat.com> Signed-off-by: Ingo Molnar commit 4912cf04b202a9d0bdc4082ecb9247943584450d Author: Tony Lindgren Date: Tue Jan 18 17:00:00 2011 -0800 omap1: Fix sched_clock implementation when both MPU timer and 32K timer are used Earlier patches select HAVE_SCHED_CLOCK for omaps. To have working sched_clock also for MPU timer, we need to implement it in a way where the right one gets selected during the runtime. Signed-off-by: Tony Lindgren commit 05b5ca9b100300c8b98429962071aa66c5d2460e Author: Tony Lindgren Date: Tue Jan 18 12:42:23 2011 -0800 omap1: Fix booting for 15xx and 730 with omap1_defconfig For omap15xx and 730 we need to use the MPU timer as the 32K timer is not available. For omap16xx we want to use the 32K timer because of PM. Fix this by allowing to build in both timers. Signed-off-by: Tony Lindgren commit 7e57b81c7688c762bc9e775bc83f9fc17946f527 Author: Sage Weil Date: Tue Jan 18 09:00:01 2011 -0800 ceph: avoid immediate cap check after import The NODELAY flag avoids the heuristics that delay cap (issued/wanted) release. There's no reason for that after we import a cap, and it kills whatever benefit we get from those delays. Signed-off-by: Sage Weil commit 088b3f5e9ee2649f5cfc2f08d8ce654e3eeba310 Author: Sage Weil Date: Tue Jan 18 08:56:01 2011 -0800 ceph: fix flushing of caps vs cap import If we are mid-flush and a cap is migrated to another node, we need to resend the cap flush message to the new MDS, and do so with the original flush_seq to avoid leaking across a sync boundary. Previously we didn't redo the flush (we only flushed newly dirty data), which would cause a later sync to hang forever. Signed-off-by: Sage Weil commit 24be0c481067560b11441e794e27f166a3568863 Author: Sage Weil Date: Tue Jan 18 08:48:06 2011 -0800 ceph: fix erroneous cap flush to non-auth mds The int flushing is global and not clear on each iteration of the loop, which can cause a second flush of caps to any MDSs with ids greater than the auth. Signed-off-by: Sage Weil commit 50aac4fec503960380ab594a93a6fbfdf3f8915f Author: Sage Weil Date: Tue Jan 18 07:59:40 2011 -0800 ceph: fix cap_wanted_delay_{min,max} mount option initialization These were initialized to 0 instead of the default, fallout from the RBD refactor in 3d14c5d2b6e15c21d8e5467dc62d33127c23a644. Signed-off-by: Sage Weil commit 765c2a964b49bd06b61a52991519281c85d82b67 Author: Johan Hedberg Date: Wed Jan 19 12:06:52 2011 +0530 Bluetooth: Fix race condition with conn->sec_level The conn->sec_level value is supposed to represent the current level of security that the connection has. However, by assigning to it before requesting authentication it will have the wrong value during the authentication procedure. To fix this a pending_sec_level variable is added which is used to track the desired security level while making sure that sec_level always represents the current level of security. Signed-off-by: Johan Hedberg Signed-off-by: Gustavo F. Padovan commit d00ef24fc2923b65fdd440dc6445903e965841ac Author: Johan Hedberg Date: Wed Jan 19 12:06:51 2011 +0530 Bluetooth: Fix authentication request for L2CAP raw sockets When there is an existing connection l2cap_check_security needs to be called to ensure that the security level of the new socket is fulfilled. Normally l2cap_do_start takes care of this, but that function doesn't get called for SOCK_RAW type sockets. This patch adds the necessary l2cap_check_security call to the appropriate branch in l2cap_do_connect. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 8556edd32f01c50a3c99e44dc2c3b1252ea59605 Author: Johan Hedberg Date: Wed Jan 19 12:06:50 2011 +0530 Bluetooth: Create a unified auth_type evaluation function The logic for determining the needed auth_type for an L2CAP socket is rather complicated and has so far been duplicated in l2cap_check_security as well as l2cap_do_connect. Additionally the l2cap_check_security code was completely missing the handling of SOCK_RAW type sockets. This patch creates a unified function for the evaluation and makes l2cap_do_connect and l2cap_check_security use that function. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 65cf686ee102b7eb0477a4bab82ff227071a0258 Author: Johan Hedberg Date: Wed Jan 19 12:06:49 2011 +0530 Bluetooth: Fix MITM protection requirement preservation If an existing connection has a MITM protection requirement (the first bit of the auth_type) then that requirement should not be cleared by new sockets that reuse the ACL but don't have that requirement. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 88644bb9fee591b2743a881923263bc28df4cded Author: Johan Hedberg Date: Wed Jan 19 12:06:48 2011 +0530 Revert "Bluetooth: Update sec_level/auth_type for already existing connections" This reverts commit 045309820afe047920a50de25634dab46a1e851d. That commit is wrong for two reasons: - The conn->sec_level shouldn't be updated without performing authentication first (as it's supposed to represent the level of security that the existing connection has) - A higher auth_type value doesn't mean "more secure" like the commit seems to assume. E.g. dedicated bonding with MITM protection is 0x03 whereas general bonding without MITM protection is 0x04. hci_conn_auth already takes care of updating conn->auth_type so hci_connect doesn't need to do it. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo F. Padovan commit 683d949a7fbf33c244670e34d35c460e0d6558cb Author: Lukáš Turek <8an@praha12.net> Date: Wed Jan 5 02:43:59 2011 +0100 Bluetooth: Never deallocate a session when some DLC points to it Fix a bug introduced in commit 9cf5b0ea3a7f1432c61029f7aaf4b8b338628884: function rfcomm_recv_ua calls rfcomm_session_put without checking that the session is not referenced by some DLC. If the session is freed, that DLC would refer to deallocated memory, causing an oops later, as shown in this bug report: https://bugzilla.kernel.org/show_bug.cgi?id=15994 Signed-off-by: Lukas Turek <8an@praha12.net> Signed-off-by: Gustavo F. Padovan commit e2e0cacbd4b0c7c69c7591d37c243f2363aeaa71 Author: Johan Hedberg Date: Tue Jan 4 12:08:50 2011 +0200 Bluetooth: Fix leaking blacklist when unregistering a hci device The blacklist should be freed before the hci device gets unregistered. Signed-off-by: Johan Hedberg Signed-off-by: Gustavo F. Padovan commit 4571928fc73589e9c5217cd069d2c0b4ff1818a8 Author: David Sterba Date: Fri Jan 14 14:59:44 2011 +0100 Bluetooth: l2cap: fix misuse of logical operation in place of bitop CC: Marcel Holtmann CC: "Gustavo F. Padovan" CC: João Paulo Rechi Vita Signed-off-by: David Sterba Signed-off-by: Gustavo F. Padovan commit 86e09287e4f8c81831b4d4118a48597565f0d21b Author: Alexander Holler Date: Mon Nov 22 21:09:01 2010 +0100 Bluetooth: ath3k: reduce memory usage There is no need to hold the firmware in memory. Signed-off-by: Alexander Holler Signed-off-by: Gustavo F. Padovan commit 78b3fb46753872fc79bffecc8d50355a8622b39b Author: Qiao Zhou Date: Wed Jan 19 19:10:47 2011 +0800 ASoC: WM8994: fix wrong value in tristate function fix wrong value in wm8994_set_tristate func. when updating reg bits, it should use "value", not "reg". Signed-off-by: Qiao Zhou Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit a28287925555c93984115d37a1a25315ea369764 Author: Dimitris Papastamos Date: Wed Jan 19 12:55:28 2011 +0000 ASoC: WM8995: Fix incorrect use of snd_soc_update_bits() In the wm8995_set_tristate() function when updating the register bits use the value and not the register index as the value argument. Signed-off-by: Dimitris Papastamos Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit 52fc43f7c1c416b114e88ff39635c36e67ef15b6 Merge: c56eb8f c88c282 Author: Mark Brown Date: Wed Jan 19 11:17:12 2011 +0000 Merge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.38 commit 8a5a778665efb3a5f16ebb6fbc13356907e45775 Author: Magnus Damm Date: Wed Jan 19 08:16:29 2011 +0000 sh: update INTC to clear IRQ sense valid flag Clear the valid flag is in the INTC code. Without this fix bit 7 of the sense register is mistakenly set. Signed-off-by: Magnus Damm Signed-off-by: Paul Mundt commit 24ee7d79c5885275a531431c3b687b3a7919eee4 Author: Aurelien Jarno Date: Tue Jan 18 20:55:34 2011 +0000 sh: Fix sh build failure when CONFIG_SFC=m CONFIG_SFC=m uses topology_core_cpumask() which, for sh, expects cpu_core_map to be exported. It is not. This patch exports the needed symbol. Signed-off-by: Aurelien Jarno Signed-off-by: Paul Mundt commit 2150dace47258722c67f297509bc6171e7b486ad Author: Simon Horman Date: Fri Jan 7 22:26:15 2011 +0000 ARM: mach-shmobile: mackerel: clarify shdi/mmcif switch settings * Pins 2 and 4 of switch 33 are documented as don't care on the PCB, my testing seems to confirm this. * I have been unable to do anything sensible with S1 set to on. Am I missing something with regards to MMC1? * Clarify which driver is needed for each switch setting. * Should the AP4 board code be updated to allow the SHDI driver to access SHDI1 as the mackerel code does? Signed-off-by: Simon Horman Acked-by: Yusuke Goda Signed-off-by: Paul Mundt commit f376ea1780085196fcfff6bc27e8f6ddb324ae57 Author: Tony Lindgren Date: Tue Jan 18 13:25:39 2011 -0800 omap1: Fix sched_clock for the MPU timer Otherwise systems using the MPU timer will hang. Signed-off-by: Tony Lindgren commit 75d0c9e18c93428e0832c6552d0cbf395c5ebf1b Merge: 6845a44 bc9fcaf Author: Tony Lindgren Date: Tue Jan 18 12:38:25 2011 -0800 Merge branch 'fixes_a_2.6.38rc' of git://git.pwsan.com/linux-2.6 into omap-fixes commit bc9fcaf3697bb4f4a7cda14d31ea4c647a6b9030 Author: Felipe Balbi Date: Mon Jan 17 13:28:16 2011 -0700 OMAP: PRCM: remove duplicated headers A few headers are included twice, remove them. Found the following errors using make includecheck: arch/arm/mach-omap2/clock44xx_data.c: prm44xx.h is included more than once. arch/arm/mach-omap2/clockdomains44xx_data.c: cm1_44xx.h is included more than once. arch/arm/mach-omap2/clockdomains44xx_data.c: cm2_44xx.h is included more than once. arch/arm/mach-omap2/powerdomain2xxx_3xxx.c: prm-regbits-34xx.h is included more than once. Cc: Paul Walmsley Cc: Tony Lindgren Cc: Russell King Signed-off-by: Felipe Balbi [paul@pwsan.com: dropped lists from patch cc:s; tweaked subject line] Signed-off-by: Paul Walmsley commit 56bc78d414aa79bce42836df6efe9b9bef92a59d Author: Paul Walmsley Date: Mon Jan 17 13:28:17 2011 -0700 OMAP4: clockdomain: bypass unimplemented wake-up dependency functions on OMAP4 Commit 56a6a19dffda6b75cef8d4183c7c6ff650025cbd ("omap2plus: prm: Trvial build break fix for undefined reference to 'omap2_prm_read_mod_reg'") generates a lot of warnings on boot since clockdomain functions that manipulate wake-up dependencies are not implemented yet on OMAP4 for 2.6.38. This patch bypasses the OMAP2/3 functions on OMAP4, which in turn avoids the warnings when the functions would attempt to call the underlying OMAP2/3 PRCM functions. A one-line warning is still logged from the clockdomain code that the OMAP4 wake-up dependency code is not yet implemented. A clockdomain wake-up and sleep dependency implementation for OMAP4 from Rajendra should be possible to merge during the 2.6.39 merge window: http://www.mail-archive.com/linux-omap@vger.kernel.org/msg41748.html http://www.mail-archive.com/linux-omap@vger.kernel.org/msg42222.html Reported-by: Russell King Cc: Rajendra Nayak Cc: Benoît Cousson Cc: Santosh Shilimkar Acked-by: Santosh Shilimkar Signed-off-by: Paul Walmsley commit 4efe070896e1f7373c98a13713e659d1f5dee52a Author: Jesse Barnes Date: Tue Jan 18 11:25:41 2011 -0800 drm/i915: make the blitter report buffer modifications to the FBC unit Without this change, blits to the front buffer won't invalidate FBC state, causing us to scan out stale data. Make sure we update these bits on every FBC enable, since they may get clobbered if we shut off the display. References: https://bugzilla.kernel.org/show_bug.cgi?id=26932 Signed-off-by: Jesse Barnes Signed-off-by: Chris Wilson commit d8328f3b85f34c0dc5866f10bf6e7842fb511d62 Author: Paul Walmsley Date: Sat Jan 15 21:32:01 2011 -0700 OMAP: counter_32k: init clocksource as part of machine timer init After commit dc548fbbd2ecd0fc3b02301d551e5f8e19ae58fd ("ARM: omap: convert sched_clock() to use new infrastructure"), OMAPs that use the 32KiHz "synchronization timer" as their clocksource crash during boot: [ 0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz [ 0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 0.000000] pgd = c0004000 [ 0.000000] [00000000] *pgd=00000000 [ 0.000000] Internal error: Oops: 80000005 [#1] SMP [ 0.000000] last sysfs file: [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 Tainted: G W (2.6.37-07734-g2467802 #7) [ 0.000000] PC is at 0x0 [ 0.000000] LR is at sched_clock_poll+0x2c/0x3c [ 0.000000] pc : [<00000000>] lr : [] psr: 600001d3 [ 0.000000] sp : c058bfd0 ip : c058a000 fp : 00000000 [ 0.000000] r10: 00000000 r9 : 411fc092 r8 : 800330c8 [ 0.000000] r7 : c05a08e0 r6 : c0034c48 r5 : c05ffc40 r4 : c0034c4c [ 0.000000] r3 : c05ffe6c r2 : c05a0bc0 r1 : c059f098 r0 : 00000000 [ 0.000000] Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel [ 0.000000] Control: 10c53c7f Table: 8000404a DAC: 00000017 This is due to the recent ARM init_sched_clock() changes and the late initialization of the counter_32k clock source. More information here: http://marc.info/?l=linux-omap&m=129513468605208&w=2 Fix by initializing the counter_32k clocksource during the machine timer initialization. Reported-by: Russell King Tested-by: Thomas Weber Signed-off-by: Paul Walmsley commit 5a1b70a48ccfca241016762dfe04b135b8915a1b Author: Magnus Damm Date: Tue Jan 18 08:48:17 2011 +0000 ARM: mach-shmobile: sh73a0 CPGA fix for IrDA MSTP Fix a typo for the sh73a0 CPGA code dealing with the IrDA hardware block on the AG5EVM board. Signed-off-by: Magnus Damm Signed-off-by: Paul Mundt commit dcdb318f2a60a479761d961e7d61bba452228561 Author: Magnus Damm Date: Tue Jan 18 08:53:06 2011 +0000 ARM: mach-shmobile: sh73a0 CPGA fix for FRQCRA M3 Fix the M3 field offset for the FRQCRA register in the sh73a0 CPGA. It should be 12, not 8. Signed-off-by: Magnus Damm Signed-off-by: Paul Mundt commit 1ffa325bac55982d72a61ccab1a4190501e37148 Author: Jesse Barnes Date: Mon Jan 17 13:35:57 2011 -0800 drm/i915: set more FBC chicken bits Add a couple of missing workaround bits for ILK & SNB. These disable clock gating on a couple of units that would otherwise prevent FBC from working. Signed-off-by: Jesse Barnes Signed-off-by: Chris Wilson commit 92359a705c8e6e8206d044868e0f860b7e90f109 Author: Guennadi Liakhovetski Date: Mon Jan 17 08:02:53 2011 +0000 sh: fix MSIOF0 SPI on ecovec: it conflicts with VOU MSIOF0 and VOU share pins on sh7724, make MSIOF0 available again, as long as VOU is not configured. Signed-off-by: Guennadi Liakhovetski Signed-off-by: Paul Mundt commit 39f308242edcf623690fd65c3c91e587ce402755 Author: Magnus Damm Date: Tue Jan 18 03:41:04 2011 +0000 ARM: mach-shmobile: remove sh7367 on-chip set_irq_type() set_irq_type() should only be used for external IRQ pins, so update the G3EVM board code to remove low level request. Signed-off-by: Magnus Damm Signed-off-by: Paul Mundt commit a2bc19e5866501751efeab0130fb50707f184112 Author: Magnus Damm Date: Tue Jan 18 03:13:44 2011 +0000 ARM: mach-shmobile: sh7372 INTCS MFIS2 interrupt update Enable the MFIS2 interrupt source in the INTCS interrupt controller included in the sh7372 processor. The priority field is constantly enabled to let the interrupt through to both the ARM side and the SH side. Signed-off-by: Magnus Damm Signed-off-by: Paul Mundt commit a33bb8a2cf7a686564df170dd94b1daa766c58bd Author: Kuninori Morimoto Date: Fri Jan 14 11:00:41 2011 +0000 ARM: mach-shmobile: ag5evm: Add IrDA support Signed-off-by: Kuninori Morimoto Signed-off-by: Paul Mundt commit b0f05aadf1516c166ba301b7a535bc9429ce1961 Author: Davidlohr Bueso Date: Mon Jan 17 20:48:18 2011 -0800 Input: ct82710c - return proper error code for ct82c710_open If request_irq() fails we should return the proper error instead of -1. Signed-off-by: Davidlohr Bueso Signed-off-by: Dmitry Torokhov commit 81e78deafb21ba867eb244ab1117726c68d817f8 Author: Naveen Kumar Gaddipati Date: Mon Jan 17 20:47:31 2011 -0800 Input: bu21013_ts - added regulator support Add regulator support in ROHM BU21013 touch panel driver. Signed-off-by: Naveen Kumar Gaddipati Signed-off-by: Dmitry Torokhov commit d2763b4f44e16f44cc4156c9591e74df9dcd88be Author: Naveen Kumar Gaddipati Date: Mon Jan 17 20:40:58 2011 -0800 Input: bu21013_ts - remove duplicate resolution parameters Remove duplicate display resolution parameters from platform data as one pair is quite enough. Signed-off-by: Naveen Kumar Gaddipati Signed-off-by: Dmitry Torokhov commit ba555461833aa1b5083004492ba97c92d5fccf46 Author: Jamie Iles Date: Mon Jan 17 20:40:55 2011 -0800 Input: tnetv107x-ts - don't treat NULL clk as an error We should use IS_ERR() when checking whether clk_get() succeeded or not since it returns errors by encoding error codes with ERR_PTR(). Signed-off-by: Jamie Iles Signed-off-by: Dmitry Torokhov commit a0640925880a5801ae0aac232fae6900a2c44b27 Author: Jamie Iles Date: Mon Jan 17 20:40:32 2011 -0800 Input: tnetv107x-keypad - don't treat NULL clk as an error We should use IS_ERR() when checking whether clk_get() succeeded or not since it returns errors by encoding error codes with ERR_PTR(). Signed-off-by: Jamie Iles Signed-off-by: Dmitry Torokhov commit ff9531ec1caf0e062da132933e33878f94449274 Author: Kuninori Morimoto Date: Tue Jan 11 05:11:20 2011 +0000 ARM: mach-shmobile: clock-sh7372: fixup pllc2 set_rate This patch fixup 421b446abeec55bed1251fab80cb5c12be58b773 - Care clk->rate - Don't over write PLLC2 enable bit Signed-off-by: Kuninori Morimoto Reported-by: Guennadi Liakhovetski Tested-by: Guennadi Liakhovetski Signed-off-by: Paul Mundt commit 0b7f1cc79d61427961e311c6a21f528bdb226e40 Author: axel lin Date: Fri Jan 14 09:39:11 2011 +0000 video: pxa3xx-gcu: Return -EFAULT when copy_from_user() fails Return -EFAULT instead of number of bytes that could not be copied if copy_from_user() fails. Also fix a typo in the comments. Signed-off-by: Axel Lin Signed-off-by: Paul Mundt commit 6c9571f4b759717e1c938cbc6b53ec8ce5813245 Author: Axel Lin Date: Mon Jan 17 16:25:57 2011 +0800 video: nuc900fb: properly free resources in nuc900fb_remove Signed-off-by: Axel Lin Signed-off-by: Paul Mundt commit d10df505f81064cf983fb3c5111b004d181a10f5 Author: Axel Lin Date: Mon Jan 17 16:24:36 2011 +0800 video: nuc900fb: fix compile error This patch fixes below compile error: CC drivers/video/nuc900fb.o drivers/video/nuc900fb.c: In function 'nuc900fb_suspend': drivers/video/nuc900fb.c:726: error: too few arguments to function 'nuc900fb_stop_lcd' drivers/video/nuc900fb.c: In function 'nuc900fb_resume': drivers/video/nuc900fb.c:743: error: 'bfinfo' undeclared (first use in this function) drivers/video/nuc900fb.c:743: error: (Each undeclared identifier is reported only once drivers/video/nuc900fb.c:743: error: for each function it appears in.) make[2]: *** [drivers/video/nuc900fb.o] Error 1 make[1]: *** [drivers/video] Error 2 make: *** [drivers] Error 2 Signed-off-by: Axel Lin Acked-by: Wan ZongShun Signed-off-by: Paul Mundt commit 50d64676d132a8a72a1a1657d7b3e6efa53da1ac Author: Matthew Wilcox Date: Wed Dec 15 14:18:11 2010 -0500 xhci: Remove more doorbell-related reads The unused space in the doorbell is now marked as RsvdZ, not RsvdP, so we can avoid reading the doorbell before writing it. Update the doorbell-related defines to produce the entire doorbell value from a single macro. Document the doorbell format in a comment. Signed-off-by: Matthew Wilcox Signed-off-by: Sarah Sharp commit 7961acd7327fe48e55abef277630abdbb3f2081a Author: Andiry Xu Date: Mon Dec 20 17:14:20 2010 +0800 xHCI: fix printk_ratelimit() usage printk_ratelimit() is misused in xhci-ring.c. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit f2c565e223af39ed38be5c84b1a37b591b22db83 Author: Andiry Xu Date: Mon Dec 20 17:12:24 2010 +0800 xHCI: replace dev_dbg() with xhci_dbg() dev_dbg() is used to print ordinary transfer messages in xhci-ring.c. System log messages will be flushed if CONFIG_USB_DEBUG is set. Replace the dev_dbg() with xhci_dbg(). Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit 50f7b52a83a893929edf87a89ebc081ff26a7b91 Author: Andiry Xu Date: Mon Dec 20 15:09:34 2010 +0800 xHCI: fix cycle bit set in giveback_first_trb() giveback_first_trb() controls the cycle bit set of the start_trb, to ensure that the start_trb is written last and the host controller will receive a whole td at a time. However, if the ring is wrapped and cycle bit is toggled to zero, then giveback_first_trb() will be of no effect. In this case, set the cycle bit of start_trb to 1 at the beginning and clear it in giveback_first_trb(). Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit e1eab2e00015bfe48388920ff287efdbefb6af24 Author: Andiry Xu Date: Tue Jan 4 16:30:39 2011 -0800 xHCI: remove redundant parameter in giveback_first_trb() Parameter *td is not used in giveback_first_trb(). Remove it. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit 47cbf6925cd0ef8af4b8165b43a60b5f37c36d8a Author: Andiry Xu Date: Mon Dec 20 14:49:48 2010 +0800 xHCI: fix queue_trb in isoc transfer Fix the more_trbs_coming field of queue_trb() in isoc transfer. Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp commit a6d940dd759bf240d28624198660ed34582a327b Author: Sarah Sharp Date: Tue Dec 28 13:08:42 2010 -0800 xhci: Use GFP_NOIO during device reset. When xhci_discover_or_reset_device() is called after a host controller power loss, the virtual device may need to be reallocated. Make sure xhci_alloc_dev() uses GFP_NOIO. This avoid causing a deadlock by allowing the kernel to flush pending I/O while reallocating memory for a virtual device for a USB mass storage device that's holding the backing store for dirty memory buffers. This patch should be queued for the 2.6.37 stable tree. Signed-off-by: Sarah Sharp Cc: stable@kernel.org commit 653a39d1f61bdc9f277766736d21d2e9be0391cb Author: Sarah Sharp Date: Thu Dec 23 11:12:42 2010 -0800 usb: Realloc xHCI structures after a hub is verified. When there's an xHCI host power loss after a suspend from memory, the USB core attempts to reset and verify the USB devices that are attached to the system. The xHCI driver has to reallocate those devices, since the hardware lost all knowledge of them during the power loss. When a hub is plugged in, and the host loses power, the xHCI hardware structures are not updated to say the device is a hub. This is usually done in hub_configure() when the USB hub is detected. That function is skipped during a reset and verify by the USB core, since the core restores the old configuration and alternate settings, and the hub driver has no idea this happened. This bug makes the xHCI host controller reject the enumeration of low speed devices under the resumed hub. Therefore, make the USB core re-setup the internal xHCI hub device information by calling update_hub_device() when hub_activate() is called for a hub reset resume. After a host power loss, all devices under the roothub get a reset-resume or a disconnect. This patch should be queued for the 2.6.37 stable tree. Signed-off-by: Sarah Sharp Cc: stable@kernel.org commit 40a9fb17f32dbe54de3d636142a59288544deed7 Author: Zhang Rui Date: Fri Dec 17 13:17:04 2010 -0800 xhci: Do not run xhci_cleanup_msix with irq disabled when unloading xhci_hcd, I got: [ 134.856813] xhci_hcd 0000:02:00.0: remove, state 4 [ 134.858140] usb usb3: USB disconnect, address 1 [ 134.874956] xhci_hcd 0000:02:00.0: Host controller not halted, aborting reset. [ 134.876351] BUG: sleeping function called from invalid context at kernel/mutex.c:85 [ 134.877657] in_atomic(): 0, irqs_disabled(): 1, pid: 1451, name: modprobe [ 134.878975] Pid: 1451, comm: modprobe Not tainted 2.6.37-rc5+ #162 [ 134.880298] Call Trace: [ 134.881602] [] __might_sleep+0xeb/0xf0 [ 134.882921] [] mutex_lock+0x24/0x50 [ 134.884229] [] free_desc+0x2e/0x5f [ 134.885538] [] irq_free_descs+0x3b/0x71 [ 134.886853] [] free_irq_at+0x31/0x36 [ 134.888167] [] destroy_irq+0x69/0x71 [ 134.889486] [] native_teardown_msi_irq+0xe/0x10 [ 134.890820] [] default_teardown_msi_irqs+0x57/0x80 [ 134.892158] [] free_msi_irqs+0x8b/0xe9 [ 134.893504] [] pci_disable_msix+0x35/0x39 [ 134.894844] [] xhci_cleanup_msix+0x31/0x51 [xhci_hcd] [ 134.896186] [] xhci_stop+0x3a/0x80 [xhci_hcd] [ 134.897521] [] usb_remove_hcd+0xfd/0x14a [ 134.898859] [] usb_hcd_pci_remove+0x5c/0xc6 [ 134.900193] [] pci_device_remove+0x3f/0x91 [ 134.901535] [] __device_release_driver+0x83/0xd9 [ 134.902899] [] driver_detach+0x86/0xad [ 134.904222] [] bus_remove_driver+0xb2/0xd8 [ 134.905540] [] driver_unregister+0x6c/0x74 [ 134.906839] [] pci_unregister_driver+0x44/0x89 [ 134.908121] [] xhci_unregister_pci+0x15/0x17 [xhci_hcd] [ 134.909396] [] xhci_hcd_cleanup+0xe/0x10 [xhci_hcd] [ 134.910652] [] sys_delete_module+0x1ca/0x23b [ 134.911882] [] ? path_put+0x22/0x26 [ 134.913104] [] ? audit_syscall_entry+0x2c/0x148 [ 134.914333] [] system_call_fastpath+0x16/0x1b [ 134.915658] xhci_hcd 0000:02:00.0: USB bus 3 deregistered [ 134.916465] xhci_hcd 0000:02:00.0: PCI INT A disabled and the same issue when xhci_suspend is invoked. (Note from Sarah: That's fixed by Andiry's patch before this, by synchronizing the irqs rather than freeing them on suspend.) Do not run xhci_cleanup_msix with irq disabled. This patch should be queued for the 2.6.37 stable tree. Signed-off-by: Zhang Rui Signed-off-by: Sarah Sharp Cc: stable@kernel.org commit 0029227f1bc30b6c809ae751f9e7af6cef900997 Author: Andiry Xu Date: Mon Dec 27 17:39:02 2010 +0800 xHCI: synchronize irq in xhci_suspend() Synchronize the interrupts instead of free them in xhci_suspend(). This will prevent a double free when the host is suspended and then the card removed. Set the flag hcd->msix_enabled when using MSI-X, and check the flag in suspend_common(). MSI-X synchronization will be handled by xhci_suspend(), and MSI/INTx will be synchronized in suspend_common(). This patch should be queued for the 2.6.37 stable tree. Reported-by: Matthew Garrett Signed-off-by: Andiry Xu Signed-off-by: Sarah Sharp Cc: stable@kernel.org commit 7111ebc97ed53a32314011c85a6f235f0dab8ae8 Author: Sarah Sharp Date: Tue Dec 14 13:24:55 2010 -0800 xhci: Resume bus on any port status change. The original code that resumed the USB bus on a port status change would only do so when there was a device connected to the port. If a device was just disconnected, the event would be queued for khubd, but khubd wouldn't run. That would leave the connect status change (CSC) bit set. If a USB device was plugged into that same port, the xHCI host controller would set the current connect status (CCS) bit. But since the CSC bit was already set, it would not generate an interrupt for a port status change event. That would mean the user could "Safely Remove" a device, have the bus suspend, disconnect the device, re-plug it in, and then the device would never be enumerated. Plugging in a different device on another port would cause the bus to resume, and khubd would notice the re-connected device. Running lsusb would also resume the bus, leading users to report the problem "went away" when using diagnostic tools. The solution is to resume the bus when a port status change event is received, regardless of the port status. Thank you very much to Maddog for helping me track down this Heisenbug. This patch should be queued for the 2.6.37 stable tree. Signed-off-by: Sarah Sharp Reported-by: Jon 'maddog' Hall Tested-by: Andiry Xu Cc: stable@kernel.org commit c488a4731abb53aa1bab9fccd8a7472083159bfd Merge: 6d2ae89 bba9587 Author: Paul Mundt Date: Fri Jan 14 16:06:31 2011 +0900 Merge branch 'common/mmcif' into rmobile-latest commit bba958783b1b4cb0a9420f4e11082467132a334c Author: Paul Mundt Date: Fri Jan 14 15:57:47 2011 +0900 mmc: sh_mmcif: Convert to __raw_xxx() I/O accessors. When using the I/O accessors in raw mode from the boot stubs we don't want to bother with any of the complexity associated with readl/writel and friends. Furthermore, utilization within the context of the host driver itself is all performed on an ioremapped window, so using the __raw variants there doesn't pose any problem either. If and when barriers need to be added in the future, these will need to be explicitly written out, but this is so far not a concern for any of the affected CPUs in question. This fixes up the link error introduced by the ARM tree via its barrier refactoring: arch/arm/boot/compressed/mmcif-sh7372.o: In function `mmcif_loader': mmcif-sh7372.c:(.text+0x9e8): undefined reference to `outer_cache Following the change in: http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=6275/1 Reported-by: Simon Horman Signed-off-by: Paul Mundt commit 50cfa79dcb91a7c40038b7a13b7e2242b541242f Author: Paul Mundt Date: Fri Jan 14 15:52:54 2011 +0900 sh: support XZ-compressed kernel. Follow the x86 change and wire up support for the XZ decompressor. Signed-off-by: Paul Mundt commit 8f82f0c7029d39b499389c8e225cf147fb83abe2 Author: Paul Mundt Date: Fri Jan 14 15:46:50 2011 +0900 sh: Fix up breakage from asm-generic/pgtable.h changes. We require a forward declaration for mm_struct: In file included from arch/sh/include/asm/pgtable.h:163, from arch/sh/include/asm/io.h:21, from arch/sh/kernel/machvec.c:20: include/asm-generic/pgtable.h:104: error: 'struct mm_struct' declared inside parameter list include/asm-generic/pgtable.h: In function 'ptep_get_and_clear_full': include/asm-generic/pgtable.h:107: error: passing argument 1 of 'ptep_get_and_clear' from incompatible pointer type include/asm-generic/pgtable.h:70: note: expected 'struct mm_struct *' but argument is of type 'struct mm_struct *' Signed-off-by: Paul Mundt commit 17db143fc091238c43ab9f373974ca2224a4c3f8 Author: Sage Weil Date: Thu Jan 13 15:27:29 2011 -0800 ceph: fix xattr rbtree search Fix xattr name comparison in rbtree search for strings that share a prefix. The *name argument is null terminated, but the xattr name is not, so we need to use strncmp, but that means adjusting for the case where name is a prefix of xattr->name. The corresponding case in __set_xattr() already handles this properly (although in that case *name is also not null terminated). Reported-by: Sergiy Kibrik Signed-off-by: Sage Weil commit 1c1266bb916e6a6b362d3be95f2cc7f3c41277a6 Author: Yehuda Sadeh Date: Wed Jan 12 16:53:27 2011 -0800 ceph: fix getattr on directory when using norbytes The norbytes mount option was broken, and when doing getattr on a directory it return the rbytes instead of the number of entities. This commit fixes it. Signed-off-by: Yehuda Sadeh Signed-off-by: Sage Weil commit 6d2ae89c36e2adab5cfa69fecb11290082817ac6 Author: Yoshii Takashi Date: Thu Jan 13 12:58:56 2011 +0000 ARM: mach-shmobile: ag5evm requires GPIOLIB Because ag5evm board setup code uses gpio functions, ARCH_REQUIRE_GPIOLIB should be set in Kconfig. Otherwise, the first build with defconfig fails. Signed-off-by: Takashi YOSHII Signed-off-by: Paul Mundt commit bd1689cd7566d35520e66acace790bf7b7fdc34c Author: Yoshii Takashi Date: Thu Jan 13 13:17:15 2011 +0000 ARM: mach-shmobile: fix cpu_base of gic_init() on sh73a0 The latest rmobile-latest doesn't run on ag5evm because of a small mistake on initialization. Though, I don't have any idea to write them smart. anyway, On sh73a0, GIC cpu_base is 0xf0000100 but 0xf0001000. Signed-off-by: Takashi YOSHII Signed-off-by: Paul Mundt