1. 27 6月, 2019 13 次提交
    • G
      i40e/i40e_virtchnl_pf: Use struct_size() in kzalloc() · fae6cad1
      Gustavo A. R. Silva 提交于
      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 virtchnl_iwarp_qvlist_info {
      	...
              struct virtchnl_iwarp_qv_info qv_info[1];
      };
      
      size = sizeof(struct virtchnl_iwarp_qvlist_info) + (sizeof(struct virtchnl_iwarp_qv_info) * count;
      instance = kzalloc(size, GFP_KERNEL);
      
      and
      
      struct virtchnl_vf_resource {
      	...
              struct virtchnl_vsi_resource vsi_res[1];
      };
      
      size = sizeof(struct virtchnl_vf_resource) + sizeof(struct virtchnl_vsi_resource) * count;
      instance = kzalloc(size, GFP_KERNEL);
      
      Instead of leaving these open-coded and prone to type mistakes, we can
      now use the new struct_size() helper:
      
      instance = kzalloc(struct_size(instance, qv_info, count), GFP_KERNEL);
      
      and
      
      instance = kzalloc(struct_size(instance, vsi_res, count), GFP_KERNEL);
      
      Notice that, in the first case above, variable size is not necessary, hence it
      is removed.
      
      This code was detected with the help of Coccinelle.
      Signed-off-by: N"Gustavo A. R. Silva" <gustavo@embeddedor.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      fae6cad1
    • A
      i40e: update copyright string · 559ac25c
      Alice Michael 提交于
      It was found that the string that prints our copyright was
      not up to date.  Updating to reflect our copyright.
      Signed-off-by: NAlice Michael <alice.michael@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      559ac25c
    • M
      i40e: Fix descriptor count manipulation · 15369ac3
      Maciej Fijalkowski 提交于
      Changing descriptor count via 'ethtool -G' is not persistent across resets.
      When PF reset occurs, we roll back to the default value of vsi->num_desc,
      which is used then in i40e_alloc_rings to set descriptor count. XDP does a
      PF reset so when user has changed the descriptor count and load XDP
      program, the default count will be back there.
      
      To fix this:
        * introduce new VSI members - num_tx_desc and num_rx_desc in favour of
          num_desc
        * set them in i40e_set_ringparam to user's values
        * set them to default values in i40e_set_num_rings_in_vsi only when they
          don't have previous values
      Signed-off-by: NMaciej Fijalkowski <maciej.fijalkowski@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      15369ac3
    • A
      i40e: missing priorities for any QoS traffic · ee02865e
      Aleksandr Loktionov 提交于
      This patch fixes reading f/w LLDP agent status at DCB init time.
      It's done by removing direct NVM reading in i40e_update_dcb_config()
      and checking whether f/w LLDP agent is disabled via
      I40E_FLAG_DISABLE_FW_LLDP flag in i40e_init_pf_dcb(). The function
      i40e_update_dcb_config() in i40e_main.c is a temporary solution which
      will be later renamed to i40e_init_dcb() in the i40e_dcb module. Also
      logging was extended to make visible if f/w LLDP agent is running or not
      and always log a message when DCB was not initialized. Without this
      patch for new f/w versions f/w LLDP agent status was always read
      from NVM as disabled and DCB initialization failed without
      clear reason in logs.
      Signed-off-by: NAleksandr Loktionov <aleksandr.loktionov@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ee02865e
    • P
      i40e: Add log entry while creating or deleting TC0 · d47186e7
      Piotr Kwapulinski 提交于
      Generate log entry when TC0 is created or deleted.
      Log entry is generated during main VSI setup.
      Before there was no log info about adding or deleting TC0.
      Signed-off-by: NPiotr Kwapulinski <piotr.kwapulinski@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      d47186e7
    • J
    • M
      i40e: Fix for missing "link modes" info in ethtool · 6df9f13f
      Martyna Szapar 提交于
      Fix for missing "Supported link modes" and "Advertised link modes"
      info in ethtool after changed speed on X722 devices with BASE-T PHY
      with FW API version >= 1.7.
      The same FW API version on X710 and X722 does not mean the same
      feature set so the change was needed as mac type of the device
      should also be checked instead of FW API version only.
      Signed-off-by: NMartyna Szapar <martyna.szapar@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      6df9f13f
    • A
      i40e: fix 'Unknown bps' in dmesg for 2.5Gb/5Gb speeds · 4ae4916b
      Aleksandr Loktionov 提交于
      This patch fixes 'NIC Link is Up, Unknown bps' message in dmesg
      for 2.5Gb/5Gb speeds. This problem is fixed by adding constants
      for VIRTCHNL_LINK_SPEED_2_5GB and VIRTCHNL_LINK_SPEED_5GB cases
      in the i40e_virtchnl_link_speed() function.
      Signed-off-by: NAleksandr Loktionov <aleksandr.loktionov@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      4ae4916b
    • Y
      ixgbevf: fix possible divide by zero in ixgbevf_update_itr · e0f0be7d
      Young Xiao 提交于
      The next call to ixgbevf_update_itr will continue to dynamically
      update ITR.
      
      Copy from commit bdbeefe8 ("ixgbe: fix possible divide by zero in
      ixgbe_update_itr")
      Signed-off-by: NYoung Xiao <92siuyang@gmail.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      e0f0be7d
    • M
      ixgbe: Check DDM existence in transceiver before access · 655c9141
      Mauro S. M. Rodrigues 提交于
      Some transceivers may comply with SFF-8472 but not implement the Digital
      Diagnostic Monitoring (DDM) interface described in it. The existence of
      such area is specified by bit 6 of byte 92, set to 1 if implemented.
      
      Currently, due to not checking this bit ixgbe fails trying to read SFP
      module's eeprom with the follow message:
      
      ethtool -m enP51p1s0f0
      Cannot get Module EEPROM data: Input/output error
      
      Because it fails to read the additional 256 bytes in which it was assumed
      to exist the DDM data.
      
      This issue was noticed using a Mellanox Passive DAC PN 01FT738. The eeprom
      data was confirmed by Mellanox as correct and present in other Passive
      DACs in from other manufacturers.
      Signed-off-by: N"Mauro S. M. Rodrigues" <maurosr@linux.vnet.ibm.com>
      Reviewed-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
      Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      655c9141
    • E
      ipv6: fix suspicious RCU usage in rt6_dump_route() · 3b525691
      Eric Dumazet 提交于
      syzbot reminded us that rt6_nh_dump_exceptions() needs to be called
      with rcu_read_lock()
      
      net/ipv6/route.c:1593 suspicious rcu_dereference_check() usage!
      
      other info that might help us debug this:
      
      rcu_scheduler_active = 2, debug_locks = 1
      2 locks held by syz-executor609/8966:
       #0: 00000000b7dbe288 (rtnl_mutex){+.+.}, at: netlink_dump+0xe7/0xfb0 net/netlink/af_netlink.c:2199
       #1: 00000000f2d87c21 (&(&tb->tb6_lock)->rlock){+...}, at: spin_lock_bh include/linux/spinlock.h:343 [inline]
       #1: 00000000f2d87c21 (&(&tb->tb6_lock)->rlock){+...}, at: fib6_dump_table.isra.0+0x37e/0x570 net/ipv6/ip6_fib.c:533
      
      stack backtrace:
      CPU: 0 PID: 8966 Comm: syz-executor609 Not tainted 5.2.0-rc5+ #43
      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+0x172/0x1f0 lib/dump_stack.c:113
       lockdep_rcu_suspicious+0x153/0x15d kernel/locking/lockdep.c:5250
       fib6_nh_get_excptn_bucket+0x18e/0x1b0 net/ipv6/route.c:1593
       rt6_nh_dump_exceptions+0x45/0x4d0 net/ipv6/route.c:5541
       rt6_dump_route+0x904/0xc50 net/ipv6/route.c:5640
       fib6_dump_node+0x168/0x280 net/ipv6/ip6_fib.c:467
       fib6_walk_continue+0x4a9/0x8e0 net/ipv6/ip6_fib.c:1986
       fib6_walk+0x9d/0x100 net/ipv6/ip6_fib.c:2034
       fib6_dump_table.isra.0+0x38a/0x570 net/ipv6/ip6_fib.c:534
       inet6_dump_fib+0x93c/0xb00 net/ipv6/ip6_fib.c:624
       rtnl_dump_all+0x295/0x490 net/core/rtnetlink.c:3445
       netlink_dump+0x558/0xfb0 net/netlink/af_netlink.c:2244
       __netlink_dump_start+0x5b1/0x7d0 net/netlink/af_netlink.c:2352
       netlink_dump_start include/linux/netlink.h:226 [inline]
       rtnetlink_rcv_msg+0x73d/0xb00 net/core/rtnetlink.c:5182
       netlink_rcv_skb+0x177/0x450 net/netlink/af_netlink.c:2477
       rtnetlink_rcv+0x1d/0x30 net/core/rtnetlink.c:5237
       netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
       netlink_unicast+0x531/0x710 net/netlink/af_netlink.c:1328
       netlink_sendmsg+0x8ae/0xd70 net/netlink/af_netlink.c:1917
       sock_sendmsg_nosec net/socket.c:646 [inline]
       sock_sendmsg+0xd7/0x130 net/socket.c:665
       sock_write_iter+0x27c/0x3e0 net/socket.c:994
       call_write_iter include/linux/fs.h:1872 [inline]
       new_sync_write+0x4d3/0x770 fs/read_write.c:483
       __vfs_write+0xe1/0x110 fs/read_write.c:496
       vfs_write+0x20c/0x580 fs/read_write.c:558
       ksys_write+0x14f/0x290 fs/read_write.c:611
       __do_sys_write fs/read_write.c:623 [inline]
       __se_sys_write fs/read_write.c:620 [inline]
       __x64_sys_write+0x73/0xb0 fs/read_write.c:620
       do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x4401b9
      Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 fb 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007ffc8e134978 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 00000000004401b9
      RDX: 000000000000001c RSI: 0000000020000000 RDI: 00
      
      Fixes: 1e47b483 ("ipv6: Dump route exceptions if requested")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Stefano Brivio <sbrivio@redhat.com>
      Cc: David Ahern <dsahern@gmail.com>
      Reviewed-by: NStefano Brivio <sbrivio@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3b525691
    • E
      ipv4: fix suspicious RCU usage in fib_dump_info_fnhe() · 93ed54b1
      Eric Dumazet 提交于
      sysbot reported that we lack appropriate rcu_read_lock()
      protection in fib_dump_info_fnhe()
      
      net/ipv4/route.c:2875 suspicious rcu_dereference_check() usage!
      
      other info that might help us debug this:
      
      rcu_scheduler_active = 2, debug_locks = 1
      1 lock held by syz-executor609/8966:
       #0: 00000000b7dbe288 (rtnl_mutex){+.+.}, at: netlink_dump+0xe7/0xfb0 net/netlink/af_netlink.c:2199
      
      stack backtrace:
      CPU: 0 PID: 8966 Comm: syz-executor609 Not tainted 5.2.0-rc5+ #43
      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+0x172/0x1f0 lib/dump_stack.c:113
       lockdep_rcu_suspicious+0x153/0x15d kernel/locking/lockdep.c:5250
       fib_dump_info_fnhe+0x9d9/0x1080 net/ipv4/route.c:2875
       fn_trie_dump_leaf net/ipv4/fib_trie.c:2141 [inline]
       fib_table_dump+0x64a/0xd00 net/ipv4/fib_trie.c:2175
       inet_dump_fib+0x83c/0xa90 net/ipv4/fib_frontend.c:1004
       rtnl_dump_all+0x295/0x490 net/core/rtnetlink.c:3445
       netlink_dump+0x558/0xfb0 net/netlink/af_netlink.c:2244
       __netlink_dump_start+0x5b1/0x7d0 net/netlink/af_netlink.c:2352
       netlink_dump_start include/linux/netlink.h:226 [inline]
       rtnetlink_rcv_msg+0x73d/0xb00 net/core/rtnetlink.c:5182
       netlink_rcv_skb+0x177/0x450 net/netlink/af_netlink.c:2477
       rtnetlink_rcv+0x1d/0x30 net/core/rtnetlink.c:5237
       netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
       netlink_unicast+0x531/0x710 net/netlink/af_netlink.c:1328
       netlink_sendmsg+0x8ae/0xd70 net/netlink/af_netlink.c:1917
       sock_sendmsg_nosec net/socket.c:646 [inline]
       sock_sendmsg+0xd7/0x130 net/socket.c:665
       sock_write_iter+0x27c/0x3e0 net/socket.c:994
       call_write_iter include/linux/fs.h:1872 [inline]
       new_sync_write+0x4d3/0x770 fs/read_write.c:483
       __vfs_write+0xe1/0x110 fs/read_write.c:496
       vfs_write+0x20c/0x580 fs/read_write.c:558
       ksys_write+0x14f/0x290 fs/read_write.c:611
       __do_sys_write fs/read_write.c:623 [inline]
       __se_sys_write fs/read_write.c:620 [inline]
       __x64_sys_write+0x73/0xb0 fs/read_write.c:620
       do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x4401b9
      Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 fb 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007ffc8e134978 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 00000000004401b9
      RDX: 000000000000001c RSI: 0000000020000000 RDI: 0000000000000003
      RBP: 00000000006ca018 R08: 00000000004002c8 R09: 00000000004002c8
      R10: 0000000000000010 R11: 0000000000000246 R12: 0000000000401a40
      R13: 0000000000401ad0 R14: 0000000000000000 R15: 0000000000000000
      
      Fixes: ee28906f ("ipv4: Dump route exceptions if requested")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Stefano Brivio <sbrivio@redhat.com>
      Cc: David Ahern <dsahern@gmail.com>
      Reported-by: Nsyzbot <syzkaller@googlegroups.com>
      Reviewed-by: NStefano Brivio <sbrivio@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      93ed54b1
    • J
      Revert "net: ena: ethtool: add extra properties retrieval via get_priv_flags" · eb203bae
      Jakub Kicinski 提交于
      This reverts commit 315c28d2 ("net: ena: ethtool: add extra properties retrieval via get_priv_flags").
      
      As discussed at netconf and on the mailing list we can't allow
      for the the abuse of private flags for exposing arbitrary device
      labels.
      Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb203bae
  2. 26 6月, 2019 18 次提交
  3. 25 6月, 2019 9 次提交
    • P
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 1c5ba67d
      Pablo Neira Ayuso 提交于
      Resolve conflict between d2912cb1 ("treewide: Replace GPLv2
      boilerplate/reference with SPDX - rule 500") removing the GPL disclaimer
      and fe03d474 ("Update my email address") which updates Jozsef
      Kadlecsik's email.
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      1c5ba67d
    • D
      Merge branch 'cxgb4-Reference-count-MPS-TCAM-entries-within-a-PF' · 045df37e
      David S. Miller 提交于
      Raju Rangoju says:
      
      ====================
      cxgb4: Reference count MPS TCAM entries within a PF
      
      Firmware reference counts the MPS TCAM entries by PF and VF,
      but it does not do it for usage within a PF or VF. This patch
      adds the support to track MPS TCAM entries within a PF.
      
      v2->v3:
       Fixed the compiler errors due to incorrect patch
       Also, removed the new blank line at EOF
      v1->v2:
       Use refcount_t type instead of atomic_t for mps reference count
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      045df37e
    • R
      cxgb4: Add MPS refcounting for alloc/free mac filters · f9f329ad
      Raju Rangoju 提交于
      This patch adds reference counting support for
      alloc/free mac filters
      Signed-off-by: NRaju Rangoju <rajur@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f9f329ad
    • R
      cxgb4: Add MPS TCAM refcounting for cxgb4 change mac · 2f0b9406
      Raju Rangoju 提交于
      This patch adds TCAM reference counting
      support for cxgb4 change mac path
      Signed-off-by: NRaju Rangoju <rajur@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2f0b9406
    • R
      cxgb4: Add MPS TCAM refcounting for raw mac filters · 5fab5158
      Raju Rangoju 提交于
      This patch adds TCAM reference counting
      support for raw mac filters.
      Signed-off-by: NRaju Rangoju <rajur@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5fab5158
    • R
      cxgb4: Re-work the logic for mps refcounting · 28b38705
      Raju Rangoju 提交于
      Remove existing mps refcounting code which was
      added only for encap filters and add necessary
      data structures/functions to support mps reference
      counting for all the mac filters. Also add wrapper
      functions for allocating and freeing encap mac
      filters.
      Signed-off-by: NRaju Rangoju <rajur@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      28b38705
    • I
      net: stmmac: sun8i: force select external PHY when no internal one · 0fec7e72
      Icenowy Zheng 提交于
      The PHY selection bit also exists on SoCs without an internal PHY; if it's
      set to 1 (internal PHY, default value) then the MAC will not make use of
      any PHY on such SoCs.
      
      This problem appears when adapting for H6, which has no real internal PHY
      (the "internal PHY" on H6 is not on-die, but on a co-packaged AC200 chip,
      connected via RMII interface at GPIO bank A).
      
      Force the PHY selection bit to 0 when the SOC doesn't have an internal PHY,
      to address the problem of a wrong default value.
      Signed-off-by: NIcenowy Zheng <icenowy@aosc.io>
      Signed-off-by: NOndrej Jirman <megous@megous.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0fec7e72
    • I
      net: stmmac: sun8i: add support for Allwinner H6 EMAC · adadd38c
      Icenowy Zheng 提交于
      The EMAC on Allwinner H6 is just like the one on A64. The "internal PHY" on
      H6 is on a co-packaged AC200 chip, and it's not really internal (it's
      connected via RMII at PA GPIO bank).
      
      Add support for the Allwinner H6 EMAC in the dwmac-sun8i driver.
      Signed-off-by: NIcenowy Zheng <icenowy@aosc.io>
      Signed-off-by: NOndrej Jirman <megous@megous.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      adadd38c
    • D
      Merge branch 'cached-route-listings' · dcdfa50e
      David S. Miller 提交于
      Stefano Brivio says:
      
      ====================
      Fix listing (IPv4, IPv6) and flushing (IPv6) of cached route exceptions
      
      For IPv6 cached routes, the commands 'ip -6 route list cache' and
      'ip -6 route flush cache' don't work at all after route exceptions have
      been moved to a separate hash table in commit 2b760fcf ("ipv6: hook
      up exception table to store dst cache").
      
      For IPv4 cached routes, the command 'ip route list cache' has also
      stopped working in kernel 3.5 after commit 4895c771 ("ipv4: Add FIB
      nexthop exceptions.") introduced storage for route exceptions as a
      separate entity.
      
      Fix this by allowing userspace to clearly request cached routes with
      the RTM_F_CLONED flag used as a filter (in conjuction with strict
      checking) and by retrieving and dumping cached routes if requested.
      
      If strict checking is not requested (iproute2 < 5.0.0), we don't have a
      way to consistently filter results on other selectors (e.g. on tables),
      so skip filtering entirely and dump both regular routes and exceptions.
      
      For IPv4, cache flushing uses a completely different mechanism, so it
      wasn't affected. Listing of exception routes (modified routes pre-3.5) was
      tested against these versions of kernel and iproute2:
      
                          iproute2
      kernel         4.14.0   4.15.0   4.19.0   5.0.0   5.1.0
       3.5-rc4         +        +        +        +       +
       4.4
       4.9
       4.14
       4.15
       4.19
       5.0
       5.1
       fixed           +        +        +        +       +
      
      For IPv6, a separate iproute2 patch is required. Versions of iproute2
      and kernel tested:
      
                          iproute2
      kernel             4.14.0   4.15.0   4.19.0   5.0.0   5.1.0    5.1.0, patched
       3.18    list        +        +        +        +       +            +
               flush       +        +        +        +       +            +
       4.4     list        +        +        +        +       +            +
               flush       +        +        +        +       +            +
       4.9     list        +        +        +        +       +            +
               flush       +        +        +        +       +            +
       4.14    list        +        +        +        +       +            +
               flush       +        +        +        +       +            +
       4.15    list
               flush
       4.19    list
               flush
       5.0     list
               flush
       5.1     list
               flush
       with    list        +        +        +        +       +            +
       fix     flush       +        +        +                             +
      
      v7: Make sure r->rtm_tos is initialised in 3/11, move loop over nexthop
          objects in 4/11, add comments about usage of "skip" counters in commit
          messages of 4/11 and 8/11
      
      v6: Target for net-next, rebase and adapt to nexthop objects for IPv6 paths.
          Merge selftests into this series (as they were addressed for net-next).
          A number of minor changes detailed in logs of single patches.
      
      v5: Skip filtering altogether if no strict checking is requested: selecting
          routes or exceptions only would be inconsistent with the fact we can't
          filter on tables. Drop 1/8 (non-strict dump filter function no longer
          needed), replace 2/8 (don't use NLM_F_MATCH, decide to skip routes or
          exceptions in filter function), drop 6/8 (2/8 is enough for IPv6 too).
          Introduce dump_routes and dump_exceptions flags in filter, adapt other
          patches to that.
      
      v4: Fix the listing issue also for IPv4, making the behaviour consistent
          with IPv6. Honour NLM_F_MATCH as per RFC 3549 and allow usage of
          RTM_F_CLONED filter. Split patches into smaller logical changes.
      
      v3: Drop check on RTM_F_CLONED and rework logic of return values of
          rt6_dump_route()
      
      v2: Add count of routes handled in partial dumps, and skip them, in patch 1/2.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dcdfa50e