commit 020abbc91120ddf052e2c303a8c598c3be4dc459
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Jan 25 08:27:55 2014 -0800

    Linux 3.10.28

commit 04545a3a85d0d1b7c3e09adcf5d0aff9d71072f3
Author: Taras Kondratiuk <taras.kondratiuk@linaro.org>
Date:   Fri Jan 10 01:27:08 2014 +0100

    ARM: 7938/1: OMAP4/highbank: Flush L2 cache before disabling
    
    commit b25f3e1c358434bf850220e04f28eebfc45eb634 upstream.
    
    Kexec disables outer cache before jumping to reboot code, but it doesn't
    flush it explicitly. Flush is done implicitly inside of l2x0_disable().
    But some SoC's override default .disable handler and don't flush cache.
    This may lead to a corrupted memory during Kexec reboot on these
    platforms.
    
    This patch adds cache flush inside of OMAP4 and Highbank outer_cache.disable()
    handlers to make it consistent with default l2x0_disable().
    
    Acked-by: Rob Herring <rob.herring@calxeda.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Taras Kondratiuk <taras.kondratiuk@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: Wang Nan <wangnan0@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b176ae176912fbf9e19ab6313ebf1a4b6bd9b84
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Tue Jan 7 16:15:36 2014 +0200

    drm/i915: Don't grab crtc mutexes in intel_modeset_gem_init()
    
    commit 7ad228b11ec26a820291c9f5a1168d6176580dc1 upstream.
    
    When the pipe A force quirk is applied the code will attempt to grab
    a crtc mutex during intel_modeset_setup_hw_state(). If we're already
    holding all crtc mutexes this will obviously deadlock every time.
    
    So instead of using drm_modeset_lock_all() just grab the
    mode_config.mutex. This is enough to avoid the unlocked mutex warnings
    from certain lower level functions.
    
    The regression was introduced in:
    
     commit 027476642811f8559cbe00ef6cc54db230e48a20
     Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
     Date:   Mon Dec 2 11:08:06 2013 +0200
    
        drm/i915: Take modeset locks around intel_modeset_setup_hw_state()
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    [danvet: Add cc: stable since the offending commit has that, too.]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3bb0df1b71413ae789767d928d9126c5a5cb1e11
Author: Jon Medhurst <tixy@linaro.org>
Date:   Tue Dec 10 10:18:58 2013 +0000

    serial: amba-pl011: use port lock to guard control register access
    
    commit fe43390702a1b5741fdf217063b05c7612b38303 upstream.
    
    When the pl011 is being used for a console, pl011_console_write forces
    the control register (CR) to enable the UART for transmission and then
    restores this to the original value afterwards. It does this while
    holding the port lock.
    
    Unfortunately, when the uart is started or shutdown - say in response to
    userland using the serial device for a terminal - then this updates the
    control register without any locking.
    
    This means we can have
    
      pl011_console_write   Save CR
      pl011_startup         Initialise CR, e.g. enable receive
      pl011_console_write   Restore old CR with receive not enabled
    
    this result is a serial port which doesn't respond to any input.
    
    A similar race in reverse could happen when the device is shutdown.
    
    We can fix these problems by taking the port lock when updating CR.
    
    Signed-off-by: Jon Medhurst <tixy@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d36355274980e716b832710e8d18b6396594d4e
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Tue Jan 21 15:48:47 2014 -0800

    mm: Make {,set}page_address() static inline if WANT_PAGE_VIRTUAL
    
    commit f92f455f67fef27929e6043499414605b0c94872 upstream.
    
    {,set}page_address() are macros if WANT_PAGE_VIRTUAL.  If
    !WANT_PAGE_VIRTUAL, they're plain C functions.
    
    If someone calls them with a void *, this pointer is auto-converted to
    struct page * if !WANT_PAGE_VIRTUAL, but causes a build failure on
    architectures using WANT_PAGE_VIRTUAL (arc, m68k and sparc64):
    
      drivers/md/bcache/bset.c: In function `__btree_sort':
      drivers/md/bcache/bset.c:1190: warning: dereferencing `void *' pointer
      drivers/md/bcache/bset.c:1190: error: request for member `virtual' in something not a structure or union
    
    Convert them to static inline functions to fix this.  There are already
    plenty of users of struct page members inside <linux/mm.h>, so there's
    no reason to keep them as macros.
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: David Rientjes <rientjes@google.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>

commit c44bc4496d29b70f95f2197eb950581a455c92a8
Author: NeilBrown <neilb@suse.de>
Date:   Mon Jan 6 13:19:42 2014 +1100

    md/raid5: Fix possible confusion when multiple write errors occur.
    
    commit 1cc03eb93245e63b0b7a7832165efdc52e25b4e6 upstream.
    
    commit 5d8c71f9e5fbdd95650be00294d238e27a363b5c
        md: raid5 crash during degradation
    
    Fixed a crash in an overly simplistic way which could leave
    R5_WriteError or R5_MadeGood set in the stripe cache for devices
    for which it is no longer relevant.
    When those devices are removed and spares added the flags are still
    set and can cause incorrect behaviour.
    
    commit 14a75d3e07c784c004b4b44b34af996b8e4ac453
        md/raid5: preferentially read from replacement device if possible.
    
    Fixed the same bug if a more effective way, so we can now revert
    the original commit.
    
    Reported-and-tested-by: Alexander Lyakas <alex.bolshoy@gmail.com>
    Fixes: 5d8c71f9e5fbdd95650be00294d238e27a363b5c
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ddd618aa9eee9f143d750d15497bf6f117874928
Author: NeilBrown <neilb@suse.de>
Date:   Tue Jan 14 10:38:09 2014 +1100

    md/raid10: fix two bugs in handling of known-bad-blocks.
    
    commit b50c259e25d9260b9108dc0c2964c26e5ecbe1c1 upstream.
    
    If we discover a bad block when reading we split the request and
    potentially read some of it from a different device.
    
    The code path of this has two bugs in RAID10.
    1/ we get a spin_lock with _irq, but unlock without _irq!!
    2/ The calculation of 'sectors_handled' is wrong, as can be clearly
       seen by comparison with raid1.c
    
    This leads to at least 2 warnings and a probable crash is a RAID10
    ever had known bad blocks.
    
    Fixes: 856e08e23762dfb92ffc68fd0a8d228f9e152160
    Reported-by: Damian Nowak <spam@nowaker.net>
    URL: https://bugzilla.kernel.org/show_bug.cgi?id=68181
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16342c21c94760ac4d426371546d4f9e27758e1b
Author: NeilBrown <neilb@suse.de>
Date:   Mon Jan 6 10:35:34 2014 +1100

    md/raid10: fix bug when raid10 recovery fails to recover a block.
    
    commit e8b849158508565e0cd6bc80061124afc5879160 upstream.
    
    commit e875ecea266a543e643b19e44cf472f1412708f9
        md/raid10 record bad blocks as needed during recovery.
    
    added code to the "cannot recover this block" path to record a bad
    block rather than fail the whole recovery.
    Unfortunately this new case was placed *after* r10bio was freed rather
    than *before*, yet it still uses r10bio.
    This is will crash with a null dereference.
    
    So move the freeing of r10bio down where it is safe.
    
    Fixes: e875ecea266a543e643b19e44cf472f1412708f9
    Reported-by: Damian Nowak <spam@nowaker.net>
    URL: https://bugzilla.kernel.org/show_bug.cgi?id=68181
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb4a65df3097524be403d455176710aee14d41f7
Author: NeilBrown <neilb@suse.de>
Date:   Thu Dec 12 10:13:33 2013 +1100

    md: fix problem when adding device to read-only array with bitmap.
    
    commit 8313b8e57f55b15e5b7f7fc5d1630bbf686a9a97 upstream.
    
    If an array is started degraded, and then the missing device
    is found it can be re-added and a minimal bitmap-based recovery
    will bring it fully up-to-date.
    
    If the array is read-only a recovery would not be allowed.
    But also if the array is read-only and the missing device was
    present very recently, then there could be no need for any
    recovery at all, so we simply include the device in the read-only
    array without any recovery.
    
    However... if the missing device was removed a little longer ago
    it could be missing some updates, but if a bitmap is present it will
    be conditionally accepted pending a bitmap-based update.  We don't
    currently detect this case properly and will include that old
    device into the read-only array with no recovery even though it really
    needs a recovery.
    
    This patch keeps track of whether a bitmap-based-recovery is really
    needed or not in the new Bitmap_sync rdev flag.  If that is set,
    then the device will not be added to a read-only array.
    
    Cc: Andrei Warkentin <andreiw@vmware.com>
    Fixes: d70ed2e4fafdbef0800e73942482bb075c21578b
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba8ee5985099dbd8f01ac5dcc7ad8ddf23056e87
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Wed Jan 8 11:12:27 2014 -0200

    drm/i915: fix DDI PLLs HW state readout code
    
    commit 0882dae983707455e97479e5e904e37673517ebc upstream.
    
    Properly zero the refcounts and crtc->ddi_pll_set so the previous HW
    state doesn't affect the result of reading the current HW state.
    
    This fixes WARNs about WRPLL refcount if we have an HDMI monitor on
    HSW and then suspend/resume.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64379
    Tested-by: Qingshuai Tian <qingshuai.tian@intel.com>
    Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4cb1e59ffcbee368f32c37ca5872fd73163c7783
Author: Andreas Rohner <andreas.rohner@gmx.net>
Date:   Tue Jan 14 17:56:36 2014 -0800

    nilfs2: fix segctor bug that causes file system corruption
    
    commit 70f2fe3a26248724d8a5019681a869abdaf3e89a upstream.
    
    There is a bug in the function nilfs_segctor_collect, which results in
    active data being written to a segment, that is marked as clean.  It is
    possible, that this segment is selected for a later segment
    construction, whereby the old data is overwritten.
    
    The problem shows itself with the following kernel log message:
    
      nilfs_sufile_do_cancel_free: segment 6533 must be clean
    
    Usually a few hours later the file system gets corrupted:
    
      NILFS: bad btree node (blocknr=8748107): level = 0, flags = 0x0, nchildren = 0
      NILFS error (device sdc1): nilfs_bmap_last_key: broken bmap (inode number=114660)
    
    The issue can be reproduced with a file system that is nearly full and
    with the cleaner running, while some IO intensive task is running.
    Although it is quite hard to reproduce.
    
    This is what happens:
    
     1. The cleaner starts the segment construction
     2. nilfs_segctor_collect is called
     3. sc_stage is on NILFS_ST_SUFILE and segments are freed
     4. sc_stage is on NILFS_ST_DAT current segment is full
     5. nilfs_segctor_extend_segments is called, which
        allocates a new segment
     6. The new segment is one of the segments freed in step 3
     7. nilfs_sufile_cancel_freev is called and produces an error message
     8. Loop around and the collection starts again
     9. sc_stage is on NILFS_ST_SUFILE and segments are freed
        including the newly allocated segment, which will contain active
        data and can be allocated at a later time
    10. A few hours later another segment construction allocates the
        segment and causes file system corruption
    
    This can be prevented by simply reordering the statements.  If
    nilfs_sufile_cancel_freev is called before nilfs_segctor_extend_segments
    the freed segments are marked as dirty and cannot be allocated any more.
    
    Signed-off-by: Andreas Rohner <andreas.rohner@gmx.net>
    Reviewed-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    Tested-by: Andreas Rohner <andreas.rohner@gmx.net>
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    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>

commit 38f27e4d72717c4b25c90b303cdb06076c8c08c2
Author: Hugh Dickins <hughd@google.com>
Date:   Sun Jan 12 01:25:21 2014 -0800

    thp: fix copy_page_rep GPF by testing is_huge_zero_pmd once only
    
    commit eecc1e426d681351a6026a7d3e7d225f38955b6c upstream.
    
    We see General Protection Fault on RSI in copy_page_rep: that RSI is
    what you get from a NULL struct page pointer.
    
      RIP: 0010:[<ffffffff81154955>]  [<ffffffff81154955>] copy_page_rep+0x5/0x10
      RSP: 0000:ffff880136e15c00  EFLAGS: 00010286
      RAX: ffff880000000000 RBX: ffff880136e14000 RCX: 0000000000000200
      RDX: 6db6db6db6db6db7 RSI: db73880000000000 RDI: ffff880dd0c00000
      RBP: ffff880136e15c18 R08: 0000000000000200 R09: 000000000005987c
      R10: 000000000005987c R11: 0000000000000200 R12: 0000000000000001
      R13: ffffea00305aa000 R14: 0000000000000000 R15: 0000000000000000
      FS:  00007f195752f700(0000) GS:ffff880c7fc20000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000093010000 CR3: 00000001458e1000 CR4: 00000000000027e0
      Call Trace:
        copy_user_huge_page+0x93/0xab
        do_huge_pmd_wp_page+0x710/0x815
        handle_mm_fault+0x15d8/0x1d70
        __do_page_fault+0x14d/0x840
        do_page_fault+0x2f/0x90
        page_fault+0x22/0x30
    
    do_huge_pmd_wp_page() tests is_huge_zero_pmd(orig_pmd) four times: but
    since shrink_huge_zero_page() can free the huge_zero_page, and we have
    no hold of our own on it here (except where the fourth test holds
    page_table_lock and has checked pmd_same), it's possible for it to
    answer yes the first time, but no to the second or third test.  Change
    all those last three to tests for NULL page.
    
    (Note: this is not the same issue as trinity's DEBUG_PAGEALLOC BUG
    in copy_page_rep with RSI: ffff88009c422000, reported by Sasha Levin
    in https://lkml.org/lkml/2013/3/29/103.  I believe that one is due
    to the source page being split, and a tail page freed, while copy
    is in progress; and not a problem without DEBUG_PAGEALLOC, since
    the pmd_same check will prevent a miscopy from being made visible.)
    
    Fixes: 97ae17497e99 ("thp: implement refcounting for huge zero page")
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b2be7cd9d11dde01e7c8ae39fe428d8df0aa8c6c
Author: Steven Rostedt <rostedt@goodmis.org>
Date:   Wed Nov 13 15:20:04 2013 -0500

    ftrace/x86: Load ftrace_ops in parameter not the variable holding it
    
    commit 1739f09e33d8f66bf48ddbc3eca615574da6c4f6 upstream.
    
    Function tracing callbacks expect to have the ftrace_ops that registered it
    passed to them, not the address of the variable that holds the ftrace_ops
    that registered it.
    
    Use a mov instead of a lea to store the ftrace_ops into the parameter
    of the function tracing callback.
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Link: http://lkml.kernel.org/r/20131113152004.459787f9@gandalf.local.home
    Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 057f2f7daf84356c8677f2458395d250c4c0674f
Author: Steven Rostedt <rostedt@goodmis.org>
Date:   Thu Jan 9 21:46:34 2014 -0500

    SELinux: Fix possible NULL pointer dereference in selinux_inode_permission()
    
    commit 3dc91d4338d698ce77832985f9cb183d8eeaf6be upstream.
    
    While running stress tests on adding and deleting ftrace instances I hit
    this bug:
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000020
      IP: selinux_inode_permission+0x85/0x160
      PGD 63681067 PUD 7ddbe067 PMD 0
      Oops: 0000 [#1] PREEMPT
      CPU: 0 PID: 5634 Comm: ftrace-test-mki Not tainted 3.13.0-rc4-test-00033-gd2a6dde-dirty #20
      Hardware name:                  /DG965MQ, BIOS MQ96510J.86A.0372.2006.0605.1717 06/05/2006
      task: ffff880078375800 ti: ffff88007ddb0000 task.ti: ffff88007ddb0000
      RIP: 0010:[<ffffffff812d8bc5>]  [<ffffffff812d8bc5>] selinux_inode_permission+0x85/0x160
      RSP: 0018:ffff88007ddb1c48  EFLAGS: 00010246
      RAX: 0000000000000000 RBX: 0000000000800000 RCX: ffff88006dd43840
      RDX: 0000000000000001 RSI: 0000000000000081 RDI: ffff88006ee46000
      RBP: ffff88007ddb1c88 R08: 0000000000000000 R09: ffff88007ddb1c54
      R10: 6e6576652f6f6f66 R11: 0000000000000003 R12: 0000000000000000
      R13: 0000000000000081 R14: ffff88006ee46000 R15: 0000000000000000
      FS:  00007f217b5b6700(0000) GS:ffffffff81e21000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033^M
      CR2: 0000000000000020 CR3: 000000006a0fe000 CR4: 00000000000007f0
      Call Trace:
        security_inode_permission+0x1c/0x30
        __inode_permission+0x41/0xa0
        inode_permission+0x18/0x50
        link_path_walk+0x66/0x920
        path_openat+0xa6/0x6c0
        do_filp_open+0x43/0xa0
        do_sys_open+0x146/0x240
        SyS_open+0x1e/0x20
        system_call_fastpath+0x16/0x1b
      Code: 84 a1 00 00 00 81 e3 00 20 00 00 89 d8 83 c8 02 40 f6 c6 04 0f 45 d8 40 f6 c6 08 74 71 80 cf 02 49 8b 46 38 4c 8d 4d cc 45 31 c0 <0f> b7 50 20 8b 70 1c 48 8b 41 70 89 d9 8b 78 04 e8 36 cf ff ff
      RIP  selinux_inode_permission+0x85/0x160
      CR2: 0000000000000020
    
    Investigating, I found that the inode->i_security was NULL, and the
    dereference of it caused the oops.
    
    in selinux_inode_permission():
    
    	isec = inode->i_security;
    
    	rc = avc_has_perm_noaudit(sid, isec->sid, isec->sclass, perms, 0, &avd);
    
    Note, the crash came from stressing the deletion and reading of debugfs
    files.  I was not able to recreate this via normal files.  But I'm not
    sure they are safe.  It may just be that the race window is much harder
    to hit.
    
    What seems to have happened (and what I have traced), is the file is
    being opened at the same time the file or directory is being deleted.
    As the dentry and inode locks are not held during the path walk, nor is
    the inodes ref counts being incremented, there is nothing saving these
    structures from being discarded except for an rcu_read_lock().
    
    The rcu_read_lock() protects against freeing of the inode, but it does
    not protect freeing of the inode_security_struct.  Now if the freeing of
    the i_security happens with a call_rcu(), and the i_security field of
    the inode is not changed (it gets freed as the inode gets freed) then
    there will be no issue here.  (Linus Torvalds suggested not setting the
    field to NULL such that we do not need to check if it is NULL in the
    permission check).
    
    Note, this is a hack, but it fixes the problem at hand.  A real fix is
    to restructure the destroy_inode() to call all the destructor handlers
    from the RCU callback.  But that is a major job to do, and requires a
    lot of work.  For now, we just band-aid this bug with this fix (it
    works), and work on a more maintainable solution in the future.
    
    Link: http://lkml.kernel.org/r/20140109101932.0508dec7@gandalf.local.home
    Link: http://lkml.kernel.org/r/20140109182756.17abaaa8@gandalf.local.home
    
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc46cb337cf614b652b0068e6e388102bf8a9b54
Author: Jan Kara <jack@suse.cz>
Date:   Sat Dec 14 04:21:26 2013 +0800

    writeback: Fix data corruption on NFS
    
    commit f9b0e058cbd04ada76b13afffa7e1df830543c24 upstream.
    
    Commit 4f8ad655dbc8 "writeback: Refactor writeback_single_inode()" added
    a condition to skip clean inode. However this is wrong in WB_SYNC_ALL
    mode because there we also want to wait for outstanding writeback on
    possibly clean inode. This was causing occasional data corruption issues
    on NFS because it uses sync_inode() to make sure all outstanding writes
    are flushed to the server before truncating the inode and with
    sync_inode() returning prematurely file was sometimes extended back
    by an outstanding write after it was truncated.
    
    So modify the test to also check for pages under writeback in
    WB_SYNC_ALL mode.
    
    Fixes: 4f8ad655dbc82cf05d2edc11e66b78a42d38bf93
    Reported-and-tested-by: Dan Duval <dan.duval@oracle.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02cb5b6b8b61c9e2e82cef752743168454cb227b
Author: Jean Delvare <khali@linux-fr.org>
Date:   Tue Jan 14 15:59:55 2014 +0100

    hwmon: (coretemp) Fix truncated name of alarm attributes
    
    commit 3f9aec7610b39521c7c69d754de7265f6994c194 upstream.
    
    When the core number exceeds 9, the size of the buffer storing the
    alarm attribute name is insufficient and the attribute name is
    truncated. This causes libsensors to skip these attributes as the
    truncated name is not recognized.
    
    Reported-by: Andreas Hollmann <hollmann@in.tum.de>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3717eee3c4d1d44ded3bd84bf5f6437ec2aa5496
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Fri Nov 8 16:31:29 2013 -0800

    vfs: In d_path don't call d_dname on a mount point
    
    commit f48cfddc6729ef133933062320039808bafa6f45 upstream.
    
    Aditya Kali (adityakali@google.com) wrote:
    > Commit bf056bfa80596a5d14b26b17276a56a0dcb080e5:
    > "proc: Fix the namespace inode permission checks." converted
    > the namespace files into symlinks. The same commit changed
    > the way namespace bind mounts appear in /proc/mounts:
    >   $ mount --bind /proc/self/ns/ipc /mnt/ipc
    > Originally:
    >   $ cat /proc/mounts | grep ipc
    >   proc /mnt/ipc proc rw,nosuid,nodev,noexec 0 0
    >
    > After commit bf056bfa80596a5d14b26b17276a56a0dcb080e5:
    >   $ cat /proc/mounts | grep ipc
    >   proc ipc:[4026531839] proc rw,nosuid,nodev,noexec 0 0
    >
    > This breaks userspace which expects the 2nd field in
    > /proc/mounts to be a valid path.
    
    The symlink /proc/<pid>/ns/{ipc,mnt,net,pid,user,uts} point to
    dentries allocated with d_alloc_pseudo that we can mount, and
    that have interesting names printed out with d_dname.
    
    When these files are bind mounted /proc/mounts is not currently
    displaying the mount point correctly because d_dname is called instead
    of just displaying the path where the file is mounted.
    
    Solve this by adding an explicit check to distinguish mounted pseudo
    inodes and unmounted pseudo inodes.  Unmounted pseudo inodes always
    use mount of their filesstem as the mnt_root  in their path making
    these two cases easy to distinguish.
    
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    Reported-by: Aditya Kali <adityakali@google.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4832e92ecd957595937e15b0e4b98c8b2b68d1a
Author: H Hartley Sweeten <hsweeten@visionengravers.com>
Date:   Thu Dec 5 13:43:28 2013 -0700

    staging: comedi: adl_pci9111: fix incorrect irq passed to request_irq()
    
    commit 48108fe3daa0d142f9b97178fdb23704ea3a407b upstream.
    
    The dev->irq passed to request_irq() will always be 0 when the auto_attach
    function is called. The pcidev->irq should be used instead to get the correct
    irq number.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d687814867c12165eadb676a93af6a1e201ed494
Author: H Hartley Sweeten <hsweeten@visionengravers.com>
Date:   Mon Dec 9 16:06:41 2013 -0700

    staging: comedi: addi_apci_1032: fix subdevice type/flags bug
    
    commit 90daf69a7a3f1d1a41018c799968a0bb896d65e0 upstream.
    
    The SDF_CMD_READ should be one of the s->subdev_flags not part of
    the s->type.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
    Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit deb19aafd901b60f7192b1e16073ec6673d5c98b
Author: Jianguo Wu <wujianguo@huawei.com>
Date:   Wed Dec 18 17:08:54 2013 -0800

    mm/memory-failure.c: recheck PageHuge() after hugetlb page migrate successfully
    
    commit a49ecbcd7b0d5a1cda7d60e03df402dd0ef76ac8 upstream.
    
    After a successful hugetlb page migration by soft offline, the source
    page will either be freed into hugepage_freelists or buddy(over-commit
    page).  If page is in buddy, page_hstate(page) will be NULL.  It will
    hit a NULL pointer dereference in dequeue_hwpoisoned_huge_page().
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000058
      IP: [<ffffffff81163761>] dequeue_hwpoisoned_huge_page+0x131/0x1d0
      PGD c23762067 PUD c24be2067 PMD 0
      Oops: 0000 [#1] SMP
    
    So check PageHuge(page) after call migrate_pages() successfully.
    
    [wujg: backport to 3.10:
     - adjust context]
    
    Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
    Tested-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.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>

commit 350f737ed039d2b36329ddcbcdf78e12c6d8c758
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Mon Jan 6 17:16:01 2014 -0500

    GFS2: Increase i_writecount during gfs2_setattr_chown
    
    commit 62e96cf81988101fe9e086b2877307b6adda5197 upstream.
    
    This patch calls get_write_access in function gfs2_setattr_chown,
    which merely increases inode->i_writecount for the duration of the
    function. That will ensure that any file closes won't delete the
    inode's multi-block reservation while the function is running.
    It also ensures that a multi-block reservation exists when needed
    for quota change operations during the chown.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6826621350ecf4ec5f3508aa9e853e60e766e221
Author: Robert Richter <rric@kernel.org>
Date:   Wed Jan 15 15:57:29 2014 +0100

    perf/x86/amd/ibs: Fix waking up from S3 for AMD family 10h
    
    commit bee09ed91cacdbffdbcd3b05de8409c77ec9fcd6 upstream.
    
    On AMD family 10h we see following error messages while waking up from
    S3 for all non-boot CPUs leading to a failed IBS initialization:
    
     Enabling non-boot CPUs ...
     smpboot: Booting Node 0 Processor 1 APIC 0x1
     [Firmware Bug]: cpu 1, try to use APIC500 (LVT offset 0) for vector 0x400, but the register is already in use for vector 0xf9 on another cpu
     perf: IBS APIC setup failed on cpu #1
     process: Switch to broadcast mode on CPU1
     CPU1 is up
     ...
     ACPI: Waking up from system sleep state S3
    
    Reason for this is that during suspend the LVT offset for the IBS
    vector gets lost and needs to be reinialized while resuming.
    
    The offset is read from the IBSCTL msr. On family 10h the offset needs
    to be 1 as offset 0 is used for the MCE threshold interrupt, but
    firmware assings it for IBS to 0 too. The kernel needs to reprogram
    the vector. The msr is a readonly node msr, but a new value can be
    written via pci config space access. The reinitialization is
    implemented for family 10h in setup_ibs_ctl() which is forced during
    IBS setup.
    
    This patch fixes IBS setup after waking up from S3 by adding
    resume/supend hooks for the boot cpu which does the offset
    reinitialization.
    
    Marking it as stable to let distros pick up this fix.
    
    Signed-off-by: Robert Richter <rric@kernel.org>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Link: http://lkml.kernel.org/r/1389797849-5565-1-git-send-email-rric.net@gmail.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77dbd11a3788e94c547c9f1329cb7388f825cacb
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Mon Oct 14 18:25:12 2013 -0300

    perf scripting perl: Fix build error on Fedora 12
    
    commit 3b16ff89676d9902dc39976aee3cb0314ee37d93 upstream.
    
    Cast __u64 to u64 to silence this warning on older distros, such as
    Fedora 12:
    
        CC       /tmp/build/perf/util/scripting-engines/trace-event-perl.o
      cc1: warnings being treated as errors
      util/scripting-engines/trace-event-perl.c: In function ‘perl_process_tracepoint’:
      util/scripting-engines/trace-event-perl.c:285: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘__u64’
      make[1]: *** [/tmp/build/perf/util/scripting-engines/trace-event-perl.o] Error 1
      make: *** [install] Error 2
      make: Leaving directory `/home/acme/git/linux/tools/perf'
      [acme@fedora12 linux]$
    
    Reported-by: Waiman Long <Waiman.Long@hp.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
    Cc: Waiman Long <Waiman.Long@hp.com>
    Link: http://lkml.kernel.org/n/tip-nlxofdqcdjfm0w9o6bgq4kqv@git.kernel.org
    Link: http://lkml.kernel.org/r/1381265120-58532-1-git-send-email-Waiman.Long@hp.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Xie XiuQi <xiexiuqi@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36a2e5010fe877bc2f049682d3b9ede4357a3927
Author: Vijaya Kumar K <vijay.kilari@gmail.com>
Date:   Wed Aug 14 13:28:28 2013 +0100

    ARM: 7815/1: kexec: offline non panic CPUs on Kdump panic
    
    commit 4f9b4fb7a2091eec339413a460b1665758401828 upstream.
    
    In case of normal kexec kernel load, all cpu's are offlined
    before calling machine_kexec().But in case crash panic cpus
    are relaxed in machine_crash_nonpanic_core() SMP function
    but not offlined.
    
    When crash kernel is loaded with kexec and on panic trigger
    machine_kexec() checks for number of cpus online.
    If more than one cpu is online machine_kexec() fails to load
    with below error
    
    kexec: error: multiple CPUs still online
    
    In machine_crash_nonpanic_core() SMP function, offline CPU
    before cpu_relax
    
    Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
    Acked-by: Stephen Warren <swarren@wwwdotorg.org>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Cc: l00221744 <sdu.liu@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>