04 Sep, 2013

8 commits

  • it's always root->d_sb

    Signed-off-by: Al Viro

    Al Viro
     
  • ... and BTW, failing copy_to_user() means EFAULT, not EINVAL

    Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Christopher reported a regression where he was unable to unmount a NFS
    filesystem where the root had gone stale. The problem is that
    d_revalidate handles the root of the filesystem differently from other
    dentries, but d_weak_revalidate does not. We could simply fix this by
    making d_weak_revalidate return success on IS_ROOT dentries, but there
    are cases where we do want to revalidate the root of the fs.

    A umount is really a special case. We generally aren't interested in
    anything but the dentry and vfsmount that's attached at that point. If
    the inode turns out to be stale we just don't care since the intent is
    to stop using it anyway.

    Try to handle this situation better by treating umount as a special
    case in the lookup code. Have it resolve the parent using normal
    means, and then do a lookup of the final dentry without revalidating
    it. In most cases, the final lookup will come out of the dcache, but
    the case where there's a trailing symlink or !LAST_NORM entry on the
    end complicates things a bit.

    Cc: Neil Brown
    Reported-by: Christopher T Vogan
    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • The d_prune dentry operation is used to notify filesystem when VFS
    about to prune a hashed dentry from the dcache. There are three
    code paths that prune dentries: shrink_dcache_for_umount_subtree(),
    prune_dcache_sb() and d_prune_aliases(). For the d_prune_aliases()
    case, VFS unhashes the dentry first, then call the d_prune dentry
    operation. This confuses ceph_d_prune() (ceph uses the d_prune
    dentry operation to maintain a flag indicating whether the complete
    contents of a directory are in the dcache, pruning unhashed dentry
    does not affect dir's completeness)

    This patch fixes the issue by calling the d_prune dentry operation
    in d_prune_aliases(), before unhashing the dentry. Also make VFS
    only call the d_prune dentry operation for hashed dentry, to avoid
    calling the d_prune dentry operation twice when dentry is pruned
    by d_prune_aliases().

    Signed-off-by: Yan, Zheng
    Signed-off-by: Al Viro

    Yan, Zheng
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • Signed-off-by: Al Viro

    Al Viro
     

25 Aug, 2013

5 commits


19 Aug, 2013

1 commit


18 Aug, 2013

2 commits


17 Aug, 2013

10 commits

  • Fix this build error:

    In file included from fs/exec.c:61:0:
    arch/s390/include/asm/tlb.h:35:23: error: expected identifier or '(' before 'unsigned'
    arch/s390/include/asm/tlb.h:36:1: warning: no semicolon at end of struct or union [enabled by default]
    arch/s390/include/asm/tlb.h: In function 'tlb_gather_mmu':
    arch/s390/include/asm/tlb.h:57:5: error: 'struct mmu_gather' has no member named 'end'

    Broken due to commit 2b047252d0 ("Fix TLB gather virtual address range
    invalidation corner cases").

    Cc: Greg Kroah-Hartman
    Cc: stable@vger.kernel.org
    Signed-off-by: Guenter Roeck
    [ Oh well. We had build testing for ppc amd um, but no s390 - Linus ]
    Signed-off-by: Linus Torvalds

    Guenter Roeck
     
  • I have taken a different job. I am removing myself as maintainer of
    GRU. Dimitri will continue to maintain the SGI GRU driver, changing the
    XP/XPC/XPNET maintainer to Cliff Whickman, but leaving behind my
    personal email address to answer any questions about the design or
    operation of the XP family of drivers.

    Signed-off-by: Robin Holt
    Signed-off-by: Linus Torvalds

    Robin Holt
     
  • Commit 0713ed0cde76438d05849f1537d3aab46e099475 added
    jbd2_journal_file_inode() call into ext4_block_zero_page_range().
    However that function gets called from truncate path and thus inode
    needn't have jinode attached - that happens in ext4_file_open() but
    the file needn't be ever open since mount. Calling
    jbd2_journal_file_inode() without jinode attached results in the oops.

    We fix the problem by attaching jinode to inode also in ext4_truncate()
    and ext4_punch_hole() when we are going to zero out partial blocks.

    Reported-by: majianpeng
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • Pull ARM fixes from Russell King:
    "The usual collection of random fixes. Also some further fixes to the
    last set of security fixes, and some more from Will (which you may
    already have in a slightly different form)"

    * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: 7807/1: kexec: validate CPU hotplug support
    ARM: 7812/1: rwlocks: retry trylock operation if strex fails on free lock
    ARM: 7811/1: locks: use early clobber in arch_spin_trylock
    ARM: 7810/1: perf: Fix array out of bounds access in armpmu_map_hw_event()
    ARM: 7809/1: perf: fix event validation for software group leaders
    ARM: Fix FIQ code on VIVT CPUs
    ARM: Fix !kuser helpers case
    ARM: Fix the world famous typo with is_gate_vma()

    Linus Torvalds
     
  • Pull m68k fixes from Geert Uytterhoeven:
    "These are two critical fixes, needed by distro kernels, and thus also
    destined for stable:

    - The do_div() commit fixes a crash in mounting btrfs volumes, which
    was a regression from 3.2,

    - The ARAnyM fix allows to have NatFeat drivers as loadable modules,
    which is needed for initrds"

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k: Truncate base in do_div()
    m68k/atari: ARAnyM - Fix NatFeat module support

    Linus Torvalds
     
  • Pull clock controller fixes from Michael Turquette:
    "Two small fixes for the Zynq clock controller introduced in 3.11-rc1
    and another Exynos clock patch which fixes a regression that prevents
    the video pipeline from functioning on that platform"

    * tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux:
    clk: exynos4: Add CLK_GET_RATE_NOCACHE flag for the Exynos4x12 ISP clocks
    clk/zynq/clkc: Add CLK_SET_RATE_PARENT flag to ethernet muxes
    clk/zynq/clkc: Add dedicated spinlock for the SWDT

    Linus Torvalds
     
  • Pull power management fix from Rafael Wysocki:
    "The removal of delayed_work_pending() checks from kernel/power/qos.c
    done in 3.9 introduced a deadlock in pm_qos_work_fn().

    Fix from Stephen Boyd"

    * tag 'pm-3.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PM / QoS: Fix workqueue deadlock when using pm_qos_update_request_timeout()

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "This batch contains a few USB audio fixes, a couple of HD-audio
    quirks, various small ASoC driver fixes in addition to an ASoC core
    fix that may lead to memory corruption.

    Unfortunately slightly more volume than the previous pull request, but
    all are reasonable regression fixes"

    * tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Add a fixup for Gateway LT27
    ASoC: tegra: fix Tegra30 I2S capture parameter setup
    ALSA: usb-audio: Fix invalid volume resolution for Logitech HD Webcam C525
    ALSA: hda - Fix missing mute controls for CX5051
    ALSA: usb-audio: fix automatic Roland/Yamaha MIDI detection
    ALSA: 6fire: make buffers DMA-able (midi)
    ALSA: 6fire: make buffers DMA-able (pcm)
    ALSA: hda - Add pinfix for LG LW25 laptop
    ASoC: cs42l52: Add new TLV for Beep Volume
    ASoC: cs42l52: Reorder Min/Max and update to SX_TLV for Beep Volume
    ASoC: dapm: Fix empty list check in dapm_new_mux()
    ASoC: sgtl5000: fix buggy 'Capture Attenuate Switch' control
    ASoC: sgtl5000: prevent playback to be muted when terminating concurrent capture

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are some small USB fixes for 3.11-rc6 that have accumulated.

    Nothing huge, a EHCI fix that solves a much-reported audio USB
    problem, some usb-serial driver endian fixes and other minor fixes, a
    wireless USB oops fix, and two new quirks"

    * tag 'usb-3.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    USB: keyspan: fix null-deref at disconnect and release
    USB: mos7720: fix broken control requests
    usb: add two quirky touchscreen
    USB: ti_usb_3410_5052: fix big-endian firmware handling
    USB: adutux: fix big-endian device-type reporting
    USB: usbtmc: fix big-endian probe of Rigol devices
    USB: mos7840: fix big-endian probe
    USB-Serial: Fix error handling of usb_wwan
    wusbcore: fix kernel panic when disconnecting a wireless USB->serial device
    USB: EHCI: accept very late isochronous URBs

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix SKB leak in 8139cp, from Dave Jones.

    2) Fix use of *_PAGES interfaces with mlx5 firmware, from Moshe Lazar.

    3) RCU conversion of macvtap introduced two races, fixes by Eric
    Dumazet

    4) Synchronize statistic flows in bnx2x driver to prevent corruption,
    from Dmitry Kravkov

    5) Undo optimization in IP tunneling, we were using the inner IP header
    in some cases to inherit the IP ID, but that isn't correct in some
    circumstances. From Pravin B Shelar

    6) Use correct struct size when parsing netlink attributes in
    rtnl_bridge_getlink(). From Asbjoern Sloth Toennesen

    7) Length verifications in tun_get_user() are bogus, from Weiping Pan
    and Dan Carpenter

    8) Fix bad merge resolution during 3.11 networking development in
    openvswitch, albeit a harmless one which added some unreachable
    code. From Jesse Gross

    9) Wrong size used in flexible array allocation in openvswitch, from
    Pravin B Shelar

    10) Clear out firmware capability flags the be2net driver isn't ready to
    handle yet, from Sarveshwar Bandi

    11) Revert DMA mapping error checking addition to cxgb3 driver, it's
    buggy. From Alexey Kardashevskiy

    12) Fix regression in packet scheduler rate limiting when working with a
    link layer of ATM. From Jesper Dangaard Brouer

    13) Fix several errors in TCP Cubic congestion control, in particular
    overflow errors in timestamp calculations. From Eric Dumazet and
    Van Jacobson

    14) In ipv6 routing lookups, we need to backtrack if subtree traversal
    don't result in a match. From Hannes Frederic Sowa

    15) ipgre_header() returns incorrect packet offset. Fix from Timo Teräs

    16) Get "low latency" out of the new MIB counter names. From Eliezer
    Tamir

    17) State check in ndo_dflt_fdb_del() is inverted, from Sridhar
    Samudrala

    18) Handle TCP Fast Open properly in netfilter conntrack, from Yuchung
    Cheng

    19) Wrong memcpy length in pcan_usb driver, from Stephane Grosjean

    20) Fix dealock in TIPC, from Wang Weidong and Ding Tianhong

    21) call_rcu() call to destroy SCTP transport is done too early and
    might result in an oops. From Daniel Borkmann

    22) Fix races in genetlink family dumps, from Johannes Berg

    23) Flags passed into macvlan by the user need to be validated properly,
    from Michael S Tsirkin

    24) Fix skge build on 32-bit, from Stephen Hemminger

    25) Handle malformed TCP headers properly in xt_TCPMSS, from Pablo Neira
    Ayuso

    26) Fix handling of stacked vlans in vlan_dev_real_dev(), from Nikolay
    Aleksandrov

    27) Eliminate MTU calculation overflows in esp{4,6}, from Daniel
    Borkmann

    28) neigh_parms need to be setup before calling the ->ndo_neigh_setup()
    method. From Veaceslav Falico

    29) Kill out-of-bounds prefetch in fib_trie, from Eric Dumazet

    30) Don't dereference MLD query message if the length isn't value in the
    bridge multicast code, from Linus Lüssing

    31) Fix VXLAN IGMP join regression due to an inverted check, from Cong
    Wang

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (70 commits)
    net/mlx5_core: Support MANAGE_PAGES and QUERY_PAGES firmware command changes
    tun: signedness bug in tun_get_user()
    qlcnic: Fix diagnostic interrupt test for 83xx adapters
    qlcnic: Fix beacon state return status handling
    qlcnic: Fix set driver version command
    net: tg3: fix NULL pointer dereference in tg3_io_error_detected and tg3_io_slot_reset
    net_sched: restore "linklayer atm" handling
    drivers/net/ethernet/via/via-velocity.c: update napi implementation
    Revert "cxgb3: Check and handle the dma mapping errors"
    be2net: Clear any capability flags that driver is not interested in.
    openvswitch: Reset tunnel key between input and output.
    openvswitch: Use correct type while allocating flex array.
    openvswitch: Fix bad merge resolution.
    tun: compare with 0 instead of total_len
    rtnetlink: rtnl_bridge_getlink: Call nlmsg_find_attr() with ifinfomsg header
    ethernet/arc/arc_emac - fix NAPI "work > weight" warning
    ip_tunnel: Do not use inner ip-header-id for tunnel ip-header-id.
    bnx2x: prevent crash in shutdown flow with CNIC
    bnx2x: fix PTE write access error
    bnx2x: fix memory leak in VF
    ...

    Linus Torvalds
     

16 Aug, 2013

9 commits

  • Ben Tebulin reported:

    "Since v3.7.2 on two independent machines a very specific Git
    repository fails in 9/10 cases on git-fsck due to an SHA1/memory
    failures. This only occurs on a very specific repository and can be
    reproduced stably on two independent laptops. Git mailing list ran
    out of ideas and for me this looks like some very exotic kernel issue"

    and bisected the failure to the backport of commit 53a59fc67f97 ("mm:
    limit mmu_gather batching to fix soft lockups on !CONFIG_PREEMPT").

    That commit itself is not actually buggy, but what it does is to make it
    much more likely to hit the partial TLB invalidation case, since it
    introduces a new case in tlb_next_batch() that previously only ever
    happened when running out of memory.

    The real bug is that the TLB gather virtual memory range setup is subtly
    buggered. It was introduced in commit 597e1c3580b7 ("mm/mmu_gather:
    enable tlb flush range in generic mmu_gather"), and the range handling
    was already fixed at least once in commit e6c495a96ce0 ("mm: fix the TLB
    range flushed when __tlb_remove_page() runs out of slots"), but that fix
    was not complete.

    The problem with the TLB gather virtual address range is that it isn't
    set up by the initial tlb_gather_mmu() initialization (which didn't get
    the TLB range information), but it is set up ad-hoc later by the
    functions that actually flush the TLB. And so any such case that forgot
    to update the TLB range entries would potentially miss TLB invalidates.

    Rather than try to figure out exactly which particular ad-hoc range
    setup was missing (I personally suspect it's the hugetlb case in
    zap_huge_pmd(), which didn't have the same logic as zap_pte_range()
    did), this patch just gets rid of the problem at the source: make the
    TLB range information available to tlb_gather_mmu(), and initialize it
    when initializing all the other tlb gather fields.

    This makes the patch larger, but conceptually much simpler. And the end
    result is much more understandable; even if you want to play games with
    partial ranges when invalidating the TLB contents in chunks, now the
    range information is always there, and anybody who doesn't want to
    bother with it won't introduce subtle bugs.

    Ben verified that this fixes his problem.

    Reported-bisected-and-tested-by: Ben Tebulin
    Build-testing-by: Stephen Rothwell
    Build-testing-by: Richard Weinberger
    Reviewed-by: Michal Hocko
    Acked-by: Peter Zijlstra
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Gateway LT27 needs a fixup for the inverted digital mic.

    Reported-by: "Nathanael D. Noblet"
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • In the previous QUERY_PAGES command version we used one command to get the
    required amount of boot, init and post init pages. The new version uses the
    op_mod field to specify whether the query is for the required amount of boot,
    init or post init pages. In addition the output field size for the required
    amount of pages increased from 16 to 32 bits.

    In MANAGE_PAGES command the input_num_entries and output_num_entries fields
    sizes changed from 16 to 32 bits and the PAS tables offset changed to 0x10.

    In the pages request event the num_pages field also changed to 32 bits.

    In the HCA-capabilities-layout the size and location of max_qp_mcg field has
    been changed to support 24 bits.

    This patch isn't compatible with firmware versions < 5; however, it turns out that the
    first GA firmware we will publish will not support previous versions so this should be OK.

    Signed-off-by: Moshe Lazer
    Signed-off-by: Eli Cohen
    Signed-off-by: David S. Miller

    Moshe Lazer
     
  • The recent fix d9bf5f1309 "tun: compare with 0 instead of total_len" is
    not totally correct. Because "len" and "sizeof()" are size_t type, that
    means they are never less than zero.

    Signed-off-by: Dan Carpenter
    Acked-by: Michael S. Tsirkin
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • o Do not allow interrupt test when adapter is resetting.

    Signed-off-by: Manish Chopra
    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: David S. Miller

    Manish Chopra
     
  • o Driver was misinterpreting the return status for beacon
    state query leading to incorrect interpretation of beacon
    state and logging an error message for successful status.
    Fixed the driver to properly interpret the return status.

    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: David S. Miller

    Sucheta Chakraborty
     
  • Driver was issuing set driver version command through all
    functions in the adapter. Fix the driver to issue set driver
    version once per adapter, through function 0.

    Signed-off-by: Himanshu Madhani
    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: David S. Miller

    Himanshu Madhani
     
  • Commit d8af4dfd8 ("net/tg3: Fix kernel crash") introduced a possible
    NULL pointer dereference in tg3 driver when !netdev || !netif_running(netdev)
    condition is met and netdev is NULL. Then, the jump to the 'done' label
    calls dev_close() with a netdevice that is NULL. Therefore, only call
    dev_close() when we have a netdevice, but one that is not running.

    [ Add the same checks in tg3_io_slot_reset() per Gavin Shan - by Nithin
    Nayak Sujir ]

    Reported-by: Dave Jones
    Signed-off-by: Daniel Borkmann
    Cc: Gavin Shan
    Cc: Michael Chan
    Signed-off-by: Nithin Nayak Sujir
    Signed-off-by: Nithin Nayak Sujir
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • …nie/sound into for-linus

    ASoC: Fixes for v3.11

    A few driver specific fixes here plus one core fix for a memory
    corruption issue in DAPM initialisation which could lead to crashes.

    Takashi Iwai
     

15 Aug, 2013

5 commits