1. 04 Jun, 2019 6 commits
  2. 03 Jun, 2019 34 commits
    • David S. Miller's avatar
      Merge branch 'r8169-make-firmware-handling-code-ready-to-be-factored-out' · 014da2a5
      David S. Miller authored
      Heiner Kallweit says:
      
      ====================
      r8169: make firmware handling code ready to be factored out
      
      This series contains the final steps to make firmware handling code
      ready to be factored out into a separate source code file.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      014da2a5
    • Heiner Kallweit's avatar
      r8169: add rtl_fw_request_firmware and rtl_fw_release_firmware · 47ad5931
      Heiner Kallweit authored
      Add rtl_fw_request_firmware and rtl_fw_release_firmware which will be
      part of the API when factoring out the firmware handling code.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      47ad5931
    • Heiner Kallweit's avatar
      r8169: make rtl_fw_format_ok and rtl_fw_data_ok more independent · 4edb00f3
      Heiner Kallweit authored
      In preparation of factoring out the firmware handling code avoid any
      usage of struct rtl8169_private internals. As part of it we can inline
      rtl_check_firmware.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4edb00f3
    • Heiner Kallweit's avatar
      r8169: simplify rtl_fw_write_firmware · 2956870e
      Heiner Kallweit authored
      Similar to rtl_fw_data_ok() we can simplify the code by moving
      incrementing the index to the for loop initialization.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2956870e
    • Heiner Kallweit's avatar
      r8169: add enum rtl_fw_opcode · 0a616b32
      Heiner Kallweit authored
      Replace the firmware opcode defines with a proper enum. The BUG()
      in rtl_fw_write_firmware() can be removed because the call to
      rtl_fw_data_ok() ensures all opcodes are valid.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0a616b32
    • David S. Miller's avatar
      Merge branch 'hns3-next' · 6e36d77c
      David S. Miller authored
      Huazhong Tan says:
      
      ====================
      code optimizations & bugfixes for HNS3 driver
      
      This patch-set includes code optimizations and bugfixes for the HNS3
      ethernet controller driver.
      
      [patch 1/10] removes the redundant core reset type
      
      [patch 2/10 - 3/10] fixes two VLAN related issues
      
      [patch 4/10] fixes a TM issue
      
      [patch 5/10 - 10/10] includes some patches related to RAS & MSI-X error
      
      Change log:
      V1->V2: removes two patches which needs to change HNS's infiniband
      	driver as well, they will be upstreamed later with the
      	infiniband's one.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e36d77c
    • Weihang Li's avatar
      net: hns3: delay and separate enabling of NIC and ROCE HW errors · 00ea6e5f
      Weihang Li authored
      All RAS and MSI-X should be enabled just in the final stage of HNS3
      initialization. It means that they should be enabled in
      hclge_init_xxx_client_instance instead of hclge_ae_dev(). Especially
      MSI-X, if it is enabled before opening vector0 IRQ, there are some
      chances that a MSI-X error will cause failure on initialization of
       NIC client instane. So this patch delays enabling of HW errors.
      Otherwise, we also separate enabling of ROCE RAS from NIC, because
      it's not reasonable to enable ROCE RAS if we even don't have a ROCE
      driver.
      Signed-off-by: default avatarWeihang Li <liweihang@hisilicon.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00ea6e5f
    • Weihang Li's avatar
      net: hns3: add opcode about query and clear RAS & MSI-X to special opcode · 7832f0bd
      Weihang Li authored
      There are four commands being used to query and clear RAS and MSI-X
      interrupts status. They should be contained in array of special opcodes
      because these commands have several descriptors, and we need to judge
      return value in the first descriptor rather than the last one as other
      opcodes. In addition, we shouldn't set the NEXT_FLAG of first descriptor.
      
      This patch fixes above issues.
      Signed-off-by: default avatarWeihang Li <liweihang@hisilicon.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7832f0bd
    • Weihang Li's avatar
      net: hns3: remove setting bit of reset_requests when handling mac tunnel interrupts · 36701aee
      Weihang Li authored
      We shouldn't set HNAE3_NONE_RESET bit of the variable that represents a
      reset request during handling of MSI-X errors, or may cause issue when
      trigger reset.
      Signed-off-by: default avatarWeihang Li <liweihang@hisilicon.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      36701aee
    • Weihang Li's avatar
      net: hns3: add handling of two bits in MAC tunnel interrupts · 6aa5d07d
      Weihang Li authored
      LINK_UP and LINK_DOWN are two bits of MAC tunnel interrupts, but previous
      HNS3 driver didn't handle them. If they were enabled, value of these two
      bits will change during link down and link up, which will cause HNS3
      driver keep receiving IRQ but can't handle them.
      
      This patch adds handling of these two bits of interrupts, we will record
      and clear them as what we do to other MAC tunnel interrupts.
      Signed-off-by: default avatarWeihang Li <liweihang@hisilicon.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6aa5d07d
    • Weihang Li's avatar
      net: hns3: set ops to null when unregister ad_dev · 594a81b3
      Weihang Li authored
      The hclge/hclgevf and hns3 module can be unloaded independently,
      when hclge/hclgevf unloaded firstly, the ops of ae_dev should
      be set to NULL, otherwise it will cause an use-after-free problem.
      
      Fixes: 38caee9d ("net: hns3: Add support of the HNAE3 framework")
      Signed-off-by: default avatarWeihang Li <liweihang@hisilicon.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      594a81b3
    • Weihang Li's avatar
      net: hns3: add a check to pointer in error_detected and slot_reset · 661262bc
      Weihang Li authored
      If we add a VF without loading hclgevf.ko and then there is a RAS error
      occurs, PCIe AER will call error_detected and slot_reset of all functions,
      and will get a NULL pointer when we check ad_dev->ops->handle_hw_ras_error.
      This will cause a call trace and failures on handling of follow-up RAS
      errors.
      
      This patch check ae_dev and ad_dev->ops at first to solve above issues.
      Signed-off-by: default avatarWeihang Li <liweihang@hisilicon.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      661262bc
    • Yunsheng Lin's avatar
      net: hns3: set the port shaper according to MAC speed · d9ea1562
      Yunsheng Lin authored
      This patch sets the port shaper according to the MAC speed as
      suggested by hardware user manual.
      Signed-off-by: default avatarYunsheng Lin <linyunsheng@huawei.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d9ea1562
    • Jian Shen's avatar
      net: hns3: fix VLAN filter restore issue after reset · b524b38f
      Jian Shen authored
      In orginal codes, the driver only restore VLAN filter entries
      for PF after reset, the VLAN entries of VF will lose in this
      case.
      
      This patch fixes it by recording VLAN IDs for each function
      when add VLAN, and restore the VLAN IDs after reset.
      
      Fixes: 681ec399 ("net: hns3: fix for vlan table lost problem when resetting")
      Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b524b38f
    • Jian Shen's avatar
      net: hns3: don't configure new VLAN ID into VF VLAN table when it's full · 81a9255e
      Jian Shen authored
      VF VLAN table can only support no more than 256 VLANs. When user
      adds too many VLANs, the VF VLAN table will be full, and firmware
      will close the VF VLAN table for the function. When VF VLAN table
      is full, and user keeps adding new VLANs, it's unnecessary to
      configure the VF VLAN table, because it will always fail, and print
      warning message. The worst case is adding 4K VLANs, and doing reset,
      it will take much time to restore these VLANs, which may cause VF
      reset fail by timeout.
      
      Fixes: 6c251711 ("net: hns3: Disable vf vlan filter when vf vlan table is full")
      Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81a9255e
    • Huazhong Tan's avatar
      net: hns3: remove redundant core reset · 56b58661
      Huazhong Tan authored
      Since core reset is similar to the global reset, so this
      patch removes it and uses global reset to replace it.
      Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
      Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      56b58661
    • Eric Dumazet's avatar
      net: fix use-after-free in kfree_skb_list · b7034146
      Eric Dumazet authored
      syzbot reported nasty use-after-free [1]
      
      Lets remove frag_list field from structs ip_fraglist_iter
      and ip6_fraglist_iter. This seens not needed anyway.
      
      [1] :
      BUG: KASAN: use-after-free in kfree_skb_list+0x5d/0x60 net/core/skbuff.c:706
      Read of size 8 at addr ffff888085a3cbc0 by task syz-executor303/8947
      
      CPU: 0 PID: 8947 Comm: syz-executor303 Not tainted 5.2.0-rc2+ #12
      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
       print_address_description.cold+0x7c/0x20d mm/kasan/report.c:188
       __kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317
       kasan_report+0x12/0x20 mm/kasan/common.c:614
       __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:132
       kfree_skb_list+0x5d/0x60 net/core/skbuff.c:706
       ip6_fragment+0x1ef4/0x2680 net/ipv6/ip6_output.c:882
       __ip6_finish_output+0x577/0xaa0 net/ipv6/ip6_output.c:144
       ip6_finish_output+0x38/0x1f0 net/ipv6/ip6_output.c:156
       NF_HOOK_COND include/linux/netfilter.h:294 [inline]
       ip6_output+0x235/0x7f0 net/ipv6/ip6_output.c:179
       dst_output include/net/dst.h:433 [inline]
       ip6_local_out+0xbb/0x1b0 net/ipv6/output_core.c:179
       ip6_send_skb+0xbb/0x350 net/ipv6/ip6_output.c:1796
       ip6_push_pending_frames+0xc8/0xf0 net/ipv6/ip6_output.c:1816
       rawv6_push_pending_frames net/ipv6/raw.c:617 [inline]
       rawv6_sendmsg+0x2993/0x35e0 net/ipv6/raw.c:947
       inet_sendmsg+0x141/0x5d0 net/ipv4/af_inet.c:802
       sock_sendmsg_nosec net/socket.c:652 [inline]
       sock_sendmsg+0xd7/0x130 net/socket.c:671
       ___sys_sendmsg+0x803/0x920 net/socket.c:2292
       __sys_sendmsg+0x105/0x1d0 net/socket.c:2330
       __do_sys_sendmsg net/socket.c:2339 [inline]
       __se_sys_sendmsg net/socket.c:2337 [inline]
       __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2337
       do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x44add9
      Code: e8 7c e6 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 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 1b 05 fc ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007f826f33bce8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
      RAX: ffffffffffffffda RBX: 00000000006e7a18 RCX: 000000000044add9
      RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000005
      RBP: 00000000006e7a10 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006e7a1c
      R13: 00007ffcec4f7ebf R14: 00007f826f33c9c0 R15: 20c49ba5e353f7cf
      
      Allocated by task 8947:
       save_stack+0x23/0x90 mm/kasan/common.c:71
       set_track mm/kasan/common.c:79 [inline]
       __kasan_kmalloc mm/kasan/common.c:489 [inline]
       __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:462
       kasan_slab_alloc+0xf/0x20 mm/kasan/common.c:497
       slab_post_alloc_hook mm/slab.h:437 [inline]
       slab_alloc_node mm/slab.c:3269 [inline]
       kmem_cache_alloc_node+0x131/0x710 mm/slab.c:3579
       __alloc_skb+0xd5/0x5e0 net/core/skbuff.c:199
       alloc_skb include/linux/skbuff.h:1058 [inline]
       __ip6_append_data.isra.0+0x2a24/0x3640 net/ipv6/ip6_output.c:1519
       ip6_append_data+0x1e5/0x320 net/ipv6/ip6_output.c:1688
       rawv6_sendmsg+0x1467/0x35e0 net/ipv6/raw.c:940
       inet_sendmsg+0x141/0x5d0 net/ipv4/af_inet.c:802
       sock_sendmsg_nosec net/socket.c:652 [inline]
       sock_sendmsg+0xd7/0x130 net/socket.c:671
       ___sys_sendmsg+0x803/0x920 net/socket.c:2292
       __sys_sendmsg+0x105/0x1d0 net/socket.c:2330
       __do_sys_sendmsg net/socket.c:2339 [inline]
       __se_sys_sendmsg net/socket.c:2337 [inline]
       __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2337
       do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      Freed by task 8947:
       save_stack+0x23/0x90 mm/kasan/common.c:71
       set_track mm/kasan/common.c:79 [inline]
       __kasan_slab_free+0x102/0x150 mm/kasan/common.c:451
       kasan_slab_free+0xe/0x10 mm/kasan/common.c:459
       __cache_free mm/slab.c:3432 [inline]
       kmem_cache_free+0x86/0x260 mm/slab.c:3698
       kfree_skbmem net/core/skbuff.c:625 [inline]
       kfree_skbmem+0xc5/0x150 net/core/skbuff.c:619
       __kfree_skb net/core/skbuff.c:682 [inline]
       kfree_skb net/core/skbuff.c:699 [inline]
       kfree_skb+0xf0/0x390 net/core/skbuff.c:693
       kfree_skb_list+0x44/0x60 net/core/skbuff.c:708
       __dev_xmit_skb net/core/dev.c:3551 [inline]
       __dev_queue_xmit+0x3034/0x36b0 net/core/dev.c:3850
       dev_queue_xmit+0x18/0x20 net/core/dev.c:3914
       neigh_direct_output+0x16/0x20 net/core/neighbour.c:1532
       neigh_output include/net/neighbour.h:511 [inline]
       ip6_finish_output2+0x1034/0x2550 net/ipv6/ip6_output.c:120
       ip6_fragment+0x1ebb/0x2680 net/ipv6/ip6_output.c:863
       __ip6_finish_output+0x577/0xaa0 net/ipv6/ip6_output.c:144
       ip6_finish_output+0x38/0x1f0 net/ipv6/ip6_output.c:156
       NF_HOOK_COND include/linux/netfilter.h:294 [inline]
       ip6_output+0x235/0x7f0 net/ipv6/ip6_output.c:179
       dst_output include/net/dst.h:433 [inline]
       ip6_local_out+0xbb/0x1b0 net/ipv6/output_core.c:179
       ip6_send_skb+0xbb/0x350 net/ipv6/ip6_output.c:1796
       ip6_push_pending_frames+0xc8/0xf0 net/ipv6/ip6_output.c:1816
       rawv6_push_pending_frames net/ipv6/raw.c:617 [inline]
       rawv6_sendmsg+0x2993/0x35e0 net/ipv6/raw.c:947
       inet_sendmsg+0x141/0x5d0 net/ipv4/af_inet.c:802
       sock_sendmsg_nosec net/socket.c:652 [inline]
       sock_sendmsg+0xd7/0x130 net/socket.c:671
       ___sys_sendmsg+0x803/0x920 net/socket.c:2292
       __sys_sendmsg+0x105/0x1d0 net/socket.c:2330
       __do_sys_sendmsg net/socket.c:2339 [inline]
       __se_sys_sendmsg net/socket.c:2337 [inline]
       __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2337
       do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      The buggy address belongs to the object at ffff888085a3cbc0
       which belongs to the cache skbuff_head_cache of size 224
      The buggy address is located 0 bytes inside of
       224-byte region [ffff888085a3cbc0, ffff888085a3cca0)
      The buggy address belongs to the page:
      page:ffffea0002168f00 refcount:1 mapcount:0 mapping:ffff88821b6f63c0 index:0x0
      flags: 0x1fffc0000000200(slab)
      raw: 01fffc0000000200 ffffea00027bbf88 ffffea0002105b88 ffff88821b6f63c0
      raw: 0000000000000000 ffff888085a3c080 000000010000000c 0000000000000000
      page dumped because: kasan: bad access detected
      
      Memory state around the buggy address:
       ffff888085a3ca80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
       ffff888085a3cb00: 00 00 00 00 00 00 00 00 00 00 00 00 fc fc fc fc
      >ffff888085a3cb80: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
                                                 ^
       ffff888085a3cc00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
       ffff888085a3cc80: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc
      
      Fixes: 0feca619 ("net: ipv6: add skbuff fraglist splitter")
      Fixes: c8b17be0 ("net: ipv4: add skbuff fraglist splitter")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Acked-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b7034146
    • Heiner Kallweit's avatar
      r8169: use paged versions of phylib MDIO access functions · a2928d28
      Heiner Kallweit authored
      Use paged versions of phylib MDIO access functions to simplify
      the code.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2928d28
    • YueHaibing's avatar
      qed: Fix build error without CONFIG_DEVLINK · bd8d7d90
      YueHaibing authored
      Fix gcc build error while CONFIG_DEVLINK is not set
      
      drivers/net/ethernet/qlogic/qed/qed_main.o: In function `qed_remove':
      qed_main.c:(.text+0x1eb4): undefined reference to `devlink_unregister'
      
      Select DEVLINK to fix this.
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Fixes: 24e04879 ("qed: Add qed devlink parameters table")
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Acked-by: Michal Kalderon <michal.kalderon@marvell.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd8d7d90
    • Eric Dumazet's avatar
      tcp: use this_cpu_read(*X) instead of *this_cpu_ptr(X) · 5472c3c6
      Eric Dumazet authored
      this_cpu_read(*X) is slightly faster than *this_cpu_ptr(X)
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5472c3c6
    • Eric Dumazet's avatar
      ipv4: icmp: use this_cpu_read() in icmp_sk() · 046386ca
      Eric Dumazet authored
      this_cpu_read(*X) is faster than *this_cpu_ptr(X)
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      046386ca
    • Eric Dumazet's avatar
      ipv6: use this_cpu_read() in rt6_get_pcpu_route() · c353071a
      Eric Dumazet authored
      this_cpu_read(*X) is faster than *this_cpu_ptr(X)
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c353071a
    • David S. Miller's avatar
      Merge branch 'Add-MT7629-ethernet-support' · 4ebcfd9a
      David S. Miller authored
      Sean Wang says:
      
      ====================
      Add MT7629 ethernet support
      
      MT7629 inlcudes two sets of SGMIIs used for external switch or PHY, and embedded
      switch (ESW) via GDM1, GePHY via GMAC2, so add several patches in the series to
      make the code base common with the old SoCs.
      
      The patch 1, 3 and 6, adds extension for SGMII to have the hardware configured
      for 1G, 2.5G and AN to fit the capability of the target PHY. In patch 6 could be
      an example showing how to use these configurations for underlying PHY speed to
      match up the link speed of the target PHY.
      
      The patch 4 is used for automatically configured the hardware path from GMACx to
      the target PHY by the description in deviceetree topology to determine the
      proper value for the corresponding MUX.
      
      The patch 2 and 5 is for the update for MT7629 including dt-binding document and
      its driver.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4ebcfd9a
    • Sean Wang's avatar
      arm64: dts: mt7622: Enlarge the SGMII register range · afdede61
      Sean Wang authored
      Enlarge the SGMII register range and using 2.5G force mode on default.
      Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      afdede61
    • Sean Wang's avatar
      net: ethernet: mediatek: Add MT7629 ethernet support · d438e298
      Sean Wang authored
      Add ethernet support to MT7629 SoC
      Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d438e298
    • Sean Wang's avatar
      net: ethernet: mediatek: Integrate hardware path from GMAC to PHY variants · 7093f9d8
      Sean Wang authored
      All path route on various SoCs all would be managed in common function
      mtk_setup_hw_path that is determined by the both applied devicetree
      regarding the path between GMAC and the target PHY or switch by the
      capability of target SoC in the runtime.
      Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7093f9d8
    • Sean Wang's avatar
      net: ethernet: mediatek: Extend SGMII related functions · 9ffee4a8
      Sean Wang authored
      Add SGMII related logic into a separate file, and also provides options for
      forcing 1G, 2.5, AN mode for the target PHY, that can be determined from
      SGMII node in DTS.
      Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9ffee4a8
    • Sean Wang's avatar
      dt-bindings: net: mediatek: Add support for MediaTek MT7629 SoC · 3277fc68
      Sean Wang authored
      Add binding document for the ethernet on MT7629 SoC.
      Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3277fc68
    • Sean Wang's avatar
      dt-bindings: clock: mediatek: Add an extra required property to sgmiisys · fa0e5158
      Sean Wang authored
      add an extra required property "mediatek,physpeed" to sgmiisys to determine
      link speed to match up the capability of the target PHY.
      Signed-off-by: default avatarSean Wang <sean.wang@mediatek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fa0e5158
    • Eric Dumazet's avatar
      ipv6: icmp: use this_cpu_read() in icmpv6_sk() · 2789c14d
      Eric Dumazet authored
      In general, this_cpu_read(*X) is faster than *this_cpu_ptr(X)
      
      Also remove the inline attibute, totally useless.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2789c14d
    • Edward Cree's avatar
      flow_offload: include linux/kernel.h from flow_offload.h · fa85999f
      Edward Cree authored
      flow_stats_update() uses max_t, so ensure we have that defined.
      Signed-off-by: default avatarEdward Cree <ecree@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fa85999f
    • Stanislav Fomichev's avatar
      flow_dissector: remove unused FLOW_DISSECTOR_F_STOP_AT_L3 flag · 1cc26450
      Stanislav Fomichev authored
      This flag is not used by any caller, remove it.
      Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1cc26450
    • David S. Miller's avatar
      Merge tag 'mlx5-updates-2019-05-31' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 6c018b73
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2019-05-31
      
      This series provides some updates to mlx5 core and netdevice driver.
      
      1) use __netdev_tx_sent_queue() to improve performance under GSO workload
      
      2) Allow matching only enc_key_id/enc_dst_port for decapsulation action
      
      3) Geneve support:
      This patchset adds support for GENEVE tunnel encap/decap flows offload:
      encapsulating layer 2 Ethernet frames within layer 4 UDP datagrams.
      The driver supports 6081 destination UDP port number, which is the
      default IANA-assigned port.
      
      Encap:
        ConnectX-5 inserts the header (w/ or w/o Geneve TLV options) that is
        provided by the mlx5 driver to the outgoing packet.
      
      Decap:
        Geneve header is matched and the packet is decapsulated.
        Notes about decap flows with Geneve TLV Options:
         - Support offloading of 32-bit options data only
         - At any given time, only one combination of class/type parameters
           can be offloaded, but the same class/type combination can have
           many different flows offloaded with different 32-bit option data
         - Options with value of 0 can't be offloaded
      
      Managing Geneve TLV options:
        Matching (on receive) is done by ConnectX-5 flex parser.
        Geneve TLV options are managed using General Object of type
        “Geneve TLV Options”.
      
        When the first flow with a certain class/type values is requested
        to be offloaded, the driver creates a FW object with FW command
        (Geneve TLV Options general object) and starts counting the number
        of flows using this object.
      
        During this time, any request with a different class/type values
        will fail to be offloaded.
        Once the refcount reaches 0, the driver destroys the TLV options
        general object, and can now offload a flow with any class/type parameters.
      
        Geneve TLV Options object is added to core device.
        It is currently used to manage Geneve TLV options general
        object allocation in FW and its reference counting only.
      
        In the future it will also be used for managing geneve ports
        by registering callbacks for ndo_udp_tunnel_add/del.
      
      TC tunnel code refactoring:
        As a preparation for Geneve code, the TC tunnel code in mlx5
        was rearranged in a modular way, so that it would be easier
        to add future tunnels:
         - Defined tc tunnel object with the fields and callbacks that
           any tunnel must implement.
         - Define tc UDP tunnel object for UDP tunnels, such as VXLAN
         - Move each tunnel code (GRE, VXLAN) to its own separate file
         - Rewrite tc tunnel implementation in a general way – using
           only the objects and their callbacks.
      
      4) Termination tables:
      Actions in tables set with the termination flag are guaranteed to terminate
      the action list. Thus, potential looping functionality (e.g. haripin) can safely be
      executed without potential loops.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c018b73
    • David S. Miller's avatar
      Merge branch 'ena-next' · e2821fc8
      David S. Miller authored
      Sameeh Jubran says:
      
      ====================
      Extending the ena driver to support new features and enhance performance
      
      This patchset introduces the following:
      
      * add support for changing the inline header size (max_header_size) for applications
        with overlay and nested headers
      * enable automatic fallback to polling mode for admin queue when interrupt is not
        available or missed
      * add good checksum counter for Rx ethtool statistics
      * update ena.txt
      * some minor code clean-up
      * some performance enhancements with doorbell calculations
      
      Differences from V1:
      
      * net: ena: add handling of llq max tx burst size (1/11):
       * fixed christmas tree issue
      
      * net: ena: ethtool: add extra properties retrieval via get_priv_flags (2/11):
       * replaced snprintf with strlcpy
       * dropped confusing error message
       * added more details to  the commit message
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e2821fc8