Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Dec 10, 2012
  1. @gregkh

    Linux 3.6.10

    gregkh authored
  2. @gregkh

    8139cp: revert "set ring address before enabling receiver"

    Francois Romieu authored gregkh committed
    commit b26623d upstream.
    
    This patch reverts b01af45.
    
    The original patch was tested with emulated hardware. Real
    hardware chokes.
    
    Fixes https://bugzilla.kernel.org/show_bug.cgi?id=47041
    
    Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
    Acked-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  3. @aprzywar @gregkh

    x86, amd: Disable way access filter on Piledriver CPUs

    aprzywar authored gregkh committed
    commit 2bbf0a1 upstream.
    
    The Way Access Filter in recent AMD CPUs may hurt the performance of
    some workloads, caused by aliasing issues in the L1 cache.
    This patch disables it on the affected CPUs.
    
    The issue is similar to that one of last year:
    http://lkml.indiana.edu/hypermail/linux/kernel/1107.3/00041.html
    This new patch does not replace the old one, we just need another
    quirk for newer CPUs.
    
    The performance penalty without the patch depends on the
    circumstances, but is a bit less than the last year's 3%.
    
    The workloads affected would be those that access code from the same
    physical page under different virtual addresses, so different
    processes using the same libraries with ASLR or multiple instances of
    PIE-binaries. The code needs to be accessed simultaneously from both
    cores of the same compute unit.
    
    More details can be found here:
    http://developer.amd.com/Assets/SharedL1InstructionCacheonAMD15hCPU.pdf
    
    CPUs affected are anything with the core known as Piledriver.
    That includes the new parts of the AMD A-Series (aka Trinity) and the
    just released new CPUs of the FX-Series (aka Vishera).
    The model numbering is a bit odd here: FX CPUs have model 2,
    A-Series has model 10h, with possible extensions to 1Fh. Hence the
    range of model ids.
    
    Signed-off-by: Andre Przywara <osp@andrep.de>
    Link: http://lkml.kernel.org/r/1351700450-9277-1-git-send-email-osp@andrep.de
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  4. @ickle @gregkh

    drm/i915: Add no-lvds quirk for Supermicro X7SPA-H

    ickle authored gregkh committed
    commit c31407a upstream.
    
    Reported-and-tested-by: Francois Tigeot <ftigeot@wolfpond.org>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55375
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  5. @gregkh

    ACPI: missing break

    Alan Cox authored gregkh committed
    commit 879dca0 upstream.
    
    We handle NOTIFY_THROTTLING so don't then fall through to unsupported event.
    
    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  6. @bmork @gregkh

    net: qmi_wwan: add Huawei E173

    bmork authored gregkh committed
    commit ba695af upstream.
    
    The Huawei E173 is a QMI/wwan device which normally appear
    as 12d1:1436 in Linux. The descriptors displayed in that
    mode will be picked up by cdc_ether.  But the modem has
    another mode with a different device ID and a slightly
    different set of descriptors. This is the mode used by
    Windows like this:
    
    3Modem:      USB\VID_12D1&PID_140C&MI_00\6&3A1D2012&0&0000
    Networkcard: USB\VID_12D1&PID_140C&MI_01\6&3A1D2012&0&0001
    Appli.Inter: USB\VID_12D1&PID_140C&MI_02\6&3A1D2012&0&0002
    PC UI Inter: USB\VID_12D1&PID_140C&MI_03\6&3A1D2012&0&0003
    
    Reported-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: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  7. @bmork @gregkh

    net: qmi_wwan: adding more ZTE devices

    bmork authored gregkh committed
    commit c6846ee upstream.
    
    Analyzed a few Windows driver description files, supporting
    this long list of devices:
    
    %ztewwan.DeviceDesc0002%    = ztewwan.ndi, USB\VID_19D2&PID_0002&MI_01
    %ztewwan.DeviceDesc0012%    = ztewwan.ndi, USB\VID_19D2&PID_0012&MI_01
    %ztewwan.DeviceDesc0017%    = ztewwan.ndi, USB\VID_19D2&PID_0017&MI_03
    %ztewwan.DeviceDesc0021%    = ztewwan.ndi, USB\VID_19D2&PID_0021&MI_04
    %ztewwan.DeviceDesc0025%    = ztewwan.ndi, USB\VID_19D2&PID_0025&MI_01
    %ztewwan.DeviceDesc0031%    = ztewwan.ndi, USB\VID_19D2&PID_0031&MI_04
    %ztewwan.DeviceDesc0042%    = ztewwan.ndi, USB\VID_19D2&PID_0042&MI_04
    %ztewwan.DeviceDesc0049%    = ztewwan.ndi, USB\VID_19D2&PID_0049&MI_05
    %ztewwan.DeviceDesc0052%    = ztewwan.ndi, USB\VID_19D2&PID_0052&MI_04
    %ztewwan.DeviceDesc0055%    = ztewwan.ndi, USB\VID_19D2&PID_0055&MI_01
    %ztewwan.DeviceDesc0058%    = ztewwan.ndi, USB\VID_19D2&PID_0058&MI_04
    %ztewwan.DeviceDesc0063%    = ztewwan.ndi, USB\VID_19D2&PID_0063&MI_04
    %ztewwan.DeviceDesc2002%    = ztewwan.ndi, USB\VID_19D2&PID_2002&MI_04
    %ztewwan.DeviceDesc0104%    = ztewwan.ndi, USB\VID_19D2&PID_0104&MI_04
    %ztewwan.DeviceDesc0113%    = ztewwan.ndi, USB\VID_19D2&PID_0113&MI_05
    %ztewwan.DeviceDesc0118%    = ztewwan.ndi, USB\VID_19D2&PID_0118&MI_05
    %ztewwan.DeviceDesc0121%    = ztewwan.ndi, USB\VID_19D2&PID_0121&MI_05
    %ztewwan.DeviceDesc0123%    = ztewwan.ndi, USB\VID_19D2&PID_0123&MI_04
    %ztewwan.DeviceDesc0124%    = ztewwan.ndi, USB\VID_19D2&PID_0124&MI_05
    %ztewwan.DeviceDesc0125%    = ztewwan.ndi, USB\VID_19D2&PID_0125&MI_06
    %ztewwan.DeviceDesc0126%    = ztewwan.ndi, USB\VID_19D2&PID_0126&MI_05
    %ztewwan.DeviceDesc1008%    = ztewwan.ndi, USB\VID_19D2&PID_1008&MI_04
    %ztewwan.DeviceDesc1010%    = ztewwan.ndi, USB\VID_19D2&PID_1010&MI_04
    %ztewwan.DeviceDesc1012%    = ztewwan.ndi, USB\VID_19D2&PID_1012&MI_04
    %ztewwan.DeviceDesc1402%    = ztewwan.ndi, USB\VID_19D2&PID_1402&MI_02
    %ztewwan.DeviceDesc0157%    = ztewwan.ndi, USB\VID_19D2&PID_0157&MI_05
    %ztewwan.DeviceDesc0158%    = ztewwan.ndi, USB\VID_19D2&PID_0158&MI_03
    %ztewwan.DeviceDesc1401%    = ztewwan.ndi, USB\VID_19D2&PID_1401&MI_02
    %ztewwan.DeviceDesc0130%    = ztewwan.ndi, USB\VID_19D2&PID_0130&MI_01
    %ztewwan.DeviceDesc0133%    = ztewwan.ndi, USB\VID_19D2&PID_0133&MI_03
    %ztewwan.DeviceDesc0176%    = ztewwan.ndi, USB\VID_19D2&PID_0176&MI_03
    %ztewwan.DeviceDesc0178%    = ztewwan.ndi, USB\VID_19D2&PID_0178&MI_03
    %ztewwan.DeviceDesc0168%    = ztewwan.ndi, USB\VID_19D2&PID_0168&MI_04
    ;EuFi890
    %ztewwan.DeviceDesc0191%    = ztewwan.ndi, USB\VID_19D2&PID_0191&MI_04
    ;AL621
    %ztewwan.DeviceDesc0167%    = ztewwan.ndi, USB\VID_19D2&PID_0167&MI_04
    ;MF821
    %ztewwan.DeviceDesc0199%    = ztewwan.ndi, USB\VID_19D2&PID_0199&MI_01
    %ztewwan.DeviceDesc0200%    = ztewwan.ndi, USB\VID_19D2&PID_0200&MI_01
    %ztewwan.DeviceDesc0257%    = ztewwan.ndi, USB\VID_19D2&PID_0257&MI_03
    ;MF821V
    %ztewwan.DeviceDesc1018%    = ztewwan.ndi, USB\VID_19D2&PID_1018&MI_03
    ;MF91
    %ztewwan.DeviceDesc1426%    = ztewwan.ndi, USB\VID_19D2&PID_1426&MI_02
    ;0141
    %ztewwan.DeviceDesc1247%    = ztewwan.ndi, USB\VID_19D2&PID_1247&MI_04
    %ztewwan.DeviceDesc1425%    = ztewwan.ndi, USB\VID_19D2&PID_1425&MI_02
    %ztewwan.DeviceDesc1424%    = ztewwan.ndi, USB\VID_19D2&PID_1424&MI_02
    %ztewwan.DeviceDesc1252%    = ztewwan.ndi, USB\VID_19D2&PID_1252&MI_04
    %ztewwan.DeviceDesc1254%    = ztewwan.ndi, USB\VID_19D2&PID_1254&MI_04
    %ztewwan.DeviceDesc1255A%   = ztewwan.ndi, USB\VID_19D2&PID_1255&MI_03
    %ztewwan.DeviceDesc1255B%   = ztewwan.ndi, USB\VID_19D2&PID_1255&MI_04
    %ztewwan.DeviceDesc1256%    = ztewwan.ndi, USB\VID_19D2&PID_1256&MI_04
    %ztewwan.DeviceDesc1245%    = ztewwanCombB.ndi, USB\VID_19D2&PID_1245&MI_04
    %ztewwan.DeviceDesc1021%    = ztewwan.ndi, USB\VID_19D2&PID_1021&MI_02
    
    Adding the ones we were missing.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  8. @prarit @gregkh

    i7core_edac: fix panic when accessing sysfs files

    prarit authored gregkh committed
    commit 42709ef upstream.
    
    The i7core_edac addrmatch_dev and chancounts_dev have sysfs files
    associated with them.  The sysfs files, however, are coded so that the
    parent device is is the mci device.  This is incorrect and the mci struct
    should be obtained through the addrmatch_dev and chancounts_dev device's
    private data field which is populated in i7core_create_sysfs_devices().
    
    Signed-off-by: Prarit Bhargava <prarit@redhat.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Cc: Shuah Khan <shuah.khan@hp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  9. @gregkh

    bnx2x: remove redundant warning log

    Ariel Elior authored gregkh committed
    commit 4a25417 upstream.
    
    fix bug where a register which was only meant to be read in 578xx/57712
    devices causes a bogus error message to be logged when read from other
    devices.
    
    Signed-off-by: Ariel Elior <ariele@broadcom.com>
    Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  10. @gregkh

    Revert "sched, autogroup: Stop going ahead if autogroup is disabled"

    Mike Galbraith authored gregkh committed
    commit fd8ef11 upstream.
    
    This reverts commit 800d4d3.
    
    Between commits 8323f26 ("sched: Fix race in task_group()") and
    800d4d3 ("sched, autogroup: Stop going ahead if autogroup is
    disabled"), autogroup is a wreck.
    
    With both applied, all you have to do to crash a box is disable
    autogroup during boot up, then reboot..  boom, NULL pointer dereference
    due to commit 800d4d3 not allowing autogroup to move things, and
    commit 8323f26 making that the only way to switch runqueues:
    
      BUG: unable to handle kernel NULL pointer dereference at           (null)
      IP: [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
      Pid: 7047, comm: systemd-user-se Not tainted 3.6.8-smp #7 MEDIONPC MS-7502/MS-7502
      RIP: effective_load.isra.43+0x50/0x90
      Process systemd-user-se (pid: 7047, threadinfo ffff880221dde000, task ffff88022618b3a0)
      Call Trace:
        select_task_rq_fair+0x255/0x780
        try_to_wake_up+0x156/0x2c0
        wake_up_state+0xb/0x10
        signal_wake_up+0x28/0x40
        complete_signal+0x1d6/0x250
        __send_signal+0x170/0x310
        send_signal+0x40/0x80
        do_send_sig_info+0x47/0x90
        group_send_sig_info+0x4a/0x70
        kill_pid_info+0x3a/0x60
        sys_kill+0x97/0x1a0
        ? vfs_read+0x120/0x160
        ? sys_read+0x45/0x90
        system_call_fastpath+0x16/0x1b
      Code: 49 0f af 41 50 31 d2 49 f7 f0 48 83 f8 01 48 0f 46 c6 48 2b 07 48 8b bf 40 01 00 00 48 85 ff 74 3a 45 31 c0 48 8b 8f 50 01 00 00 <48> 8b 11 4c 8b 89 80 00 00 00 49 89 d2 48 01 d0 45 8b 59 58 4c
      RIP  [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
       RSP <ffff880221ddfbd8>
      CR2: 0000000000000000
    
    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Cc: Yong Zhang <yong.zhang0@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  11. @jdelvare @gregkh

    i7300_edac: Fix error flag testing

    jdelvare authored gregkh committed
    commit 7e06b7a upstream.
    
    * Right-shift the values in GET_FBD_FAT_IDX and GET_FBD_NF_IDX, so
      that the callers get the result they expect.
    * Fix definition of FERR_FAT_FBD_ERR_MASK.
    * Call GET_FBD_NF_IDX, not GET_FBD_FAT_IDX, when operating on
      register FERR_NF_FBD. We were lucky they have the same definition.
    
    This fixes kernel bug #44131:
    https://bugzilla.kernel.org/show_bug.cgi?id=44131
    
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
    Acked-by: Doug Thompson <dougthompson@xmission.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  12. @neilbrown @gregkh

    md/raid1{,0}: fix deadlock in bitmap_unplug.

    neilbrown authored gregkh committed
    commit 874807a upstream.
    
    If the raid1 or raid10 unplug function gets called
    from a make_request function (which is very possible) when
    there are bios on the current->bio_list list, then it will not
    be able to successfully call bitmap_unplug() and it could
    need to submit more bios and wait for them to complete.
    But they won't complete while current->bio_list is non-empty.
    
    So detect that case and handle the unplugging off to another thread
    just like we already do when called from within the scheduler.
    
    RAID1 version of bug was introduced in 3.6, so that part of fix is
    suitable for 3.6.y.  RAID10 part won't apply.
    
    Reported-by: Torsten Kaiser <just.for.lkml@googlemail.com>
    Reported-by: Peter Maloney <peter.maloney@brockmann-consult.de>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  13. @jmberg @gregkh

    mac80211: fix remain-on-channel (non-)cancelling

    jmberg authored gregkh committed
    commit 6bdd253 upstream.
    
    Felix Liao reported that when an interface is set DOWN
    while another interface is executing a ROC, the warning
    in ieee80211_start_next_roc() (about the first item on
    the list having started already) triggers.
    
    This is because ieee80211_roc_purge() calls it even if
    it never actually changed the list of ROC items. To fix
    this, simply remove the function call. If it is needed
    then it will be done by the ieee80211_sw_roc_work()
    function when the ROC item that is being removed while
    active is cleaned up.
    
    Reported-by: Felix Liao <Felix.Liao@watchguard.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  14. @gregkh

    workqueue: exit rescuer_thread() as TASK_RUNNING

    Mike Galbraith authored gregkh committed
    commit 412d32e upstream.
    
    A rescue thread exiting TASK_INTERRUPTIBLE can lead to a task scheduling
    off, never to be seen again.  In the case where this occurred, an exiting
    thread hit reiserfs homebrew conditional resched while holding a mutex,
    bringing the box to its knees.
    
    PID: 18105  TASK: ffff8807fd412180  CPU: 5   COMMAND: "kdmflush"
     #0 [ffff8808157e7670] schedule at ffffffff8143f489
     #1 [ffff8808157e77b8] reiserfs_get_block at ffffffffa038ab2d [reiserfs]
     #2 [ffff8808157e79a8] __block_write_begin at ffffffff8117fb14
     #3 [ffff8808157e7a98] reiserfs_write_begin at ffffffffa0388695 [reiserfs]
     #4 [ffff8808157e7ad8] generic_perform_write at ffffffff810ee9e2
     #5 [ffff8808157e7b58] generic_file_buffered_write at ffffffff810eeb41
     #6 [ffff8808157e7ba8] __generic_file_aio_write at ffffffff810f1a3a
     #7 [ffff8808157e7c58] generic_file_aio_write at ffffffff810f1c88
     #8 [ffff8808157e7cc8] do_sync_write at ffffffff8114f850
     #9 [ffff8808157e7dd8] do_acct_process at ffffffff810a268f
        [exception RIP: kernel_thread_helper]
        RIP: ffffffff8144a5c0  RSP: ffff8808157e7f58  RFLAGS: 00000202
        RAX: 0000000000000000  RBX: 0000000000000000  RCX: 0000000000000000
        RDX: 0000000000000000  RSI: ffffffff8107af60  RDI: ffff8803ee491d18
        RBP: 0000000000000000   R8: 0000000000000000   R9: 0000000000000000
        R10: 0000000000000000  R11: 0000000000000000  R12: 0000000000000000
        R13: 0000000000000000  R14: 0000000000000000  R15: 0000000000000000
        ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
    
    Signed-off-by: Mike Galbraith <mgalbraith@suse.de>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  15. @vpalatin @gregkh

    x86, fpu: Avoid FPU lazy restore after suspend

    vpalatin authored gregkh committed
    commit 644c154 upstream.
    
    When a cpu enters S3 state, the FPU state is lost.
    After resuming for S3, if we try to lazy restore the FPU for a process running
    on the same CPU, this will result in a corrupted FPU context.
    
    Ensure that "fpu_owner_task" is properly invalided when (re-)initializing a CPU,
    so nobody will try to lazy restore a state which doesn't exist in the hardware.
    
    Tested with a 64-bit kernel on a 4-core Ivybridge CPU with eagerfpu=off,
    by doing thousands of suspend/resume cycles with 4 processes doing FPU
    operations running. Without the patch, a process is killed after a
    few hundreds cycles by a SIGFPE.
    
    Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
    Cc: Duncan Laurie <dlaurie@chromium.org>
    Cc: Olof Johansson <olofj@chromium.org>
    Link: http://lkml.kernel.org/r/1354306532-1014-1-git-send-email-vpalatin@chromium.org
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  16. @jgunthorpe @gregkh

    ARM: Kirkwood: Update PCI-E fixup

    jgunthorpe authored gregkh committed
    commit 1dc831b upstream.
    
    - The code relies on rc_pci_fixup being called, which only happens
      when CONFIG_PCI_QUIRKS is enabled, so add that to Kconfig. Omitting
      this causes a booting failure with a non-obvious cause.
    - Update rc_pci_fixup to set the class properly, copying the
      more modern style from other places
    - Correct the rc_pci_fixup comment
    
    Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    Signed-off-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  17. @gregkh

    iwlwifi: fix the basic CCK rates calculation

    Emmanuel Grumbach authored gregkh committed
    commit 5edd0b9 upstream.
    
    Fix a copy paste error in iwl_calc_basic_rates which leads
    to a wrong calculation of CCK basic rates.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  18. @rolandd @gregkh

    target: Fix handling of aborted commands

    rolandd authored gregkh committed
    commit 3ea160b upstream.
    
    - If we stop processing an already-aborted command in
      target_execute_cmd(), then we need to complete t_transport_stop_comp
      to wake up the the TMR handling thread, or else it will end up
      waiting forever.
    
    - If we've a already sent an "aborted" status for a command in
      transport_check_aborted_status() then we should bail out of
      transport_send_task_abort() to avoid freeing the command twice.
    
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Nicholas Bellinger <nab@risingtidesystems.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  19. @Naoya-Horiguchi @gregkh

    mm: soft offline: split thp at the beginning of soft_offline_page()

    Naoya-Horiguchi authored gregkh committed
    commit 783657a upstream.
    
    When we try to soft-offline a thp tail page, put_page() is called on the
    tail page unthinkingly and VM_BUG_ON is triggered in put_compound_page().
    
    This patch splits thp before going into the main body of soft-offlining.
    
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Andi Kleen <andi.kleen@intel.com>
    Cc: Wu Fengguang <fengguang.wu@intel.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>
  20. @hnaz @gregkh

    mm: vmscan: fix endless loop in kswapd balancing

    hnaz authored gregkh committed
    commit 60cefed upstream.
    
    Kswapd does not in all places have the same criteria for a balanced
    zone.  Zones are only being reclaimed when their high watermark is
    breached, but compaction checks loop over the zonelist again when the
    zone does not meet the low watermark plus two times the size of the
    allocation.  This gets kswapd stuck in an endless loop over a small
    zone, like the DMA zone, where the high watermark is smaller than the
    compaction requirement.
    
    Add a function, zone_balanced(), that checks the watermark, and, for
    higher order allocations, if compaction has enough free memory.  Then
    use it uniformly to check for balanced zones.
    
    This makes sure that when the compaction watermark is not met, at least
    reclaim happens and progress is made - or the zone is declared
    unreclaimable at some point and skipped entirely.
    
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Reported-by: George Spelvin <linux@horizon.com>
    Reported-by: Johannes Hirte <johannes.hirte@fem.tu-ilmenau.de>
    Reported-by: Tomas Racek <tracek@redhat.com>
    Tested-by: Johannes Hirte <johannes.hirte@fem.tu-ilmenau.de>
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    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>
  21. @gregkh

    mm/vmemmap: fix wrong use of virt_to_page

    Jianguo Wu authored gregkh committed
    commit ae64ffc upstream.
    
    I enable CONFIG_DEBUG_VIRTUAL and CONFIG_SPARSEMEM_VMEMMAP, when doing
    memory hotremove, there is a kernel BUG at arch/x86/mm/physaddr.c:20.
    
    It is caused by free_section_usemap()->virt_to_page(), virt_to_page() is
    only used for kernel direct mapping address, but sparse-vmemmap uses
    vmemmap address, so it is going wrong here.
    
      ------------[ cut here ]------------
      kernel BUG at arch/x86/mm/physaddr.c:20!
      invalid opcode: 0000 [#1] SMP
      Modules linked in: acpihp_drv acpihp_slot edd cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq mperf fuse vfat fat loop dm_mod coretemp kvm crc32c_intel ipv6 ixgbe igb iTCO_wdt i7core_edac edac_core pcspkr iTCO_vendor_support ioatdma microcode joydev sr_mod i2c_i801 dca lpc_ich mfd_core mdio tpm_tis i2c_core hid_generic tpm cdrom sg tpm_bios rtc_cmos button ext3 jbd mbcache usbhid hid uhci_hcd ehci_hcd usbcore usb_common sd_mod crc_t10dif processor thermal_sys hwmon scsi_dh_alua scsi_dh_hp_sw scsi_dh_rdac scsi_dh_emc scsi_dh ata_generic ata_piix libata megaraid_sas scsi_mod
      CPU 39
      Pid: 6454, comm: sh Not tainted 3.7.0-rc1-acpihp-final+ #45 QCI QSSC-S4R/QSSC-S4R
      RIP: 0010:[<ffffffff8103c908>]  [<ffffffff8103c908>] __phys_addr+0x88/0x90
      RSP: 0018:ffff8804440d7c08  EFLAGS: 00010006
      RAX: 0000000000000006 RBX: ffffea0012000000 RCX: 000000000000002c
      ...
    
    Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
    Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
    Reviewd-by: Wen Congyang <wency@cn.fujitsu.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Reviewed-by: Michal Hocko <mhocko@suse.cz>
    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>
  22. @gregkh

    drm/radeon: properly track the crtc not_enabled case evergreen_mc_stop()

    Alex Deucher authored gregkh committed
    commit 804cc4a upstream.
    
    The save struct is not initialized previously so explicitly
    mark the crtcs as not used when they are not in use.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  23. @gregkh

    drm/radeon: properly handle mc_stop/mc_resume on evergreen+ (v2)

    Alex Deucher authored gregkh committed
    commit 62444b7 upstream.
    
    - Stop the displays from accessing the FB
    - Block CPU access
    - Turn off MC client access
    
    This should fix issues some users have seen, especially
    with UEFI, when changing the MC FB location that result
    in hangs or display corruption.
    
    v2: fix crtc enabled check noticed by Luca Tettamanti
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  24. @gregkh

    drm/radeon/dce4+: don't use radeon_crtc for vblank callback

    Alex Deucher authored gregkh committed
    commit 4a15903 upstream.
    
    This might be called before we've allocated the radeon_crtcs
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  25. @gregkh

    Dove: Fix irq_to_pmu()

    Russell King - ARM Linux authored gregkh committed
    commit d356cf5 upstream.
    
    PMU interrupts start at IRQ_DOVE_PMU_START, not IRQ_DOVE_PMU_START + 1.
    Fix the condition.  (It may have been less likely to occur had the code
    been written "if (irq >= IRQ_DOVE_PMU_START" which imho is the easier
    to understand notation, and matches the normal way of thinking about
    these things.)
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  26. @gregkh

    Dove: Attempt to fix PMU/RTC interrupts

    Russell King - ARM Linux authored gregkh committed
    commit 5d3df93 upstream.
    
    Fix the acknowledgement of PMU interrupts on Dove: some Dove hardware
    has not been sensibly designed so that interrupts can be handled in a
    race free manner.  The PMU is one such instance.
    
    The pending (aka 'cause') register is a bunch of RW bits, meaning that
    these bits can be both cleared and set by software (confirmed on the
    Armada-510 on the cubox.)
    
    Hardware sets the appropriate bit when an interrupt is asserted, and
    software is required to clear the bits which are to be processed.  If
    we write ~(1 << bit), then we end up asserting every other interrupt
    except the one we're processing.  So, we need to do a read-modify-write
    cycle to clear the asserted bit.
    
    However, any interrupts which occur in the middle of this cycle will
    also be written back as zero, which will also clear the new interrupts.
    
    The upshot of this is: there is _no_ way to safely clear down interrupts
    in this register (and other similarly behaving interrupt pending
    registers on this device.)  The patch below at least stops us creating
    new interrupts.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Commits on Dec 3, 2012
  1. @gregkh

    Linux 3.6.9

    gregkh authored
  2. @neilbrown @gregkh

    md/raid10: close race that lose writes lost when replacement completes.

    neilbrown authored gregkh committed
    commit e7c0c3f upstream.
    
    When a replacement operation completes there is a small window
    when the original device is marked 'faulty' and the replacement
    still looks like a replacement.  The faulty should be removed and
    the replacement moved in place very quickly, bit it isn't instant.
    
    So the code write out to the array must handle the possibility that
    the only working device for some slot in the replacement - but it
    doesn't.  If the primary device is faulty it just gives up.  This
    can lead to corruption.
    
    So make the code more robust: if either  the primary or the
    replacement is present and working, write to them.  Only when
    neither are present do we give up.
    
    This bug has been present since replacement was introduced in
    3.3, so it is suitable for any -stable kernel since then.
    
    Reported-by: "George Spelvin" <linux@horizon.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: George Spelvin <linux@horizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  3. @gregkh

    mmc: sdhci-s3c: fix the wrong number of max bus clocks

    Jaehoon Chung authored gregkh committed
    commit 5feb54a upstream.
    
    We can use up to four bus-clocks; but on module remove, we didn't
    disable the fourth bus clock.
    
    Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
    Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
    Signed-off-by: Chris Ball <cjb@laptop.org>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  4. @shangw @gregkh

    powerpc/eeh: Lock module while handling EEH event

    shangw authored gregkh committed
    commit feadf7c upstream.
    
    The EEH core is talking with the PCI device driver to determine the
    action (purely reset, or PCI device removal). During the period, the
    driver might be unloaded and in turn causes kernel crash as follows:
    
    EEH: Detected PCI bus error on PHB#4-PE#10000
    EEH: This PCI device has failed 3 times in the last hour
    lpfc 0004:01:00.0: 0:2710 PCI channel disable preparing for reset
    Unable to handle kernel paging request for data at address 0x00000490
    Faulting instruction address: 0xd00000000e682c90
    cpu 0x1: Vector: 300 (Data Access) at [c000000fc75ffa20]
        pc: d00000000e682c90: .lpfc_io_error_detected+0x30/0x240 [lpfc]
        lr: d00000000e682c8c: .lpfc_io_error_detected+0x2c/0x240 [lpfc]
        sp: c000000fc75ffca0
       msr: 8000000000009032
       dar: 490
     dsisr: 40000000
      current = 0xc000000fc79b88b0
      paca    = 0xc00000000edb0380	 softe: 0	 irq_happened: 0x00
        pid   = 3386, comm = eehd
    enter ? for help
    [c000000fc75ffca0] c000000fc75ffd30 (unreliable)
    [c000000fc75ffd30] c00000000004fd3c .eeh_report_error+0x7c/0xf0
    [c000000fc75ffdc0] c00000000004ee00 .eeh_pe_dev_traverse+0xa0/0x180
    [c000000fc75ffe70] c00000000004ffd8 .eeh_handle_event+0x68/0x300
    [c000000fc75fff00] c0000000000503a0 .eeh_event_handler+0x130/0x1a0
    [c000000fc75fff90] c000000000020138 .kernel_thread+0x54/0x70
    1:mon>
    
    The patch increases the reference of the corresponding driver modules
    while EEH core does the negotiation with PCI device driver so that the
    corresponding driver modules can't be unloaded during the period and
    we're safe to refer the callbacks.
    
    Reported-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    [ herton: backported for 3.5, adjusted driver assignments, return 0
      instead of NULL, assume dev is not NULL ]
    Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  5. @taoma-tm @gregkh

    ext4: remove erroneous ext4_superblock_csum_set() in update_backups()

    taoma-tm authored gregkh committed
    commit bef53b0 upstream.
    
    The update_backups() function is used to backup all the metadata
    blocks, so we should not take it for granted that 'data' is pointed to
    a super block and use ext4_superblock_csum_set to calculate the
    checksum there.  In case where the data is a group descriptor block,
    it will corrupt the last group descriptor, and then e2fsck will
    complain about it it.
    
    As all the metadata checksums should already be OK when we do the
    backup, remove the wrong ext4_superblock_csum_set and it should be
    just fine.
    
    Reported-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Tao Ma <boyu.mt@taobao.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  6. @mlauss @gregkh

    MPI: Fix compilation on MIPS with GCC 4.4 and newer

    mlauss authored gregkh committed
    commit a3cea98 upstream.
    
    Since 4.4 GCC on MIPS no longer recognizes the "h" constraint,
    leading to this build failure:
    
      CC      lib/mpi/generic_mpih-mul1.o
    lib/mpi/generic_mpih-mul1.c: In function 'mpihelp_mul_1':
    lib/mpi/generic_mpih-mul1.c:50:3: error: impossible constraint in 'asm'
    
    This patch updates MPI with the latest umul_ppm implementations for MIPS.
    
    Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
    Cc: Linux-MIPS <linux-mips@linux-mips.org>
    Cc: Dmitry Kasatkin <dmitry.kasatkin@intel.com>
    Cc: James Morris <jmorris@namei.org>
    Patchwork: https://patchwork.linux-mips.org/patch/4612/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Cc: Shuah Khan <shuah.khan@hp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  7. @gregkh

    watchdog: using u64 in get_sample_period()

    Chuansheng Liu authored gregkh committed
    commit 8ffeb9b upstream.
    
    In get_sample_period(), unsigned long is not enough:
    
      watchdog_thresh * 2 * (NSEC_PER_SEC / 5)
    
    case1:
      watchdog_thresh is 10 by default, the sample value will be: 0xEE6B2800
    
    case2:
     set watchdog_thresh is 20, the sample value will be: 0x1 DCD6 5000
    
    In case2, we need use u64 to express the sample period.  Otherwise,
    changing the threshold thru proc often can not be successful.
    
    Signed-off-by: liu chuansheng <chuansheng.liu@intel.com>
    Acked-by: Don Zickus <dzickus@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Shuah Khan <shuah.khan@hp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  8. @gregkh

    mm: vmscan: check for fatal signals iff the process was throttled

    Mel Gorman authored gregkh committed
    commit 50694c2 upstream.
    
    Commit 5515061 ("mm: throttle direct reclaimers if PF_MEMALLOC
    reserves are low and swap is backed by network storage") introduced a
    check for fatal signals after a process gets throttled for network
    storage.  The intention was that if a process was throttled and got
    killed that it should not trigger the OOM killer.  As pointed out by
    Minchan Kim and David Rientjes, this check is in the wrong place and too
    broad.  If a system is in am OOM situation and a process is exiting, it
    can loop in __alloc_pages_slowpath() and calling direct reclaim in a
    loop.  As the fatal signal is pending it returns 1 as if it is making
    forward progress and can effectively deadlock.
    
    This patch moves the fatal_signal_pending() check after throttling to
    throttle_direct_reclaim() where it belongs.  If the process is killed
    while throttled, it will return immediately without direct reclaim
    except now it will have TIF_MEMDIE set and will use the PFMEMALLOC
    reserves.
    
    Minchan pointed out that it may be better to direct reclaim before
    returning to avoid using the reserves because there may be pages that
    can easily reclaim that would avoid using the reserves.  However, we do
    no such targetted reclaim and there is no guarantee that suitable pages
    are available.  As it is expected that this throttling happens when
    swap-over-NFS is used there is a possibility that the process will
    instead swap which may allocate network buffers from the PFMEMALLOC
    reserves.  Hence, in the swap-over-nfs case where a process can be
    throtted and be killed it can use the reserves to exit or it can
    potentially use reserves to swap a few pages and then exit.  This patch
    takes the option of using the reserves if necessary to allow the process
    exit quickly.
    
    If this patch passes review it should be considered a -stable candidate
    for 3.6.
    
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Luigi Semenzato <semenzato@google.com>
    Cc: Dan Magenheimer <dan.magenheimer@oracle.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Sonny Rao <sonnyrao@google.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: CAI Qian <caiqian@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  9. @gregkh

    NFC: Fix nfc_llcp_local chained list insertion

    Thierry Escande authored gregkh committed
    commit 16a78e9 upstream.
    
    list_add was called with swapped parameters
    
    Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Something went wrong with that request. Please try again.