Linux 3.0.36

commit c0bd4b6a0c6c0d42235920fb7ddd7110c86e2adb
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Jun 22 11:34:31 2012 -0700

    Linux 3.0.36

commit e3424d89f44e56186f65596725e7f28f30ab4998
Author: Daniel Mack <zonque@gmail.com>
Date:   Tue Jun 12 20:23:52 2012 +0200

    USB: fix gathering of interface associations

    commit b3a3dd074f7053ef824ad077e5331b52220ceba1 upstream.

    TEAC's UD-H01 (and probably other devices) have a gap in the interface
    number allocation of their descriptors:

      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength          220
        bNumInterfaces          3
        [...]
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          [...]
        Interface Association:
          bLength                 8
          bDescriptorType        11
          bFirstInterface         2
          bInterfaceCount         2
          bFunctionClass          1 Audio
          bFunctionSubClass       0
          bFunctionProtocol      32
          iFunction               4
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        2
          bAlternateSetting       0
          [...]

    Once a configuration is selected, usb_set_configuration() walks the
    known interfaces of a given configuration and calls find_iad() on
    each of them to set the interface association pointer the interface
    is included in.

    The problem here is that the loop variable is taken for the interface
    number in the comparison logic that gathers the association. Which is
    fine as long as the descriptors are sane.

    In the case above, however, the logic gets out of sync and the
    interface association fields of all interfaces beyond the interface
    number gap are wrong.

    Fix this by passing the interface's bInterfaceNumber to find_iad()
    instead.

    Signed-off-by: Daniel Mack <zonque@gmail.com>
    Reported-by: bEN <ml_all@circa.be>
    Reported-by: Ivan Perrone <ivanperrone@hotmail.com>
    Tested-by: ivan perrone <ivanperrone@hotmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72211bf3b8e08f17540168bde0ab3a2f7c2658ca
Author: Bjørn Mork <bjorn@mork.no>
Date:   Wed May 30 10:00:14 2012 +0200

    USB: serial: Enforce USB driver and USB serial driver match

    commit 954c3f8a5f1b7716be9eee978b3bc85bae92d7c8 upstream.

    We need to make sure that the USB serial driver we find
    matches the USB driver whose probe we are currently
    executing. Otherwise we will end up with USB serial
    devices bound to the correct serial driver but wrong
    USB driver.

    An example of such cross-probing, where the usbserial_generic
    USB driver has found the sierra serial driver:

    May 29 18:26:15 nemi kernel: [ 4442.559246] usbserial_generic 4-4:1.0: Sierra USB modem converter detected
    May 29 18:26:20 nemi kernel: [ 4447.556747] usbserial_generic 4-4:1.2: Sierra USB modem converter detected
    May 29 18:26:25 nemi kernel: [ 4452.557288] usbserial_generic 4-4:1.3: Sierra USB modem converter detected

    sysfs view of the same problem:

    bjorn@nemi:~$ ls -l /sys/bus/usb/drivers/sierra/
    total 0
    --w------- 1 root root 4096 May 29 18:23 bind
    lrwxrwxrwx 1 root root    0 May 29 18:23 module -> ../../../../module/usbserial
    --w------- 1 root root 4096 May 29 18:23 uevent
    --w------- 1 root root 4096 May 29 18:23 unbind
    bjorn@nemi:~$ ls -l /sys/bus/usb-serial/drivers/sierra/
    total 0
    --w------- 1 root root 4096 May 29 18:23 bind
    lrwxrwxrwx 1 root root    0 May 29 18:23 module -> ../../../../module/sierra
    -rw-r--r-- 1 root root 4096 May 29 18:23 new_id
    lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/ttyUSB0
    lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB1 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2/ttyUSB1
    lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3/ttyUSB2
    --w------- 1 root root 4096 May 29 18:23 uevent
    --w------- 1 root root 4096 May 29 18:23 unbind

    bjorn@nemi:~$ ls -l /sys/bus/usb/drivers/usbserial_generic/
    total 0
    lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0
    lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2
    lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.3 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3
    --w------- 1 root root 4096 May 29 18:33 bind
    lrwxrwxrwx 1 root root    0 May 29 18:33 module -> ../../../../module/usbserial
    --w------- 1 root root 4096 May 29 18:22 uevent
    --w------- 1 root root 4096 May 29 18:33 unbind
    bjorn@nemi:~$ ls -l /sys/bus/usb-serial/drivers/generic/
    total 0
    --w------- 1 root root 4096 May 29 18:33 bind
    lrwxrwxrwx 1 root root    0 May 29 18:33 module -> ../../../../module/usbserial
    -rw-r--r-- 1 root root 4096 May 29 18:33 new_id
    --w------- 1 root root 4096 May 29 18:22 uevent
    --w------- 1 root root 4096 May 29 18:33 unbind

    So we end up with a mismatch between the USB driver and the
    USB serial driver.  The reason for the above is simple: The
    USB driver probe will succeed if *any* registered serial
    driver matches, and will use that serial driver for all
    serial driver functions.

    This makes ref counting go wrong. We count the USB driver
    as used, but not the USB serial driver.  This may result
    in Oops'es as demonstrated by Johan Hovold <jhovold@gmail.com>:

    [11811.646396] drivers/usb/serial/usb-serial.c: get_free_serial 1
    [11811.646443] drivers/usb/serial/usb-serial.c: get_free_serial - minor base = 0
    [11811.646460] drivers/usb/serial/usb-serial.c: usb_serial_probe - registering ttyUSB0
    [11811.646766] usb 6-1: pl2303 converter now attached to ttyUSB0
    [11812.264197] USB Serial deregistering driver FTDI USB Serial Device
    [11812.264865] usbcore: deregistering interface driver ftdi_sio
    [11812.282180] USB Serial deregistering driver pl2303
    [11812.283141] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
    [11812.283272] usbcore: deregistering interface driver pl2303
    [11812.301056] USB Serial deregistering driver generic
    [11812.301186] usbcore: deregistering interface driver usbserial_generic
    [11812.301259] drivers/usb/serial/usb-serial.c: usb_serial_disconnect
    [11812.301823] BUG: unable to handle kernel paging request at f8e7438c
    [11812.301845] IP: [<f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial]
    [11812.301871] *pde = 357ef067 *pte = 00000000
    [11812.301957] Oops: 0000 [#1] PREEMPT SMP
    [11812.301983] Modules linked in: usbserial(-) [last unloaded: pl2303]
    [11812.302008]
    [11812.302019] Pid: 1323, comm: modprobe Tainted: G        W    3.4.0-rc7+ #101 Dell Inc. Vostro 1520/0T816J
    [11812.302115] EIP: 0060:[<f8e38445>] EFLAGS: 00010246 CPU: 1
    [11812.302130] EIP is at usb_serial_disconnect+0xb5/0x100 [usbserial]
    [11812.302141] EAX: f508a180 EBX: f508a180 ECX: 00000000 EDX: f8e74300
    [11812.302151] ESI: f5050800 EDI: 00000001 EBP: f5141e78 ESP: f5141e58
    [11812.302160]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    [11812.302170] CR0: 8005003b CR2: f8e7438c CR3: 34848000 CR4: 000007d0
    [11812.302180] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
    [11812.302189] DR6: ffff0ff0 DR7: 00000400
    [11812.302199] Process modprobe (pid: 1323, ti=f5140000 task=f61e2bc0 task.ti=f5140000)
    [11812.302209] Stack:
    [11812.302216]  f8e3be0f f8e3b29c f8e3ae00 00000000 f513641c f5136400 f513641c f507a540
    [11812.302325]  f5141e98 c133d2c1 00000000 00000000 f509c400 f513641c f507a590 f5136450
    [11812.302372]  f5141ea8 c12f0344 f513641c f507a590 f5141ebc c12f0c67 00000000 f507a590
    [11812.302419] Call Trace:
    [11812.302439]  [<c133d2c1>] usb_unbind_interface+0x51/0x190
    [11812.302456]  [<c12f0344>] __device_release_driver+0x64/0xb0
    [11812.302469]  [<c12f0c67>] driver_detach+0x97/0xa0
    [11812.302483]  [<c12f001c>] bus_remove_driver+0x6c/0xe0
    [11812.302500]  [<c145938d>] ? __mutex_unlock_slowpath+0xcd/0x140
    [11812.302514]  [<c12f0ff9>] driver_unregister+0x49/0x80
    [11812.302528]  [<c1457df6>] ? printk+0x1d/0x1f
    [11812.302540]  [<c133c50d>] usb_deregister+0x5d/0xb0
    [11812.302557]  [<f8e37c55>] ? usb_serial_deregister+0x45/0x50 [usbserial]
    [11812.302575]  [<f8e37c8d>] usb_serial_deregister_drivers+0x2d/0x40 [usbserial]
    [11812.302593]  [<f8e3a6e2>] usb_serial_generic_deregister+0x12/0x20 [usbserial]
    [11812.302611]  [<f8e3acf0>] usb_serial_exit+0x8/0x32 [usbserial]
    [11812.302716]  [<c1080b48>] sys_delete_module+0x158/0x260
    [11812.302730]  [<c110594e>] ? mntput+0x1e/0x30
    [11812.302746]  [<c145c3c3>] ? sysenter_exit+0xf/0x18
    [11812.302746]  [<c107777c>] ? trace_hardirqs_on_caller+0xec/0x170
    [11812.302746]  [<c145c390>] sysenter_do_call+0x12/0x36
    [11812.302746] Code: 24 02 00 00 e8 dd f3 20 c8 f6 86 74 02 00 00 02 74 b4 8d 86 4c 02 00 00 47 e8 78 55 4b c8 0f b6 43 0e 39 f8 7f a9 8b 53 04 89 d8 <ff> 92 8c 00 00 00 89 d8 e8 0e ff ff ff 8b 45 f0 c7 44 24 04 2f
    [11812.302746] EIP: [<f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial] SS:ESP 0068:f5141e58
    [11812.302746] CR2: 00000000f8e7438c

    Fix by only evaluating serial drivers pointing back to the
    USB driver we are currently probing.  This still allows two
    or more drivers to match the same device, running their
    serial driver probes to sort out which one to use.

    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Tested-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1076f4157305ac5961cd0f9c3e203b4d198190e
Author: Tom Cassidy <tomas.cassidy@gmail.com>
Date:   Wed Jun 6 17:08:48 2012 +1000

    USB: serial: sierra: Add support for Sierra Wireless AirCard 320U modem

    commit 19a3dd1575e954e8c004413bee3e12d3962f2525 upstream.

    Add support for Sierra Wireless AirCard 320U modem

    Signed-off-by: Tomas Cassidy <tomas.cassidy@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94b71da9193eb95eeef8d09172998c37c2c78327
Author: Otto Meta <otto.patches@sister-shadow.de>
Date:   Wed Jun 6 18:46:21 2012 +0200

    usb: cdc-acm: fix devices not unthrottled on open

    commit 6c4707f3f8c44ec18282e1c014c80e1c257042f9 upstream.

    Currently CDC-ACM devices stay throttled when their TTY is closed while
    throttled, stalling further communication attempts after the next open.

    Unthrottling during open/activate got lost starting with kernel
    3.0.0 and this patch reintroduces it.

    Signed-off-by: Otto Meta <otto.patches@sister-shadow.de>
    Acked-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c1a56c8c620ff93050ee4ef545cc585d2f93034
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Wed Jun 13 11:20:19 2012 -0400

    USB: add NO_D3_DURING_SLEEP flag and revert 151b61284776be2

    commit c2fb8a3fa25513de8fedb38509b1f15a5bbee47b upstream.

    This patch (as1558) fixes a problem affecting several ASUS computers:
    The machine crashes or corrupts memory when going into suspend if the
    ehci-hcd driver is bound to any controllers.  Users have been forced
    to unbind or unload ehci-hcd before putting their systems to sleep.

    After extensive testing, it was determined that the machines don't
    like going into suspend when any EHCI controllers are in the PCI D3
    power state.  Presumably this is a firmware bug, but there's nothing
    we can do about it except to avoid putting the controllers in D3
    during system sleep.

    The patch adds a new flag to indicate whether the problem is present,
    and avoids changing the controller's power state if the flag is set.
    Runtime suspend is unaffected; this matters only for system suspend.
    However as a side effect, the controller will not respond to remote
    wakeup requests while the system is asleep.  Hence USB wakeup is not
    functional -- but of course, this is already true in the current state
    of affairs.

    A similar patch has already been applied as commit
    151b61284776be2d6f02d48c23c3625678960b97 (USB: EHCI: fix crash during
    suspend on ASUS computers).  The patch supersedes that one and reverts
    it.  There are two differences:

    	The old patch added the flag at the USB level; this patch
    	adds it at the PCI level.

    	The old patch applied to all chipsets with the same vendor,
    	subsystem vendor, and product IDs; this patch makes an
    	exception for a known-good system (based on DMI information).

    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Dâniel Fraga <fragabr@gmail.com>
    Tested-by: Andrey Rahmatullin <wrar@wrar.name>
    Tested-by: Steven Rostedt <rostedt@goodmis.org>
    Reviewed-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20fc17886631cece5e5a517eca833fdf9d843fb0
Author: Evan McNabb <evan@mcnabbs.org>
Date:   Fri May 25 22:46:14 2012 -0400

    USB: ftdi-sio: Add support for RT Systems USB-RTS01 serial adapter

    commit e00a54d772210d450e5c1a801534c3c8a448549f upstream.

    Add support for RT Systems USB-RTS01 USB to Serial adapter:
    http://www.rtsystemsinc.com/Photos/USBRTS01.html

    Tested by controlling Icom IC-718 amateur radio transceiver via hamlib.

    Signed-off-by: Evan McNabb <evan@mcnabbs.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f04336f498a15a90eb97795d7df124790f4a003
Author: Mikko Tuumanen <mikko.tuumanen@qemsoftware.com>
Date:   Fri Jun 1 11:28:55 2012 +0300

    USB: serial: cp210x: add Optris MS Pro usb id

    commit 5bbfa6f427c1d7244a5ee154ab8fa37265a5e049 upstream.

    Signed-off-by: Mikko Tuumanen <mikko.tuumanen@qemsoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9f7a26951b7806be35149fda8d72d021d532a49
Author: Alan Cox <alan@linux.intel.com>
Date:   Tue May 22 20:45:13 2012 +0100

    USB: mct_u232: Fix incorrect TIOCMSET return

    commit 1aa3c63cf0a79153ee13c8f82e4eb6c40b66a161 upstream.

    The low level helper returns 1 on success. The ioctl should however return
    0. As this is the only user of the helper return, make the helper return 0 or
    an error code.

    Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=43009
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08bcba2572549eb8318627178c370a828e6ffe44
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu May 24 11:19:04 2012 +0200

    USB: qcserial: Add Sierra Wireless device IDs

    commit c41444ccfa33a1c20efa319e554cb531576e64a2 upstream.

    Some additional IDs found in the BSD/GPL licensed out-of-tree
    GobiSerial driver from Sierra Wireless.

    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0812bcc788bd35514632c5ddd58ccc858df1cf97
Author: Tony Zelenoff <antonz@parallels.com>
Date:   Tue Jun 5 17:58:04 2012 +0400

    USB: mos7840: Fix compilation of usb serial driver

    commit b9c87663eead64c767e72a373ae6f8a94bead459 upstream.

    The __devinitconst section can't be referenced
    from usb_serial_device structure. Thus removed it as
    it done in other mos* device drivers.

    Error itself:
    WARNING: drivers/usb/serial/mos7840.o(.data+0x8): Section mismatch in reference
    from the variable moschip7840_4port_device to the variable
    .devinit.rodata:id_table
    The variable moschip7840_4port_device references
    the variable __devinitconst id_table

    [v2] no attach now

    Signed-off-by: Tony Zelenoff <antonz@parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 482a7756a282b7873dcba9441504a32354317d49
Author: Andiry Xu <andiry.xu@gmail.com>
Date:   Wed Jun 13 10:51:57 2012 +0800

    xHCI: Increase the timeout for controller save/restore state operation

    commit 622eb783fe6ff4c1baa47db16c3a5db97f9e6e50 upstream.

    When system software decides to power down the xHC with the intent of
    resuming operation at a later time, it will ask xHC to save the internal
    state and restore it when resume to correctly recover from a power event.
    Two bits are used to enable this operation: Save State and Restore State.

    xHCI spec 4.23.2 says software should "Set the Controller Save/Restore
    State flag in the USBCMD register and wait for the Save/Restore State
    Status flag in the USBSTS register to transition to '0'". However, it does
    not define how long software should wait for the SSS/RSS bit to transition
    to 0.

    Currently the timeout is set to 1ms. There is bug report
    (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1002697)
    indicates that the timeout is too short for ASMedia ASM1042 host controller
    to save/restore the state successfully. Increase the timeout to 10ms helps to
    resolve the issue.

    This patch should be backported to stable kernels as old as 2.6.37, that
    contain the commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI:
    PCI power management implementation"

    Signed-off-by: Andiry Xu <andiry.xu@gmail.com>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: Ming Lei <ming.lei@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1466988e8be36b25f01123798ce430176911c3c5
Author: Janne Kalliomäki <janne@tuxera.com>
Date:   Sun Jun 17 17:05:24 2012 -0400

    hfsplus: fix overflow in sector calculations in hfsplus_submit_bio

    commit a6dc8c04218eb752ff79cdc24a995cf51866caed upstream.

    The variable io_size was unsigned int, which caused the wrong sector number
    to be calculated after aligning it. This then caused mount to fail with big
    volumes, as backup volume header information was searched from a
    wrong sector.

    Signed-off-by: Janne Kalliomäki <janne@tuxera.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41a38d50056968f3032b9e683765b37b4ed5f973
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue May 29 17:57:52 2012 +0200

    USB: option: fix port-data abuse

    commit 4273f9878b0a8271df055e3c8f2e7f08c6a4a2f4 upstream.

    Commit 8b4c6a3ab596961b78465 ("USB: option: Use generic USB wwan code")
    moved option port-data allocation to usb_wwan_startup but still cast the
    port data to the old struct...

    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a838fe731e81658fe92d0a0b134de687e97a37d
Author: Johan Hovold <jhovold@gmail.com>
Date:   Tue May 29 18:22:48 2012 +0200

    USB: option: fix memory leak

    commit b9c3aab315b51f81649a0d737c4c73783fbd8de0 upstream.

    Fix memory leak introduced by commit 383cedc3bb435de7a2 ("USB: serial:
    full autosuspend support for the option driver") which allocates
    usb-serial data but never frees it.

    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bb4f1d68d063667d825d01b6ebebb48deb366a7
Author: 说不得 <gavin.kx@qq.com>
Date:   Mon May 28 21:31:29 2012 +0800

    USB: option: add more YUGA device ids

    commit 0ef0be15fd2564767f114c249fc4af704d8e16f4 upstream.

    Signed-off-by: gavin zhu <gavin.zhu@qq.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f4880f25096d5b79b887e87f90d74ef93001398
Author: Andrew Bird <ajb@spheresystems.co.uk>
Date:   Mon May 28 12:43:06 2012 +0100

    USB: option: Updated Huawei K4605 has better id

    commit 42ca7da1c2363dbef4ba1b6917c4c02274b6a5e2 upstream.

    Later firmwares for this device now have proper subclass and
    protocol info so we can identify it nicely without needing to use
    the blacklist. I'm not removing the old 0xff matching as there
    may be devices in the field that still need that.

    Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d473f44bd233f19b7f8ebbf26ff92c6456849b8
Author: Bjørn Mork <bjorn@mork.no>
Date:   Sat May 19 19:20:50 2012 +0200

    USB: option: Add Vodafone/Huawei K5005 support

    commit 4cbbb039a9719fb3bba73d255c6a95bc6dc6428b upstream.

    Tested-by: Thomas Schäfer <tschaefer@t-online.de>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00c4792f7501a6c761c47c5a7c0261e309e61949
Author: Trond Myklebust <Trond.Myklebust@netapp.com>
Date:   Thu May 31 15:26:38 2012 -0400

    NFSv4.1: Fix a request leak on the back channel

    commit b3b02ae5865c2dcd506322e0fc6def59a042e72f upstream.

    If the call to svc_process_common() fails, then the request
    needs to be freed before we can exit bc_svc_process.

    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2faa2a1e6b5bde69fcc49f10b7f502fc0aaf2c2b
Author: Andre Przywara <andre.przywara@amd.com>
Date:   Tue May 29 13:07:31 2012 +0200

    xen/setup: filter APERFMPERF cpuid feature out

    commit 5e626254206a709c6e937f3dda69bf26c7344f6f upstream.

    Xen PV kernels allow access to the APERF/MPERF registers to read the
    effective frequency. Access to the MSRs is however redirected to the
    currently scheduled physical CPU, making consecutive read and
    compares unreliable. In addition each rdmsr traps into the hypervisor.
    So to avoid bogus readouts and expensive traps, disable the kernel
    internal feature flag for APERF/MPERF if running under Xen.
    This will
    a) remove the aperfmperf flag from /proc/cpuinfo
    b) not mislead the power scheduler (arch/x86/kernel/cpu/sched.c) to
       use the feature to improve scheduling (by default disabled)
    c) not mislead the cpufreq driver to use the MSRs

    This does not cover userland programs which access the MSRs via the
    device file interface, but this will be addressed separately.

    Signed-off-by: Andre Przywara <andre.przywara@amd.com>
    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb60a7989c1a0f90f811c745f82a7c73f4e905c2
Author: Jaccon Bastiaansen <jaccon.bastiaansen@gmail.com>
Date:   Mon Apr 30 11:53:43 2012 +0200

    ARM i.MX imx21ads: Fix overlapping static i/o mappings

    commit 350ab15bb2ffe7103bc6bf6c634f3c5b286eaf2a upstream.

    The statically defined I/O memory regions for the i.MX21 on chip
    peripherals and the on board I/O peripherals of the i.MX21ADS board
    overlap. This results in a kernel crash during startup. This is fixed
    by reducing the memory range for the on board I/O peripherals to the
    actually required range.

    Signed-off-by: Jaccon Bastiaansen <jaccon.bastiaansen@gmail.com>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>