1. 02 Feb, 2019 1 commit
    • Jiong Wang's avatar
      nfp: bpf: correct the behavior for shifts by zero · db0a4b3b
      Jiong Wang authored
      Shifts by zero do nothing, and should be treated as nops.
      
      Even though compiler is not supposed to generate such instructions and
      manual written assembly is unlikely to have them, but they are legal
      instructions and have defined behavior.
      
      This patch correct existing shifts code-gen to make sure they do nothing
      when shift amount is zero except when the instruction is ALU32 for which
      high bits need to be cleared.
      
      For shift amount bigger than type size, already, NFP JIT back-end errors
      out for immediate shift and only low 5 bits will be taken into account for
      indirect shift which is the same as x86.
      Reviewed-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
      Signed-off-by: default avatarJiong Wang <jiong.wang@netronome.com>
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      db0a4b3b
  2. 01 Feb, 2019 21 commits
  3. 31 Jan, 2019 9 commits
  4. 30 Jan, 2019 9 commits
    • David S. Miller's avatar
      Merge branch 'hns3-next' · 630afc77
      David S. Miller authored
      Huazhong Tan says:
      
      ====================
      code optimizations & bugfixes for HNS3 driver
      
      This patchset includes bugfixes and code optimizations for the HNS3
      ethernet controller driver
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      630afc77
    • Jian Shen's avatar
      net: hns3: keep flow director state unchanged when reset · 9abeb7d8
      Jian Shen authored
      In orginal codes, driver always enables flow director when
      intializing. When user disable flow director with command
      ethtool -K, the flow director will be enabled again after
      resetting.
      
      This patch fixes it by only enabling it when first initialzing.
      
      Fixes: 6871af29 ("net: hns3: Add reset handle for flow director")
      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>
      9abeb7d8
    • Jian Shen's avatar
      net: hns3: stop sending keep alive msg to PF when VF is resetting · c59a85c0
      Jian Shen authored
      When VF is resetting, it can't communicate to PF with mailbox msg.
      This patch adds reset state checking before sending keep alive msg
      to PF.
      
      Fixes: a6d818e3 ("net: hns3: Add vport alive state checking support")
      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>
      c59a85c0
    • Peng Li's avatar
      net: hns3: fix an issue for hclgevf_ae_get_hdev · eed9535f
      Peng Li authored
      HNS3 VF driver support NIC and Roce, hdev stores NIC
      handle and Roce handle, should use correct parameter for
      container_of.
      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>
      eed9535f
    • Huazhong Tan's avatar
      net: hns3: fix improper error handling in the hclge_init_ae_dev() · 9fc55413
      Huazhong Tan authored
      While hclge_init_umv_space() failed in the hclge_init_ae_dev(),
      we should undo all the operation which has been done successfully,
      the last success operation maybe hclge_mac_mdio_config(), so if
      hclge_init_umv_space() failed, we also need to undo it.
      
      Fixes: 288475b2ad01 ("{topost} net: hns3: refine umv space allocation")
      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>
      9fc55413
    • Jian Shen's avatar
      net: hns3: fix for rss result nonuniform · 472d7ece
      Jian Shen authored
      The rss result is more uniform when use recommended hash key from
      microsoft, instead of the one generated by netdev_rss_key_fill().
      Also using hash algorithm "xor" is better than "toeplitz".
      
      This patch modifies the default hash key and hash algorithm.
      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>
      472d7ece
    • Huazhong Tan's avatar
      net: hns3: fix netif_napi_del() not do problem when unloading · e2152785
      Huazhong Tan authored
      When the driver is unloading, if a global reset occurs,
      unmap_ring_from_vector() in the hns3_nic_uninit_vector_data() will
      fail, and hns3_nic_uninit_vector_data() just return. There may be
      some netif_napi_del() not be done.
      
      Since hardware will unmap all ring while resetting, so
      hns3_nic_uninit_vector_data() should ignore this error, and do the
      rest uninitialization.
      
      Fixes: 76ad4f0e ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
      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>
      e2152785
    • Huazhong Tan's avatar
      net: hns3: Fix NULL deref when unloading driver · c8a8045b
      Huazhong Tan authored
      When the driver is unloading, if there is a calling of ndo_open occurs
      between phy_disconnect() and unregister_netdev(), it will end up
      causing the kernel to eventually hit a NULL deref:
      
      [14942.417828] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000048
      [14942.529878] Mem abort info:
      [14942.551166]   ESR = 0x96000006
      [14942.567070]   Exception class = DABT (current EL), IL = 32 bits
      [14942.623081]   SET = 0, FnV = 0
      [14942.639112]   EA = 0, S1PTW = 0
      [14942.643628] Data abort info:
      [14942.659227]   ISV = 0, ISS = 0x00000006
      [14942.674870]   CM = 0, WnR = 0
      [14942.679449] user pgtable: 4k pages, 48-bit VAs, pgdp = 00000000224ad6ad
      [14942.695595] [0000000000000048] pgd=00000021e6673003, pud=00000021dbf01003, pmd=0000000000000000
      [14942.723163] Internal error: Oops: 96000006 [#1] PREEMPT SMP
      [14942.729358] Modules linked in: hns3(O) hclge(O) pv680_mii(O) hnae3(O) [last unloaded: hclge]
      [14942.738907] CPU: 1 PID: 26629 Comm: kworker/u4:13 Tainted: G           O      4.18.0-rc1-12928-ga960791-dirty #145
      [14942.749491] Hardware name: Huawei Technologies Co., Ltd. D05/D05, BIOS Hi1620 FPGA TB BOOT BIOS B763 08/17/2018
      [14942.760392] Workqueue: events_power_efficient phy_state_machine
      [14942.766644] pstate: 80c00009 (Nzcv daif +PAN +UAO)
      [14942.771918] pc : test_and_set_bit+0x18/0x38
      [14942.776589] lr : netif_carrier_off+0x24/0x70
      [14942.781033] sp : ffff0000121abd20
      [14942.784518] x29: ffff0000121abd20 x28: 0000000000000000
      [14942.790208] x27: ffff0000164d3cd8 x26: ffff8021da68b7b8
      [14942.795832] x25: 0000000000000000 x24: ffff8021eb407800
      [14942.801445] x23: 0000000000000000 x22: 0000000000000000
      [14942.807046] x21: 0000000000000001 x20: 0000000000000000
      [14942.812672] x19: 0000000000000000 x18: ffff000009781708
      [14942.818284] x17: 00000000004970e8 x16: ffff00000816ad48
      [14942.823900] x15: 0000000000000000 x14: 0000000000000008
      [14942.829528] x13: 0000000000000000 x12: 0000000000000f65
      [14942.835149] x11: 0000000000000001 x10: 00000000000009d0
      [14942.840753] x9 : ffff0000121abaa0 x8 : 0000000000000000
      [14942.846360] x7 : ffff000009781708 x6 : 0000000000000003
      [14942.851970] x5 : 0000000000000020 x4 : 0000000000000004
      [14942.857575] x3 : 0000000000000002 x2 : 0000000000000001
      [14942.863180] x1 : 0000000000000048 x0 : 0000000000000000
      [14942.868875] Process kworker/u4:13 (pid: 26629, stack limit = 0x00000000c909dbf3)
      [14942.876464] Call trace:
      [14942.879200]  test_and_set_bit+0x18/0x38
      [14942.883376]  phy_link_change+0x38/0x78
      [14942.887378]  phy_state_machine+0x3dc/0x4f8
      [14942.891968]  process_one_work+0x158/0x470
      [14942.896223]  worker_thread+0x50/0x470
      [14942.900219]  kthread+0x104/0x130
      [14942.903905]  ret_from_fork+0x10/0x1c
      [14942.907755] Code: d2800022 8b400c21 f9800031 9ac32044 (c85f7c22)
      [14942.914185] ---[ end trace 968c9e12eb740b23 ]---
      
      So this patch fixes it by modifying the timing to do phy_connect_direct()
      and phy_disconnect().
      
      Fixes: 256727da ("net: hns3: Add MDIO support to HNS3 Ethernet driver for hip08 SoC")
      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>
      c8a8045b
    • Yunsheng Lin's avatar
      net: hns3: only support tc 0 for VF · de67a690
      Yunsheng Lin authored
      When the VF shares the same TC config as PF, the business
      running on PF and VF must have samiliar module.
      
      For simplicity, we are not considering VF sharing the same tc
      configuration as PF use case, so this patch removes the support
      of TC configuration from VF and forcing VF to just use single
      TC.
      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>
      de67a690