1. 01 Mar, 2019 14 commits
  2. 28 Feb, 2019 22 commits
    • David Ahern's avatar
      selftests: rtnetlink: use internal netns switch for ip commands · be9cefe7
      David Ahern authored
      'ip' can switch network namespaces internally and then run a given
      command relative to that namespace without the need to fork and exec
      another ip instance. Update all references of the form:
          ip netns exec "$testns" ip ...
      to
          ip -netns "$testns" ...
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      be9cefe7
    • David S. Miller's avatar
      Merge branch 's390-qeth-next' · b9f2c028
      David S. Miller authored
      Julian Wiedmann says:
      
      ====================
      s390/qeth: updates 2019-02-28
      
      please apply one more qeth patch series for net-next. This eliminates
      some of the quirks in our reset code, and slims down the internal
      state machine.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b9f2c028
    • Julian Wiedmann's avatar
      s390/qeth: drop redundant state checking · 0f7aedbd
      Julian Wiedmann authored
      Now that qeth always uses dev_close() to shutdown the interface, we can
      trust the locking and remove some custom state checks.
      qeth_l?_stop_card() is no longer called for a card in UP state, so remove
      the checks there too. This basically makes the UP state obsolete, so rip
      out the whole thing (except for the sysfs-visible string).
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0f7aedbd
    • Julian Wiedmann's avatar
      s390/qeth: don't special-case HW trap during suspend · 62ca98d4
      Julian Wiedmann authored
      It makes no difference whether we
      1. manually disarm the HW trap and call the offline code with
         recovery_mode == 1, or
      2. call the offline code with recovery_mode == 0, and let it disarm the
         HW trap for us.
      
      So consolidate the two code paths in the suspend callback.
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      62ca98d4
    • Julian Wiedmann's avatar
      s390/qeth: remove driver-wide workqueue · dcef5cad
      Julian Wiedmann authored
      The qeth-wide workqueue is now only used by a single caller to schedule
      close_dev work. Just put it on a system queue instead.
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dcef5cad
    • Julian Wiedmann's avatar
      s390/qeth: don't defer close_dev work during recovery · bf42d40b
      Julian Wiedmann authored
      The recovery code already runs in a kthread, we don't have to defer the
      offlining further.
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf42d40b
    • Julian Wiedmann's avatar
      s390/qeth: remove a redundant check for card->dev · 464e86da
      Julian Wiedmann authored
      smatch complains that __qeth_l3_set_offline() first accesses card->dev,
      and then later checks whether the pointer is valid.
      Since commit d3d1b205 ("s390/qeth: allocate netdevice early"), the
      pointer is _always_ valid - that patch merely missed to remove this one
      check.
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      464e86da
    • Julian Wiedmann's avatar
      s390/qeth: call dev_close() during recovery · d4560150
      Julian Wiedmann authored
      When resetting an interface ("recovery"), qeth currently attempts to
      elide the call to dev_close(). We initially only call .ndo_close to
      quiesce the data path, and then offline & online the ccwgroup device.
      If the reset succeeded, a call to .ndo_open then resumes the data path
      along with some internal setup (dev_addr validation, RX modeset) that
      dev_open() would have usually triggered.
      dev_close() only gets called (via the close_dev worker) if the reset
      action fails.
      
      It's unclear whether this was initially done due to locking concerns, or
      rather to execute the reset transparently. Either way, temporarily
      closing the interface without dev_close() is fragile, and means we're
      susceptible to various races and unexpected behaviour. For instance:
      
      - Bypassing dev_deactivate_many() means that the qdiscs are not set to
      __QDISC_STATE_DEACTIVATED. Consequently any intermittent TX completion
      can wake up the txq, resulting in calls to .ndo_start_xmit while the
      data path is down. We have custom state checking to detect this case
      and drop such packets.
      
      - Because the IFF_UP flag doesn't reflect the interface's actual state
      during a reset, we have custom state checking in .ndo_open and
      .ndo_close to guard against invalid calls.
      
      - Considering that the reset might take a considerable amount of time
      (in particular if an IO fails and we end up waiting for its timeout), we
      _do_ want NETDEV_GOING_DOWN and NETDEV_DOWN events so that components
      like bonding, team, bridge, macvlan, vlan, ... can take appropriate
      action.
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4560150
    • Julian Wiedmann's avatar
      s390/qeth: unconditionally clear MAC_REGISTERED flag · 7bd2275c
      Julian Wiedmann authored
      In its attempt to run only the minimal amount of tear down steps,
      qeth_l2_stop_card() fails to reset the "is dev_addr registered?" flag
      in some rare scenarios. But a future change to the tear down sequence
      would cause us to _always_ hit this issue, so patch it up before that
      code lands.
      
      Fix it by unconditionally clearing the flag bit. This also allows us to
      remove the additional cleanup step in qeth_dev_layer2_store().
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7bd2275c
    • Julian Wiedmann's avatar
      s390/qeth: enable/disable the HW trap a little earlier · d7ef489f
      Julian Wiedmann authored
      When setting a L2 qeth device online, enable the HW trap as soon as the
      control plane is available. This allows us to catch any error that
      occurs during the very first commands.
      
      In the same spirit, the offline code should disable the HW trap as the
      very first step of its processing.
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d7ef489f
    • Julian Wiedmann's avatar
      s390/qeth: remove RECOVER state · d7d543f2
      Julian Wiedmann authored
      The offline code uses a specific RECOVER state to indicate that the
      interface should be brought up when a qeth device is set online again.
      
      Rather than having a specific card-state for this, just put it in an
      internal flag bit and set the state to DOWN. When working with the
      card's state transitions, this reduces the complexity quite a bit.
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d7d543f2
    • Ursula Braun's avatar
      net/smc: allow pnetid-less configuration · 54903572
      Ursula Braun authored
      Without hardware pnetid support there must currently be a pnet
      table configured to determine the IB device port to be used for SMC
      RDMA traffic. This patch enables a setup without pnet table, if
      the used handshake interface belongs already to a RoCE port.
      Signed-off-by: default avatarUrsula Braun <ubraun@linux.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      54903572
    • Leslie Monis's avatar
      net: sched: pie: avoid slow division in drop probability decay · 6c97da14
      Leslie Monis authored
      As per RFC 8033, it is sufficient for the drop probability
      decay factor to have a value of (1 - 1/64) instead of 98%.
      This avoids the need to do slow division.
      Suggested-by: default avatarDavid Laight <David.Laight@aculab.com>
      Signed-off-by: default avatarLeslie Monis <lesliemonis@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c97da14
    • Arjun Vynipadath's avatar
      cxgb4vf: Enter debugging mode if FW is inaccessible · 4a8acef7
      Arjun Vynipadath authored
      If we are not able to reach firmware, enter debugging mode that will
      help us to get adapter logs.
      Signed-off-by: default avatarArjun Vynipadath <arjun@chelsio.com>
      Signed-off-by: default avatarVishal Kulkarni <vishal@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4a8acef7
    • Arjun Vynipadath's avatar
      cxgb4: Enable outer UDP checksum offload for T6 · 64f40cdd
      Arjun Vynipadath authored
      T6 adapters support outer UDP checksum offload for
      encapsulated packets, hence enabling netdev feature flag
      NETIF_F_GSO_UDP_TUNNEL_CSUM.
      Signed-off-by: default avatarArjun Vynipadath <arjun@chelsio.com>
      Signed-off-by: default avatarVishal Kulkarni <vishal@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64f40cdd
    • Arjun Vynipadath's avatar
      cxgb4/cxgb4vf: Fix up netdev->hw_features · 012475e3
      Arjun Vynipadath authored
      GRO is done by cxgb4/cxgb4vf. Hence set NETIF_F_GRO flag for
      both cxgb4/cxgb4vf.
      Cleaned up VLAN netdev features in cxgb4vf. Also fixed
      NETIF_F_HIGHDMA being set unconditionally for vlan netdev
      features.
      Signed-off-by: default avatarArjun Vynipadath <arjun@chelsio.com>
      Signed-off-by: default avatarVishal Kulkarni <vishal@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      012475e3
    • Eli Britstein's avatar
      net: sched: act_csum: Fix csum calc for tagged packets · 2ecba2d1
      Eli Britstein authored
      The csum calculation is different for IPv4/6. For VLAN packets,
      tc_skb_protocol returns the VLAN protocol rather than the packet's one
      (e.g. IPv4/6), so csum is not calculated. Furthermore, VLAN may not be
      stripped so csum is not calculated in this case too. Calculate the
      csum for those cases.
      
      Fixes: d8b9605d ("net: sched: fix skb->protocol use in case of accelerated vlan path")
      Signed-off-by: default avatarEli Britstein <elibr@mellanox.com>
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2ecba2d1
    • Gustavo A. R. Silva's avatar
      net: hns: use struct_size() in devm_kzalloc() · d89ea4ac
      Gustavo A. R. Silva authored
      One of the more common cases of allocation size calculations is finding
      the size of a structure that has a zero-sized array at the end, along
      with memory for some number of elements for that array. For example:
      
      struct foo {
          int stuff;
          struct boo entry[];
      };
      
      instance = devm_kzalloc(dev, sizeof(struct foo) + sizeof(struct boo) * count, GFP_KERNEL);
      
      Instead of leaving these open-coded and prone to type mistakes, we can
      now use the new struct_size() helper:
      
      instance = devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL);
      
      This code was detected with the help of Coccinelle.
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d89ea4ac
    • David S. Miller's avatar
      Merge branch 'net-phy-marvell10g-Clean-get_features-by-using-C45-helpers' · d8afbc97
      David S. Miller authored
      Maxime Chevallier says:
      
      ====================
      net: phy: marvell10g: Clean .get_features by using C45 helpers
      
      Recent work on C45 helpers by Heiner made the
      genphy_c45_pma_read_abilities function generic enough to use as a
      default .get_featutes implementation.
      
      This series removes the remaining redundant code in
      mv3310_get_features(), and makes the 2110 PHY use
      genphy_c45_pma_read_abilities() directly, since it doesn't have the
      issue with the wrong abilities being reported.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d8afbc97
    • Maxime Chevallier's avatar
      net: phy: marvell10g: Use the generic C45 helper to read the 2110 features · 41e2a99f
      Maxime Chevallier authored
      Contrary to the 3310, the 2110 PHY correctly reports it's 2.5G/5G
      abilities. We can therefore use the genphy_c45_pma_read_abilities helper
      to build the list of features.
      Signed-off-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      41e2a99f
    • Maxime Chevallier's avatar
      net: phy: marvell10g: Let genphy_c45_pma_read_abilities set Aneg bit · 013ba864
      Maxime Chevallier authored
      The genphy_c45_pma_read_abilities helper now sets the Autoneg ability
      in phydev->supported according to what the AN MMD reports.
      
      We therefore don't need to manually do that in mv3310_get_features().
      Signed-off-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
      Suggested-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      013ba864
    • Vlad Buslov's avatar
      net: sched: act_tunnel_key: fix metadata handling · 87750d17
      Vlad Buslov authored
      Tunnel key action params->tcft_enc_metadata is only set when action is
      TCA_TUNNEL_KEY_ACT_SET. However, metadata pointer is incorrectly
      dereferenced during tunnel key init and release without verifying that
      action is if correct type, which causes NULL pointer dereference. Metadata
      tunnel dst_cache is also leaked on action overwrite.
      
      Fix metadata handling:
      - Verify that metadata pointer is not NULL before dereferencing it in
        tunnel_key_init error handling code.
      - Move dst_cache destroy code into tunnel_key_release_params() function
        that is called in both action overwrite and release cases (fixes resource
        leak) and verifies that actions has correct type before dereferencing
        metadata pointer (fixes NULL pointer dereference).
      
      Oops with KASAN enabled during tdc tests execution:
      
      [  261.080482] ==================================================================
      [  261.088049] BUG: KASAN: null-ptr-deref in dst_cache_destroy+0x21/0xa0
      [  261.094613] Read of size 8 at addr 00000000000000b0 by task tc/2976
      [  261.102524] CPU: 14 PID: 2976 Comm: tc Not tainted 5.0.0-rc7+ #157
      [  261.108844] Hardware name: Supermicro SYS-2028TP-DECR/X10DRT-P, BIOS 2.0b 03/30/2017
      [  261.116726] Call Trace:
      [  261.119234]  dump_stack+0x9a/0xeb
      [  261.122625]  ? dst_cache_destroy+0x21/0xa0
      [  261.126818]  ? dst_cache_destroy+0x21/0xa0
      [  261.131004]  kasan_report+0x176/0x192
      [  261.134752]  ? idr_get_next+0xd0/0x120
      [  261.138578]  ? dst_cache_destroy+0x21/0xa0
      [  261.142768]  dst_cache_destroy+0x21/0xa0
      [  261.146799]  tunnel_key_release+0x3a/0x50 [act_tunnel_key]
      [  261.152392]  tcf_action_cleanup+0x2c/0xc0
      [  261.156490]  tcf_generic_walker+0x4c2/0x5c0
      [  261.160794]  ? tcf_action_dump_1+0x390/0x390
      [  261.165163]  ? tunnel_key_walker+0x5/0x1a0 [act_tunnel_key]
      [  261.170865]  ? tunnel_key_walker+0xe9/0x1a0 [act_tunnel_key]
      [  261.176641]  tca_action_gd+0x600/0xa40
      [  261.180482]  ? tca_get_fill.constprop.17+0x200/0x200
      [  261.185548]  ? __lock_acquire+0x588/0x1d20
      [  261.189741]  ? __lock_acquire+0x588/0x1d20
      [  261.193922]  ? mark_held_locks+0x90/0x90
      [  261.197944]  ? mark_held_locks+0x90/0x90
      [  261.202018]  ? __nla_parse+0xfe/0x190
      [  261.205774]  tc_ctl_action+0x218/0x230
      [  261.209614]  ? tcf_action_add+0x230/0x230
      [  261.213726]  rtnetlink_rcv_msg+0x3a5/0x600
      [  261.217910]  ? lock_downgrade+0x2d0/0x2d0
      [  261.222006]  ? validate_linkmsg+0x400/0x400
      [  261.226278]  ? find_held_lock+0x6d/0xd0
      [  261.230200]  ? match_held_lock+0x1b/0x210
      [  261.234296]  ? validate_linkmsg+0x400/0x400
      [  261.238567]  netlink_rcv_skb+0xc7/0x1f0
      [  261.242489]  ? netlink_ack+0x470/0x470
      [  261.246319]  ? netlink_deliver_tap+0x1f3/0x5a0
      [  261.250874]  netlink_unicast+0x2ae/0x350
      [  261.254884]  ? netlink_attachskb+0x340/0x340
      [  261.261647]  ? _copy_from_iter_full+0xdd/0x380
      [  261.268576]  ? __virt_addr_valid+0xb6/0xf0
      [  261.275227]  ? __check_object_size+0x159/0x240
      [  261.282184]  netlink_sendmsg+0x4d3/0x630
      [  261.288572]  ? netlink_unicast+0x350/0x350
      [  261.295132]  ? netlink_unicast+0x350/0x350
      [  261.301608]  sock_sendmsg+0x6d/0x80
      [  261.307467]  ___sys_sendmsg+0x48e/0x540
      [  261.313633]  ? copy_msghdr_from_user+0x210/0x210
      [  261.320545]  ? save_stack+0x89/0xb0
      [  261.326289]  ? __lock_acquire+0x588/0x1d20
      [  261.332605]  ? entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [  261.340063]  ? mark_held_locks+0x90/0x90
      [  261.346162]  ? do_filp_open+0x138/0x1d0
      [  261.352108]  ? may_open_dev+0x50/0x50
      [  261.357897]  ? match_held_lock+0x1b/0x210
      [  261.364016]  ? __fget_light+0xa6/0xe0
      [  261.369840]  ? __sys_sendmsg+0xd2/0x150
      [  261.375814]  __sys_sendmsg+0xd2/0x150
      [  261.381610]  ? __ia32_sys_shutdown+0x30/0x30
      [  261.388026]  ? lock_downgrade+0x2d0/0x2d0
      [  261.394182]  ? mark_held_locks+0x1c/0x90
      [  261.400230]  ? do_syscall_64+0x1e/0x280
      [  261.406172]  do_syscall_64+0x78/0x280
      [  261.411932]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [  261.419103] RIP: 0033:0x7f28e91a8b87
      [  261.424791] Code: 64 89 02 48 c7 c0 ff ff ff ff eb b9 0f 1f 80 00 00 00 00 8b 05 6a 2b 2c 00 48 63 d2 48 63 ff 85 c0 75 18 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 59 f3 c3 0f 1f 80 00 00 00 00 53 48 89 f3 48
      [  261.448226] RSP: 002b:00007ffdc5c4e2d8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
      [  261.458183] RAX: ffffffffffffffda RBX: 000000005c73c202 RCX: 00007f28e91a8b87
      [  261.467728] RDX: 0000000000000000 RSI: 00007ffdc5c4e340 RDI: 0000000000000003
      [  261.477342] RBP: 0000000000000000 R08: 0000000000000001 R09: 000000000000000c
      [  261.486970] R10: 000000000000000c R11: 0000000000000246 R12: 0000000000000001
      [  261.496599] R13: 000000000067b4e0 R14: 00007ffdc5c5248c R15: 00007ffdc5c52480
      [  261.506281] ==================================================================
      [  261.516076] Disabling lock debugging due to kernel taint
      [  261.523979] BUG: unable to handle kernel NULL pointer dereference at 00000000000000b0
      [  261.534413] #PF error: [normal kernel read fault]
      [  261.541730] PGD 8000000317400067 P4D 8000000317400067 PUD 316878067 PMD 0
      [  261.551294] Oops: 0000 [#1] SMP KASAN PTI
      [  261.557985] CPU: 14 PID: 2976 Comm: tc Tainted: G    B             5.0.0-rc7+ #157
      [  261.568306] Hardware name: Supermicro SYS-2028TP-DECR/X10DRT-P, BIOS 2.0b 03/30/2017
      [  261.578874] RIP: 0010:dst_cache_destroy+0x21/0xa0
      [  261.586413] Code: f4 ff ff ff eb f6 0f 1f 00 0f 1f 44 00 00 41 56 41 55 49 c7 c6 60 fe 35 af 41 54 55 49 89 fc 53 bd ff ff ff ff e8 ef 98 73 ff <49> 83 3c 24 00 75 35 eb 6c 4c 63 ed e8 de 98 73 ff 4a 8d 3c ed 40
      [  261.611247] RSP: 0018:ffff888316447160 EFLAGS: 00010282
      [  261.619564] RAX: 0000000000000000 RBX: ffff88835b3e2f00 RCX: ffffffffad1c5071
      [  261.629862] RDX: 0000000000000003 RSI: dffffc0000000000 RDI: 0000000000000297
      [  261.640149] RBP: 00000000ffffffff R08: fffffbfff5dd4e89 R09: fffffbfff5dd4e89
      [  261.650467] R10: 0000000000000001 R11: fffffbfff5dd4e88 R12: 00000000000000b0
      [  261.660785] R13: ffff8883267a10c0 R14: ffffffffaf35fe60 R15: 0000000000000001
      [  261.671110] FS:  00007f28ea3e6400(0000) GS:ffff888364200000(0000) knlGS:0000000000000000
      [  261.682447] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  261.691491] CR2: 00000000000000b0 CR3: 00000003178ae004 CR4: 00000000001606e0
      [  261.701283] Call Trace:
      [  261.706374]  tunnel_key_release+0x3a/0x50 [act_tunnel_key]
      [  261.714522]  tcf_action_cleanup+0x2c/0xc0
      [  261.721208]  tcf_generic_walker+0x4c2/0x5c0
      [  261.728074]  ? tcf_action_dump_1+0x390/0x390
      [  261.734996]  ? tunnel_key_walker+0x5/0x1a0 [act_tunnel_key]
      [  261.743247]  ? tunnel_key_walker+0xe9/0x1a0 [act_tunnel_key]
      [  261.751557]  tca_action_gd+0x600/0xa40
      [  261.757991]  ? tca_get_fill.constprop.17+0x200/0x200
      [  261.765644]  ? __lock_acquire+0x588/0x1d20
      [  261.772461]  ? __lock_acquire+0x588/0x1d20
      [  261.779266]  ? mark_held_locks+0x90/0x90
      [  261.785880]  ? mark_held_locks+0x90/0x90
      [  261.792470]  ? __nla_parse+0xfe/0x190
      [  261.798738]  tc_ctl_action+0x218/0x230
      [  261.805145]  ? tcf_action_add+0x230/0x230
      [  261.811760]  rtnetlink_rcv_msg+0x3a5/0x600
      [  261.818564]  ? lock_downgrade+0x2d0/0x2d0
      [  261.825433]  ? validate_linkmsg+0x400/0x400
      [  261.832256]  ? find_held_lock+0x6d/0xd0
      [  261.838624]  ? match_held_lock+0x1b/0x210
      [  261.845142]  ? validate_linkmsg+0x400/0x400
      [  261.851729]  netlink_rcv_skb+0xc7/0x1f0
      [  261.857976]  ? netlink_ack+0x470/0x470
      [  261.864132]  ? netlink_deliver_tap+0x1f3/0x5a0
      [  261.870969]  netlink_unicast+0x2ae/0x350
      [  261.877294]  ? netlink_attachskb+0x340/0x340
      [  261.883962]  ? _copy_from_iter_full+0xdd/0x380
      [  261.890750]  ? __virt_addr_valid+0xb6/0xf0
      [  261.897188]  ? __check_object_size+0x159/0x240
      [  261.903928]  netlink_sendmsg+0x4d3/0x630
      [  261.910112]  ? netlink_unicast+0x350/0x350
      [  261.916410]  ? netlink_unicast+0x350/0x350
      [  261.922656]  sock_sendmsg+0x6d/0x80
      [  261.928257]  ___sys_sendmsg+0x48e/0x540
      [  261.934183]  ? copy_msghdr_from_user+0x210/0x210
      [  261.940865]  ? save_stack+0x89/0xb0
      [  261.946355]  ? __lock_acquire+0x588/0x1d20
      [  261.952358]  ? entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [  261.959468]  ? mark_held_locks+0x90/0x90
      [  261.965248]  ? do_filp_open+0x138/0x1d0
      [  261.970910]  ? may_open_dev+0x50/0x50
      [  261.976386]  ? match_held_lock+0x1b/0x210
      [  261.982210]  ? __fget_light+0xa6/0xe0
      [  261.987648]  ? __sys_sendmsg+0xd2/0x150
      [  261.993263]  __sys_sendmsg+0xd2/0x150
      [  261.998613]  ? __ia32_sys_shutdown+0x30/0x30
      [  262.004555]  ? lock_downgrade+0x2d0/0x2d0
      [  262.010236]  ? mark_held_locks+0x1c/0x90
      [  262.015758]  ? do_syscall_64+0x1e/0x280
      [  262.021234]  do_syscall_64+0x78/0x280
      [  262.026500]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [  262.033207] RIP: 0033:0x7f28e91a8b87
      [  262.038421] Code: 64 89 02 48 c7 c0 ff ff ff ff eb b9 0f 1f 80 00 00 00 00 8b 05 6a 2b 2c 00 48 63 d2 48 63 ff 85 c0 75 18 b8 2e 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 59 f3 c3 0f 1f 80 00 00 00 00 53 48 89 f3 48
      [  262.060708] RSP: 002b:00007ffdc5c4e2d8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
      [  262.070112] RAX: ffffffffffffffda RBX: 000000005c73c202 RCX: 00007f28e91a8b87
      [  262.079087] RDX: 0000000000000000 RSI: 00007ffdc5c4e340 RDI: 0000000000000003
      [  262.088122] RBP: 0000000000000000 R08: 0000000000000001 R09: 000000000000000c
      [  262.097157] R10: 000000000000000c R11: 0000000000000246 R12: 0000000000000001
      [  262.106207] R13: 000000000067b4e0 R14: 00007ffdc5c5248c R15: 00007ffdc5c52480
      [  262.115271] Modules linked in: act_tunnel_key act_skbmod act_simple act_connmark nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 act_csum libcrc32c act_meta_skbtcindex act_meta_skbprio act_meta_mark act_ife ife act_police act_sample psample act_gact veth nfsv3 nfs_acl nfs lockd grace fscache bridge stp llc intel_rapl sb_edac mlx5_ib x86_pkg_temp_thermal sunrpc intel_powerclamp coretemp ib_uverbs kvm_intel ib_core kvm irqbypass mlx5_core crct10dif_pclmul crc32_pclmul crc32c_intel igb ghash_clmulni_intel intel_cstate mlxfw iTCO_wdt devlink intel_uncore iTCO_vendor_support ipmi_ssif ptp mei_me intel_rapl_perf ioatdma joydev pps_core ses mei i2c_i801 pcspkr enclosure lpc_ich dca wmi ipmi_si ipmi_devintf ipmi_msghandler acpi_pad acpi_power_meter pcc_cpufreq ast i2c_algo_bit drm_kms_helper ttm drm mpt3sas raid_class scsi_transport_sas
      [  262.204393] CR2: 00000000000000b0
      [  262.210390] ---[ end trace 2e41d786f2c7901a ]---
      [  262.226790] RIP: 0010:dst_cache_destroy+0x21/0xa0
      [  262.234083] Code: f4 ff ff ff eb f6 0f 1f 00 0f 1f 44 00 00 41 56 41 55 49 c7 c6 60 fe 35 af 41 54 55 49 89 fc 53 bd ff ff ff ff e8 ef 98 73 ff <49> 83 3c 24 00 75 35 eb 6c 4c 63 ed e8 de 98 73 ff 4a 8d 3c ed 40
      [  262.258311] RSP: 0018:ffff888316447160 EFLAGS: 00010282
      [  262.266304] RAX: 0000000000000000 RBX: ffff88835b3e2f00 RCX: ffffffffad1c5071
      [  262.276251] RDX: 0000000000000003 RSI: dffffc0000000000 RDI: 0000000000000297
      [  262.286208] RBP: 00000000ffffffff R08: fffffbfff5dd4e89 R09: fffffbfff5dd4e89
      [  262.296183] R10: 0000000000000001 R11: fffffbfff5dd4e88 R12: 00000000000000b0
      [  262.306157] R13: ffff8883267a10c0 R14: ffffffffaf35fe60 R15: 0000000000000001
      [  262.316139] FS:  00007f28ea3e6400(0000) GS:ffff888364200000(0000) knlGS:0000000000000000
      [  262.327146] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  262.335815] CR2: 00000000000000b0 CR3: 00000003178ae004 CR4: 00000000001606e0
      
      Fixes: 41411e2f ("net/sched: act_tunnel_key: Add dst_cache support")
      Signed-off-by: default avatarVlad Buslov <vladbu@mellanox.com>
      Reviewed-by: default avatarRoi Dayan <roid@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      87750d17
  3. 27 Feb, 2019 4 commits
    • Pankaj Bansal's avatar
      drivers: net: phy: mdio-mux: Add support for Generic Mux controls · 7865ad65
      Pankaj Bansal authored
      Add support for Generic Mux controls, when Mdio mux node is a consumer
      of mux produced by some other device.
      Signed-off-by: default avatarPankaj Bansal <pankaj.bansal@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7865ad65
    • Pankaj Bansal's avatar
      dt-bindings: net: Add bindings for mdio mux consumers · 43185c3b
      Pankaj Bansal authored
      When we use the bindings defined in Documentation/devicetree/bindings/mux
      to define mdio mux in producer and consumer terms, it results in two
      devices. one is mux producer and other is mux consumer.
      
      Add the bindings needed for Mdio mux consumer devices.
      Signed-off-by: default avatarPankaj Bansal <pankaj.bansal@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      43185c3b
    • wenxu's avatar
      route: Add multipath_hash in flowi_common to make user-define hash · 24ba1440
      wenxu authored
      Current fib_multipath_hash_policy can make hash based on the L3 or
      L4. But it only work on the outer IP. So a specific tunnel always
      has the same hash value. But a specific tunnel may contain so many
      inner connections.
      
      This patch provide a generic multipath_hash in floi_common. It can
      make a user-define hash which can mix with L3 or L4 hash.
      Signed-off-by: default avatarwenxu <wenxu@ucloud.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      24ba1440
    • David S. Miller's avatar
      Merge branch 'net-Remove-switchdev_ops' · 8f4ef499
      David S. Miller authored
      Florian Fainelli says:
      
      ====================
      net: Remove switchdev_ops
      
      This patch series completes the removal of the switchdev_ops by
      converting switchdev_port_attr_set() to use either the blocking
      (process) or non-blocking (atomic) notifier since we typically need to
      deal with both depending on where in the bridge code we get called from.
      
      This was tested with the forwarding selftests and DSA hardware.
      
      Ido, hopefully this captures your comments done on v1, if not, can you
      illustrate with some pseudo-code what you had in mind if that's okay?
      
      Changes in v3:
      
      - added Reviewed-by tags from Ido where relevant
      - added missing notifier_to_errno() in net/bridge/br_switchdev.c when
        calling the atomic notifier for PRE_BRIDGE_FLAGS
      - kept mlxsw_sp_switchdev_init() in mlxsw/
      
      Changes in v2:
      
      - do not check for SWITCHDEV_F_DEFER when calling the blocking notifier
        and instead directly call the atomic notifier from the single location
        where this is required
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8f4ef499