1. 11 May, 2018 1 commit
  2. 10 May, 2018 39 commits
    • Petr Machata's avatar
      rocker: Postpone filtering of !added_by_user FDB · ec9efb52
      Petr Machata authored
      Breaking out of the switch in rocker_switchdev_event() still ends up
      scheduling work, except an ill-defined one. This leads to an OOPS cited
      below. Fix by postponing the check until rocker_switchdev_event_work().
      
      [   23.148476] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
      [   23.148810] PGD 0 P4D 0
      [   23.148982] Oops: 0000 [#1] PREEMPT SMP PTI
      [   23.149190] Modules linked in: bridge stp llc iptable_nat nf_nat_ipv4 nf_nat e1000 rocker
      [   23.149768] CPU: 0 PID: 239 Comm: kworker/u2:4 Not tainted 4.17.0-rc3-net_next_queue-custom #6
      [   23.150298] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-2.fc27 04/01/2014
      [   23.150868] Workqueue: rocker rocker_switchdev_event_work [rocker]
      [   23.151258] RIP: 0010:ofdpa_port_fdb+0x7b/0x230 [rocker]
      [   23.151597] RSP: 0018:ffffc900004b3e18 EFLAGS: 00010246
      [   23.151952] RAX: 00000000fffbc68c RBX: 0000000000000000 RCX: 0000000000000000
      [   23.152363] RDX: 0000000000000010 RSI: ffff88003b4471e0 RDI: 00000000ffffffff
      [   23.152768] RBP: ffff88003b4471c0 R08: ffff88003b4471e0 R09: ffff88003b4471c0
      [   23.153141] R10: 0000000000000000 R11: 0000000000000000 R12: ffff880036caf000
      [   23.153515] R13: 0000000000000000 R14: 0000000000000000 R15: ffff88003bc00000
      [   23.153919] FS:  0000000000000000(0000) GS:ffff88003fc00000(0000) knlGS:0000000000000000
      [   23.154444] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   23.154806] CR2: 0000000000000000 CR3: 0000000036eb6000 CR4: 00000000000006f0
      [   23.155194] Call Trace:
      [   23.155472]  rocker_switchdev_event_work+0x9b/0xd0 [rocker]
      [   23.155850]  ? __schedule+0x231/0x700
      [   23.156175]  process_one_work+0x1cf/0x3e0
      [   23.156490]  worker_thread+0x26/0x3d0
      [   23.156795]  ? trace_event_raw_event_workqueue_execute_start+0x80/0x80
      [   23.157181]  kthread+0x10e/0x130
      [   23.157485]  ? kthread_create_worker_on_cpu+0x40/0x40
      [   23.157824]  ret_from_fork+0x35/0x40
      [   23.158174] Code: 00 00 c1 e8 02 4c 8d 45 20 bf ff ff ff ff 83 e0 01 4c 89 65 20 88 45 14 48 8b 05 21 da 1f e2 4c 89 c6 4c 89 44 24 10 48 89 45 18 <41> 8b 45 00 89 45 28 41 0f b7 45 04 66 89 45 2c 0f b7 44 24 04
      [   23.159346] RIP: ofdpa_port_fdb+0x7b/0x230 [rocker] RSP: ffffc900004b3e18
      [   23.159742] CR2: 0000000000000000
      [   23.160088] ---[ end trace f9b16d4cb6df0629 ]---
      
      Fixes: 816a3bed ("switchdev: Add fdb.added_by_user to switchdev notifications")
      Suggested-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
      Reviewed-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ec9efb52
    • Boris Pismenny's avatar
      tls: Fix tls_device initialization · 895262d8
      Boris Pismenny authored
      Add sg table initialization to fix a BUG_ON encountered when enabling
      CONFIG_DEBUG_SG.
      Signed-off-by: default avatarBoris Pismenny <borisp@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      895262d8
    • Ganesh Goudar's avatar
      cxgb4: fix the wrong conversion of Mbps to Kbps · b3c594ab
      Ganesh Goudar authored
      fix the wrong conversion where 1 Mbps was converted to
      1024 Kbps.
      Signed-off-by: default avatarGanesh Goudar <ganeshgr@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b3c594ab
    • David S. Miller's avatar
      Merge branch 'mlxsw-Support-VLAN-devices-in-mirroring-offloads' · ccb02638
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Support VLAN devices in mirroring offloads
      
      Petr says:
      
      When offloading "tc action mirred mirror", there are several scenarios
      where VLAN devices can show up, that mlxsw can offload on Spectrum
      machines.
      
      I) A direct mirror to a VLAN device on top of a front-panel port device
         (commonly referred to as "RSPAN")
      
      II) VLAN device in egress path of a packet when resolving a mirror to
          gretap or ip6gretap netdevice.
      
      Specifically in the latter case, the following are the cases that can be
      offloaded:
      
      IIa) VLAN device directly above a physical device.
      IIb) A VLAN-unaware bridge where the egress device is as in IIa.
      IIc) VLAN device on top of a VLAN-aware bridge where the egress device
           is a physical device.
      
      This patch set implements all the above cases.
      
      First, in patch #1, br_vlan_get_info() is extended to allow bridge
      master argument.
      
      Case I is then implemented in patches #2 and #3, case II in patch #4.
      
      Note that handling of VLAN protocol is not included. In case I, mirrored
      packets may end up being double-tagged, and it might be reasonable for
      the outer tag to be an 802.1ad. However, the protocol type configuration
      would have to be put on the same VLAN netdevice that represents normal
      VLAN traffic, and mlxsw currently ignores this setting in that case. Thus
      this support was left out and the encapsulation always uses 802.1q
      protocol.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccb02638
    • Petr Machata's avatar
      mlxsw: spectrum_span: Support VLAN under mirror-to-gretap · 03c44132
      Petr Machata authored
      When mirroring to a gretap or ip6gretap device, allow the underlay
      packet path to include VLAN devices. The following configurations are
      supported in underlay:
      
      - vlan over phys
      - vlan-unaware bridge where the egress device is vlan over phys
      - vlan over vlan-aware bridge where the egress device is phys
      Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      03c44132
    • Petr Machata's avatar
      mlxsw: spectrum_span: Support mirror-to-VLAN · e00698d1
      Petr Machata authored
      Offload "tc action mirred mirror" to a device that is a vlan device on
      top of a front-panel port device. The hardware encapsulates the mirrored
      packets in a VLAN tag. That includes the case that the mirrored traffic
      is already VLAN-tagged--in that case the monitor traffic will be
      double-tagged, just like in the software path.
      Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e00698d1
    • Petr Machata's avatar
      mlxsw: reg: Add MLXSW_REG_MPAT_SPAN_TYPE_REMOTE_ETH · 41947662
      Petr Machata authored
      Add MLXSW_REG_MPAT_SPAN_TYPE_REMOTE_ETH to support VLAN-encapsulated
      port mirroring.
      Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      41947662
    • Petr Machata's avatar
      net: bridge: Allow bridge master in br_vlan_get_info() · 2b18d79e
      Petr Machata authored
      Mirroring offload in mlxsw needs to check that a given VLAN is allowed
      to ingress the bridge device. br_vlan_get_info() is the function that is
      used for this, however currently it only supports bridge port devices.
      Extend it to support bridge masters as well.
      Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Acked-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2b18d79e
    • Jon Maxwell's avatar
      tcp: Add mark for TIMEWAIT sockets · 00483690
      Jon Maxwell authored
      This version has some suggestions by Eric Dumazet:
      
      - Use a local variable for the mark in IPv6 instead of ctl_sk to avoid SMP
      races.
      - Use the more elegant "IP4_REPLY_MARK(net, skb->mark) ?: sk->sk_mark"
      statement.
      - Factorize code as sk_fullsock() check is not necessary.
      
      Aidan McGurn from Openwave Mobility systems reported the following bug:
      
      "Marked routing is broken on customer deployment. Its effects are large
      increase in Uplink retransmissions caused by the client never receiving
      the final ACK to their FINACK - this ACK misses the mark and routes out
      of the incorrect route."
      
      Currently marks are added to sk_buffs for replies when the "fwmark_reflect"
      sysctl is enabled. But not for TW sockets that had sk->sk_mark set via
      setsockopt(SO_MARK..).
      
      Fix this in IPv4/v6 by adding tw->tw_mark for TIME_WAIT sockets. Copy the the
      original sk->sk_mark in __inet_twsk_hashdance() to the new tw->tw_mark location.
      Then progate this so that the skb gets sent with the correct mark. Do the same
      for resets. Give the "fwmark_reflect" sysctl precedence over sk->sk_mark so that
      netfilter rules are still honored.
      Signed-off-by: default avatarJon Maxwell <jmaxwell37@gmail.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00483690
    • Joe Perches's avatar
      net: ipv4: remove define INET_CSK_DEBUG and unnecessary EXPORT_SYMBOL · 03bdfc00
      Joe Perches authored
      INET_CSK_DEBUG is always set and only is used for 2 pr_debug calls.
      
      EXPORT_SYMBOL(inet_csk_timer_bug_msg) is only used by these 2
      pr_debug calls and is also unnecessary as the exported string can
      be used directly by these calls.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      03bdfc00
    • Felix Manlunas's avatar
    • Felix Manlunas's avatar
      liquidio: monitor all of Octeon's cores in watchdog thread · f6047576
      Felix Manlunas authored
      The liquidio_watchdog kernel thread is watching over only 12 cores of the
      Octeon CN23XX; it's neglecting the other 4 cores that are present in the
      CN2360.  Fix it by defining LIO_MAX_CORES as 16.
      Signed-off-by: default avatarFelix Manlunas <felix.manlunas@cavium.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f6047576
    • David S. Miller's avatar
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · e72a7dd7
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      100GbE Intel Wired LAN Driver Updates 2018-05-09
      
      This series contains updates to fm10k only.
      
      Jake provides all the changes in the series, starting with adding
      support for accelerated MACVLAN devices.  Reduced code duplication by
      implementing a macro to be used when setting up the type specific
      macros.  Avoided potential bugs with stats by using a macro to calculate
      the array size when passing to ensure that the size is correct.
      
      v2: changed macro reference '#' with __stringify() as suggested by
          Joe Perches to patch 2 of the series.  Also made sure the updated
          series of patches is actually pushed to my kernel.org tree
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e72a7dd7
    • Eric Dumazet's avatar
      net/ipv6: fix lock imbalance in ip6_route_del() · 9e575010
      Eric Dumazet authored
      WARNING: lock held when returning to user space!
      4.17.0-rc3+ #37 Not tainted
      
      syz-executor1/27662 is leaving the kernel with locks still held!
      1 lock held by syz-executor1/27662:
       #0: 00000000f661aee7 (rcu_read_lock){....}, at: ip6_route_del+0xea/0x13f0 net/ipv6/route.c:3206
      BUG: scheduling while atomic: syz-executor1/27662/0x00000002
      INFO: lockdep is turned off.
      Modules linked in:
      Kernel panic - not syncing: scheduling while atomic
      
      CPU: 1 PID: 27662 Comm: syz-executor1 Not tainted 4.17.0-rc3+ #37
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      Call Trace:
       __dump_stack lib/dump_stack.c:77 [inline]
       dump_stack+0x1b9/0x294 lib/dump_stack.c:113
       panic+0x22f/0x4de kernel/panic.c:184
       __schedule_bug.cold.85+0xdf/0xdf kernel/sched/core.c:3290
       schedule_debug kernel/sched/core.c:3307 [inline]
       __schedule+0x139e/0x1e30 kernel/sched/core.c:3412
       schedule+0xef/0x430 kernel/sched/core.c:3549
       exit_to_usermode_loop+0x220/0x310 arch/x86/entry/common.c:152
       prepare_exit_to_usermode arch/x86/entry/common.c:196 [inline]
       syscall_return_slowpath arch/x86/entry/common.c:265 [inline]
       do_syscall_64+0x6ac/0x800 arch/x86/entry/common.c:290
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x455979
      RSP: 002b:00007fbf4051dc68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
      RAX: 0000000000000000 RBX: 00007fbf4051e6d4 RCX: 0000000000455979
      RDX: 00000000200001c0 RSI: 000000000000890c RDI: 0000000000000013
      RBP: 000000000072bea0 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
      R13: 00000000000003c8 R14: 00000000006f9b60 R15: 0000000000000000
      Dumping ftrace buffer:
         (ftrace buffer empty)
      Kernel Offset: disabled
      Rebooting in 86400 seconds..
      
      Fixes: 23fb93a4 ("net/ipv6: Cleanup exception and cache route handling")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: David Ahern <dsahern@gmail.com>
      Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
      Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9e575010
    • David S. Miller's avatar
      Merge branch 'hns3-misc-fixes' · c320e49d
      David S. Miller authored
      Salil Mehta says:
      
      ====================
      Misc bug fixes for HNS3 Ethernet Driver
      
      Fixes to some of the bugs found during system test, internal review
      and clean-up
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c320e49d
    • Yunsheng Lin's avatar
      net: hns3: refactor the loopback related function · e4d68dae
      Yunsheng Lin authored
      This patch refactors the loopback related function in order
      to support the serdes loopback.
      Signed-off-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e4d68dae
    • Yunsheng Lin's avatar
      net: hns3: fix for cleaning ring problem · beebca3a
      Yunsheng Lin authored
      The head or tail in hardware is not longer valid when resetting,
      current hns3_clear_all_ring use them to clean the ring, which
      will cause problem during resetting.
      
      This patch fixes it by using next_to_use and next_to_clean in
      the ring struct.
      
      Fixes: 76ad4f0e ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
      Signed-off-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      beebca3a
    • Yunsheng Lin's avatar
      net: hns3: remove add/del_tunnel_udp in hns3_enet module · 0a78a1df
      Yunsheng Lin authored
      The add/del_tunnel_udp is not implemented in hclge_main moulde,
      the NETIF_F_RX_UDP_TUNNEL_PORT feature bit is added automatically
      by stack when ndo_udp_tunnel_add is not null in dev->netdev_ops.
      
      This patch removes the add/del_tunnel_udp related function, for
      we do not support this feature now.
      Signed-off-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0a78a1df
    • Yunsheng Lin's avatar
      net: hns3: Fix for setting mac address when resetting · f09555ff
      Yunsheng Lin authored
      When hns3_init_mac_addr is called during reset process, it will
      get the mac address from NCL_CONFIG and set it to hardware. If
      user has changed the mac address, then the mac address set by
      user is lost during resetting.
      
      This patch fixes it by not getting the mac address from NCL_CONFIG
      when resetting.
      
      Fixes: 424eb834 ("net: hns3: Unified HNS3 {VF|PF} Ethernet Driver for hip08 SoC")
      Signed-off-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f09555ff
    • Stephen Hemminger's avatar
      hv_netvsc: typo in NDIS RSS parameters structure · bfcbcb67
      Stephen Hemminger authored
      Fix simple misspelling kashkey_offset should be hashkey_offset.
      Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bfcbcb67
    • Sekhar Nori's avatar
      drivers: net: davinci_mdio: prevent spurious timeout · 54472edf
      Sekhar Nori authored
      A well timed kernel preemption in the time_after() loop
      in wait_for_idle() can result in a spurious timeout
      error to be returned.
      
      Fix it by using readl_poll_timeout() which takes care of
      this issue.
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      54472edf
    • David S. Miller's avatar
      Merge branch 'dsa-mv88e6xxx-cleanup-Global-Control-2-register' · bfe1e616
      David S. Miller authored
      Vivien Didelot says:
      
      ====================
      net: dsa: mv88e6xxx: cleanup Global Control 2 register
      
      The mv88e6xxx driver still writes arbitrary values in the Global 1
      Control 2 register at setup, which layout differs a lot between chips.
      This results in an inconsistent configuration, for example with the
      Remote Management Unit (RMU).
      
      The first patch adds an operation for the Cascade Port bits, the second
      patch sets the device number in the device mapping function and the
      third patch adds an operation to correctly disable the RMU.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bfe1e616
    • Vivien Didelot's avatar
      net: dsa: mv88e6xxx: add RMU disable op · 9e5baf9b
      Vivien Didelot authored
      The RMU mode bits moved a lot within the Global Control 2 register of
      the Marvell switch families. Add an .rmu_disable op to support at least
      3 known alternatives.
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9e5baf9b
    • Vivien Didelot's avatar
      net: dsa: mv88e6xxx: set device number · 23c98919
      Vivien Didelot authored
      All Marvell switches supported by mv88e6xxx have to set their device
      number in the Global Control 2 register. Extract this in a read then
      write function, called from the device mapping setup code.
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      23c98919
    • Vivien Didelot's avatar
      net: dsa: mv88e6xxx: add a cascade port op · 02317e68
      Vivien Didelot authored
      Only the 88E6185 family has bits 15:12 Cascade Port bits in the Global
      Control 2 register. Hence inconsistent values are actually written in
      this register for other families.
      
      Add a .set_cascade_port operation to isolate the 88E6185 case, and call
      it from the device mapping setup function.
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02317e68
    • David S. Miller's avatar
      Merge branch 'mlx4-misc-next' · 79a6fd23
      David S. Miller authored
      Tariq Toukan says:
      
      ====================
      mlx4_core misc for 4.18
      
      This patchset contains misc enhancements from the team
      to the mlx4 Core driver.
      
      Patch 1 by Eran adds driver version report in FW.
      Patch 2 by Yishai implements suspend/resume PCI callbacks.
      Patch 3 extends the range of an existing module param from boolean to numerical.
      
      Series generated against net-next commit:
      53a7bdfb dt-bindings: dsa: Remove unnecessary #address/#size-cells
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79a6fd23
    • Tariq Toukan's avatar
      net/mlx4_core: Use msi_x module param to limit num of MSI-X irqs · e5732838
      Tariq Toukan authored
      Extend the boolean interpretation of msi_x module parameter
      to numerical, as follows:
      
      0   - Don't use MSI-X.
      1   - Use MSI-X, driver decides the num of MSI-X irqs.
      >=2 - Use MSI-X, limit number of MSI-X irqs to msi_x.
            In SRIOV, this limits the number of MSI-X irqs per VF.
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Cc: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
      Reviewed-by: default avatarAjaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e5732838
    • Yishai Hadas's avatar
      net/mlx4_core: Add PCI calls for suspend/resume · 86a3e5d0
      Yishai Hadas authored
      Implement suspend/resume callbacks in struct pci_driver.
      Signed-off-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86a3e5d0
    • Eran Ben Elisha's avatar
      net/mlx4_core: Report driver version to FW · e5c9a705
      Eran Ben Elisha authored
      If supported, write a driver version string to FW as part of the
      INIT_HCA command.
      
      Example of driver version: "Linux,mlx4_core,4.0-0"
      Signed-off-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e5c9a705
    • Vivien Didelot's avatar
      net: dsa: fix added_by_user switchdev notification · a37fb855
      Vivien Didelot authored
      Commit 161d82de ("net: bridge: Notify about !added_by_user FDB
      entries") causes the below oops when bringing up a slave interface,
      because dsa_port_fdb_add is still scheduled, but with a NULL address.
      
      To fix this, keep the dsa_slave_switchdev_event function agnostic of the
      notified info structure and handle the added_by_user flag in the
      specific dsa_slave_switchdev_event_work function.
      
          [   75.512263] Unable to handle kernel NULL pointer dereference at virtual address 00000000
          [   75.519063] pgd = (ptrval)
          [   75.520545] [00000000] *pgd=00000000
          [   75.522839] Internal error: Oops: 17 [#1] ARM
          [   75.525898] Modules linked in:
          [   75.527673] CPU: 0 PID: 9 Comm: kworker/u2:1 Not tainted 4.17.0-rc2 #78
          [   75.532988] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
          [   75.538153] Workqueue: dsa_ordered dsa_slave_switchdev_event_work
          [   75.542970] PC is at mv88e6xxx_port_db_load_purge+0x60/0x1b0
          [   75.547341] LR is at mdiobus_read_nested+0x6c/0x78
          [   75.550833] pc : [<804cd5c0>]    lr : [<804bba84>]    psr: 60070013
          [   75.555796] sp : 9f54bd78  ip : 9f54bd87  fp : 9f54bddc
          [   75.559719] r10: 00000000  r9 : 0000000e  r8 : 9f6a6010
          [   75.563643] r7 : 00000000  r6 : 81203048  r5 : 9f6a6010  r4 : 9f6a601c
          [   75.568867] r3 : 00000000  r2 : 00000000  r1 : 0000000d  r0 : 00000000
          [   75.574094] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
          [   75.579933] Control: 10c53c7d  Table: 9de20059  DAC: 00000051
          [   75.584384] Process kworker/u2:1 (pid: 9, stack limit = 0x(ptrval))
          [   75.589349] Stack: (0x9f54bd78 to 0x9f54c000)
          [   75.592406] bd60:                                                       00000000 00000000
          [   75.599295] bd80: 00000391 9f299d10 9f299d68 8014317c 9f7f0000 8120af00 00006dc2 00000000
          [   75.606186] bda0: 8120af00 00000000 9f54bdec 1c9f5d92 8014317c 9f6a601c 9f6a6010 00000000
          [   75.613076] bdc0: 00000000 00000000 9dd1141c 8125a0b4 9f54be0c 9f54bde0 804cd8a8 804cd56c
          [   75.619966] bde0: 0000000e 80143680 00000001 9dce9c1c 81203048 9dce9c10 00000003 00000000
          [   75.626858] be00: 9f54be5c 9f54be10 806abcac 804cd864 9f54be54 80143664 8014317c 80143054
          [   75.633748] be20: ffcaa81d 00000000 812030b0 1c9f5d92 00000000 81203048 9f54beb4 00000003
          [   75.640639] be40: ffffffff 00000000 9dd1141c 8125a0b4 9f54be84 9f54be60 80138e98 806abb18
          [   75.647529] be60: 81203048 9ddc4000 9dce9c54 9f72a300 00000000 00000000 9f54be9c 9f54be88
          [   75.654420] be80: 801390bc 80138e50 00000000 9dce9c54 9f54beac 9f54bea0 806a9524 801390a0
          [   75.661310] bea0: 9f54bedc 9f54beb0 806a9c7c 806a950c 9f54becc 00000000 00000000 00000000
          [   75.668201] bec0: 9f540000 1c9f5d92 805fe604 9ddffc00 9f54befc 9f54bee0 806ab228 806a9c38
          [   75.675092] bee0: 806ab178 9ddffc00 9f4c1900 9f40d200 9f54bf34 9f54bf00 80131e30 806ab184
          [   75.681983] bf00: 9f40d214 9f54a038 9f40d200 9f40d200 9f4c1918 812119a0 9f40d214 9f54a038
          [   75.688873] bf20: 9f40d200 9f4c1900 9f54bf7c 9f54bf38 80132124 80131d1c 9f5f2dd8 00000000
          [   75.695764] bf40: 812119a0 9f54a038 812119a0 81259c5b 9f5f2dd8 9f5f2dc0 9f53dbc0 00000000
          [   75.702655] bf60: 9f4c1900 801320b4 9f5f2dd8 9f4f7e88 9f54bfac 9f54bf80 80137ad0 801320c0
          [   75.709544] bf80: 9f54a000 9f53dbc0 801379a0 00000000 00000000 00000000 00000000 00000000
          [   75.716434] bfa0: 00000000 9f54bfb0 801010e8 801379ac 00000000 00000000 00000000 00000000
          [   75.723324] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
          [   75.730206] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
          [   75.737083] Backtrace:
          [   75.738252] [<804cd560>] (mv88e6xxx_port_db_load_purge) from [<804cd8a8>] (mv88e6xxx_port_fdb_add+0x50/0x68)
          [   75.746795]  r10:8125a0b4 r9:9dd1141c r8:00000000 r7:00000000 r6:00000000 r5:9f6a6010
          [   75.753323]  r4:9f6a601c
          [   75.754570] [<804cd858>] (mv88e6xxx_port_fdb_add) from [<806abcac>] (dsa_switch_event+0x1a0/0x660)
          [   75.762238]  r8:00000000 r7:00000003 r6:9dce9c10 r5:81203048 r4:9dce9c1c
          [   75.767655] [<806abb0c>] (dsa_switch_event) from [<80138e98>] (notifier_call_chain+0x54/0x94)
          [   75.774893]  r10:8125a0b4 r9:9dd1141c r8:00000000 r7:ffffffff r6:00000003 r5:9f54beb4
          [   75.781423]  r4:81203048
          [   75.782672] [<80138e44>] (notifier_call_chain) from [<801390bc>] (raw_notifier_call_chain+0x28/0x30)
          [   75.790514]  r9:00000000 r8:00000000 r7:9f72a300 r6:9dce9c54 r5:9ddc4000 r4:81203048
          [   75.796982] [<80139094>] (raw_notifier_call_chain) from [<806a9524>] (dsa_port_notify+0x24/0x38)
          [   75.804483] [<806a9500>] (dsa_port_notify) from [<806a9c7c>] (dsa_port_fdb_add+0x50/0x6c)
          [   75.811371] [<806a9c2c>] (dsa_port_fdb_add) from [<806ab228>] (dsa_slave_switchdev_event_work+0xb0/0x10c)
          [   75.819635]  r4:9ddffc00
          [   75.820885] [<806ab178>] (dsa_slave_switchdev_event_work) from [<80131e30>] (process_one_work+0x120/0x3a4)
          [   75.829241]  r6:9f40d200 r5:9f4c1900 r4:9ddffc00 r3:806ab178
          [   75.833612] [<80131d10>] (process_one_work) from [<80132124>] (worker_thread+0x70/0x574)
          [   75.840415]  r10:9f4c1900 r9:9f40d200 r8:9f54a038 r7:9f40d214 r6:812119a0 r5:9f4c1918
          [   75.846945]  r4:9f40d200
          [   75.848191] [<801320b4>] (worker_thread) from [<80137ad0>] (kthread+0x130/0x160)
          [   75.854300]  r10:9f4f7e88 r9:9f5f2dd8 r8:801320b4 r7:9f4c1900 r6:00000000 r5:9f53dbc0
          [   75.860830]  r4:9f5f2dc0
          [   75.862076] [<801379a0>] (kthread) from [<801010e8>] (ret_from_fork+0x14/0x2c)
          [   75.867999] Exception stack(0x9f54bfb0 to 0x9f54bff8)
          [   75.871753] bfa0:                                     00000000 00000000 00000000 00000000
          [   75.878640] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
          [   75.885519] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
          [   75.890844]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:801379a0
          [   75.897377]  r4:9f53dbc0 r3:9f54a000
          [   75.899663] Code: e3a02000 e3a03000 e14b26f4 e24bc055 (e5973000)
          [   75.904575] ---[ end trace fbca818a124dbf0d ]---
      
      Fixes: 816a3bed ("switchdev: Add fdb.added_by_user to switchdev notifications")
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Reviewed-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a37fb855
    • Jon Maloy's avatar
      tipc: clean up removal of binding table items · 5f30721c
      Jon Maloy authored
      In commit be47e41d ("tipc: fix use-after-free in tipc_nametbl_stop")
      we fixed a problem caused by premature release of service range items.
      
      That fix is correct, and solved the problem. However, it doesn't address
      the root of the problem, which is that we don't lookup the tipc_service
       -> service_range -> publication items in the correct hierarchical
      order.
      
      In this commit we try to make this right, and as a side effect obtain
      some code simplification.
      Acked-by: default avatarYing Xue <ying.xue@windriver.com>
      Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5f30721c
    • Kirill Tkhai's avatar
      tun: Do SIOCGSKNS out of rtnl_lock() · f663706a
      Kirill Tkhai authored
      Since net ns of tun device is assigned on the device creation,
      and it never changes, we do not need to use any lock to get it
      from alive tun.
      Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f663706a
    • David S. Miller's avatar
      Merge branch 'net-Update-static-keys-to-modern-api' · 508c461c
      David S. Miller authored
      Davidlohr Bueso says:
      
      ====================
      net: Update static keys to modern api
      
      The following patches update pretty much all core net static key users
      to the modern api. Changes are mostly trivial conversion without affecting
      any semantics. The motivation is a resend of patches 1 and 2 from a while[1]
      back, and the rest are added patches, specific for -net.
      
      Applies against today's linux-next. Compile tested only.
      
      [1] lkml.kernel.org/r/20180326210929.5244-1-dave@stgolabs.net
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      508c461c
    • Davidlohr Bueso's avatar
      net/udp: Update udp_encap_needed static key to modern api · 88ab3108
      Davidlohr Bueso authored
      No changes in refcount semantics -- key init is false; replace
      
      static_key_enable         with   static_branch_enable
      static_key_slow_inc|dec   with   static_branch_inc|dec
      static_key_false          with   static_branch_unlikely
      
      Added a '_key' suffix to udp and udpv6 encap_needed, for better
      self documentation.
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      88ab3108
    • Davidlohr Bueso's avatar
      net: Update generic_xdp_needed static key to modern api · 02786475
      Davidlohr Bueso authored
      No changes in refcount semantics -- key init is false; replace
      
      static_key_slow_inc|dec   with   static_branch_inc|dec
      static_key_false          with   static_branch_unlikely
      
      Added a '_key' suffix to generic_xdp_needed, for better self
      documentation.
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      02786475
    • Davidlohr Bueso's avatar
      net: Update netstamp_needed static key to modern api · 39e83922
      Davidlohr Bueso authored
      No changes in refcount semantics -- key init is false; replace
      
      static_key_slow_inc|dec   with   static_branch_inc|dec
      static_key_false          with   static_branch_unlikely
      
      Added a '_key' suffix to netstamp_needed, for better self
      documentation.
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      39e83922
    • Davidlohr Bueso's avatar
      net: Update [e/in]gress_needed static key to modern api · aabf6772
      Davidlohr Bueso authored
      No changes in semantics -- key init is false; replace
      
      static_key_slow_inc|dec   with   static_branch_inc|dec
      static_key_false          with   static_branch_unlikely
      
      Added a '_key' suffix to both ingress_needed and egress_needed,
      for better self documentation.
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aabf6772
    • Davidlohr Bueso's avatar
      net/sock: Update memalloc_socks static key to modern api · a7950ae8
      Davidlohr Bueso authored
      No changes in refcount semantics -- key init is false; replace
      
      static_key_slow_inc|dec   with   static_branch_inc|dec
      static_key_false          with   static_branch_unlikely
      
      Added a '_key' suffix to memalloc_socks, for better self
      documentation.
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7950ae8
    • Davidlohr Bueso's avatar
      net/ipv4: Update ip_tunnel_metadata_cnt static key to modern api · 5263a98f
      Davidlohr Bueso authored
      No changes in refcount semantics -- key init is false; replace
      
      static_key_slow_inc|dec   with   static_branch_inc|dec
      static_key_false          with   static_branch_unlikely
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5263a98f