30 Oct, 2016

40 commits

  • Pull networking fixes from David Miller:
    "Lots of fixes, mostly drivers as is usually the case.

    1) Don't treat zero DMA address as invalid in vmxnet3, from Alexey
    Khoroshilov.

    2) Fix element timeouts in netfilter's nft_dynset, from Anders K.
    Pedersen.

    3) Don't put aead_req crypto struct on the stack in mac80211, from
    Ard Biesheuvel.

    4) Several uninitialized variable warning fixes from Arnd Bergmann.

    5) Fix memory leak in cxgb4, from Colin Ian King.

    6) Fix bpf handling of VLAN header push/pop, from Daniel Borkmann.

    7) Several VRF semantic fixes from David Ahern.

    8) Set skb->protocol properly in ip6_tnl_xmit(), from Eli Cooper.

    9) Socket needs to be locked in udp_disconnect(), from Eric Dumazet.

    10) Div-by-zero on 32-bit fix in mlx4 driver, from Eugenia Emantayev.

    11) Fix stale link state during failover in NCSCI driver, from Gavin
    Shan.

    12) Fix netdev lower adjacency list traversal, from Ido Schimmel.

    13) Propvide proper handle when emitting notifications of filter
    deletes, from Jamal Hadi Salim.

    14) Memory leaks and big-endian issues in rtl8xxxu, from Jes Sorensen.

    15) Fix DESYNC_FACTOR handling in ipv6, from Jiri Bohac.

    16) Several routing offload fixes in mlxsw driver, from Jiri Pirko.

    17) Fix broadcast sync problem in TIPC, from Jon Paul Maloy.

    18) Validate chunk len before using it in SCTP, from Marcelo Ricardo
    Leitner.

    19) Revert a netns locking change that causes regressions, from Paul
    Moore.

    20) Add recursion limit to GRO handling, from Sabrina Dubroca.

    21) GFP_KERNEL in irq context fix in ibmvnic, from Thomas Falcon.

    22) Avoid accessing stale vxlan/geneve socket in data path, from
    Pravin Shelar"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (189 commits)
    geneve: avoid using stale geneve socket.
    vxlan: avoid using stale vxlan socket.
    qede: Fix out-of-bound fastpath memory access
    net: phy: dp83848: add dp83822 PHY support
    enic: fix rq disable
    tipc: fix broadcast link synchronization problem
    ibmvnic: Fix missing brackets in init_sub_crq_irqs
    ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context
    Revert "ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context"
    arch/powerpc: Update parameters for csum_tcpudp_magic & csum_tcpudp_nofold
    net/mlx4_en: Save slave ethtool stats command
    net/mlx4_en: Fix potential deadlock in port statistics flow
    net/mlx4: Fix firmware command timeout during interrupt test
    net/mlx4_core: Do not access comm channel if it has not yet been initialized
    net/mlx4_en: Fix panic during reboot
    net/mlx4_en: Process all completions in RX rings after port goes up
    net/mlx4_en: Resolve dividing by zero in 32-bit system
    net/mlx4_core: Change the default value of enable_qos
    net/mlx4_core: Avoid setting ports to auto when only one port type is supported
    net/mlx4_core: Fix the resource-type enum in res tracker to conform to FW spec
    ...

    Linus Torvalds
     
  • This patch is similar to earlier vxlan patch.
    Geneve device close operation frees geneve socket. This
    operation can race with geneve-xmit function which
    dereferences geneve socket. Following patch uses RCU
    mechanism to avoid this situation.

    Signed-off-by: Pravin B Shelar
    Acked-by: John W. Linville
    Signed-off-by: David S. Miller

    pravin shelar
     
  • When vxlan device is closed vxlan socket is freed. This
    operation can race with vxlan-xmit function which
    dereferences vxlan socket. Following patch uses RCU
    mechanism to avoid this situation.

    Signed-off-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    pravin shelar
     
  • Driver allocates a shadow array for transmitted SKBs with X entries;
    That means valid indices are {0,...,X - 1}. [X == 8191]
    Problem is the driver also uses X as a mask for a
    producer/consumer in order to choose the right entry in the
    array which allows access to entry X which is out of bounds.

    To fix this, simply allocate X + 1 entries in the shadow array.

    Signed-off-by: Yuval Mintz
    Signed-off-by: David S. Miller

    Mintz, Yuval
     
  • This PHY has a compatible register set with DP83848x so
    add support for it.

    Acked-by: Andrew F. Davis
    Signed-off-by: Roger Quadros
    Signed-off-by: David S. Miller

    Roger Quadros
     
  • When MTU is changed from 9000 to 1500 while there is burst of inbound 9000
    bytes packets, adaptor sometimes delivers 9000 bytes packets to 1500 bytes
    buffers. This causes memory corruption and sometimes crash.

    This is because of a race condition in adaptor between "RQ disable"
    clearing descriptor mini-cache and mini-cache valid bit being set by
    completion of descriptor fetch. This can result in stale RQ desc being
    cached and used when packets arrive. In this case, the stale descriptor
    have old MTU value.

    Solution is to write RQ->disable twice. The first write will stop any
    further desc fetches, allowing the second disable to clear the mini-cache
    valid bit without danger of a race.

    Also, the check for rq->running becoming 0 after writing rq->enable to 0
    is not done properly. When incoming packets are flooding the interface,
    rq->running will pulse high for each dropped packet. Since the driver was
    waiting for 10us between each poll, it is possible to see rq->running = 1
    1000 times in a row, even though it is not actually stuck running.
    This results in false failure of vnic_rq_disable(). Fix is to try more
    than 1000 time without delay between polls to ensure we do not miss when
    running goes low.

    In old adaptors rq->enable needs to be re-written to 0 when posted_index
    is reset in vnic_rq_clean() in order to keep rq->prefetch_index in sync.

    Signed-off-by: Govindarajulu Varadarajan
    Signed-off-by: David S. Miller

    Govindarajulu Varadarajan
     
  • Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • Schedule these XPORT event tasks in the shared workqueue
    so that IRQs are not freed in an interrupt context when
    sub-CRQs are released.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • This reverts commit 8d7533e5aaad1c94386a8101a36b0617987966b7.

    It introduced kbuild failures, new version coming.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Jeff Kirsher says:

    ====================
    Intel Wired LAN Driver Updates 2016-10-27

    This series contains fixes to ixgbe and i40e.

    Emil fixes a NULL pointer dereference when a macvlan interface is brought
    up while the PF is still down.

    David root caused the original panic that was fixed by commit id
    (a036244c068612 "i40e: Fix kernel panic on enable/disable LLDP") and the
    fix was not quite correct, so removed the get_default_tc() and replaced
    it with a #define since there is only one TC supported as a default.

    Guilherme Piccoli fixes an issue where if we modprobe the driver module
    without enough MSI-X interrupts, then unload the module and reload it
    again, the kernel would crash. So if we fail to allocate enough MSI-X
    interrupts, we should disable them since they were previously enabled.

    Huaibin Wang found that the order of the arguments for
    ndo_dflt_bridge_getlink() were in the correct order, so fix the order.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Following the previous patch, as an optimization, the slave will
    not even bother sending the DUMP_ETH_STATS command over the
    comm channel.

    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Tariq Toukan
     
  • mlx4_en_DUMP_ETH_STATS took the *counter mutex* and then
    called the FW command, with WRAPPED attribute. As a result, the fw command
    is wrapped on the Hypervisor when it calls mlx4_en_DUMP_ETH_STATS.
    The FW command wrapper flow on the hypervisor takes the *slave_cmd_mutex*
    during processing.

    At the same time, a VF could be in the process of coming up, and could
    call mlx4_QUERY_FUNC_CAP. On the hypervisor, the command flow takes the
    *slave_cmd_mutex*, then executes mlx4_QUERY_FUNC_CAP_wrapper.
    mlx4_QUERY_FUNC_CAP wrapper calls mlx4_get_default_counter_index(),
    which takes the *counter mutex*. DEADLOCK.

    The fix is that the DUMP_ETH_STATS fw command should be called with
    the NATIVE attribute, so that on the hypervisor, this command does not
    enter the wrapper flow.

    Since the Hypervisor no longer goes through the wrapper code, we also
    simply return 0 in mlx4_DUMP_ETH_STATS_wrapper (i.e.the function succeeds,
    but the returned data will be all zeroes).
    No need to test if it is the Hypervisor going through the wrapper.

    Fixes: f9baff509f8a ("mlx4_core: Add "native" argument to mlx4_cmd ...")
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Jack Morgenstein
     
  • Currently interrupt test that is part of ethtool selftest runs the
    check over all interrupt vectors of the device.
    In mlx4_en package part of interrupt vectors are uninitialized since
    mlx4_ib doesn't exist. This causes NOP FW command to time out.
    Change logic to test current port interrupt vectors only.

    Signed-off-by: Eugenia Emantayev
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Eugenia Emantayev
     
  • In the Hypervisor, there are several FW commands which are invoked
    before the comm channel is initialized (in mlx4_multi_func_init).
    These include MOD_STAT_CONFIG, QUERY_DEV_CAP, INIT_HCA, and others.

    If any of these commands fails, say with a timeout, the Hypervisor
    driver enters the internal error reset flow. In this flow, the driver
    attempts to notify all slaves via the comm channel that an internal error
    has occurred.

    Since the comm channel has not yet been initialized (i.e., mapped via
    ioremap), this will cause dereferencing a NULL pointer.

    To fix this, do not access the comm channel in the internal error flow
    if it has not yet been initialized.

    Fixes: 55ad359225b2 ("net/mlx4_core: Enable device recovery flow with SRIOV")
    Fixes: ab9c17a009ee ("mlx4_core: Modify driver initialization flow to accommodate SRIOV for Ethernet")
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Jack Morgenstein
     
  • Fix a kernel panic that occurs as a result of an asynchronous event
    handled in roce_gid_mgmt:
    mlx4_en_get_drvinfo is called and accesses freed resources.

    This happens in a shutdown flow only, since pci device is destroyed
    while netdevice is still alive.

    Fixes: c27a02cd94d6 ("mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC")
    Signed-off-by: Eugenia Emantayev
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Eugenia Emantayev
     
  • Currently there is a race between incoming traffic and
    initialization flow. HW is able to receive the packets
    after INIT_PORT is done and unicast steering is configured.
    Before we set priv->port_up NAPI is not scheduled and
    receive queues become full. Therefore we never get
    new interrupts about the completions.
    This issue could happen if running heavy traffic during
    bringing port up.
    The resolution is to schedule NAPI once port_up is set.
    If receive queues were full this will process all cqes
    and release them.

    Fixes: c27a02cd94d6 ("mlx4_en: Add driver for Mellanox ConnectX 10GbE NIC")
    Signed-off-by: Erez Shitrit
    Signed-off-by: Eugenia Emantayev
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Erez Shitrit
     
  • When doing roundup_pow_of_two for large enough number with
    bit 31, an overflow will occur and a value equal to 1 will
    be returned. In this case 1 will be subtracted from the return
    value and division by zero will be reached.

    Fixes: 31c128b66e5b ("net/mlx4_en: Choose time-stamping shift value according to HW frequency")
    Signed-off-by: Eugenia Emantayev
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Eugenia Emantayev
     
  • Change the default status of quality of service back to disabled,
    as it hurts performance in some cases.

    Fixes: 38438f7c7e8c ("net/mlx4: Set enhanced QoS support by default when ...")
    Signed-off-by: Moshe Lazer
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Moshe Lazer
     
  • When only one port type is supported, it should be read only.
    We reject changing requests, even to the auto sense mode.

    Fixes: 27bf91d6a0d5 ("mlx4_core: Add link type autosensing")
    Signed-off-by: Maor Gottlieb
    Signed-off-by: Moshe Shemesh
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Maor Gottlieb
     
  • The resource type enum in the resource tracker was incorrect.
    RES_EQ was put in the position of RES_NPORT_ID (a FC resource).

    Since the remaining resources maintain their current values,
    and RES_EQ is not passed from slaves to the hypervisor in any
    FW command, this change affects only the hypervisor.
    Therefore, there is no backwards-compatibility issue.

    Fixes: 623ed84b1f95 ("mlx4_core: initial header-file changes for SRIOV support")
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Moshe Shemesh
    Signed-off-by: Tariq Toukan
    Signed-off-by: David S. Miller

    Jack Morgenstein
     
  • Pull ubi/ubifs fixes from Richard Weinberger:
    "This contains fixes for issues in both UBI and UBIFS:

    - A regression wrt overlayfs, introduced in -rc2.
    - An UBI issue, found by Dan Carpenter's static checker"

    * tag 'upstream-4.9-rc3' of git://git.infradead.org/linux-ubifs:
    ubifs: Fix regression in ubifs_readdir()
    ubi: fastmap: Fix add_vol() return value test in ubi_attach_fastmap()

    Linus Torvalds
     
  • Schedule these XPORT event tasks in the shared workqueue
    so that IRQs are not freed in an interrupt context when
    sub-CRQs are released.

    Signed-off-by: Thomas Falcon
    Signed-off-by: David S. Miller

    Thomas Falcon
     
  • The MAC is capable of RGMII mode and that is probably a more typical
    connection type than GMII today (eg it is used by Marvell Reference
    designs for several SOCs). Let DT users specify the standard

    phy-connection-type = "rgmii-id";

    On a phy node.

    Signed-off-by: Jason Gunthorpe
    Reviewed-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Jason Gunthorpe
     
  • Pull ARM SoC fixes from Olof Johansson:
    "We haven't seen a whole lot of fixes for the first two weeks since the
    merge window, but here is the batch that we have at the moment.

    Nothing sticks out as particularly bad or scary, it's mostly a handful
    of smaller fixes to several platforms. The Uniphier reset controller
    changes could probably have been delayed to 4.10, but they're not
    scary and just plumbing up driver changes that went in during the
    merge window.

    We're also adding another maintainer to Marvell Berlin platforms, to
    help out when Sebastian is too busy. Yay teamwork!"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: imx: mach-imx6q: Fix the PHY ID mask for AR8031
    ARM: dts: vf610: fix IRQ flag of global timer
    ARM: imx: gpc: Fix the imx_gpc_genpd_init() error path
    ARM: imx: gpc: Initialize all power domains
    arm64: dts: Updated NAND DT properties for NS2 SVK
    arm64: dts: uniphier: change MIO node to SD control node
    ARM: dts: uniphier: change MIO node to SD control node
    reset: uniphier: rename MIO reset to SD reset for Pro5, PXs2, LD20 SoCs
    arm64: uniphier: select ARCH_HAS_RESET_CONTROLLER
    ARM: uniphier: select ARCH_HAS_RESET_CONTROLLER
    arm64: dts: Add timer erratum property for LS2080A and LS1043A
    arm64: dts: rockchip: remove the abuse of keep-power-in-suspend
    ARM: multi_v7_defconfig: Enable Intel e1000e driver
    MAINTAINERS: add myself as Marvell berlin SoC maintainer
    bus: qcom-ebi2: depend on ARCH_QCOM or COMPILE_TEST
    ARM: dts: fix the SD card on the Snowball
    arm64: dts: rockchip: remove always-on and boot-on from vcc_sd
    arm64: dts: marvell: fix clocksource for CP110 master SPI0
    ARM: mvebu: Select corediv clk for all mvebu v7 SoC

    Linus Torvalds
     
  • This reverts commit e3f74b841d48
    ("hv_netvsc: report vmbus name in ethtool")'
    because of problem introduced by commit f9a56e5d6a0ba
    ("Drivers: hv: make VMBus bus ids persistent").
    This changed the format of the vmbus name and this new format is too
    long to fit in the bus_info field of ethtool.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Fix to release resources properly in error handling path of
    alloc_uld_rxqs(), This patch also removes unwanted arguments
    and avoids calling the same function twice.

    Fixes: 94cdb8bb993a (cxgb4: Add support for dynamic allocation
    of resources for ULD
    Signed-off-by: Ganesh Goudar
    Signed-off-by: David S. Miller

    Ganesh Goudar
     
  • There is an old warning about mlx4_SW2HW_EQ_wrapper on x86:

    ethernet/mellanox/mlx4/resource_tracker.c: In function ‘mlx4_SW2HW_EQ_wrapper’:
    ethernet/mellanox/mlx4/resource_tracker.c:3071:10: error: ‘eq’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

    The problem here is that gcc won't track the state of the variable
    across a spin_unlock. Moving the assignment out of the lock is
    safe here and avoids the warning.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Yishai Hadas
    Signed-off-by: David S. Miller

    Arnd Bergmann
     
  • Pull char/misc driver fixes from Greg KH:
    "Here are a few small char/misc driver fixes for reported issues.

    The "biggest" are two binder fixes for reported issues that have been
    shipping in Android phones for a while now, the others are various
    fixes for reported problems.

    And there's a MAINTAINERS update for good measure.

    All have been in linux-next with no reported issues"

    * tag 'char-misc-4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    MAINTAINERS: Add entry for genwqe driver
    VMCI: Doorbell create and destroy fixes
    GenWQE: Fix bad page access during abort of resource allocation
    vme: vme_get_size potentially returning incorrect value on failure
    extcon: qcom-spmi-misc: Sync the extcon state on interrupt
    hv: do not lose pending heartbeat vmbus packets
    mei: txe: don't clean an unprocessed interrupt cause.
    ANDROID: binder: Clear binder and cookie when setting handle in flat binder struct
    ANDROID: binder: Add strong ref checks

    Linus Torvalds
     
  • …/masahiroy/linux-uniphier into fixes

    UniPhier ARM SoC fixes for v4.9

    - Add "select ARCH_HAS_RESET_CONTROLLER" in Kconfig
    - Rename wrongly-named mioctrl to sdctrl

    * tag 'uniphier-fixes-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier:
    arm64: dts: uniphier: change MIO node to SD control node
    ARM: dts: uniphier: change MIO node to SD control node
    reset: uniphier: rename MIO reset to SD reset for Pro5, PXs2, LD20 SoCs
    arm64: uniphier: select ARCH_HAS_RESET_CONTROLLER
    ARM: uniphier: select ARCH_HAS_RESET_CONTROLLER

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     
  • Pull driver core fixes from Greg KH:
    "Here are two small driver core / kernfs fixes for 4.9-rc3.

    One makes the Kconfig entry for DEBUG_TEST_DRIVER_REMOVE a bit more
    explicit that this is a crazy thing to enable for a distro kernel
    (thanks for trying Fedora!), the other resolves an issue with vim
    opening kernfs files (sysfs, configfs, etc.)

    Both have been in linux-next with no reported issues"

    * tag 'driver-core-4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    driver core: Make Kconfig text for DEBUG_TEST_DRIVER_REMOVE stronger
    kernfs: Add noop_fsync to supported kernfs_file_fops

    Linus Torvalds
     
  • Pull staging and IIO driver fixes from Greg KH:
    "Here are some small staging and iio driver fixes for reported issues
    for 4.9-rc3. Nothing major, the "largest" being a lustre fix for a
    sysfs file that was obviously wrong, and had never been tested, so it
    was moved to debugfs as that is where it belongs. The others are small
    bug fixes for reported issues with various staging or iio drivers.

    All have been in linux-next for a while with no reported issues"

    * tag 'staging-4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    greybus: fix a leak on error in gb_module_create()
    greybus: es2: fix error return code in ap_probe()
    greybus: arche-platform: Add missing of_node_put() in arche_platform_change_state()
    staging: android: ion: Fix error handling in ion_query_heaps()
    iio: accel: sca3000_core: avoid potentially uninitialized variable
    iio:chemical:atlas-ph-sensor: Fix use of 32 bit int to hold 16 bit big endian value
    staging/lustre/llite: Move unstable_stats from sysfs to debugfs
    Staging: wilc1000: Fix kernel Oops on opening the device
    staging: android/ion: testing the wrong variable
    Staging: greybus: uart: Use gbphy_dev->dev instead of bundle->dev
    Staging: greybus: gpio: Use gbphy_dev->dev instead of bundle->dev
    iio: adc: ti-adc081c: Select IIO_TRIGGERED_BUFFER to prevent build errors
    iio: maxim_thermocouple: Align 16 bit big endian value of raw reads

    Linus Torvalds
     
  • Pull tty/serial driver fixes from Greg KH:
    "Here are a number of small tty and serial driver fixes for reported
    issues for 4.9-rc3. Nothing major, but they do resolve a bunch of
    problems with the tty core changes that are in 4.9-rc1, and finally
    the atmel serial driver is back working properly.

    All have been in linux-next with no reported issues"

    * tag 'tty-4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: serial_core: fix NULL struct tty pointer access in uart_write_wakeup
    tty: serial_core: Fix serial console crash on port shutdown
    tty/serial: at91: fix hardware handshake on Atmel platforms
    vt: clear selection before resizing
    sc16is7xx: always write state when configuring GPIO as an output
    sh-sci: document R8A7743/5 support
    tty: serial: 8250: 8250_core: NXP SC16C2552 workaround
    tty: limit terminal size to 4M chars
    tty: serial: fsl_lpuart: Fix Tx DMA edge case
    serial: 8250_lpss: enable MSI for sure
    serial: core: fix console problems on uart_close
    serial: 8250_uniphier: fix clearing divisor latch access bit
    serial: 8250_uniphier: fix more unterminated string
    serial: pch_uart: add terminate entry for dmi_system_id tables
    devicetree: bindings: uart: Add new compatible string for ZynqMP
    serial: xuartps: Add new compatible string for ZynqMP
    serial: SERIAL_STM32 should depend on HAS_DMA
    serial: stm32: Fix comparisons with undefined register
    tty: vt, fix bogus division in csi_J

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are a number of small USB driver fixes for 4.9-rc3.

    There is the usual number of gadget and xhci patches in here to
    resolved reported issues, as well as some usb-serial driver fixes and
    new device ids.

    All have been in linux-next with no reported issues"

    * tag 'usb-4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (26 commits)
    usb: chipidea: host: fix NULL ptr dereference during shutdown
    usb: renesas_usbhs: add wait after initialization for R-Car Gen3
    usb: increase ohci watchdog delay to 275 msec
    usb: musb: Call pm_runtime from musb_gadget_queue
    usb: musb: Fix hardirq-safe hardirq-unsafe lock order error
    usb: ehci-platform: increase EHCI_MAX_RSTS to 4
    usb: ohci-at91: Set RemoteWakeupConnected bit explicitly.
    USB: serial: fix potential NULL-dereference at probe
    xhci: use default USB_RESUME_TIMEOUT when resuming ports.
    xhci: workaround for hosts missing CAS bit
    xhci: add restart quirk for Intel Wildcatpoint PCH
    USB: serial: cp210x: fix tiocmget error handling
    wusb: fix error return code in wusb_prf()
    Revert "Documentation: devicetree: dwc2: Deprecate g-tx-fifo-size"
    Revert "usb: dwc2: gadget: fix TX FIFO size and address initialization"
    Revert "usb: dwc2: gadget: change variable name to more meaningful"
    USB: serial: ftdi_sio: add support for Infineon TriBoard TC2X7
    wusb: Stop using the stack for sg crypto scratch space
    usb: dwc3: Fix size used in dma_free_coherent()
    usb: gadget: f_fs: stop sleeping in ffs_func_eps_disable
    ...

    Linus Torvalds
     
  • Currently the firmware can't work with a page with dma address 0.
    Passing such an address to the firmware will cause the give_pages
    command to fail.

    To avoid this, in case we get a 0 dma address of a page from the
    dma engine, we avoid passing it to FW by remapping to get an address
    other than 0.

    Fixes: bf0bf77f6519 ('mlx5: Support communicating arbitrary host...')
    Signed-off-by: Noa Osherovich
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Noa Osherovich
     
  • In case that the kernel PCI error handlers are not called, we will
    trigger our own recovery flow.

    The health work will give priority to the kernel pci error handlers to
    recover the PCI by waiting for a small period, if the pci error handlers
    are not triggered the manual recovery flow will be executed.

    We don't save pci state in case of manual recovery because it will ruin the
    pci configuration space and we will lose dma sync.

    Fixes: 89d44f0a6c73 ('net/mlx5_core: Add pci error handlers to mlx5_core driver')
    Signed-off-by: Mohamad Haj Yahia
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Mohamad Haj Yahia
     
  • Currently there is a race between the health care work and the kernel
    pci error handlers because both of them detect the error, the first one
    to be called will do the error handling.
    There is a chance that health care will disable the pci after resuming
    pci slot.
    Also create a separate WQ because now we will have two types of health
    works, one for the error detection and one for the recovery.

    Fixes: 89d44f0a6c73 ('net/mlx5_core: Add pci error handlers to mlx5_core driver')
    Signed-off-by: Mohamad Haj Yahia
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Mohamad Haj Yahia
     
  • The health sick status should be cleared when we start the health poll.
    This is crucial for driver reload (unload + load) in order to behave
    right in case of health issue.

    Fixes: fd76ee4da55a ('net/mlx5_core: Fix internal error detection conditions')
    Signed-off-by: Mohamad Haj Yahia
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Mohamad Haj Yahia
     
  • The Ingress/Egress ACL enable function may fail and it should return
    status to its caller to avoid NULL pointer dereference.

    Fixes: f942380c1239 ('net/mlx5: E-Switch, Vport ingress/egress ACLs rules for spoofchk')
    Signed-off-by: Mohamad Haj Yahia
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Mohamad Haj Yahia
     
  • Detaching the netdev before unregistering it cause some netdev cleanup
    ndos to fail because they check presence of the netdev, so we need to
    unregister the netdev first.

    Fixes: 26e59d8077a3 ('net/mlx5e: Implement mlx5e interface attach/detach callbacks')
    Signed-off-by: Mohamad Haj Yahia
    Signed-off-by: Saeed Mahameed
    Signed-off-by: David S. Miller

    Mohamad Haj Yahia
     
  • Instead of predicting the index of the wanted LRO timeout value from
    hardware capabilities, look for the nearest LRO timeout value.

    Fixes: 5c50368f3831 ('net/mlx5e: Light-weight netdev open/stop')
    Signed-off-by: Saeed Mahameed
    Signed-off-by: Mohamad Haj Yahia
    Signed-off-by: David S. Miller

    Saeed Mahameed