29 Jan, 2017

2 commits

  • Pull NFS client bugfixes from Trond Myklebust:
    "Stable patches:
    - NFSv4.1: Fix a deadlock in layoutget
    - NFSv4 must not bump sequence ids on NFS4ERR_MOVED errors
    - NFSv4 Fix a regression with OPEN EXCLUSIVE4 mode
    - Fix a memory leak when removing the SUNRPC module

    Bugfixes:
    - Fix a reference leak in _pnfs_return_layout"

    * tag 'nfs-for-4.10-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    pNFS: Fix a reference leak in _pnfs_return_layout
    nfs: Fix "Don't increment lock sequence ID after NFS4ERR_MOVED"
    SUNRPC: cleanup ida information when removing sunrpc module
    NFSv4.0: always send mode in SETATTR after EXCLUSIVE4
    nfs: Don't increment lock sequence ID after NFS4ERR_MOVED
    NFSv4.1: Fix a deadlock in layoutget

    Linus Torvalds
     
  • Pull ARC fixes from Vineet Gupta:
    "Hopefully last set of changes for ARC for 4.10:

    - fix for unaligned access emulation corner case

    - fix for udelay loop inline asm regression

    - fix irq affinity finally for AXS103 board [Yuriy]

    - final fixes for setting IO-coherency sanely in SMP"

    * tag 'arc-4.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: [arcompact] handle unaligned access delay slot corner case
    ARCv2: smp-boot: wake_flag polling by non-Masters needs to be uncached
    ARC: smp-boot: Decouple Non masters waiting API from jump to entry point
    ARCv2: MCIP: update the BCR per current changes
    ARC: udelay: fix inline assembler by adding LP_COUNT to clobber list
    ARCv2: MCIP: Deprecate setting of affinity in Device Tree

    Linus Torvalds
     

28 Jan, 2017

4 commits

  • Pull networking fixes from David Miller:

    1) GTP fixes from Andreas Schultz (missing genl module alias, clear IP
    DF on transmit).

    2) Netfilter needs to reflect the fwmark when sending resets, from Pau
    Espin Pedrol.

    3) nftable dump OOPS fix from Liping Zhang.

    4) Fix erroneous setting of VIRTIO_NET_HDR_F_DATA_VALID on transmit,
    from Rolf Neugebauer.

    5) Fix build error of ipt_CLUSTERIP when procfs is disabled, from Arnd
    Bergmann.

    6) Fix regression in handling of NETIF_F_SG in harmonize_features(),
    from Eric Dumazet.

    7) Fix RTNL deadlock wrt. lwtunnel module loading, from David Ahern.

    8) tcp_fastopen_create_child() needs to setup tp->max_window, from
    Alexey Kodanev.

    9) Missing kmemdup() failure check in ipv6 segment routing code, from
    Eric Dumazet.

    10) Don't execute unix_bind() under the bindlock, otherwise we deadlock
    with splice. From WANG Cong.

    11) ip6_tnl_parse_tlv_enc_lim() potentially reallocates the skb buffer,
    therefore callers must reload cached header pointers into that skb.
    Fix from Eric Dumazet.

    12) Fix various bugs in legacy IRQ fallback handling in alx driver, from
    Tobias Regnery.

    13) Do not allow lwtunnel drivers to be unloaded while they are
    referenced by active instances, from Robert Shearman.

    14) Fix truncated PHY LED trigger names, from Geert Uytterhoeven.

    15) Fix a few regressions from virtio_net XDP support, from John
    Fastabend and Jakub Kicinski.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (102 commits)
    ISDN: eicon: silence misleading array-bounds warning
    net: phy: micrel: add support for KSZ8795
    gtp: fix cross netns recv on gtp socket
    gtp: clear DF bit on GTP packet tx
    gtp: add genl family modules alias
    tcp: don't annotate mark on control socket from tcp_v6_send_response()
    ravb: unmap descriptors when freeing rings
    virtio_net: reject XDP programs using header adjustment
    virtio_net: use dev_kfree_skb for small buffer XDP receive
    r8152: check rx after napi is enabled
    r8152: re-schedule napi for tx
    r8152: avoid start_xmit to schedule napi when napi is disabled
    r8152: avoid start_xmit to call napi_schedule during autosuspend
    net: dsa: Bring back device detaching in dsa_slave_suspend()
    net: phy: leds: Fix truncated LED trigger names
    net: phy: leds: Break dependency of phy.h on phy_led_triggers.h
    net: phy: leds: Clear phy_num_led_triggers on failure to avoid crash
    net-next: ethernet: mediatek: change the compatible string
    Documentation: devicetree: change the mediatek ethernet compatible string
    bnxt_en: Fix RTNL lock usage on bnxt_get_port_module_status().
    ...

    Linus Torvalds
     
  • Pull rdma fixes from Doug Ledford:
    "Second round of -rc fixes for 4.10.

    This -rc cycle has been slow for the rdma subsystem. I had already
    sent you the first batch before the Holiday break. After that, we kept
    only getting a few here or there. Up until this week, when I got a
    drop of 13 to one driver (qedr). So, here's the -rc patches I have. I
    currently have none held in reserve, so unless something new comes in,
    this is it until the next merge window opens.

    Summary:

    - series of iw_cxgb4 fixes to make it work with the drain cq API

    - one or two patches each to: srp, iser, cxgb3, vmw_pvrdma, umem,
    rxe, and ipoib

    - one big series (13 patches) for the new qedr driver"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (27 commits)
    RDMA/cma: Fix unknown symbol when CONFIG_IPV6 is not enabled
    IB/rxe: Prevent from completer to operate on non valid QP
    IB/rxe: Fix rxe dev insertion to rxe_dev_list
    IB/umem: Release pid in error and ODP flow
    RDMA/qedr: Dispatch port active event from qedr_add
    RDMA/qedr: Fix and simplify memory leak in PD alloc
    RDMA/qedr: Fix RDMA CM loopback
    RDMA/qedr: Fix formatting
    RDMA/qedr: Mark three functions as static
    RDMA/qedr: Don't reset QP when queues aren't flushed
    RDMA/qedr: Don't spam dmesg if QP is in error state
    RDMA/qedr: Remove CQ spinlock from CM completion handlers
    RDMA/qedr: Return max inline data in QP query result
    RDMA/qedr: Return success when not changing QP state
    RDMA/qedr: Add uapi header qedr-abi.h
    RDMA/qedr: Fix MTU returned from QP query
    RDMA/core: Add the function ib_mtu_int_to_enum
    IB/vmw_pvrdma: Fix incorrect cleanup on pvrdma_pci_probe error path
    IB/vmw_pvrdma: Don't leak info from alloc_ucontext
    IB/cxgb3: fix misspelling in header guard
    ...

    Linus Torvalds
     
  • Pull media fixes from Mauro Carvalho Chehab:

    - fix a regression on tvp5150 causing failures at input selection and
    image glitches

    - CEC was moved out of staging for v4.10. Fix some bugs on it while not
    too late

    - fix a regression on pctv452e caused by VM stack changes

    - fix suspend issued with smiapp

    - fix a regression on cobalt driver

    - fix some warnings and Kconfig issues with some random configs.

    * tag 'media/v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    [media] s5k4ecgx: select CRC32 helper
    [media] dvb: avoid warning in dvb_net
    [media] v4l: tvp5150: Don't override output pinmuxing at stream on/off time
    [media] v4l: tvp5150: Fix comment regarding output pin muxing
    [media] v4l: tvp5150: Reset device at probe time, not in get/set format handlers
    [media] pctv452e: move buffer to heap, no mutex
    [media] media/cobalt: use pci_irq_allocate_vectors
    [media] cec: fix race between configuring and unconfiguring
    [media] cec: move cec_report_phys_addr into cec_config_thread_func
    [media] cec: replace cec_report_features by cec_fill_msg_report_features
    [media] cec: update log_addr[] before finishing configuration
    [media] cec: CEC_MSG_GIVE_FEATURES should abort for CEC version < 2
    [media] cec: when canceling a message, don't overwrite old status info
    [media] cec: fix report_current_latency
    [media] smiapp: Make suspend and resume functions __maybe_unused
    [media] smiapp: Implement power-on and power-off sequences without runtime PM

    Linus Torvalds
     
  • This is adds support for the PHYs in the KSZ8795 5port managed switch.

    It will allow to detect the link between the switch and the soc
    and uses the same read_status functions as the KSZ8873MLL switch.

    Signed-off-by: Sean Nyekjaer
    Signed-off-by: David S. Miller

    Sean Nyekjaer
     

27 Jan, 2017

7 commits

  • Unlike ipv4, this control socket is shared by all cpus so we cannot use
    it as scratchpad area to annotate the mark that we pass to ip6_xmit().

    Add a new parameter to ip6_xmit() to indicate the mark. The SCTP socket
    family caches the flowi6 structure in the sctp_transport structure, so
    we cannot use to carry the mark unless we later on reset it back, which
    I discarded since it looks ugly to me.

    Fixes: bf99b4ded5f8 ("tcp: fix mark propagation with fwmark_reflect enabled")
    Suggested-by: Eric Dumazet
    Signed-off-by: Pablo Neira Ayuso
    Signed-off-by: David S. Miller

    Pablo Neira
     
  • Pull drm fixes from Dave Airlie:
    "This is the main request for rc6, since really the one earlier was the
    rc5 one :-)

    The main thing are the nouveau specific race fixes for the connector
    locking bug we fixed in -next and reverted here as it has quite large
    prereqs. These two fixes should solve the problem at that level and we
    can fix it properly in 4.11

    Otherwise i915 has a bunch of changes, one ABI change for GVT related
    stuff, some VC4 leak fixes, one core fence fix and some AMD changes,
    oh and one ast hang avoidance fix.

    Hoping it calms down around now"

    * tag 'drm-fixes-for-v4.10-rc6-part-two' of git://people.freedesktop.org/~airlied/linux: (25 commits)
    drm/nouveau: Handle fbcon suspend/resume in seperate worker
    drm/nouveau: Don't enabling polling twice on runtime resume
    drm/ast: Fixed system hanged if disable P2A
    Revert "drm/radeon: always apply pci shutdown callbacks"
    drm/i915: reinstate call to trace_i915_vma_bind
    drm/i915: Move atomic state free from out of fence release
    drm/i915: Check for NULL atomic state in intel_crtc_disable_noatomic()
    drm/i915: Fix calculation of rotated x and y offsets for planar formats
    drm/i915: Don't init hpd polling for vlv and chv from runtime_suspend()
    drm/i915: Don't leak edid in intel_crt_detect_ddc()
    drm/i915: Release temporary load-detect state upon switching
    drm/i915: prevent crash with .disable_display parameter
    drm/i915: Avoid drm_atomic_state_put(NULL) in intel_display_resume
    MAINTAINERS: update new mail list for intel gvt driver
    drm/i915/gvt: Fix kmem_cache_create() name
    drm/i915/gvt/kvmgt: mdev ABI is available_instances, not available_instance
    drm/amdgpu: fix unload driver issue for virtual display
    drm/amdgpu: check ring being ready before using
    drm/vc4: Return -EINVAL on the overflow checks failing.
    drm/vc4: Fix an integer overflow in temporary allocation layout.
    ...

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "These fix two regressions introduced recently, one by reverting the
    problematic commit and one by fixing up the behavior in an overlooked
    case.

    Specifics:

    - Revert the recent change that caused suspend-to-idle to be used as
    the default suspend method on systems where it is indicated to be
    efficient by the ACPI tables, as that turned out to be premature
    and introduced suspend regressions on some systems with missing
    power management support in device drivers (Rafael Wysocki).

    - Fix up the intel_pstate driver to take changes of the global limits
    via sysfs correctly when the performance policy is used which has
    been broken by a recent change in it (Srinivas Pandruvada)"

    * tag 'pm-4.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: intel_pstate: Fix sysfs limits enforcement for performance policy
    Revert "PM / sleep / ACPI: Use the ACPI_FADT_LOW_POWER_S0 flag"

    Linus Torvalds
     
  • Single fence fix.
    * tag 'drm-misc-fixes-2017-01-23' of git://anongit.freedesktop.org/git/drm-misc:
    drm/fence: fix memory overwrite when setting out_fence fd

    Dave Airlie
     
  • * pm-sleep:
    Revert "PM / sleep / ACPI: Use the ACPI_FADT_LOW_POWER_S0 flag"

    * pm-cpufreq:
    cpufreq: intel_pstate: Fix sysfs limits enforcement for performance policy

    Rafael J. Wysocki
     
  • Pablo Neira Ayuso says:

    ====================
    Netfilter fixes for net

    The following patchset contains a large batch with Netfilter fixes for
    your net tree, they are:

    1) Two patches to solve conntrack garbage collector cpu hogging, one to
    remove GC_MAX_EVICTS and another to look at the ratio (scanned entries
    vs. evicted entries) to make a decision on whether to reduce or not
    the scanning interval. From Florian Westphal.

    2) Two patches to fix incorrect set element counting if NLM_F_EXCL is
    is not set. Moreover, don't decrenent set->nelems from abort patch
    if -ENFILE which leaks a spare slot in the set. This includes a
    patch to deconstify the set walk callback to update set->ndeact.

    3) Two fixes for the fwmark_reflect sysctl feature: Propagate mark to
    reply packets both from nf_reject and local stack, from Pau Espin Pedrol.

    4) Fix incorrect handling of loopback traffic in rpfilter and nf_tables
    fib expression, from Liping Zhang.

    5) Fix oops on stateful objects netlink dump, when no filter is specified.
    Also from Liping Zhang.

    6) Fix a build error if proc is not available in ipt_CLUSTERIP, related
    to fix that was applied in the previous batch for net. From Arnd Bergmann.

    7) Fix lack of string validation in table, chain, set and stateful
    object names in nf_tables, from Liping Zhang. Moreover, restrict
    maximum log prefix length to 127 bytes, otherwise explicitly bail
    out.

    8) Two patches to fix spelling and typos in nf_tables uapi header file
    and Kconfig, patches from Alexander Alemayhu and William Breathitt Gray.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull drm revert from Dave Airlie:
    "Revert one patch missing some prereqs.

    One of the connector fixes was missing some prereqs, we have an
    alternate driver fix that should work that I'll send tomorrow.

    Today is a holiday here so quickly smashing this out"

    Daniel Vetter explains:
    "I pushed a locking change to fix a nouveau rpm issue to -fixes that
    needed the connector_list rework. And that's only in -next, but I
    missed that. Dave has the revert in a pull, and he'll follow-up with
    the hack nouveau patch for 4.10, and then we'll reapply the proper fix
    again for -next and revert the hacks. A bit a mess, but should be
    sorted soon"

    * tag 'drm-fixes-for-v4.10-rc6-revert-one' of git://people.freedesktop.org/~airlied/linux:
    Revert "drm/probe-helpers: Drop locking from poll_enable"

    Linus Torvalds
     

26 Jan, 2017

3 commits

  • This reverts commit 3846fd9b86001bea171943cc3bb9222cb6da6b42.

    There were some precursor commits missing for this around connector
    locking, we should probably merge Lyude's nouveau avoid the problem patch.

    Dave Airlie
     
  • Commit 4567d686f5c6d955 ("phy: increase size of MII_BUS_ID_SIZE and
    bus_id") increased the size of MII bus IDs, but forgot to update the
    private definition in .
    This may cause:
    1. Truncation of LED trigger names,
    2. Duplicate LED trigger names,
    3. Failures registering LED triggers,
    4. Crashes due to bad error handling in the LED trigger failure path.

    To fix this, and prevent the definitions going out of sync again in the
    future, let the PHY LED trigger code use the existing MII_BUS_ID_SIZE
    definition.

    Example:
    - Before I had triggers "ee700000.etherne:01:100Mbps" and
    "ee700000.etherne:01:10Mbps",
    - After the increase of MII_BUS_ID_SIZE, both became
    "ee700000.ethernet-ffffffff:01:" => FAIL,
    - Now, the triggers are "ee700000.ethernet-ffffffff:01:100Mbps" and
    "ee700000.ethernet-ffffffff:01:10Mbps", which are unique again.

    Fixes: 4567d686f5c6d955 ("phy: increase size of MII_BUS_ID_SIZE and bus_id")
    Fixes: 2e0bc452f4721520 ("net: phy: leds: add support for led triggers on phy link state change")
    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     
  • includes , which is not really
    needed. Drop the include from , and add it to all users
    that didn't include it explicitly.

    Suggested-by: Andrew Lunn
    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Andrew Lunn
    Signed-off-by: David S. Miller

    Geert Uytterhoeven
     

25 Jan, 2017

12 commits

  • Patch series "fix premature OOM regression in 4.7+ due to cpuset races".

    This is v2 of my attempt to fix the recent report based on LTP cpuset
    stress test [1]. The intention is to go to stable 4.9 LTSS with this,
    as triggering repeated OOMs is not nice. That's why the patches try to
    be not too intrusive.

    Unfortunately why investigating I found that modifying the testcase to
    use per-VMA policies instead of per-task policies will bring the OOM's
    back, but that seems to be much older and harder to fix problem. I have
    posted a RFC [2] but I believe that fixing the recent regressions has a
    higher priority.

    Longer-term we might try to think how to fix the cpuset mess in a better
    and less error prone way. I was for example very surprised to learn,
    that cpuset updates change not only task->mems_allowed, but also
    nodemask of mempolicies. Until now I expected the parameter to
    alloc_pages_nodemask() to be stable. I wonder why do we then treat
    cpusets specially in get_page_from_freelist() and distinguish HARDWALL
    etc, when there's unconditional intersection between mempolicy and
    cpuset. I would expect the nodemask adjustment for saving overhead in
    g_p_f(), but that clearly doesn't happen in the current form. So we
    have both crazy complexity and overhead, AFAICS.

    [1] https://lkml.kernel.org/r/CAFpQJXUq-JuEP=QPidy4p_=FN0rkH5Z-kfB4qBvsf6jMS87Edg@mail.gmail.com
    [2] https://lkml.kernel.org/r/7c459f26-13a6-a817-e508-b65b903a8378@suse.cz

    This patch (of 4):

    Since commit c33d6c06f60f ("mm, page_alloc: avoid looking up the first
    zone in a zonelist twice") we have a wrong check for NULL preferred_zone,
    which can theoretically happen due to concurrent cpuset modification. We
    check the zoneref pointer which is never NULL and we should check the zone
    pointer. Also document this in first_zones_zonelist() comment per Michal
    Hocko.

    Fixes: c33d6c06f60f ("mm, page_alloc: avoid looking up the first zone in a zonelist twice")
    Link: http://lkml.kernel.org/r/20170120103843.24587-2-vbabka@suse.cz
    Signed-off-by: Vlastimil Babka
    Acked-by: Mel Gorman
    Acked-by: Hillf Danton
    Cc: Ganapatrao Kulkarni
    Cc: Michal Hocko
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vlastimil Babka
     
  • On an overloaded system, it is possible that a change in the watchdog
    threshold can be delayed long enough to trigger a false positive.

    This can easily be achieved by having a cpu spinning indefinitely on a
    task, while another cpu updates watchdog threshold.

    What happens is while trying to park the watchdog threads, the hrtimers
    on the other cpus trigger and reprogram themselves with the new slower
    watchdog threshold. Meanwhile, the nmi watchdog is still programmed
    with the old faster threshold.

    Because the one cpu is blocked, it prevents the thread parking on the
    other cpus from completing, which is needed to shutdown the nmi watchdog
    and reprogram it correctly. As a result, a false positive from the nmi
    watchdog is reported.

    Fix this by setting a park_in_progress flag to block all lockups until
    the parking is complete.

    Fix provided by Ulrich Obergfell.

    [akpm@linux-foundation.org: s/park_in_progress/watchdog_park_in_progress/]
    Link: http://lkml.kernel.org/r/1481041033-192236-1-git-send-email-dzickus@redhat.com
    Signed-off-by: Don Zickus
    Reviewed-by: Aaron Tomlin
    Cc: Ulrich Obergfell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Don Zickus
     
  • online_{kernel|movable} is used to change the memory zone to
    ZONE_{NORMAL|MOVABLE} and online the memory.

    To check that memory zone can be changed, zone_can_shift() is used.
    Currently the function returns minus integer value, plus integer
    value and 0. When the function returns minus or plus integer value,
    it means that the memory zone can be changed to ZONE_{NORNAL|MOVABLE}.

    But when the function returns 0, there are two meanings.

    One of the meanings is that the memory zone does not need to be changed.
    For example, when memory is in ZONE_NORMAL and onlined by online_kernel
    the memory zone does not need to be changed.

    Another meaning is that the memory zone cannot be changed. When memory
    is in ZONE_NORMAL and onlined by online_movable, the memory zone may
    not be changed to ZONE_MOVALBE due to memory online limitation(see
    Documentation/memory-hotplug.txt). In this case, memory must not be
    onlined.

    The patch changes the return type of zone_can_shift() so that memory
    online operation fails when memory zone cannot be changed as follows:

    Before applying patch:
    # grep -A 35 "Node 2" /proc/zoneinfo
    Node 2, zone Normal

    node_scanned 0
    spanned 8388608
    present 7864320
    managed 7864320
    # echo online_movable > memory4097/state
    # grep -A 35 "Node 2" /proc/zoneinfo
    Node 2, zone Normal

    node_scanned 0
    spanned 8388608
    present 8388608
    managed 8388608

    online_movable operation succeeded. But memory is onlined as
    ZONE_NORMAL, not ZONE_MOVABLE.

    After applying patch:
    # grep -A 35 "Node 2" /proc/zoneinfo
    Node 2, zone Normal

    node_scanned 0
    spanned 8388608
    present 7864320
    managed 7864320
    # echo online_movable > memory4097/state
    bash: echo: write error: Invalid argument
    # grep -A 35 "Node 2" /proc/zoneinfo
    Node 2, zone Normal

    node_scanned 0
    spanned 8388608
    present 7864320
    managed 7864320

    online_movable operation failed because of failure of changing
    the memory zone from ZONE_NORMAL to ZONE_MOVABLE

    Fixes: df429ac03936 ("memory-hotplug: more general validation of zone during online")
    Link: http://lkml.kernel.org/r/2f9c3837-33d7-b6e5-59c0-6ca4372b2d84@gmail.com
    Signed-off-by: Yasuaki Ishimatsu
    Reviewed-by: Reza Arbab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasuaki Ishimatsu
     
  • Modules implementing lwtunnel ops should not be allowed to unload
    while there is state alive using those ops, so specify the owning
    module for all lwtunnel ops.

    Signed-off-by: Robert Shearman
    Signed-off-by: David S. Miller

    Robert Shearman
     
  • The flush operation needs to modify set and element objects, so let's
    deconstify this.

    Signed-off-by: Pablo Neira Ayuso

    Pablo Neira Ayuso
     
  • First, log prefix will be truncated to NF_LOG_PREFIXLEN-1, i.e. 127,
    at nf_log_packet(), so the extra part is useless.

    Second, after adding a log rule with a very very long prefix, we will
    fail to dump the nft rules after this _special_ one, but acctually,
    they do exist. For example:
    # name_65000=$(printf "%0.sQ" {1..65000})
    # nft add rule filter output log prefix "$name_65000"
    # nft add rule filter output counter
    # nft add rule filter output counter
    # nft list chain filter output
    table ip filter {
    chain output {
    type filter hook output priority 0; policy accept;
    }
    }

    So now, restrict the log prefix length to NF_LOG_PREFIXLEN-1.

    Fixes: 96518518cc41 ("netfilter: add nftables")
    Signed-off-by: Liping Zhang
    Signed-off-by: Pablo Neira Ayuso

    Liping Zhang
     
  • Signed-off-by: Ram Amrani
    Signed-off-by: Doug Ledford

    Amrani, Ram
     
  • As the functionality to convert the MTU from a number to enum_ib_mtu
    is ubiquitous, define a dedicated function and remove the duplicated
    code.

    Signed-off-by: Ram Amrani
    Reviewed-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Amrani, Ram
     
  • After removing sunrpc module, I get many kmemleak information as,
    unreferenced object 0xffff88003316b1e0 (size 544):
    comm "gssproxy", pid 2148, jiffies 4294794465 (age 4200.081s)
    hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    backtrace:
    [] kmemleak_alloc+0x4a/0xa0
    [] kmem_cache_alloc+0x15e/0x1f0
    [] ida_pre_get+0xaa/0x150
    [] ida_simple_get+0xad/0x180
    [] nlmsvc_lookup_host+0x4ab/0x7f0 [lockd]
    [] lockd+0x4d/0x270 [lockd]
    [] param_set_timeout+0x55/0x100 [lockd]
    [] svc_defer+0x114/0x3f0 [sunrpc]
    [] svc_defer+0x2d7/0x3f0 [sunrpc]
    [] rpc_show_info+0x8a/0x110 [sunrpc]
    [] proc_reg_write+0x7f/0xc0
    [] __vfs_write+0xdf/0x3c0
    [] vfs_write+0xef/0x240
    [] SyS_write+0xad/0x130
    [] entry_SYSCALL_64_fastpath+0x1a/0xa9
    [] 0xffffffffffffffff

    I found, the ida information (dynamic memory) isn't cleanup.

    Signed-off-by: Kinglong Mee
    Fixes: 2f048db4680a ("SUNRPC: Add an identifier for struct rpc_clnt")
    Cc: stable@vger.kernel.org # v3.12+
    Signed-off-by: Trond Myklebust

    Kinglong Mee
     
  • Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Xuan Qi reports that the Linux NFSv4 client failed to lock a file
    that was migrated. The steps he observed on the wire:

    1. The client sent a LOCK request to the source server
    2. The source server replied NFS4ERR_MOVED
    3. The client switched to the destination server
    4. The client sent the same LOCK request to the destination
    server with a bumped lock sequence ID
    5. The destination server rejected the LOCK request with
    NFS4ERR_BAD_SEQID

    RFC 3530 section 8.1.5 provides a list of NFS errors which do not
    bump a lock sequence ID.

    However, RFC 3530 is now obsoleted by RFC 7530. In RFC 7530 section
    9.1.7, this list has been updated by the addition of NFS4ERR_MOVED.

    Reported-by: Xuan Qi
    Signed-off-by: Chuck Lever
    Cc: stable@vger.kernel.org # v3.7+
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • Use CXGB3_... instead of CXBG3_...

    Fixes: a85fb3383340 ("IB/cxgb3: Move user vendor structures")
    Cc: stable@vger.kernel.org # 4.9
    Signed-off-by: Nicolas Iooss
    Reviewed-by: Leon Romanovsky
    Acked-by: Steve Wise
    Signed-off-by: Doug Ledford

    Nicolas Iooss
     

24 Jan, 2017

2 commits

  • Pull GPIO fix from Linus Walleij:
    "A single lockdep fix, nothing else going on. This makes lockdep
    noiseless and work properly with threaded GPIO IRQchips.

    Summary:

    Fix a lockdep issue: the threaded irqchips also need their unique key,
    and take this opportunity to get rid of the horrible macro and replace
    it with a static inline"

    * tag 'gpio-v4.10-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: provide lockdep keys for nested/unnested irqchips

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "drm fixes across the board.

    Okay holidays and LCA kinda caught up with me, I thought I'd get some
    of this dequeued last week, but Hobart was sunny and warm and not all
    gloomy and rainy as usual.

    This is a bit large, but not too much considering it's two weeks stuff
    from AMD and Intel.

    core:
    - one locking fix that helps with dynamic suspend/resume races

    i915:
    - mostly GVT updates, GVT was a recent introduction so fixes for it
    shouldn't cause any notable side effects.

    amdgpu:
    - a bunch of fixes for GPUs with a different memory controller design
    that need different firmware.

    exynos:
    - decon regression fixes

    msm:
    - two regression fixes

    etnaviv:
    - a workaround for an mmu bug that needs a lot more work.

    virtio:
    - sparse fix, and a maintainers update"

    * tag 'drm-fixes-for-v4.10-rc6' of git://people.freedesktop.org/~airlied/linux: (56 commits)
    drm/exynos/decon5433: set STANDALONE_UPDATE_F on output enablement
    drm/exynos/decon5433: fix CMU programming
    drm/exynos/decon5433: do not disable video after reset
    drm/i915: Ignore bogus plane coordinates on SKL when the plane is not visible
    drm/i915: Remove WaDisableLSQCROPERFforOCL KBL workaround.
    drm/amdgpu: add support for new hainan variants
    drm/radeon: add support for new hainan variants
    drm/amdgpu: change clock gating mode for uvd_v4.
    drm/amdgpu: fix program vce instance logic error.
    drm/amdgpu: fix bug set incorrect value to vce register
    Revert "drm/amdgpu: Only update the CUR_SIZE register when necessary"
    drm/msm: fix potential null ptr issue in non-iommu case
    drm/msm/mdp5: rip out plane->pending tracking
    drm/exynos/decon5433: set STANDALONE_UPDATE_F also if planes are disabled
    drm/exynos/decon5433: update shadow registers iff there are active windows
    drm/i915/gvt: rewrite gt reset handler using new function intel_gvt_reset_vgpu_locked
    drm/i915/gvt: fix vGPU instance reuse issues by vGPU reset function
    drm/i915/gvt: introduce intel_vgpu_reset_mmio() to reset mmio space
    drm/i915/gvt: move mmio init/clean function to mmio.c
    drm/i915/gvt: introduce intel_vgpu_reset_cfg_space to reset configuration space
    ...

    Linus Torvalds
     

21 Jan, 2017

3 commits

  • Pull KVM fixes from Radim Krčmář:
    "ARM:
    - Fix for timer setup on VHE machines
    - Drop spurious warning when the timer races against the vcpu running
    again
    - Prevent a vgic deadlock when the initialization fails (for stable)

    s390:
    - Fix a kernel memory exposure (for stable)

    x86:
    - Fix exception injection when hypercall instruction cannot be
    patched"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: s390: do not expose random data via facility bitmap
    KVM: x86: fix fixing of hypercalls
    KVM: arm/arm64: vgic: Fix deadlock on error handling
    KVM: arm64: Access CNTHCTL_EL2 bit fields correctly on VHE systems
    KVM: arm/arm64: Fix occasional warning from the timer work function

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This is a set of 12 fixes including the mpt3sas one that was causing
    hangs on ATA passthrough.

    The others are a couple of zoned block device fixes, a SAS device
    detection bug which lead to SATA drives not being matched to bays, two
    qla2xxx MSI fixes, a qla2xxx req for rsp confusion caused by cut and
    paste, and a few other minor fixes"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: mpt3sas: fix hang on ata passthrough commands
    scsi: lpfc: Set elsiocb contexts to NULL after freeing it
    scsi: sd: Ignore zoned field for host-managed devices
    scsi: sd: Fix wrong DPOFUA disable in sd_read_cache_type
    scsi: bfa: fix wrongly initialized variable in bfad_im_bsg_els_ct_request()
    scsi: ses: Fix SAS device detection in enclosure
    scsi: libfc: Fix variable name in fc_set_wwpn
    scsi: lpfc: avoid double free of resource identifiers
    scsi: qla2xxx: remove irq_affinity_notifier
    scsi: qla2xxx: fix MSI-X vector affinity
    scsi: qla2xxx: Fix apparent cut-n-paste error.
    scsi: qla2xxx: Get mutex lock before checking optrom_state

    Linus Torvalds
     
  • Commit 501db511397f ("virtio: don't set VIRTIO_NET_HDR_F_DATA_VALID on
    xmit") in fact disables VIRTIO_HDR_F_DATA_VALID on receiving path too,
    fixing this by adding a hint (has_data_valid) and set it only on the
    receiving path.

    Cc: Rolf Neugebauer
    Signed-off-by: Jason Wang
    Acked-by: Rolf Neugebauer
    Signed-off-by: David S. Miller

    Jason Wang
     

20 Jan, 2017

1 commit


19 Jan, 2017

5 commits

  • The helper function for adding a GPIO chip compiles in a lockdep
    key for debugging, the same key is needed for nested chips as
    well.

    The macro construction is unreadable, replace this with two
    static inlines instead.

    The _gpiochip_irqchip_add prefixed function is not helpful,
    rename it with gpiochip_irqchip_add_key() that tell us what the
    function is actually doing.

    Fixes: d245b3f9bd36 ("gpio: simplify adding threaded interrupts")
    Cc: Roger Quadros
    Reported-by: Clemens Gruber
    Reported-by: Roger Quadros
    Reported-by: Grygorii Strashko
    Tested-by: Clemens Gruber
    Tested-by: Grygorii Strashko
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • This patch adds two helpers, bpf_map_area_alloc() and bpf_map_area_free(),
    that are to be used for map allocations. Using kmalloc() for very large
    allocations can cause excessive work within the page allocator, so i) fall
    back earlier to vmalloc() when the attempt is considered costly anyway,
    and even more importantly ii) don't trigger OOM killer with any of the
    allocators.

    Since this is based on a user space request, for example, when creating
    maps with element pre-allocation, we really want such requests to fail
    instead of killing other user space processes.

    Also, don't spam the kernel log with warnings should any of the allocations
    fail under pressure. Given that, we can make backend selection in
    bpf_map_area_alloc() generic, and convert all maps over to use this API
    for spots with potentially large allocation requests.

    Note, replacing the one kmalloc_array() is fine as overflow checks happen
    earlier in htab_map_alloc(), since it must also protect the multiplication
    for vmalloc() should kmalloc_array() fail.

    Signed-off-by: Daniel Borkmann
    Acked-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Daniel Borkmann
     
  • Trying to add an mpls encap route when the MPLS modules are not loaded
    hangs. For example:

    CONFIG_MPLS=y
    CONFIG_NET_MPLS_GSO=m
    CONFIG_MPLS_ROUTING=m
    CONFIG_MPLS_IPTUNNEL=m

    $ ip route add 10.10.10.10/32 encap mpls 100 via inet 10.100.1.2

    The ip command hangs:
    root 880 826 0 21:25 pts/0 00:00:00 ip route add 10.10.10.10/32 encap mpls 100 via inet 10.100.1.2

    $ cat /proc/880/stack
    [] call_usermodehelper_exec+0xd6/0x134
    [] __request_module+0x27b/0x30a
    [] lwtunnel_build_state+0xe4/0x178
    [] fib_create_info+0x47f/0xdd4
    [] fib_table_insert+0x90/0x41f
    [] inet_rtm_newroute+0x4b/0x52
    ...

    modprobe is trying to load rtnl-lwt-MPLS:

    root 881 5 0 21:25 ? 00:00:00 /sbin/modprobe -q -- rtnl-lwt-MPLS

    and it hangs after loading mpls_router:

    $ cat /proc/881/stack
    [] rtnl_lock+0x12/0x14
    [] register_netdevice_notifier+0x16/0x179
    [] mpls_init+0x25/0x1000 [mpls_router]
    [] do_one_initcall+0x8e/0x13f
    [] do_init_module+0x5a/0x1e5
    [] load_module+0x13bd/0x17d6
    ...

    The problem is that lwtunnel_build_state is called with rtnl lock
    held preventing mpls_init from registering.

    Given the potential references held by the time lwtunnel_build_state it
    can not drop the rtnl lock to the load module. So, extract the module
    loading code from lwtunnel_build_state into a new function to validate
    the encap type. The new function is called while converting the user
    request into a fib_config which is well before any table, device or
    fib entries are examined.

    Fixes: 745041e2aaf1 ("lwtunnel: autoload of lwt modules")
    Signed-off-by: David Ahern
    Signed-off-by: David S. Miller

    David Ahern
     
  • Pull SMP hotplug update from Thomas Gleixner:
    "This contains a trivial typo fix and an extension to the core code for
    dynamically allocating states in the prepare stage.

    The extension is necessary right now because we need a proper way to
    unbreak LTTNG, which iscurrently non functional due to the removal of
    the notifiers. Surely it's out of tree, but it's widely used by
    distros.

    The simple solution would have been to reserve a state for LTTNG, but
    I'm not fond about unused crap in the kernel and the dynamic range,
    which we admittedly should have done right away, allows us to remove
    quite some of the hardcoded states, i.e. those which have no ordering
    requirements. So doing the right thing now is better than having an
    smaller intermediate solution which needs to be reworked anyway"

    * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    cpu/hotplug: Provide dynamic range for prepare stage
    perf/x86/amd/ibs: Fix typo after cleanup state names in cpu/hotplug

    Linus Torvalds
     
  • Pull RCU fixes from Ingo Molnar:
    "This fixes sporadic ACPI related hangs in synchronize_rcu() that were
    caused by the ACPI code mistakenly relying on an aspect of RCU that
    was neither promised to work nor reliable but which happened to work -
    until in v4.9 we changed the RCU implementation, which made the hangs
    more prominent.

    Since the mis-use of the RCU facility wasn't properly detected and
    prevented either, these fixes make the RCU side work reliably instead
    of working around the problem in the ACPI code.

    Hence the slightly larger diffstat that goes beyond the normal scope
    of RCU fixes in -rc kernels"

    * 'rcu-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    rcu: Narrow early boot window of illegal synchronous grace periods
    rcu: Remove cond_resched() from Tiny synchronize_sched()

    Linus Torvalds
     

18 Jan, 2017

1 commit