1. 07 Oct, 2012 18 commits
  2. 02 Oct, 2012 22 commits
    • Greg Kroah-Hartman's avatar
      Linux 3.4.12 · 1c7eb280
      Greg Kroah-Hartman authored
      1c7eb280
    • Will Deacon's avatar
      ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+ · 9effb1b2
      Will Deacon authored
      commit a76d7bd9 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: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarNicolas Pitre <nico@linaro.org>
      Reported-by: default avatarShan Kang <kangshan0910@gmail.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9effb1b2
    • Greg Kroah-Hartman's avatar
      Revert: drm/i915: correctly order the ring init sequence · 446d14d4
      Greg Kroah-Hartman authored
      This reverts commit 57ecc93c which
      really is commit 0d8957c8 upstream as it
      has been reported to cause problems in the 3.4.y kernel series.
      Reported-by: default avatarHerton 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: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      446d14d4
    • Dan Carpenter's avatar
      vmwgfx: corruption in vmw_event_fence_action_create() · 9a266f61
      Dan Carpenter authored
      commit 68c4fce7 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: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDave Airlie <airlied@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9a266f61
    • Jani Nikula's avatar
      drm/i915: fall back to bit-banging if GMBUS fails in CRT EDID reads · 03c4c80e
      Jani Nikula authored
      commit f1a2f5b7 upstream.
      
      GMBUS was enabled over bit-banging as the default in commits:
      
      commit c3dfefa0
      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 0fb3f969
      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=45881Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Tested-by: default avatarAlex Ferrando <alferpal@gmail.com>
      Cc: stable@vger.kernel.org (for 3.4+3.5)
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      
      03c4c80e
    • Dave Airlie's avatar
      drm/udl: limit modes to the sku pixel limits. · bd1d3d83
      Dave Airlie authored
      commit 3a758858 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: default avatarAlex Deucher <alexander.deucher@gmail.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bd1d3d83
    • Roland Stigge's avatar
      gpio-lpc32xx: Fix value handling of gpio_direction_output() · 66801463
      Roland Stigge authored
      commit b1268d37 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: default avatarRoland Stigge <stigge@antcom.de>
      Acked-by: default avatarAlexandre Pereira da Silva <aletes.xgr@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      66801463
    • Mark Brown's avatar
      d20ff72c
    • Alan Stern's avatar
      USB: Fix race condition when removing host controllers · 1437cb57
      Alan Stern authored
      commit 0d00dc26 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: default avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: default avatarDon Zickus <dzickus@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1437cb57
    • Joachim Eastwood's avatar
      USB: ohci-at91: fix null pointer in ohci_hcd_at91_overcurrent_irq · 0f36cbb3
      Joachim Eastwood authored
      commit 01bb6501 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 6fffb77c (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: default avatarJoachim Eastwood <joachim.eastwood@jotron.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0f36cbb3
    • Stanislav Kinsbursky's avatar
      LockD: pass service to per-net up and down functions · feab18eb
      Stanislav Kinsbursky authored
      commit 4db77695 upstream.
      Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      
      feab18eb
    • Tejun Heo's avatar
      kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed · 97ed537e
      Tejun Heo authored
      commit 46f3d976 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: default avatarTejun Heo <tj@kernel.org>
      Cc: Colin Cross <ccross@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      97ed537e
    • Tejun Heo's avatar
      kthread_worker: reorganize to prepare for flush_kthread_work() reimplementation · 34b6567e
      Tejun Heo authored
      commit 9a2e03d8 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: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarAndy Walls <awalls@md.metrocast.net>
      Cc: Colin Cross <ccross@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      34b6567e
    • Stanislav Kinsbursky's avatar
      NFSd: set nfsd_serv to NULL after service destruction · c717dcaf
      Stanislav Kinsbursky authored
      commit 57c8b13e 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: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c717dcaf
    • Stanislav Kinsbursky's avatar
    • Artem Bityutskiy's avatar
      UBI: fix a horrible memory deallocation bug · 1d22d566
      Artem Bityutskiy authored
      commit 78b495c3 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
      "6c1e875c UBI: add slab cache for ubi_scan_leb objects"
      Reported-by: default avatarRichard Genoud <richard.genoud@gmail.com>
      Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: default avatarRichard Genoud <richard.genoud@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1d22d566
    • Seth Forshee's avatar
      irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU · 77d13a08
      Seth Forshee authored
      commit 32ab31e0 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: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
      Acked-by: default avatarCho, Yu-Chen <acho@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      77d13a08
    • Satoru Moriya's avatar
      mm: avoid swapping out with swappiness==0 · 49194d4e
      Satoru Moriya authored
      commit fe35004f 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: default avatarSatoru Moriya <satoru.moriya@hds.com>
      Acked-by: default avatarMinchan Kim <minchan@kernel.org>
      Reviewed-by: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatarJerome Marchand <jmarchan@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      49194d4e
    • Bjørn Mork's avatar
      net: qmi_wwan: new devices: UML290 and K5006-Z · 64255043
      Bjørn Mork authored
      commit 10cbc1d9 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: default avatarBjø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: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      64255043
    • Bjørn Mork's avatar
      net: qmi_wwan: add Sierra Wireless devices · 8d336271
      Bjørn Mork authored
      commit 9b469a60 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: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8d336271
    • Bjørn Mork's avatar
      net: qmi_wwan: add ZTE MF821D · e7861ce7
      Bjørn Mork authored
      commit db8dacf9 upstream.
      
      Sold by O2 (telefonica germany) under the name "LTE4G"
      Tested-by: default avatarThomas Schäfer <tschaefer@t-online.de>
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e7861ce7
    • Bjørn Mork's avatar
      net: qmi_wwan: add ZTE MF60 · e7f558cc
      Bjørn Mork authored
      commit 6fecd35d 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: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e7f558cc