07 Aug, 2017

40 commits

  • [ Upstream commit c2931667c83ded6504b3857e99cc45b21fa496fb ]

    Currently how btrfs dio deals with split dio write is not good
    enough if dio write is split into several segments due to the
    lack of contiguous space, a large dio write like 'dd bs=1G count=1'
    can end up with incorrect outstanding_extents counter and endio
    would complain loudly with an assertion.

    This fixes the problem by compensating the outstanding_extents
    counter in inode if a large dio write gets split.

    Reported-by: Anand Jain
    Tested-by: Anand Jain
    Signed-off-by: Liu Bo
    Signed-off-by: David Sterba
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Liu Bo
     
  • [ Upstream commit 096de2f83ebc8e0404c5b7e847a4abd27b9739da ]

    When VXLAN offloading is enabled, be_features_check() tries to check if
    an encapsulated packet is indeed a VXLAN packet. The check is not strict
    enough, and considers any UDP-encapsulated ethernet frame with a 8-byte
    tunnel header as being VXLAN. Unfortunately, both GENEVE and VXLAN-GPE
    have a 8-byte header, so they get through this check.

    Force the UDP destination port to be the one that has been offloaded to
    hardware.

    Without this, GENEVE-encapsulated packets can end up having an incorrect
    checksum when both a GENEVE and a VXLAN (offloaded) tunnel are
    configured.

    This is similar to commit a547224dceed ("mlx4e: Do not attempt to
    offload VXLAN ports that are unrecognized").

    Signed-off-by: Sabrina Dubroca
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Sabrina Dubroca
     
  • [ Upstream commit 781feef7e6befafd4d9787d1f7ada1f9ccd504e4 ]

    While checking INODE_REF/INODE_EXTREF for a corner case, we may acquire a
    different inode's log_mutex with holding the current inode's log_mutex, and
    lockdep has complained this with a possilble deadlock warning.

    Fix this by using mutex_lock_nested() when processing the other inode's
    log_mutex.

    Reviewed-by: Filipe Manana
    Signed-off-by: Liu Bo
    Signed-off-by: David Sterba
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Liu Bo
     
  • [ Upstream commit e321f8a801d7b4c40da8005257b05b9c2b51b072 ]

    If @block_group is not @used_bg, it'll try to get @used_bg's lock without
    droping @block_group 's lock and lockdep has throwed a scary deadlock warning
    about it.
    Fix it by using down_read_nested.

    Signed-off-by: Liu Bo
    Reviewed-by: David Sterba
    Signed-off-by: David Sterba
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Liu Bo
     
  • [ Upstream commit 43aef5c2ca90535b3227e97e71604291875444ed ]

    This fixes an error message that was probably copied and pasted. The same
    message is used for both the in and out endpoints, so it makes it impossible
    to know which one actually failed because both cases say "IN".

    Make the out endpoint error message say "OUT".

    Signed-off-by: David Lechner
    Signed-off-by: Felipe Balbi
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    David Lechner
     
  • [ Upstream commit c2a6bbaf0c5f90463a7011a295bbdb7e33c80b51 ]

    The way acpi_find_child_device() works currently is that, if there
    are two (or more) devices with the same _ADR value in the same
    namespace scope (which is not specifically allowed by the spec and
    the OS behavior in that case is not defined), the first one of them
    found to be present (with the help of _STA) will be returned.

    This covers the majority of cases, but is not sufficient if some of
    the devices in question have a _HID (or _CID) returning some valid
    ACPI/PNP device IDs (which is disallowed by the spec) and the
    ASL writers' expectation appears to be that the OS will match
    devices without a valid ACPI/PNP device ID against a given bus
    address first.

    To cover this special case as well, modify find_child_checks()
    to prefer devices without ACPI/PNP device IDs over devices that
    have them.

    Suggested-by: Mika Westerberg
    Signed-off-by: Rafael J. Wysocki
    Tested-by: Hans de Goede
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     
  • [ Upstream commit 3ef01c968fbfb21c2f16281445d30a865ee4412c ]

    NF_CT_PROTO_DCCP/SCTP/UDPLITE were switched from tristate to boolean so
    defconfig needs to be adjusted to silence warnings:
    warning: symbol value 'm' invalid for NF_CT_PROTO_DCCP
    warning: symbol value 'm' invalid for NF_CT_PROTO_SCTP
    warning: symbol value 'm' invalid for NF_CT_PROTO_UDPLITE

    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Krzysztof Kozlowski
     
  • [ Upstream commit 1f2ed153b916c95a49a1ca9d7107738664224b7f ]

    Since 'perf probe' supports cross-arch probes, it is possible to analyze
    different arch kernel image which has different bits-per-long.

    In that case, it fails to get the module name because it uses the
    MOD_NAME_OFFSET macro based on the host machine bits-per-long, instead
    of the target arch bits-per-long.

    This fixes above issue by changing modname-offset based on the target
    archs bit width. This is ok because linux kernel uses LP64 model on
    64bit arch.

    E.g. without this (on x86_64, and target module is arm32):

    $ perf probe -m build-arm/fs/configfs/configfs.ko -D configfs_lookup
    p:probe/configfs_lookup :configfs_lookup+0
    ^-Here is an empty module name.

    With this fix, you can see correct module name:

    $ perf probe -m build-arm/fs/configfs/configfs.ko -D configfs_lookup
    p:probe/configfs_lookup configfs:configfs_lookup+0

    Signed-off-by: Masami Hiramatsu
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/148337043836.6752.383495516397005695.stgit@devbox
    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Masami Hiramatsu
     
  • [ Upstream commit c415f9e8304a1d235ef118d912f374ee2e46c45d ]

    The Zynq Ultrascale MP uses version 1.4 of the Cadence IP core
    which fixes some silicon bugs that needed software workarounds
    in Version 1.0 that was used on Zynq systems.

    Signed-off-by: Moritz Fischer
    Cc: Michal Simek
    Cc: Sören Brinkmann
    Cc: Rob Herring
    Acked-by: Sören Brinkmann
    Signed-off-by: Michal Simek
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Moritz Fischer
     
  • [ Upstream commit 4ea2a6be9565455f152c12f80222af1582ede0c7 ]

    The patch removes these warnings reported by dtc 1.4:
    Warning (unit_address_vs_reg): Node /amba_apu has a reg or ranges
    property, but no unit name
    Warning (unit_address_vs_reg): Node /memory has a reg or ranges
    property, but no unit name

    Signed-off-by: Michal Simek
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Michal Simek
     
  • [ Upstream commit 12a7f17fac5b370bec87259e4c718faf563ce900 ]

    Now races can happen between interrupt handler execution and PM runtime in
    error handling code path in probe and in dwc3_omap_remove() which will lead
    to system crash:

    in probe:
    ...
    err1:
    pm_runtime_put_sync(dev);
    ^^ PM runtime can race with IRQ handler when deferred probing happening
    due to extcon
    pm_runtime_disable(dev);

    return ret;

    in dwc3_omap_remove:
    ...
    dwc3_omap_disable_irqs(omap);
    ^^ IRQs are disabled in HW, but handler may still run
    of_platform_depopulate(omap->dev);
    pm_runtime_put_sync(&pdev->dev);
    ^^ PM runtime can race with IRQ handler
    pm_runtime_disable(&pdev->dev);

    return 0;

    So, OMAP DWC3 IRQ need to be disabled before calling
    pm_runtime_put() in probe and in dwc3_omap_remove().

    Acked-by: Tony Lindgren
    Signed-off-by: Grygorii Strashko
    Signed-off-by: Felipe Balbi
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Grygorii Strashko
     
  • [ Upstream commit 75bdc7f31a3a6e9a12e218b31a44a1f54a91554c ]

    Add some missing 'of_node_put()' in early exit error path.

    Signed-off-by: Christophe JAILLET
    Signed-off-by: Vinod Koul
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Christophe JAILLET
     
  • [ Upstream commit 97b84fd6d91766ea57dcc350d78f42639e011c30 ]

    An L2TP socket bound to the unspecified address should match with any
    address. If not, it can't receive any packet and __l2tp_ip6_bind_lookup()
    can't prevent another socket from binding on the same device/tunnel ID.

    While there, rename the 'addr' variable to 'sk_laddr' (local addr), to
    make following patch clearer.

    Signed-off-by: Guillaume Nault
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Guillaume Nault
     
  • [ Upstream commit 34a31f0af84158955a9747fb5c6712da5bbb5331 ]

    The Skylake ioatdma is technically CBDMA 3.2+ and contains the same hardware
    bits with some additional 3.3 features, but it's not really 3.3 where the
    driver is concerned.

    Signed-off-by: Dave Jiang
    Signed-off-by: Vinod Koul
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Dave Jiang
     
  • [ Upstream commit 1594c18fd297a8edcc72bc4b161f3f52603ebb92 ]

    Adding Skylake Xeon PCI device ids for ioatdma and related bits.

    Signed-off-by: Dave Jiang
    Signed-off-by: Vinod Koul
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Dave Jiang
     
  • [ Upstream commit 086cc1c31a0ec075dac02425367c871bb65bc2c9 ]

    The build robot reports:

    .tmp_kallsyms1.o: In function `kallsyms_relative_base':
    >> (.rodata+0x8a18): undefined reference to `_text'

    This is when using 'make alldefconfig'. Adding this _text symbol to mark
    the start of the kernel as in other architecture fixes this.

    Signed-off-by: Stafford Horne
    Acked-by: Jonas Bonn
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Stafford Horne
     
  • [ Upstream commit 88e20c74ee020f9e0c99dfce0dd9aa61c3f0cca0 ]

    The ICOLL controller doesn't provide any facility to configure the
    wakeup sources. That's the reason why this implementation lacks
    the irq_set_wake implementation. But this prevent us from properly
    entering power management states like "suspend to idle".

    So enable the flags IRQCHIP_SKIP_SET_WAKE and
    IRQCHIP_MASK_ON_SUSPEND to let the irqchip core allows and handles
    the power management.

    Signed-off-by: Stefan Wahren
    Reviewed-by: Fabio Estevam
    Link: https://lkml.kernel.org/r/1482863397-11400-1-git-send-email-stefan.wahren@i2se.com
    Signed-off-by: Jason Cooper
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Stefan Wahren
     
  • [ Upstream commit a1792cda51300e15b03549cccf0b09f3be82e697 ]

    The clk_ref_div is not configured in the correct position of the
    register. The patch fixes that clk_ref_div, Pre-Scalar, is assigned
    the wrong value.

    Signed-off-by: John Hsu
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    John Hsu
     
  • [ Upstream commit 13288bdf4adbaa6bd1267f10044c1bc25d90ce7f ]

    Some system have multiple dw devices. Currently the driver uses a
    fixed name for the debugfs dir. Append dev name to the debugfs dir
    name to make it unique.

    Signed-off-by: Phil Reid
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Phil Reid
     
  • [ Upstream commit 63c3194b82530bd71fd49db84eb7ab656b8d404a ]

    The RESET register only have one self clearing bit and it should not be
    cached. If it is cached, when we sync the registers back to the chip we
    will initiate a software reset as well, which is not desirable.

    Signed-off-by: Peter Ujfalusi
    Reviewed-by: Jarkko Nikula
    Signed-off-by: Mark Brown
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Peter Ujfalusi
     
  • [ Upstream commit 2f884e6e688a0deb69e6c9552e51aef8b7e3f5f1 ]

    The below call chain generates "scheduling while atomic" backtrace and
    causes system crash when Keystone 2 IRQ chip driver is used with RT-kernel:

    gic_handle_irq()
    |-__handle_domain_irq()
    |-generic_handle_irq()
    |-keystone_irq_handler()
    |-regmap_read()
    |-regmap_lock_spinlock()
    |-rt_spin_lock()

    The reason is that Keystone driver dispatches IRQ using chained IRQ handler
    and accesses I/O memory through syscon->regmap(mmio) which is implemented
    as fast_io regmap and uses regular spinlocks for synchronization, but
    spinlocks transformed to rt_mutexes on RT.

    Hence, convert Keystone 2 IRQ driver to use generic irq handler instead of
    chained IRQ handler. This way it will be compatible with RT kernel where it
    will be forced thread IRQ handler while in non-RT kernel it still will be
    executed in HW IRQ context.

    Cc: Suman Anna
    Signed-off-by: Grygorii Strashko
    Tested-by: Suman Anna
    Link: https://lkml.kernel.org/r/20161208233310.10329-1-grygorii.strashko@ti.com
    Signed-off-by: Jason Cooper
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Strashko, Grygorii
     
  • [ Upstream commit 45e869714489431625c569d21fc952428d761476 ]

    Using ancient compilers (gcc-4.5 or older) on ARM, we get a link
    failure with the vfio-pci driver:

    ERROR: "__aeabi_lcmp" [drivers/vfio/pci/vfio-pci.ko] undefined!

    The reason is that the compiler tries to do a comparison of
    a 64-bit range. This changes it to convert to a 32-bit number
    explicitly first, as newer compilers do for themselves.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Alex Williamson
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • [ Upstream commit a6cb3b864b21b7345f824a4faa12b723c8aaf099 ]

    For every submission buffer object one of MSM_SUBMIT_BO_WRITE
    and MSM_SUBMIT_BO_READ must be set (and nothing else). If we
    allowed zero then the buffer object would never get queued to
    be unreferenced.

    Signed-off-by: Jordan Crouse
    Signed-off-by: Rob Clark
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Jordan Crouse
     
  • [ Upstream commit 6490abc4bc35fa4f3bdb9c7e49096943c50e29ea ]

    The error cases in submit_reloc() need to put back the virtual
    address of the bo before failling. Add a single failure path
    for the function.

    Signed-off-by: Jordan Crouse
    Signed-off-by: Rob Clark
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Jordan Crouse
     
  • [ Upstream commit 88b333b0ed790f9433ff542b163bf972953b74d3 ]

    Currently the value written to CP_RB_WPTR is calculated on the fly as
    (rb->next - rb->start). But as the code is designed rb->next is wrapped
    before writing the commands so if a series of commands happened to
    fit perfectly in the ringbuffer, rb->next would end up being equal to
    rb->size / 4 and thus result in an out of bounds address to CP_RB_WPTR.

    The easiest way to fix this is to mask WPTR when writing it to the
    hardware; it makes the hardware happy and the rest of the ringbuffer
    math appears to work and there isn't any point in upsetting anything.

    Signed-off-by: Jordan Crouse
    [squash in is_power_of_2() check]
    Signed-off-by: Rob Clark

    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Jordan Crouse
     
  • [ Upstream commit 10b1c04e92229ebeb38ccd0dcf2b6d3ec73c0575 ]

    Demoting simple flow steering rule priority (for DPDK) was achieved by
    wrapping FW commands MLX4_QP_FLOW_STEERING_ATTACH/DETACH for the PF
    as well, and forcing the priority to MLX4_DOMAIN_NIC in the wrapper
    function for the PF and all VFs.

    In function mlx4_ib_create_flow(), this change caused the main rule
    creation for the PF to be wrapped, while it left the associated
    tunnel steering rule creation unwrapped for the PF.

    This mismatch caused rule deletion failures in mlx4_ib_destroy_flow()
    for the PF when the detach wrapper function did not find the associated
    tunnel-steering rule (since creation of that rule for the PF did not
    go through the wrapper function).

    Fix this by setting MLX4_QP_FLOW_STEERING_ATTACH/DETACH to be "native"
    (so that the PF invocation does not go through the wrapper), and perform
    the required priority demotion for the PF in the mlx4_ib_create_flow()
    code path.

    Fixes: 48564135cba8 ("net/mlx4_core: Demote simple multicast and broadcast flow steering rules")
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Jack Morgenstein
     
  • [ Upstream commit c1d5f8ff80ea84768f5fae1ca9d1abfbb5e6bbaa ]

    This patch removes BUG_ON() macro from mlx4_alloc_icm_coherent()
    by checking DMA address alignment in advance and performing proper
    folding in case of error.

    Fixes: 5b0bf5e25efe ("mlx4_core: Support ICM tables in coherent memory")
    Reported-by: Ozgur Karatas
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Leon Romanovsky
     
  • [ Upstream commit 3b01fe7f91c8e4f9afc4fae3c5af72c14958d2d8 ]

    mlx4_QP_FLOW_STEERING_DETACH_wrapper first removes the steering
    rule (which results in freeing the rule structure), and then
    references a field in this struct (the qp number) when releasing the
    busy-status on the rule's qp.

    Since this memory was freed, it could reallocated and changed.
    Therefore, the qp number in the struct may be incorrect,
    so that we are releasing the incorrect qp. This leaves the rule's qp
    in the busy state (and could possibly release an incorrect qp as well).

    Fix this by saving the qp number in a local variable, for use after
    removing the steering rule.

    Fixes: 2c473ae7e582 ("net/mlx4_core: Disallow releasing VF QPs which have steering rules")
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Jack Morgenstein
     
  • …_append_data and ip6_finish_output

    [ Upstream commit e4c5e13aa45c23692e4acf56f0b3533f328199b2 ]

    There is an inconsistent conditional judgement between __ip6_append_data
    and ip6_finish_output functions, the variable length in __ip6_append_data
    just include the length of application's payload and udp6 header, don't
    include the length of ipv6 header, but in ip6_finish_output use
    (skb->len > ip6_skb_dst_mtu(skb)) as judgement, and skb->len include the
    length of ipv6 header.

    That causes some particular application's udp6 payloads whose length are
    between (MTU - IPv6 Header) and MTU were fragmented by ip6_fragment even
    though the rst->dev support UFO feature.

    Add the length of ipv6 header to length in __ip6_append_data to keep
    consistent conditional judgement as ip6_finish_output for ip6 fragment.

    Signed-off-by: Zheng Li <james.z.li@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    Zheng Li
     
  • [ Upstream commit 9da34cd34e85aacc55af8774b81b1f23e86014f9 ]

    Under the switchdev/offloads mode, packets that don't match any
    e-switch steering rule are sent towards the e-switch management
    port. We use a NIC HW steering rule set per vport (uplink and VFs)
    to make them be received into the host OS through the respective
    vport representor netdevice.

    Currnetly such missed RoCE packets will not get to this NIC steering
    rule, and hence VF RoCE will not work over the slow path of the offloads
    mode. This is b/c these packets will be matched by a steering rule added
    by the firmware that serves RoCE traffic set on the PF NIC vport which
    is also the e-switch management port under SRIOV.

    Disabling RoCE on the e-switch management vport when we are in the offloads
    mode, will signal to the firmware to remove their RoCE rule, and then the
    missed RoCE packets will be matched by the representor NIC steering rule
    as any other missed packets.

    To achieve that, we disable RoCE on the PF vport. We do that by removing
    (hot-unplugging) the IB device instance associated with the PF. This is
    also required by our current model where the PF serves as the uplink
    representor and hence only SW switching (TC, bridge, OVS) applications
    and slow path vport mlx5e net-device should be running over that vport.

    Fixes: c930a3ad7453 ('net/mlx5e: Add devlink based SRIOV mode changes')
    Signed-off-by: Or Gerlitz
    Reviewed-by: Hadar Hen Zion
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Or Gerlitz
     
  • [ Upstream commit 4cf48f1d7520a4d325af58eded4d8090e1b40be7 ]

    Trying to initialize eMMC slot as SDIO or SD cause failure in n900 port of
    qemu. eMMC itself is not detected and is not working.

    Real Nokia N900 harware does not have this problem. As eMMC is really not
    SDIO or SD based such change is harmless and will fix support for qemu.

    Signed-off-by: Pali Rohár
    Acked-by: Pavel Machek
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Pali Rohár
     
  • [ Upstream commit 5acd016c88937be3667ba4e6b60f0f74455b5e80 ]

    USB2 port can be operated in dual-role mode but till we
    have dual-role support in dwc3 driver let's limit this
    port to peripheral mode.

    If we don't do so it defaults to host mode. USB1 port
    is meant for host only operation and we don't want
    both ports in host only mode.

    Signed-off-by: Roger Quadros
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Roger Quadros
     
  • [ Upstream commit 820381572fc015baa4f5744f5d4583ec0c0f1b82 ]

    Specify the power button interrupt number which is from the datasheet.

    Signed-off-by: Milo Kim
    Acked-by: Rob Herring
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Milo Kim
     
  • [ Upstream commit 81d7358d7038dd1001547950087e5b0641732f3f ]

    Add interrupt specifiers for USB and AC charger input. Interrupt numbers
    are from the datasheet.
    Fix wrong property for compatible string.

    Signed-off-by: Milo Kim
    Acked-by: Rob Herring
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Milo Kim
     
  • [ Upstream commit 5066d5296ff2db20625e5f46e7338872c90c649f ]

    Issue caught with static analysis tool:
    "Dangerous usage of 'name' (strncpy doesn't always 0-terminate it)"

    Use strlcpy _includes_ the NUL terminator, and strlcat() which ensures
    that it won't overflow the buffer.

    Reported-by: Maninder Singh
    Signed-off-by: Vaneet Narang
    CC: Russell King
    Signed-off-by: Tony Lindgren
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Maninder Singh
     
  • [ Upstream commit 610c908773d30907c950ca3b2ee8ac4b2813537b ]

    This chip is the same as RTL8168, but its device id is 0x8161.

    Signed-off-by: Chun-Hao Lin
    Signed-off-by: David S. Miller
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Chun-Hao Lin
     
  • [ Upstream commit 0dad3a3014a0b9e72521ff44f17e0054f43dcdea ]

    If mce_device_init() fails then the mce device pointer is NULL and the
    AMD mce code happily dereferences it.

    Add a sanity check.

    Reported-by: Markus Trippelsdorf
    Reported-by: Boris Ostrovsky
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • commit bbb3be170ac2891526ad07b18af7db226879a8e7 upstream.

    Fix warnings of the form...

    WARNING: CPU: 10 PID: 4983 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x62/0x80
    sysfs: cannot create duplicate filename '/class/dax/dax12.0'
    Call Trace:
    dump_stack+0x63/0x86
    __warn+0xcb/0xf0
    warn_slowpath_fmt+0x5a/0x80
    ? kernfs_path_from_node+0x4f/0x60
    sysfs_warn_dup+0x62/0x80
    sysfs_do_create_link_sd.isra.2+0x97/0xb0
    sysfs_create_link+0x25/0x40
    device_add+0x266/0x630
    devm_create_dax_dev+0x2cf/0x340 [dax]
    dax_pmem_probe+0x1f5/0x26e [dax_pmem]
    nvdimm_bus_probe+0x71/0x120

    ...by reusing the namespace id for the device-dax instance name.

    Now that we have decided that there will never by more than one
    device-dax instance per libnvdimm-namespace parent device [1], we can
    directly reuse the namepace ids. There are some possible follow-on
    cleanups, but those are saved for a later patch to simplify the -stable
    backport.

    [1]: https://lists.01.org/pipermail/linux-nvdimm/2016-December/008266.html

    Fixes: 98a29c39dc68 ("libnvdimm, namespace: allow creation of multiple pmem...")
    Cc: Jeff Moyer
    Reported-by: Dariusz Dokupil
    Signed-off-by: Dan Williams
    Signed-off-by: Greg Kroah-Hartman

    Dan Williams
     
  • commit 6e7bc478c9a006c701c14476ec9d389a484b4864 upstream.

    My recent change missed fact that UFO would perform a complete
    UDP checksum before segmenting in frags.

    In this case skb->ip_summed is set to CHECKSUM_NONE.

    We need to add this valid case to skb_needs_check()

    Fixes: b2504a5dbef3 ("net: reduce skb_warn_bad_offload() noise")
    Signed-off-by: Eric Dumazet
    Cc: Willem de Bruijn
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Eric Dumazet
     
  • commit e9a330c4289f2ba1ca4bf98c2b430ab165a8931b upstream.

    The per-prz spinlock should be using the dynamic initializer so that
    lockdep can correctly track it. Without this, under lockdep, we get a
    warning at boot that the lock is in non-static memory.

    Fixes: 109704492ef6 ("pstore: Make spinlock per zone instead of global")
    Fixes: 76d5692a5803 ("pstore: Correctly initialize spinlock and flags")
    Signed-off-by: Kees Cook
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook