Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Oct 2, 2012
  1. @gregkh

    Linux 3.4.12

    gregkh authored
  2. @wildea01 @gregkh

    ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+

    wildea01 authored gregkh committed
    commit a76d7bd upstream.
    
    The open-coded mutex implementation for ARMv6+ cores suffers from a
    severe lack of barriers, so in the uncontended case we don't actually
    protect any accesses performed during the critical section.
    
    Furthermore, the code is largely a duplication of the ARMv6+ atomic_dec
    code but optimised to remove a branch instruction, as the mutex fastpath
    was previously inlined. Now that this is executed out-of-line, we can
    reuse the atomic access code for the locking (in fact, we use the xchg
    code as this produces shorter critical sections).
    
    This patch uses the generic xchg based implementation for mutexes on
    ARMv6+, which introduces barriers to the lock/unlock operations and also
    has the benefit of removing a fair amount of inline assembly code.
    
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Nicolas Pitre <nico@linaro.org>
    Reported-by: Shan Kang <kangshan0910@gmail.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  3. @gregkh

    Revert: drm/i915: correctly order the ring init sequence

    gregkh authored
    This reverts commit 57ecc93 which
    really is commit 0d8957c upstream as it
    has been reported to cause problems in the 3.4.y kernel series.
    
    Reported-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Cc: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Yang Guang <guang.a.yang@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  4. @gregkh

    vmwgfx: corruption in vmw_event_fence_action_create()

    Dan Carpenter authored gregkh committed
    commit 68c4fce upstream.
    
    We don't allocate enough data for this struct.  As soon as we start
    modifying event->event on the next lines, then we're going beyond the
    end of the memory we allocated.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Dave Airlie <airlied@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  5. @jnikula @gregkh

    drm/i915: fall back to bit-banging if GMBUS fails in CRT EDID reads

    jnikula authored gregkh committed
    commit f1a2f5b upstream.
    
    GMBUS was enabled over bit-banging as the default in commits:
    
    commit c3dfefa
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Tue Feb 14 22:37:25 2012 +0100
    
        drm/i915: reenable gmbus on gen3+ again
    
    and
    
    commit 0fb3f96
    Author: Daniel Vetter <daniel.vetter@ffwll.ch>
    Date:   Fri Mar 2 19:38:30 2012 +0100
    
        drm/i915: enable gmbus on gen2
    
    Unfortunately, GMBUS seems to fail on some CRT displays. Add a bit-banging
    fallback to CRT EDID reads.
    
    LKML-Reference: <201207251020.47637.maciej.rutecki@gmail.com>
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=45881
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Tested-by: Alex Ferrando <alferpal@gmail.com>
    Cc: stable@vger.kernel.org (for 3.4+3.5)
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  6. @gregkh

    drm/udl: limit modes to the sku pixel limits.

    Dave Airlie authored gregkh committed
    commit 3a75885 upstream.
    
    Otherwise when X starts we commonly get a black screen scanning
    out nothing, its wierd dpms on/off from userspace brings it back,
    
    With this on F18, multi-seat works again with my 1920x1200 monitor
    which is above the sku limit for the device I have.
    
    Reviewed-by: Alex Deucher <alexander.deucher@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  7. @stigge @gregkh

    gpio-lpc32xx: Fix value handling of gpio_direction_output()

    stigge authored gregkh committed
    commit b1268d3 upstream.
    
    For GPIOs of gpio-lpc32xx, gpio_direction_output() ignores the value argument
    (initial value of output). This patch fixes this by setting the level
    accordingly.
    
    Signed-off-by: Roland Stigge <stigge@antcom.de>
    Acked-by: Alexandre Pereira da Silva <aletes.xgr@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  8. @broonie @gregkh

    ASoC: wm2000: Correct register size

    broonie authored gregkh committed
    commit d0e12f3 upstream.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  9. @gregkh

    USB: Fix race condition when removing host controllers

    Alan Stern authored gregkh committed
    commit 0d00dc2 upstream.
    
    This patch (as1607) fixes a race that can occur if a USB host
    controller is removed while a process is reading the
    /sys/kernel/debug/usb/devices file.
    
    The usb_device_read() routine uses the bus->root_hub pointer to
    determine whether or not the root hub is registered.  The is not a
    valid test, because the pointer is set before the root hub gets
    registered and remains set even after the root hub is unregistered and
    deallocated.  As a result, usb_device_read() or usb_device_dump() can
    access freed memory, causing an oops.
    
    The patch changes the test to use the hcd->rh_registered flag, which
    does get set and cleared at the appropriate times.  It also makes sure
    to hold the usb_bus_list_lock mutex while setting the flag, so that
    usb_device_read() will become aware of new root hubs as soon as they
    are registered.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Don Zickus <dzickus@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  10. @manabian @gregkh

    USB: ohci-at91: fix null pointer in ohci_hcd_at91_overcurrent_irq

    manabian authored gregkh committed
    commit 01bb650 upstream.
    
    Fixes the following NULL pointer dereference:
    [    7.740000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    [    7.810000] Unable to handle kernel NULL pointer dereference at virtual address 00000028
    [    7.810000] pgd = c3a38000
    [    7.810000] [00000028] *pgd=23a8c831, *pte=00000000, *ppte=00000000
    [    7.810000] Internal error: Oops: 17 [#1] PREEMPT ARM
    [    7.810000] Modules linked in: ohci_hcd(+) regmap_i2c snd_pcm usbcore snd_page_alloc at91_cf snd_timer pcmcia_rsrc snd soundcore gpio_keys regmap_spi pcmcia_core usb_common nls_base
    [    7.810000] CPU: 0    Not tainted  (3.6.0-rc6-mpa+ #264)
    [    7.810000] PC is at __gpio_to_irq+0x18/0x40
    [    7.810000] LR is at ohci_hcd_at91_overcurrent_irq+0x24/0xb4 [ohci_hcd]
    [    7.810000] pc : [<c01392d4>]    lr : [<bf08f694>]    psr: 40000093
    [    7.810000] sp : c3a11c40  ip : c3a11c50  fp : c3a11c4c
    [    7.810000] r10: 00000000  r9 : c02dcd6e  r8 : fefff400
    [    7.810000] r7 : 00000000  r6 : c02cc928  r5 : 00000030  r4 : c02dd168
    [    7.810000] r3 : c02e7350  r2 : ffffffea  r1 : c02cc928  r0 : 00000000
    [    7.810000] Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [    7.810000] Control: c000717f  Table: 23a38000  DAC: 00000015
    [    7.810000] Process modprobe (pid: 285, stack limit = 0xc3a10270)
    [    7.810000] Stack: (0xc3a11c40 to 0xc3a12000)
    [    7.810000] 1c40: c3a11c6c c3a11c50 bf08f694 c01392cc c3a11c84 c2c38b00 c3806900 00000030
    [    7.810000] 1c60: c3a11ca4 c3a11c70 c0051264 bf08f680 c3a11cac c3a11c80 c003e764 c3806900
    [    7.810000] 1c80: c2c38b00 c02cb05c c02cb000 fefff400 c3806930 c3a11cf4 c3a11cbc c3a11ca8
    [    7.810000] 1ca0: c005142c c005123c c3806900 c3805a00 c3a11cd4 c3a11cc0 c0053f24 c00513e4
    [    7.810000] 1cc0: c3a11cf4 00000030 c3a11cec c3a11cd8 c005120c c0053e88 00000000 00000000
    [    7.810000] 1ce0: c3a11d1c c3a11cf0 c00124d0 c00511e0 01400000 00000001 00000012 00000000
    [    7.810000] 1d00: ffffffff c3a11d94 00000030 00000000 c3a11d34 c3a11d20 c005120c c0012438
    [    7.810000] 1d20: c001dac4 00000012 c3a11d4c c3a11d38 c0009b08 c00511e0 c00523fc 60000013
    [    7.810000] 1d40: c3a11d5c c3a11d50 c0008510 c0009ab4 c3a11ddc c3a11d60 c0008eb4 c00084f0
    [    7.810000] 1d60: 00000000 00000030 00000000 00000080 60000013 bf08f670 c3806900 c2c38b00
    [    7.810000] 1d80: 00000030 c3806930 00000000 c3a11ddc c3a11d88 c3a11da8 c0054190 c00523fc
    [    7.810000] 1da0: 60000013 ffffffff c3a11dec c3a11db8 00000000 c2c38b00 bf08f670 c3806900
    [    7.810000] 1dc0: 00000000 00000080 c02cc928 00000030 c3a11e0c c3a11de0 c0052764 c00520d8
    [    7.810000] 1de0: c3a11dfc 00000000 00000000 00000002 bf090f61 00000004 c02cc930 c02cc928
    [    7.810000] 1e00: c3a11e4c c3a11e10 bf090978 c005269c bf090f61 c02cc928 bf093000 c02dd170
    [    7.810000] 1e20: c3a11e3c c02cc930 c02cc930 bf0911d0 bf0911d0 bf093000 c3a10000 00000000
    [    7.810000] 1e40: c3a11e5c c3a11e50 c0155b7c bf090808 c3a11e7c c3a11e60 c0154690 c0155b6c
    [    7.810000] 1e60: c02cc930 c02cc964 bf0911d0 c3a11ea0 c3a11e9c c3a11e80 c015484c c01545e8
    [    7.810000] 1e80: 00000000 00000000 c01547e4 bf0911d0 c3a11ec4 c3a11ea0 c0152e58 c01547f4
    [    7.810000] 1ea0: c381b88c c384ab10 c2c10540 bf0911d0 00000000 c02d7518 c3a11ed4 c3a11ec8
    [    7.810000] 1ec0: c01544c0 c0152e0c c3a11efc c3a11ed8 c01536cc c01544b0 bf091075 c3a11ee8
    [    7.810000] 1ee0: bf049af0 bf09120c bf0911d0 00000000 c3a11f1c c3a11f00 c0154e9c c0153628
    [    7.810000] 1f00: bf049af0 bf09120c 000ae190 00000000 c3a11f2c c3a11f20 c0155f58 c0154e04
    [    7.810000] 1f20: c3a11f44 c3a11f30 bf093054 c0155f1c 00000000 00006a4f c3a11f7c c3a11f48
    [    7.810000] 1f40: c0008638 bf093010 bf09120c 000ae190 00000000 c00093c4 00006a4f bf09120c
    [    7.810000] 1f60: 000ae190 00000000 c00093c4 00000000 c3a11fa4 c3a11f80 c004fdc4 c000859c
    [    7.810000] 1f80: c3a11fa4 000ae190 00006a4f 00016eb8 000ad018 00000080 00000000 c3a11fa8
    [    7.810000] 1fa0: c0009260 c004fd58 00006a4f 00016eb8 000ae190 00006a4f 000ae100 00000000
    [    7.810000] 1fc0: 00006a4f 00016eb8 000ad018 00000080 000adba0 000ad208 00000000 000ad3d8
    [    7.810000] 1fe0: beaf7ae8 beaf7ad8 000172b8 b6e4e940 20000010 000ae190 00000000 00000000
    [    7.810000] Backtrace:
    [    7.810000] [<c01392bc>] (__gpio_to_irq+0x0/0x40) from [<bf08f694>] (ohci_hcd_at91_overcurrent_irq+0x24/0xb4 [ohci_hcd])
    [    7.810000] [<bf08f670>] (ohci_hcd_at91_overcurrent_irq+0x0/0xb4 [ohci_hcd]) from [<c0051264>] (handle_irq_event_percpu+0x38/0x1a8)
    [    7.810000]  r6:00000030 r5:c3806900 r4:c2c38b00
    [    7.810000] [<c005122c>] (handle_irq_event_percpu+0x0/0x1a8) from [<c005142c>] (handle_irq_event+0x58/0x7c)
    [    7.810000] [<c00513d4>] (handle_irq_event+0x0/0x7c) from [<c0053f24>] (handle_simple_irq+0xac/0xd8)
    [    7.810000]  r5:c3805a00 r4:c3806900
    [    7.810000] [<c0053e78>] (handle_simple_irq+0x0/0xd8) from [<c005120c>] (generic_handle_irq+0x3c/0x48)
    [    7.810000]  r4:00000030
    [    7.810000] [<c00511d0>] (generic_handle_irq+0x0/0x48) from [<c00124d0>] (gpio_irq_handler+0xa8/0xfc)
    [    7.810000]  r4:00000000
    [    7.810000] [<c0012428>] (gpio_irq_handler+0x0/0xfc) from [<c005120c>] (generic_handle_irq+0x3c/0x48)
    [    7.810000] [<c00511d0>] (generic_handle_irq+0x0/0x48) from [<c0009b08>] (handle_IRQ+0x64/0x88)
    [    7.810000]  r4:00000012
    [    7.810000] [<c0009aa4>] (handle_IRQ+0x0/0x88) from [<c0008510>] (at91_aic_handle_irq+0x30/0x38)
    [    7.810000]  r5:60000013 r4:c00523fc
    [    7.810000] [<c00084e0>] (at91_aic_handle_irq+0x0/0x38) from [<c0008eb4>] (__irq_svc+0x34/0x60)
    [    7.810000] Exception stack(0xc3a11d60 to 0xc3a11da8)
    [    7.810000] 1d60: 00000000 00000030 00000000 00000080 60000013 bf08f670 c3806900 c2c38b00
    [    7.810000] 1d80: 00000030 c3806930 00000000 c3a11ddc c3a11d88 c3a11da8 c0054190 c00523fc
    [    7.810000] 1da0: 60000013 ffffffff
    [    7.810000] [<c00520c8>] (__setup_irq+0x0/0x458) from [<c0052764>] (request_threaded_irq+0xd8/0x134)
    [    7.810000] [<c005268c>] (request_threaded_irq+0x0/0x134) from [<bf090978>] (ohci_hcd_at91_drv_probe+0x180/0x41c [ohci_hcd])
    [    7.810000] [<bf0907f8>] (ohci_hcd_at91_drv_probe+0x0/0x41c [ohci_hcd]) from [<c0155b7c>] (platform_drv_probe+0x20/0x24)
    [    7.810000] [<c0155b5c>] (platform_drv_probe+0x0/0x24) from [<c0154690>] (driver_probe_device+0xb8/0x20c)
    [    7.810000] [<c01545d8>] (driver_probe_device+0x0/0x20c) from [<c015484c>] (__driver_attach+0x68/0x88)
    [    7.810000]  r7:c3a11ea0 r6:bf0911d0 r5:c02cc964 r4:c02cc930
    [    7.810000] [<c01547e4>] (__driver_attach+0x0/0x88) from [<c0152e58>] (bus_for_each_dev+0x5c/0x9c)
    [    7.810000]  r6:bf0911d0 r5:c01547e4 r4:00000000
    [    7.810000] [<c0152dfc>] (bus_for_each_dev+0x0/0x9c) from [<c01544c0>] (driver_attach+0x20/0x28)
    [    7.810000]  r7:c02d7518 r6:00000000 r5:bf0911d0 r4:c2c10540
    [    7.810000] [<c01544a0>] (driver_attach+0x0/0x28) from [<c01536cc>] (bus_add_driver+0xb4/0x22c)
    [    7.810000] [<c0153618>] (bus_add_driver+0x0/0x22c) from [<c0154e9c>] (driver_register+0xa8/0x144)
    [    7.810000]  r7:00000000 r6:bf0911d0 r5:bf09120c r4:bf049af0
    [    7.810000] [<c0154df4>] (driver_register+0x0/0x144) from [<c0155f58>] (platform_driver_register+0x4c/0x60)
    [    7.810000]  r7:00000000 r6:000ae190 r5:bf09120c r4:bf049af0
    [    7.810000] [<c0155f0c>] (platform_driver_register+0x0/0x60) from [<bf093054>] (ohci_hcd_mod_init+0x54/0x8c [ohci_hcd])
    [    7.810000] [<bf093000>] (ohci_hcd_mod_init+0x0/0x8c [ohci_hcd]) from [<c0008638>] (do_one_initcall+0xac/0x174)
    [    7.810000]  r4:00006a4f
    [    7.810000] [<c000858c>] (do_one_initcall+0x0/0x174) from [<c004fdc4>] (sys_init_module+0x7c/0x1a0)
    [    7.810000] [<c004fd48>] (sys_init_module+0x0/0x1a0) from [<c0009260>] (ret_fast_syscall+0x0/0x2c)
    [    7.810000]  r7:00000080 r6:000ad018 r5:00016eb8 r4:00006a4f
    [    7.810000] Code: e24cb004 e59f3028 e1a02000 e7930180 (e5903028)
    [    7.810000] ---[ end trace 85aa37ed128143b5 ]---
    [    7.810000] Kernel panic - not syncing: Fatal exception in interrupt
    
    Commit 6fffb77 (USB: ohci-at91: fix PIO handling in relation with number of
    ports) started setting unused pins to EINVAL. But this exposed a bug in the
    ohci_hcd_at91_overcurrent_irq function where the gpio was used without being
    checked to see if it is valid.
    
    This patches fixed the issue by adding the gpio valid check.
    
    Signed-off-by: Joachim Eastwood <joachim.eastwood@jotron.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  11. @skinsbursky @gregkh

    LockD: pass service to per-net up and down functions

    skinsbursky authored gregkh committed
    commit 4db7769 upstream.
    
    Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Cc: Jason Wessel <jason.wessel@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  12. @gregkh

    kthread_worker: reimplement flush_kthread_work() to allow freeing the…

    Tejun Heo authored gregkh committed
    … work item being executed
    
    commit 46f3d97 upstream.
    
    kthread_worker provides minimalistic workqueue-like interface for
    users which need a dedicated worker thread (e.g. for realtime
    priority).  It has basic queue, flush_work, flush_worker operations
    which mostly match the workqueue counterparts; however, due to the way
    flush_work() is implemented, it has a noticeable difference of not
    allowing work items to be freed while being executed.
    
    While the current users of kthread_worker are okay with the current
    behavior, the restriction does impede some valid use cases.  Also,
    removing this difference isn't difficult and actually makes the code
    easier to understand.
    
    This patch reimplements flush_kthread_work() such that it uses a
    flush_work item instead of queue/done sequence numbers.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: Colin Cross <ccross@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  13. @gregkh

    kthread_worker: reorganize to prepare for flush_kthread_work() reimpl…

    Tejun Heo authored gregkh committed
    …ementation
    
    commit 9a2e03d upstream.
    
    Make the following two non-functional changes.
    
    * Separate out insert_kthread_work() from queue_kthread_work().
    
    * Relocate struct kthread_flush_work and kthread_flush_work_fn()
      definitions above flush_kthread_work().
    
    v2: Added lockdep_assert_held() in insert_kthread_work() as suggested
        by Andy Walls.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Acked-by: Andy Walls <awalls@md.metrocast.net>
    Cc: Colin Cross <ccross@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  14. @skinsbursky @gregkh

    NFSd: set nfsd_serv to NULL after service destruction

    skinsbursky authored gregkh committed
    commit 57c8b13 upstream.
    
    In nfsd_destroy():
    
    	if (destroy)
    		svc_shutdown_net(nfsd_serv, net);
    	svc_destroy(nfsd_server);
    
    svc_shutdown_net(nfsd_serv, net) calls nfsd_last_thread(), which sets
    nfsd_serv to NULL, causing a NULL dereference on the following line.
    
    Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  15. @skinsbursky @gregkh

    NFSd: introduce nfsd_destroy() helper

    skinsbursky authored gregkh committed
    commit 19f7e2c upstream.
    
    Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  16. @gregkh

    UBI: fix a horrible memory deallocation bug

    Artem Bityutskiy authored gregkh committed
    commit 78b495c upstream
    
    UBI was mistakingly using 'kfree()' instead of 'kmem_cache_free()' when
    freeing "attach eraseblock" structures in vtbl.c. Thankfully, this happened
    only when we were doing auto-format, so many systems were unaffected. However,
    there are still many users affected.
    
    It is strange, but the system did not crash and nothing bad happened when
    the SLUB memory allocator was used. However, in case of SLOB we observed an
    crash right away.
    
    This problem was introduced in 2.6.39 by commit
    "6c1e875 UBI: add slab cache for ubi_scan_leb objects"
    
    Reported-by: Richard Genoud <richard.genoud@gmail.com>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  17. @gregkh

    irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU

    Seth Forshee authored gregkh committed
    commit 32ab31e upstream.
    
    The ACPI tables in the Macbook Air 5,1 define a single IOAPIC with id 2,
    but the only remapping unit described in the DMAR table matches id 0.
    Interrupt remapping fails as a result, and the kernel panics with the
    message "timer doesn't work through Interrupt-remapped IO-APIC."
    
    To fix this, check each IOAPIC for a corresponding IOMMU. If an IOMMU is
    not found, do not allow IRQ remapping to be enabled.
    
    v2: Move check to parse_ioapics_under_ir(), raise log level to KERN_ERR,
        and add FW_BUG to the log message
    v3: Skip check if IOMMU doesn't support interrupt remapping and remove
        existing check that the IOMMU count equals the IOAPIC count
    
    Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Acked-by: Yinghai Lu <yinghai@kernel.org>
    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    Acked-by: Cho, Yu-Chen <acho@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  18. @gregkh

    mm: avoid swapping out with swappiness==0

    Satoru Moriya authored gregkh committed
    commit fe35004 upstream.
    
    Sometimes we'd like to avoid swapping out anonymous memory.  In
    particular, avoid swapping out pages of important process or process
    groups while there is a reasonable amount of pagecache on RAM so that we
    can satisfy our customers' requirements.
    
    OTOH, we can control how aggressive the kernel will swap memory pages with
    /proc/sys/vm/swappiness for global and
    /sys/fs/cgroup/memory/memory.swappiness for each memcg.
    
    But with current reclaim implementation, the kernel may swap out even if
    we set swappiness=0 and there is pagecache in RAM.
    
    This patch changes the behavior with swappiness==0.  If we set
    swappiness==0, the kernel does not swap out completely (for global reclaim
    until the amount of free pages and filebacked pages in a zone has been
    reduced to something very very small (nr_free + nr_filebacked < high
    watermark)).
    
    Signed-off-by: Satoru Moriya <satoru.moriya@hds.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Acked-by: Jerome Marchand <jmarchan@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  19. @bmork @gregkh

    net: qmi_wwan: new devices: UML290 and K5006-Z

    bmork authored gregkh committed
    commit 10cbc1d upstream.
    
    Newer firmware versions for the Pantech UML290 use a different
    subclass ID.  The Windows driver match on both IDs, so we do
    that as well.
    
    The ZTE (Vodafone) K5006-Z is a new device.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Cc: Dan Williams <dcbw@redhat.com>
    Cc: Thomas Schäfer <tschaefer@t-online.de>
    [bmork: backported to 3.4: use driver whitelisting]
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  20. @bmork @gregkh

    net: qmi_wwan: add Sierra Wireless devices

    bmork authored gregkh committed
    commit 9b469a6 upstream.
    
    Add 6 new devices and one modified device, based on
    information from laptop vendor Windows drivers.
    
    Sony provides a driver with two new devices using
    a Gobi 2k+ layout (1199:68a5 and 1199:68a9).  The
    Sony driver also adds a non-standard QMI/net
    interface to the already supported 1199:9011
    Gobi device. We do not know whether this is an
    alternate interface number or an additional
    interface which might be present, but that doesn't
    really matter.
    
    Lenovo provides a driver supporting 4 new devices:
     - MC7770 (1199:901b) with standard Gobi 2k+ layout
     - MC7700 (0f3d:68a2) with layout similar to MC7710
     - MC7750 (114f:68a2) with layout similar to MC7710
     - EM7700 (1199:901c) with layout similar to MC7710
    
    Note regaring the three devices similar to MC7710:
    
    The Windows drivers only support interface #8 on these
    devices.  The MC7710 can support QMI/net functions on
    interface #19 and #20 as well, and this driver is
    verified to work on interface #19 (a firmware bug is
    suspected to prevent #20 from working).
    
    We do not enable these additional interfaces until they
    either show up in a Windows driver or are verified to
    work in some other way.  Therefore limiting the new
    devices to interface #8 for now.
    
    [bmork: backported to 3.4: use driver whitelisting]
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  21. @bmork @gregkh

    net: qmi_wwan: add ZTE MF821D

    bmork authored gregkh committed
    commit db8dacf upstream.
    
    Sold by O2 (telefonica germany) under the name "LTE4G"
    
    Tested-by: Thomas Schäfer <tschaefer@t-online.de>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  22. @bmork @gregkh

    net: qmi_wwan: add ZTE MF60

    bmork authored gregkh committed
    commit 6fecd35 upstream.
    
    Adding a device with limited QMI support. It does not support
    normal QMI_WDS commands for connection management. Instead,
    sending a QMI_CTL SET_INSTANCE_ID command is required to
    enable the network interface:
    
      01 0f 00 00 00 00 00 00  20 00 04 00 01 01 00 00
    
    A number of QMI_DMS and QMI_NAS commands are also supported
    for optional device management.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  23. @bmork @gregkh

    net: qmi_wwan: Add Sierra Wireless device IDs

    bmork authored gregkh committed
    commit 5e071b5 upstream.
    
    Some additional Gobi3K IDs found in the BSD/GPL licensed
    out-of-tree GobiNet driver from Sierra Wireless.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  24. @andrewbird @gregkh

    USB: qmi_wwan: Add ZTE (Vodafone) K3765-Z

    andrewbird authored gregkh committed
    commit 8965c98 upstream.
    
    Add the ZTE (Vodafone) K3765-Z to the whitelist. This requires the
    previous patch to make the whitelist with forced interface 4 generic
    or the device fails to initialise. After applying this patch and
    loading the Option driver without usb-modeswitch's bind all
    interfaces trick, a wwan0 net interface and /dev/cdc-wdm0 device
    file were created. Using Bjorn Mork's perl connection script a
    connection was made to a mobile network using QMI and the network
    interface's IPv4 address was configured OK.
    
    Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  25. @bmork @gregkh

    net: qmi_wwan: Add Vodafone/Huawei K5005 support

    bmork authored gregkh committed
    commit 88c16dc upstream.
    
    Tested-by: Thomas Schäfer <tschaefer@t-online.de>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  26. @dvhart @gregkh

    pch_uart: Add eg20t_port lock field, avoid recursive spinlocks

    dvhart authored gregkh committed
    commit 2588aba upstream.
    
    pch_uart_interrupt() takes priv->port.lock which leads to two recursive
    spinlock calls if low_latency==1 or CONFIG_PREEMPT_RT_FULL=y (one
    otherwise):
    
    pch_uart_interrupt
      spin_lock_irqsave(priv->port.lock, flags)
      case PCH_UART_IID_RDR_TO (data ready)
      handle_rx_to
        push_rx
          tty_port_tty_get
            spin_lock_irqsave(&port->lock, flags) <--- already hold this lock
            ...
          tty_flip_buffer_push
            ...
            flush_to_ldisc
              spin_lock_irqsave(&tty->buf.lock)
                spin_lock_irqsave(&tty->buf.lock)
                disc->ops->receive_buf(tty, char_buf)
                  n_tty_receive_buf
                    tty->ops->flush_chars()
                    uart_flush_chars
                      uart_start
                        spin_lock_irqsave(&port->lock) <--- already hold this lock
    
    Avoid this by using a dedicated lock to protect the eg20t_port structure
    and IO access to its membase. This is more consistent with the 8250
    driver.  Ensure priv->lock is always take prior to priv->port.lock when
    taken at the same time.
    
    V2: Remove inadvertent whitespace change.
    V3: Account for oops_in_progress for the private lock in
        pch_console_write().
    
    Note: Like the 8250 driver, if a printk is introduced anywhere inside
          the pch_console_write() critical section, the kernel will hang
          on a recursive spinlock on the private lock. The oops case is
          handled by using a trylock in the oops_in_progress case.
    
    Signed-off-by: Darren Hart <dvhart@linux.intel.com>
    CC: Tomoya MORINAGA <tomoya.rohm@gmail.com>
    CC: Feng Tang <feng.tang@intel.com>
    CC: Alexander Stein <alexander.stein@systec-electronic.com>
    Acked-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  27. @gregkh

    powerpc/85xx: p1022ds: fix DIU/LBC switching with NAND enabled

    Timur Tabi authored gregkh committed
    commit 896c01c upstream.
    
    In order for indirect mode on the PIXIS to work properly, both chip selects
    need to be set to GPCM mode, otherwise writes to the chip select base
    addresses will not actually post to the local bus -- they'll go to the
    NAND controller instead.  Therefore, we need to set BR0 and BR1 to GPCM
    mode before switching to indirect mode.
    
    Signed-off-by: Timur Tabi <timur@freescale.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  28. @gregkh

    powerpc/85xx: p1022ds: disable the NAND flash node if video is enabled

    Timur Tabi authored gregkh committed
    commit 6269f25 upstream.
    
    The Freescale P1022 has a unique pin muxing "feature" where the DIU video
    controller's video signals are muxed with 24 of the local bus address signals.
    When the DIU is enabled, the bulk of the local bus is disabled, preventing
    access to memory-mapped devices like NAND flash and the pixis FPGA.
    
    Therefore, if the DIU is going to be enabled, then memory-mapped devices on
    the localbus, like NAND flash, need to be disabled.
    
    This patch is similar to "powerpc/85xx: p1022ds: disable the NOR flash node
    if video is enabled", except that it disables the NAND flash node instead.
    This PIXIS node needs to remain enabled because it is used by platform code
    to switch into indirect mode.
    
    Signed-off-by: Timur Tabi <timur@freescale.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  29. @gregkh

    pch_uart: Fix parity setting issue

    Tomoya MORINAGA authored gregkh committed
    commit 38bd2a1 upstream.
    
    Parity Setting value is reverse.
    E.G. In case of setting ODD parity, EVEN value is set.
    This patch inverts "if" condition.
    
    Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
    Acked-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  30. @gregkh

    pch_uart: Fix rx error interrupt setting issue

    Tomoya MORINAGA authored gregkh committed
    commit 9539dfb upstream.
    
    Rx Error interrupt(E.G. parity error) is not enabled.
    So, when parity error occurs, error interrupt is not occurred.
    As a result, the received data is not dropped.
    
    This patch adds enable/disable rx error interrupt code.
    
    Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
    Acked-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  31. @gregkh

    pch_uart: Fix missing break for 16 byte fifo

    Alan Cox authored gregkh committed
    commit 9bc0374 upstream.
    
    Otherwise we fall back to the wrong value.
    
    Reported-by: <dcb314@hotmail.com>
    Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=44091
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  32. @douglasbagnall @gregkh

    media: Avoid sysfs oops when an rc_dev's raw device is absent

    douglasbagnall authored gregkh committed
    commit 720bb64 upstream.
    
    For some reason, when the lirc daemon learns that a usb remote control
    has been unplugged, it wants to read the sysfs attributes of the
    disappearing device. This is useful for uncovering transient
    inconsistencies, but less so for keeping the system running when such
    inconsistencies exist.
    
    Under some circumstances (like every time I unplug my dvb stick from
    my laptop), lirc catches an rc_dev whose raw event handler has been
    removed (presumably by ir_raw_event_unregister), and proceeds to
    interrogate the raw protocols supported by the NULL pointer.
    
    This patch avoids the NULL dereference, and ignores the issue of how
    this state of affairs came about in the first place.
    
    Version 2 incorporates changes recommended by Mauro Carvalho Chehab
    (-ENODEV instead of -EINVAL, and a signed-off-by).
    
    Signed-off-by: Douglas Bagnall <douglas@paradise.net.nz>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Cc: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  33. @johnstultz-work @gregkh

    time: Move ktime_t overflow checking into timespec_valid_strict

    johnstultz-work authored gregkh committed
    commit cee5848 upstream
    
    Andreas Bombe reported that the added ktime_t overflow checking added to
    timespec_valid in commit 4e8b145 ("time: Improve sanity checking of
    timekeeping inputs") was causing problems with X.org because it caused
    timeouts larger then KTIME_T to be invalid.
    
    Previously, these large timeouts would be clamped to KTIME_MAX and would
    never expire, which is valid.
    
    This patch splits the ktime_t overflow checking into a new
    timespec_valid_strict function, and converts the timekeeping codes
    internal checking to use this more strict function.
    
    Reported-and-tested-by: Andreas Bombe <aeb@debian.org>
    Cc: Zhouping Liu <zliu@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  34. @johnstultz-work @gregkh

    time: Avoid making adjustments if we haven't accumulated anything

    johnstultz-work authored gregkh committed
    commit bf2ac31 upstream.
    
    If update_wall_time() is called and the current offset isn't large
    enough to accumulate, avoid re-calling timekeeping_adjust which may
    change the clock freq and can cause 1ns inconsistencies with
    CLOCK_REALTIME_COARSE/CLOCK_MONOTONIC_COARSE.
    
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Link: http://lkml.kernel.org/r/1345595449-34965-5-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  35. @johnstultz-work @gregkh

    time: Improve sanity checking of timekeeping inputs

    johnstultz-work authored gregkh committed
    commit 4e8b145 upstream.
    
    Unexpected behavior could occur if the time is set to a value large
    enough to overflow a 64bit ktime_t (which is something larger then the
    year 2262).
    
    Also unexpected behavior could occur if large negative offsets are
    injected via adjtimex.
    
    So this patch improves the sanity check timekeeping inputs by
    improving the timespec_valid() check, and then makes better use of
    timespec_valid() to make sure we don't set the time to an invalid
    negative value or one that overflows ktime_t.
    
    Note: This does not protect from setting the time close to overflowing
    ktime_t and then letting natural accumulation cause the overflow.
    
    Reported-by: CAI Qian <caiqian@redhat.com>
    Reported-by: Sasha Levin <levinsasha928@gmail.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Zhouping Liu <zliu@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Link: http://lkml.kernel.org/r/1344454580-17031-1-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Something went wrong with that request. Please try again.