06 Oct, 2014

1 commit

  • Pull SCSI fixes from James Bottomley:
    "This is a set of two small fixes, both to code which went in during
    the merge window: cxgb4i has a scheduling in atomic bug in its new
    ipv6 code and uas fails to work properly with the new scsi-mq code"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    [SCSI] uas: disable use of blk-mq I/O path
    [SCSI] cxgb4i: avoid holding mutex in interrupt context

    Linus Torvalds
     

05 Oct, 2014

1 commit


04 Oct, 2014

5 commits

  • commit 03b8c7b623c80af264c4c8d6111e5c6289933666 ("futex: Allow
    architectures to skip futex_atomic_cmpxchg_inatomic() test") added the
    HAVE_FUTEX_CMPXCHG symbol right below FUTEX. This placed it right in
    the middle of the options for the EXPERT menu. However,
    HAVE_FUTEX_CMPXCHG does not depend on EXPERT or FUTEX, so Kconfig stops
    placing items in the EXPERT menu, and displays the remaining several
    EXPERT items (starting with EPOLL) directly in the General Setup menu.

    Since both users of HAVE_FUTEX_CMPXCHG only select it "if FUTEX", make
    HAVE_FUTEX_CMPXCHG itself depend on FUTEX. With this change, the
    subsequent items display as part of the EXPERT menu again; the EMBEDDED
    menu now appears as the next top-level item in the General Setup menu,
    which makes General Setup much shorter and more usable.

    Signed-off-by: Josh Triplett
    Acked-by: Randy Dunlap
    Cc: stable

    Josh Triplett
     
  • The buffers sized by CONFIG_LOG_BUF_SHIFT and
    CONFIG_LOG_CPU_MAX_BUF_SHIFT do not exist if CONFIG_PRINTK=n, so don't
    ask about their size at all.

    Signed-off-by: Josh Triplett
    Acked-by: Randy Dunlap
    Cc: stable

    Josh Triplett
     
  • Pull i2c fixes from Wolfram Sang:
    "Two i2c driver bugfixes"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: qup: Fix order of runtime pm initialization
    i2c: rk3x: fix 0 length write transfers

    Linus Torvalds
     
  • …it/rostedt/linux-trace

    Pull trace ring buffer iterator fix from Steven Rostedt:
    "While testing some new changes for 3.18, I kept hitting a bug every so
    often in the ring buffer. At first I thought it had to do with some
    of the changes I was working on, but then testing something else I
    realized that the bug was in 3.17 itself. I ran several bisects as
    the bug was not very reproducible, and finally came up with the commit
    that I could reproduce easily within a few minutes, and without the
    change I could run the tests over an hour without issue. The change
    fit the bug and I figured out a fix. That bad commit was:

    Commit 651e22f2701b "ring-buffer: Always reset iterator to reader page"

    This commit fixed a bug, but in the process created another one. It
    used the wrong value as the cached value that is used to see if things
    changed while an iterator was in use. This made it look like a change
    always happened, and could cause the iterator to go into an infinite
    loop"

    * tag 'trace-fixes-v3.17-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ring-buffer: Fix infinite spin in reading buffer

    Linus Torvalds
     
  • Pull cifs/smb3 fixes from Steve French:
    "Fix for CIFS/SMB3 oops on reconnect during readpages (3.17 regression)
    and for incorrectly closing file handle in symlink error cases"

    * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
    CIFS: Fix readpages retrying on reconnects
    Fix problem recognizing symlinks

    Linus Torvalds
     

03 Oct, 2014

23 commits

  • Pull raid5 discard fix from Neil Brown:
    "One fix for raid5 discard issue"

    * tag 'md/3.17-final-fix' of git://neil.brown.name/md:
    md/raid5: disable 'DISCARD' by default due to safety concerns.

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Nothing too major or scary.

    One i915 regression fix, nouveau has a tmds regression fix, along with
    a regression fix for the runtime pm code for optimus laptops not
    restoring the display hw correctly"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/nouveau: make sure display hardware is reinitialised on runtime resume
    drm/nouveau: punt fbcon resume out to a workqueue
    drm/nouveau: fix regression on original nv50 board
    drm/nv50/disp: fix dpms regression on certain boards
    drm/i915: Flush the PTEs after updating them before suspend

    Linus Torvalds
     
  • The uas driver uses the block layer tag for USB3 stream IDs. With
    blk-mq we can get larger tag numbers that the queue depth, which breaks
    this assumption. A fix is under way for 3.18, but sits on top of
    large changes so can't easily be backported. Set the disable_blk_mq
    path so that a uas device can't easily crash the system when using
    blk-mq for SCSI.

    Signed-off-by: Christoph Hellwig
    Acked-by: Hans de Goede
    Signed-off-by: James Bottomley

    Christoph Hellwig
     
  • Pull ACPI and power management fixes from Rafael Wysocki:
    "These are three regression fixes (cpufreq core, pcc-cpufreq, i915 /
    ACPI) and one trivial fix for a callback return value mismatch in the
    cpufreq integrator driver.

    Specifics:

    - A recent cpufreq core fix went too far and introduced a regression
    in the system suspend code path. Fix from Viresh Kumar.

    - An ACPI-related commit in the i915 driver that fixed backlight
    problems for some Thinkpads inadvertently broke a Dell machine (in
    3.16). Fix from Aaron Lu.

    - The pcc-cpufreq driver was broken during the 3.15 cycle by a commit
    that put wait_event() under a spinlock by mistake. Fix that
    (Rafael J Wysocki).

    - The return value type of integrator_cpufreq_remove() is void, but
    should be int. Fix from Arnd Bergmann"

    * tag 'pm+acpi-3.17-final' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: update 'cpufreq_suspended' after stopping governors
    ACPI / i915: Update the condition to ignore firmware backlight change request
    cpufreq: integrator: fix integrator_cpufreq_remove return type
    cpufreq: pcc-cpufreq: Fix wait_event() under spinlock

    Linus Torvalds
     
  • final regression fix for 3.17.

    * tag 'drm-intel-fixes-2014-10-02' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: Flush the PTEs after updating them before suspend

    Dave Airlie
     
  • The runtime pm calls need to be done before populating the children via the
    i2c_add_adapter call. If this is not done, a child can run into issues trying
    to do i2c read/writes due to the pm_runtime_sync failing.

    Signed-off-by: Andy Gross
    Reviewed-by: Felipe Balbi
    Acked-by: Bjorn Andersson
    Signed-off-by: Wolfram Sang
    Cc: stable@kernel.org

    Andy Gross
     
  • i2cdetect -q was broken (everything was a false positive, and no transfers were
    actually being sent over i2c). The way it works is by sending a 0 length write
    request and checking for NACK. This patch fixes the 0 length writes and actually
    sends them.

    Reported-by: Doug Anderson
    Signed-off-by: Alexandru M Stan
    Tested-by: Doug Anderson
    Tested-by: Max Schwarz
    Signed-off-by: Wolfram Sang
    Cc: stable@kernel.org

    Alexandru M Stan
     
  • * pm-cpufreq:
    cpufreq: update 'cpufreq_suspended' after stopping governors
    cpufreq: integrator: fix integrator_cpufreq_remove return type
    cpufreq: pcc-cpufreq: Fix wait_event() under spinlock

    * acpi-video:
    ACPI / i915: Update the condition to ignore firmware backlight change request

    Rafael J. Wysocki
     
  • Merge fixes from Andrew Morton:
    "5 fixes"

    * emailed patches from Andrew Morton :
    mm: page_alloc: fix zone allocation fairness on UP
    perf: fix perf bug in fork()
    MAINTAINERS: change git URL for mpc5xxx tree
    mm: memcontrol: do not iterate uninitialized memcgs
    ocfs2/dlm: should put mle when goto kill in dlm_assert_master_handler

    Linus Torvalds
     
  • The zone allocation batches can easily underflow due to higher-order
    allocations or spills to remote nodes. On SMP that's fine, because
    underflows are expected from concurrency and dealt with by returning 0.
    But on UP, zone_page_state will just return a wrapped unsigned long,
    which will get past the
    Reported-by: Leon Romanovsky
    Signed-off-by: Johannes Weiner
    Acked-by: Mel Gorman
    Cc: [3.12+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Oleg noticed that a cleanup by Sylvain actually uncovered a bug; by
    calling perf_event_free_task() when failing sched_fork() we will not yet
    have done the memset() on ->perf_event_ctxp[] and will therefore try and
    'free' the inherited contexts, which are still in use by the parent
    process. This is bad..

    Suggested-by: Oleg Nesterov
    Reported-by: Oleg Nesterov
    Reported-by: Sylvain 'ythier' Hitier
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Ingo Molnar
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • The repository for mpc5xxx has been moved, update git URL to new
    location.

    Signed-off-by: Anatolij Gustschin
    Cc: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anatolij Gustschin
     
  • The cgroup iterators yield css objects that have not yet gone through
    css_online(), but they are not complete memcgs at this point and so the
    memcg iterators should not return them. Commit d8ad30559715 ("mm/memcg:
    iteration skip memcgs not yet fully initialized") set out to implement
    exactly this, but it uses CSS_ONLINE, a cgroup-internal flag that does
    not meet the ordering requirements for memcg, and so the iterator may
    skip over initialized groups, or return partially initialized memcgs.

    The cgroup core can not reasonably provide a clear answer on whether the
    object around the css has been fully initialized, as that depends on
    controller-specific locking and lifetime rules. Thus, introduce a
    memcg-specific flag that is set after the memcg has been initialized in
    css_online(), and read before mem_cgroup_iter() callers access the memcg
    members.

    Signed-off-by: Johannes Weiner
    Cc: Tejun Heo
    Acked-by: Michal Hocko
    Cc: Hugh Dickins
    Cc: Peter Zijlstra
    Cc: [3.12+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • In dlm_assert_master_handler, the mle is get in dlm_find_mle, should be
    put when goto kill, otherwise, this mle will never be released.

    Signed-off-by: Alex Chen
    Reviewed-by: Joseph Qi
    Reviewed-by: joyce.xue
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    alex chen
     
  • Pull media fix from Mauro Carvalho Chehab:
    "One last time regression fix at em28xx. The removal of .reset_resume
    broke suspend/resume on this driver for some devices.

    There are more fixes to be done for em28xx suspend/resume to be better
    handled, but I'm opting to let them to stay for a while at the media
    devel tree, in order to get more tests. So, for now, let's just
    revert this patch"

    * tag 'media/v3.17-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    Revert "[media] media: em28xx - remove reset_resume interface"

    Linus Torvalds
     
  • Commit 651e22f2701b "ring-buffer: Always reset iterator to reader page"
    fixed one bug but in the process caused another one. The reset is to
    update the header page, but that fix also changed the way the cached
    reads were updated. The cache reads are used to test if an iterator
    needs to be updated or not.

    A ring buffer iterator, when created, disables writes to the ring buffer
    but does not stop other readers or consuming reads from happening.
    Although all readers are synchronized via a lock, they are only
    synchronized when in the ring buffer functions. Those functions may
    be called by any number of readers. The iterator continues down when
    its not interrupted by a consuming reader. If a consuming read
    occurs, the iterator starts from the beginning of the buffer.

    The way the iterator sees that a consuming read has happened since
    its last read is by checking the reader "cache". The cache holds the
    last counts of the read and the reader page itself.

    Commit 651e22f2701b changed what was saved by the cache_read when
    the rb_iter_reset() occurred, making the iterator never match the cache.
    Then if the iterator calls rb_iter_reset(), it will go into an
    infinite loop by checking if the cache doesn't match, doing the reset
    and retrying, just to see that the cache still doesn't match! Which
    should never happen as the reset is suppose to set the cache to the
    current value and there's locks that keep a consuming reader from
    having access to the data.

    Fixes: 651e22f2701b "ring-buffer: Always reset iterator to reader page"
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Pull parisc fix from Helge Deller:
    "One late but trivial patch to fix the serial console on parisc
    machines which got broken during the 3.17 release cycle"

    * 'parisc-3.17-8' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Fix serial console for machines with serial port on superio chip

    Linus Torvalds
     
  • If we got a reconnect error from async readv we re-add pages back
    to page_list and continue loop. That is wrong because these pages
    have been already added to the pagecache but page_list has pages that
    have not been added to the pagecache yet. This ends up with a general
    protection fault in put_pages after readpages. Fix it by not retrying
    the read of these pages and falling back to readpage instead.

    Fixes debian bug 762306

    Signed-off-by: Pavel Shilovsky
    Signed-off-by: Steve French
    Tested-by: Arthur Marsh

    Pavel Shilovsky
     
  • Changeset eb85d94bd introduced a problem where if a cifs open
    fails during query info of a file we
    will still try to close the file (happens with certain types
    of reparse points) even though the file handle is not valid.

    In addition for SMB2/SMB3 we were not mapping the return code returned
    by Windows when trying to open a file (like a Windows NFS symlink)
    which is a reparse point.

    Signed-off-by: Steve French
    Reviewed-by: Pavel Shilovsky
    CC: stable #v3.13+

    Steve French
     
  • Merge NUMA balancing related fixlets from Mel Gorman:
    "There were a few minor changes so am resending just the two patches
    that are mostly likely to affect the bug Dave and Sasha saw and marked
    them for stable.

    I'm less confident it will address Sasha's problem because while I
    have not kept up to date, I believe he's also seeing memory corruption
    issues in next from an unknown source. Still, it would be nice to see
    how they affect trinity testing.

    I'll send the MPOL_MF_LAZY patch separately because it's not urgent"

    * emailed patches from Mel Gorman :
    mm: numa: Do not mark PTEs pte_numa when splitting huge pages
    mm: migrate: Close race between migration completion and mprotect

    Linus Torvalds
     
  • This patch reverts 1ba6e0b50b ("mm: numa: split_huge_page: transfer the
    NUMA type from the pmd to the pte"). If a huge page is being split due
    a protection change and the tail will be in a PROT_NONE vma then NUMA
    hinting PTEs are temporarily created in the protected VMA.

    VM_RW|VM_PROTNONE
    |-----------------|
    ^
    split here

    In the specific case above, it should get fixed up by change_pte_range()
    but there is a window of opportunity for weirdness to happen. Similarly,
    if a huge page is shrunk and split during a protection update but before
    pmd_numa is cleared then a pte_numa can be left behind.

    Instead of adding complexity trying to deal with the case, this patch
    will not mark PTEs NUMA when splitting a huge page. NUMA hinting faults
    will not be triggered which is marginal in comparison to the complexity
    in dealing with the corner cases during THP split.

    Cc: stable@vger.kernel.org
    Signed-off-by: Mel Gorman
    Acked-by: Rik van Riel
    Acked-by: Kirill A. Shutemov
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • A migration entry is marked as write if pte_write was true at the time the
    entry was created. The VMA protections are not double checked when migration
    entries are being removed as mprotect marks write-migration-entries as
    read. It means that potentially we take a spurious fault to mark PTEs write
    again but it's straight-forward. However, there is a race between write
    migrations being marked read and migrations finishing. This potentially
    allows a PTE to be write that should have been read. Close this race by
    double checking the VMA permissions using maybe_mkwrite when migration
    completes.

    [torvalds@linux-foundation.org: use maybe_mkwrite]
    Cc: stable@vger.kernel.org
    Signed-off-by: Mel Gorman
    Acked-by: Rik van Riel
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Pull sound fixes from Takashi Iwai:
    "Just a few pending bits of random fixes in ASoC. Nothing exciting,
    but would be nice to be merged in 3.17, as most of them are also for
    stable kernels"

    * tag 'sound-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ASoC: ssm2602: do not hardcode type to SSM2602
    ASoC: core: fix possible ZERO_SIZE_PTR pointer dereferencing error.
    MAINTAINERS: add atmel audio alsa driver maintainer entry
    ASoC: rt286: Fix sync function
    ASoC: rt286: Correct default value
    ASoC: soc-compress: fix double unlock of fe card mutex
    ASoC: fsl_ssi: fix kernel panic in probe function

    Linus Torvalds
     

02 Oct, 2014

10 commits

  • A few regression fixes, the runpm ones dating back to 3.15. Also a fairly severe TMDS regression that effected a lot of GF8/9/GT2xx users.

    * 'linux-3.17' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
    drm/nouveau: make sure display hardware is reinitialised on runtime resume
    drm/nouveau: punt fbcon resume out to a workqueue
    drm/nouveau: fix regression on original nv50 board
    drm/nv50/disp: fix dpms regression on certain boards

    Dave Airlie
     
  • Pull networking fixes from David Miller:

    1) Don't halt the firmware in r8152 driver, from Hayes Wang.

    2) Handle full sized 802.1ad frames in bnx2 and tg3 drivers properly,
    from Vlad Yasevich.

    3) Don't sleep while holding tx_clean_lock in netxen driver, fix from
    Manish Chopra.

    4) Certain kinds of ipv6 routes can end up endlessly failing the route
    validation test, causing it to be re-looked up over and over again.
    This particularly kills input route caching in TCP sockets. Fix
    from Hannes Frederic Sowa.

    5) netvsc_start_xmit() has a use-after-free access to skb->len, fix
    from K Y Srinivasan.

    6) Fix matching of inverted containers in ematch module, from Ignacy
    Gawędzki.

    7) Aggregation of GRO frames via SKB ->frag_list for linear skbs isn't
    handled properly, regression fix from Eric Dumazet.

    8) Don't test return value of ipv4_neigh_lookup(), which returns an
    error pointer, against NULL. From WANG Cong.

    9) Fix an old regression where we mistakenly allow a double add of the
    same tunnel. Fixes from Steffen Klassert.

    10) macvtap device delete and open can run in parallel and corrupt lists
    etc., fix from Vlad Yasevich.

    11) Fix build error with IPV6=m NETFILTER_XT_TARGET_TPROXY=y, from Pablo
    Neira Ayuso.

    12) rhashtable_destroy() triggers lockdep splats, fix also from Pablo.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (32 commits)
    bna: Update Maintainer Email
    r8152: disable power cut for RTL8153
    r8152: remove clearing bp
    bnx2: Correctly receive full sized 802.1ad fragmes
    tg3: Allow for recieve of full-size 8021AD frames
    r8152: fix setting RTL8152_UNPLUG
    netxen: Fix bug in Tx completion path.
    netxen: Fix BUG "sleeping function called from invalid context"
    ipv6: remove rt6i_genid
    hyperv: Fix a bug in netvsc_start_xmit()
    net: stmmac: fix stmmac_pci_probe failed when CONFIG_HAVE_CLK is selected
    ematch: Fix matching of inverted containers.
    gro: fix aggregation for skb using frag_list
    neigh: check error pointer instead of NULL for ipv4_neigh_lookup()
    ip6_gre: Return an error when adding an existing tunnel.
    ip6_vti: Return an error when adding an existing tunnel.
    ip6_tunnel: Return an error when adding an existing tunnel.
    ip6gre: add a rtnl link alias for ip6gretap
    net/mlx4_core: Allow not to specify probe_vf in SRIOV IB mode
    r8152: fix the carrier off when autoresuming
    ...

    Linus Torvalds
     
  • It has come to my attention (thanks Martin) that 'discard_zeroes_data'
    is only a hint. Some devices in some cases don't do what it
    says on the label.

    The use of DISCARD in RAID5 depends on reads from discarded regions
    being predictably zero. If a write to a previously discarded region
    performs a read-modify-write cycle it assumes that the parity block
    was consistent with the data blocks. If all were zero, this would
    be the case. If some are and some aren't this would not be the case.
    This could lead to data corruption after a device failure when
    data needs to be reconstructed from the parity.

    As we cannot trust 'discard_zeroes_data', ignore it by default
    and so disallow DISCARD on all raid4/5/6 arrays.

    As many devices are trustworthy, and as there are benefits to using
    DISCARD, add a module parameter to over-ride this caution and cause
    DISCARD to work if discard_zeroes_data is set.

    If a site want to enable DISCARD on some arrays but not on others they
    should select DISCARD support at the filesystem level, and set the
    raid456 module parameter.
    raid456.devices_handle_discard_safely=Y

    As this is a data-safety issue, I believe this patch is suitable for
    -stable.
    DISCARD support for RAID456 was added in 3.7

    Cc: Shaohua Li
    Cc: "Martin K. Petersen"
    Cc: Mike Snitzer
    Cc: Heinz Mauelshagen
    Cc: stable@vger.kernel.org (3.7+)
    Acked-by: Martin K. Petersen
    Acked-by: Mike Snitzer
    Fixes: 620125f2bf8ff0c4969b79653b54d7bcc9d40637
    Signed-off-by: NeilBrown

    NeilBrown
     
  • Linus commit 05c63c2ff23a80b654d6c088ac3ba21628db0173 modified the
    runtime suspend/resume paths to skip over display-related tasks to
    avoid locking issues on resume.

    Unfortunately, this resulted in the display hardware being left in
    a partially initialised state, preventing subsequent modesets from
    completing.

    This commit unifies the (many) suspend/resume paths, bringing back
    display (and fbcon) handling in the runtime paths.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • Preparation for some runtime pm fixes. Currently we skip over fbcon
    suspend/resume in the runtime path, which causes issues on resume if
    fbcon tries to write to the framebuffer before the BAR subdev has
    been resumed to restore the BAR1 VM setup.

    As we might be woken up via a sysfs connector, we are unable to call
    fb_set_suspend() in the resume path as it could make its way down to
    a modeset and cause all sorts of locking hilarity.

    To solve this, we'll just delay the fbcon resume to a workqueue.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • Xorg (and any non-DRM client really) doesn't have permission to directly
    touch VRAM on nv50 and up, which the fence code prior to g84 depends on.

    It's less invasive to temporarily grant it premission to do so, as it
    previously did, than it is to rework fencenv50 to use the VM. That
    will come later on.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • Reported in fdo#82527 comment #2.

    Signed-off-by: Ben Skeggs

    Ben Skeggs
     
  • Update the maintainer email for BNA driver.

    Signed-off-by: Rasesh Mody
    Signed-off-by: David S. Miller

    Rasesh Mody
     
  • Hayes Wang says:

    ====================
    r8152: patches about firmware

    The patches fix the issues when the firmware exists.

    For the multiple OS, the firmware may be loaded by the
    driver of the other OS. And the Linux driver has influences
    on it.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The firmware would be clear when the power cut is enabled for
    RTL8153.

    Signed-off-by: Hayes Wang
    Signed-off-by: David S. Miller

    hayeswang