[PULL,v3,SRU,Bionic] hns3 driver updates

Message ID 20180605230454.GA10548@xps13.dannf
State New
Headers show
Series
  • [PULL,v3,SRU,Bionic] hns3 driver updates
Related show

Pull-request

git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hns3-updates-v3

Message

dann frazier June 5, 2018, 11:04 p.m.
hns3 is a driver under active development, and is only used on
hardware that is currently pre-production. In fact, the current
version of the driver in Ubuntu doesn't work on current silicon
(crashes during init).

Given the rate of development - and the pre-production status - I
believe syncing with the upstream driver-specific changes will be more
risk-averse/maintainable than surgically backporting only changesets
that individually qualify for SRU. This PR will get us in-sync with
the current state of linux-next. It also includes a number of
non-upstream (SAUCE) patches that are making their way upstream in
batches. I plan to track their upstream integration and replace the
SAUCE with upstream cherry-picks going forward.

Tested on a D06 devel system.

The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:

  UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)

are available in the Git repository at:

  git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hns3-updates-v3

for you to fetch changes up to d9f218aeb35ae8a1d85e24e8aa456cbc89ec85e7:

  UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process (2018-06-05 16:21:07 -0600)

----------------------------------------------------------------
Fuyun Liang (30):
      net: hns3: add existence check when remove old uc mac address
      net: hns3: fix for netdev not running problem after calling net_stop and net_open
      net: hns3: fix for ipv6 address loss problem after setting channels
      net: hns3: unify the pause params setup function
      net: hns3: reallocate tx/rx buffer after changing mtu
      net: hns3: change GL update rate
      net: hns3: change the time interval of int_gl calculating
      net: hns3: fix for getting wrong link mode problem
      net: hns3: add get_link support to VF
      net: hns3: add querying speed and duplex support to VF
      net: hns3: fix for not returning problem in get_link_ksettings when phy exists
      net: hns3: fix for returning wrong value problem in hns3_get_rss_key_size
      net: hns3: fix for returning wrong value problem in hns3_get_rss_indir_size
      net: hns3: fix for the wrong shift problem in hns3_set_txbd_baseinfo
      net: hns3: fix for not initializing VF rss_hash_key problem
      net: hns3: Fix to support autoneg only for port attached with phy
      net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
      net: hns3: Fix for the null pointer problem occurring when initializing ae_dev failed
      net: hns3: Add a check for client instance init state
      net: hns3: Change return type of hnae3_register_ae_dev
      net: hns3: Change return type of hnae3_register_ae_algo
      net: hns3: Change return value in hnae3_register_client
      net: hns3: Fixes the missing PCI iounmap for various legs
      net: hns3: Fix for netdev not running problem after calling net_stop and net_open
      net: hns3: Fixes the init of the VALID BD info in the descriptor
      net: hns3: Removes unnecessary check when clearing TX/RX rings
      net: hns3: Clear TX/RX rings when stopping port & un-initializing client
      UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
      UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and shift in hclge_get_ring_chain_from_mbx
      UBUNTU: SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx

Huazhong Tan (26):
      net: hns3: fix to correctly fetch l4 protocol outer header
      net: hns3: Fixes the out of bounds access in hclge_map_tqp
      net: hns3: Fixes the error legs in hclge_init_ae_dev function
      net: hns3: fix for phy_addr error in hclge_mac_mdio_config
      net: hns3: fix a dead loop in hclge_cmd_csq_clean
      net: hns3: Use enums instead of magic number in hclge_is_special_opcode
      UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw
      UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
      UBUNTU: SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
      UBUNTU: SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
      UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
      UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
      UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters in hclge_cmd_send
      UBUNTU: SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
      UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of some structures
      UBUNTU: SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
      UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
      UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
      UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during global or core reset
      UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing command queue register
      UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock
      UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset frequently
      UBUNTU: SAUCE: {topost} net: hns3: correct reset event status register
      UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when resetting
      UBUNTU: SAUCE: {topost} net: hns3: fix return value error in hns3_reset_notify_down_enet
      UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation while resetting

Jian Shen (20):
      net: hns3: fix error type definition of return value
      net: hns3: fix return value error of hclge_get_mac_vlan_cmd_status()
      net: hns3: add existence checking before adding unicast mac address
      net: hns3: add result checking for VF when modify unicast mac address
      net: hns3: cleanup of return values in hclge_init_client_instance()
      net: hns3: Remove unused led control code
      net: hns3: Adds support for led locate command for copper port
      net: hns3: Add repeat address checking for setting mac address
      net: hns3: Fix setting mac address error
      UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
      UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return value
      UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets
      UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments
      UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset macros
      UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
      UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name
      UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and definition
      UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
      UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
      UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver

Lijun Ou (2):
      net: hns3: Fixes initalization of RoCE handle and makes it conditional
      UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE

Peng Li (30):
      net: hns3: VF should get the real rss_size instead of rss_size_max
      net: hns3: set the cmdq out_vld bit to 0 after used
      net: hns3: fix endian issue when PF get mbx message flag
      net: hns3: fix the queue id for tqp enable&&reset
      net: hns3: set the max ring num when alloc netdev
      net: hns3: add support for VF driver inner interface hclgevf_ops.get_tqps_and_rss_info
      net: hns3: fix rx path skb->truesize reporting bug
      net: hns3: add support for querying pfc puase packets statistic
      net: hns3: fix the VF queue reset flow error
      net: hns3: increase the max time for IMP handle command
      net: hns3: never send command queue message to IMP when reset
      net: hns3: Add support of .sriov_configure in HNS3 driver
      net: hns3: Fixes API to fetch ethernet header length with kernel default
      net: hns3: Updates RX packet info fetch in case of multi BD
      net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
      net: hns3: Add STRP_TAGP field support for hardware revision 0x21
      net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
      net: hns3: Fixes the state to indicate client-type initialization
      net: hns3: Add support for IFF_ALLMULTI flag
      UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in last BD except VLD bit and buffer size
      UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
      UBUNTU: SAUCE: {topost} net: hns3: rename the interface for init_client_instance and uninit_client_instance
      UBUNTU: SAUCE: {topost} net: hns3: add vector status check before free vector
      UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
      UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
      UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state state init|uninit
      UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error information
      UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector in hns3_client_uninit
      UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check
      UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear reset cause

Salil Mehta (10):
      net: hns3: Changes to make enet watchdog timeout func common for PF/VF
      net: hns3: Add VF Reset Service Task to support event handling
      net: hns3: Add VF Reset device state and its handling
      net: hns3: Add support to request VF Reset to PF
      net: hns3: Add support to reset the enet/ring mgmt layer
      net: hns3: Add support to re-initialize the hclge device
      net: hns3: Changes to support ARQ(Asynchronous Receive Queue)
      net: hns3: Add *Asserting Reset* mailbox message & handling in VF
      net: hns3: Changes required in PF mailbox to support VF reset
      net: hns3: Fixes error reported by Kbuild and internal review

Tan Xiaojun (1):
      net: hns3: fix length overflow when CONFIG_ARM64_64K_PAGES

Wei Hu (Xavier) (3):
      UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying roce client
      UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback function when link status change
      UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce callback function

Wei Yongjun (1):
      net: hns3: remove unnecessary pci_set_drvdata() and devm_kfree()

Xi Wang (11):
      net: hns3: Remove packet statistics in the range of 8192~12287
      net: hns3: Fix the missing client list node initialization
      net: hns3: Fix for hns3 module is loaded multiple times problem
      net: hns3: Fixes kernel panic issue during rmmod hns3 driver
      net: hns3: Fix for PF mailbox receving unknown message
      net: hns3: Optimize the PF's process of updating multicast MAC
      net: hns3: Optimize the VF's process of updating multicast MAC
      UBUNTU: SAUCE: {topost} net: hns3: fix unused function warning in VF driver
      UBUNTU: SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
      UBUNTU: SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
      UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process

Yunsheng Lin (36):
      net: hns3: refactor the hclge_get/set_rss function
      net: hns3: refactor the hclge_get/set_rss_tuple function
      net: hns3: fix for RSS configuration loss problem during reset
      net: hns3: fix for pause configuration lost during reset
      net: hns3: fix for use-after-free when setting ring parameter
      net: hns3: refactor the get/put_vector function
      net: hns3: fix for coalesce configuration lost during reset
      net: hns3: refactor the coalesce related struct
      net: hns3: fix for coal configuation lost when setting the channel
      net: hns3: fix for loopback failure when vlan filter is enable
      net: hns3: fix for buffer overflow smatch warning
      net: hns3: fix for vlan table lost problem when resetting
      net: hns3: Remove error log when getting pfc stats fails
      net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
      net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
      net: hns3: Fix for setting mac address when resetting
      net: hns3: remove add/del_tunnel_udp in hns3_enet module
      net: hns3: fix for cleaning ring problem
      net: hns3: refactor the loopback related function
      net: hns3: Fixes the back pressure setting when sriov is enabled
      net: hns3: Fix for fiber link up problem
      net: hns3: Fix for CMDQ and Misc. interrupt init order problem
      net: hns3: Disable vf vlan filter when vf vlan table is full
      net: hns3: Fix for service_task not running problem after resetting
      net: hns3: Fix for hclge_reset running repeatly problem
      net: hns3: Fix for phy not link up problem after resetting
      net: hns3: Add missing break in misc_irq_handle
      net: hns3: Fix for vxlan tx checksum bug
      UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback selftest
      UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
      UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
      UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting correctly
      UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
      UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
      UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
      UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm

kbuild test robot (1):
      net: hns3: hclge_inform_reset_assert_to_vf() can be static

 drivers/net/ethernet/hisilicon/Kconfig             |   15 +-
 drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |   20 +
 drivers/net/ethernet/hisilicon/hns3/hnae3.c        |  126 +-
 drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   66 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c   |   10 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    | 1347 ++++++++------
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   45 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  197 +--
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c |  128 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |  144 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |   26 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.h |   10 +-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 1848 +++++++++++---------
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |  115 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |  206 ++-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c    |   63 +-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h    |   10 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c  |  133 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h  |   30 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   32 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h   |    2 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |  749 ++++++--
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |   41 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  119 +-
 24 files changed, 3427 insertions(+), 2055 deletions(-)

Comments

Stefan Bader June 6, 2018, 12:01 a.m. | #1
On 05.06.2018 16:04, dann frazier wrote:
> hns3 is a driver under active development, and is only used on
> hardware that is currently pre-production. In fact, the current
> version of the driver in Ubuntu doesn't work on current silicon
> (crashes during init).
> 
> Given the rate of development - and the pre-production status - I
> believe syncing with the upstream driver-specific changes will be more
> risk-averse/maintainable than surgically backporting only changesets
> that individually qualify for SRU. This PR will get us in-sync with
> the current state of linux-next. It also includes a number of
> non-upstream (SAUCE) patches that are making their way upstream in
> batches. I plan to track their upstream integration and replace the
> SAUCE with upstream cherry-picks going forward.
> 
> Tested on a D06 devel system.
> 
> The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> 
>   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hns3-updates-v3
> 
> for you to fetch changes up to d9f218aeb35ae8a1d85e24e8aa456cbc89ec85e7:
> 
>   UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process (2018-06-05 16:21:07 -0600)
> 
> ----------------------------------------------------------------
> Fuyun Liang (30):
>       net: hns3: add existence check when remove old uc mac address
>       net: hns3: fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: fix for ipv6 address loss problem after setting channels
>       net: hns3: unify the pause params setup function
>       net: hns3: reallocate tx/rx buffer after changing mtu
>       net: hns3: change GL update rate
>       net: hns3: change the time interval of int_gl calculating
>       net: hns3: fix for getting wrong link mode problem
>       net: hns3: add get_link support to VF
>       net: hns3: add querying speed and duplex support to VF
>       net: hns3: fix for not returning problem in get_link_ksettings when phy exists
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_key_size
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_indir_size
>       net: hns3: fix for the wrong shift problem in hns3_set_txbd_baseinfo
>       net: hns3: fix for not initializing VF rss_hash_key problem
>       net: hns3: Fix to support autoneg only for port attached with phy
>       net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
>       net: hns3: Fix for the null pointer problem occurring when initializing ae_dev failed
>       net: hns3: Add a check for client instance init state
>       net: hns3: Change return type of hnae3_register_ae_dev
>       net: hns3: Change return type of hnae3_register_ae_algo
>       net: hns3: Change return value in hnae3_register_client
>       net: hns3: Fixes the missing PCI iounmap for various legs
>       net: hns3: Fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: Fixes the init of the VALID BD info in the descriptor
>       net: hns3: Removes unnecessary check when clearing TX/RX rings
>       net: hns3: Clear TX/RX rings when stopping port & un-initializing client
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
                        ^
                        +- Is that *really* intended to be that way? What is
                           this supposed to mean?

>       UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and shift in hclge_get_ring_chain_from_mbx
>       UBUNTU: SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx
> 
> Huazhong Tan (26):
>       net: hns3: fix to correctly fetch l4 protocol outer header
>       net: hns3: Fixes the out of bounds access in hclge_map_tqp
>       net: hns3: Fixes the error legs in hclge_init_ae_dev function
>       net: hns3: fix for phy_addr error in hclge_mac_mdio_config
>       net: hns3: fix a dead loop in hclge_cmd_csq_clean
>       net: hns3: Use enums instead of magic number in hclge_is_special_opcode
>       UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw
>       UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
>       UBUNTU: SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
>       UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
>       UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of some structures
>       UBUNTU: SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
>       UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
>       UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
>       UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during global or core reset
>       UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing command queue register
>       UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock
>       UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset frequently
>       UBUNTU: SAUCE: {topost} net: hns3: correct reset event status register
>       UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when resetting
>       UBUNTU: SAUCE: {topost} net: hns3: fix return value error in hns3_reset_notify_down_enet
>       UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation while resetting
> 
> Jian Shen (20):
>       net: hns3: fix error type definition of return value
>       net: hns3: fix return value error of hclge_get_mac_vlan_cmd_status()
>       net: hns3: add existence checking before adding unicast mac address
>       net: hns3: add result checking for VF when modify unicast mac address
>       net: hns3: cleanup of return values in hclge_init_client_instance()
>       net: hns3: Remove unused led control code
>       net: hns3: Adds support for led locate command for copper port
>       net: hns3: Add repeat address checking for setting mac address
>       net: hns3: Fix setting mac address error
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return value
>       UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets
>       UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments
>       UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset macros
>       UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
>       UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and definition
>       UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
>       UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
>       UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver
> 
> Lijun Ou (2):
>       net: hns3: Fixes initalization of RoCE handle and makes it conditional
>       UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE
> 
> Peng Li (30):
>       net: hns3: VF should get the real rss_size instead of rss_size_max
>       net: hns3: set the cmdq out_vld bit to 0 after used
>       net: hns3: fix endian issue when PF get mbx message flag
>       net: hns3: fix the queue id for tqp enable&&reset
>       net: hns3: set the max ring num when alloc netdev
>       net: hns3: add support for VF driver inner interface hclgevf_ops.get_tqps_and_rss_info
>       net: hns3: fix rx path skb->truesize reporting bug
>       net: hns3: add support for querying pfc puase packets statistic
>       net: hns3: fix the VF queue reset flow error
>       net: hns3: increase the max time for IMP handle command
>       net: hns3: never send command queue message to IMP when reset
>       net: hns3: Add support of .sriov_configure in HNS3 driver
>       net: hns3: Fixes API to fetch ethernet header length with kernel default
>       net: hns3: Updates RX packet info fetch in case of multi BD
>       net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
>       net: hns3: Add STRP_TAGP field support for hardware revision 0x21
>       net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
>       net: hns3: Fixes the state to indicate client-type initialization
>       net: hns3: Add support for IFF_ALLMULTI flag
>       UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in last BD except VLD bit and buffer size
>       UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
>       UBUNTU: SAUCE: {topost} net: hns3: rename the interface for init_client_instance and uninit_client_instance
>       UBUNTU: SAUCE: {topost} net: hns3: add vector status check before free vector
>       UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
>       UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state state init|uninit
>       UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error information
>       UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector in hns3_client_uninit
>       UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check
>       UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear reset cause
> 
> Salil Mehta (10):
>       net: hns3: Changes to make enet watchdog timeout func common for PF/VF
>       net: hns3: Add VF Reset Service Task to support event handling
>       net: hns3: Add VF Reset device state and its handling
>       net: hns3: Add support to request VF Reset to PF
>       net: hns3: Add support to reset the enet/ring mgmt layer
>       net: hns3: Add support to re-initialize the hclge device
>       net: hns3: Changes to support ARQ(Asynchronous Receive Queue)
>       net: hns3: Add *Asserting Reset* mailbox message & handling in VF
>       net: hns3: Changes required in PF mailbox to support VF reset
>       net: hns3: Fixes error reported by Kbuild and internal review
> 
> Tan Xiaojun (1):
>       net: hns3: fix length overflow when CONFIG_ARM64_64K_PAGES
> 
> Wei Hu (Xavier) (3):
>       UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying roce client
>       UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback function when link status change
>       UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce callback function
> 
> Wei Yongjun (1):
>       net: hns3: remove unnecessary pci_set_drvdata() and devm_kfree()
> 
> Xi Wang (11):
>       net: hns3: Remove packet statistics in the range of 8192~12287
>       net: hns3: Fix the missing client list node initialization
>       net: hns3: Fix for hns3 module is loaded multiple times problem
>       net: hns3: Fixes kernel panic issue during rmmod hns3 driver
>       net: hns3: Fix for PF mailbox receving unknown message
>       net: hns3: Optimize the PF's process of updating multicast MAC
>       net: hns3: Optimize the VF's process of updating multicast MAC
>       UBUNTU: SAUCE: {topost} net: hns3: fix unused function warning in VF driver
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
>       UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process
> 
> Yunsheng Lin (36):
>       net: hns3: refactor the hclge_get/set_rss function
>       net: hns3: refactor the hclge_get/set_rss_tuple function
>       net: hns3: fix for RSS configuration loss problem during reset
>       net: hns3: fix for pause configuration lost during reset
>       net: hns3: fix for use-after-free when setting ring parameter
>       net: hns3: refactor the get/put_vector function
>       net: hns3: fix for coalesce configuration lost during reset
>       net: hns3: refactor the coalesce related struct
>       net: hns3: fix for coal configuation lost when setting the channel
>       net: hns3: fix for loopback failure when vlan filter is enable
>       net: hns3: fix for buffer overflow smatch warning
>       net: hns3: fix for vlan table lost problem when resetting
>       net: hns3: Remove error log when getting pfc stats fails
>       net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
>       net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
>       net: hns3: Fix for setting mac address when resetting
>       net: hns3: remove add/del_tunnel_udp in hns3_enet module
>       net: hns3: fix for cleaning ring problem
>       net: hns3: refactor the loopback related function
>       net: hns3: Fixes the back pressure setting when sriov is enabled
>       net: hns3: Fix for fiber link up problem
>       net: hns3: Fix for CMDQ and Misc. interrupt init order problem
>       net: hns3: Disable vf vlan filter when vf vlan table is full
>       net: hns3: Fix for service_task not running problem after resetting
>       net: hns3: Fix for hclge_reset running repeatly problem
>       net: hns3: Fix for phy not link up problem after resetting
>       net: hns3: Add missing break in misc_irq_handle
>       net: hns3: Fix for vxlan tx checksum bug
>       UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
>       UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting correctly
>       UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
>       UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
>       UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm
> 
> kbuild test robot (1):
>       net: hns3: hclge_inform_reset_assert_to_vf() can be static
> 
>  drivers/net/ethernet/hisilicon/Kconfig             |   15 +-
>  drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |   20 +
>  drivers/net/ethernet/hisilicon/hns3/hnae3.c        |  126 +-
>  drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   66 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c   |   10 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    | 1347 ++++++++------
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   45 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  197 +--
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c |  128 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |  144 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |   26 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.h |   10 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 1848 +++++++++++---------
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |  115 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |  206 ++-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c    |   63 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h    |   10 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c  |  133 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h  |   30 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   32 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h   |    2 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |  749 ++++++--
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |   41 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  119 +-
>  24 files changed, 3427 insertions(+), 2055 deletions(-)
>
dann frazier June 6, 2018, 12:05 a.m. | #2
On Tue, Jun 05, 2018 at 05:01:18PM -0700, Stefan Bader wrote:
> On 05.06.2018 16:04, dann frazier wrote:
> > hns3 is a driver under active development, and is only used on
> > hardware that is currently pre-production. In fact, the current
> > version of the driver in Ubuntu doesn't work on current silicon
> > (crashes during init).
> > 
> > Given the rate of development - and the pre-production status - I
> > believe syncing with the upstream driver-specific changes will be more
> > risk-averse/maintainable than surgically backporting only changesets
> > that individually qualify for SRU. This PR will get us in-sync with
> > the current state of linux-next. It also includes a number of
> > non-upstream (SAUCE) patches that are making their way upstream in
> > batches. I plan to track their upstream integration and replace the
> > SAUCE with upstream cherry-picks going forward.
> > 
> > Tested on a D06 devel system.
> > 
> > The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> > 
> >   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> > 
> > are available in the Git repository at:
> > 
> >   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hns3-updates-v3
> > 
> > for you to fetch changes up to d9f218aeb35ae8a1d85e24e8aa456cbc89ec85e7:
> > 
> >   UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process (2018-06-05 16:21:07 -0600)
> > 
> > ----------------------------------------------------------------
> > Fuyun Liang (30):
> >       net: hns3: add existence check when remove old uc mac address
> >       net: hns3: fix for netdev not running problem after calling net_stop and net_open
> >       net: hns3: fix for ipv6 address loss problem after setting channels
> >       net: hns3: unify the pause params setup function
> >       net: hns3: reallocate tx/rx buffer after changing mtu
> >       net: hns3: change GL update rate
> >       net: hns3: change the time interval of int_gl calculating
> >       net: hns3: fix for getting wrong link mode problem
> >       net: hns3: add get_link support to VF
> >       net: hns3: add querying speed and duplex support to VF
> >       net: hns3: fix for not returning problem in get_link_ksettings when phy exists
> >       net: hns3: fix for returning wrong value problem in hns3_get_rss_key_size
> >       net: hns3: fix for returning wrong value problem in hns3_get_rss_indir_size
> >       net: hns3: fix for the wrong shift problem in hns3_set_txbd_baseinfo
> >       net: hns3: fix for not initializing VF rss_hash_key problem
> >       net: hns3: Fix to support autoneg only for port attached with phy
> >       net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
> >       net: hns3: Fix for the null pointer problem occurring when initializing ae_dev failed
> >       net: hns3: Add a check for client instance init state
> >       net: hns3: Change return type of hnae3_register_ae_dev
> >       net: hns3: Change return type of hnae3_register_ae_algo
> >       net: hns3: Change return value in hnae3_register_client
> >       net: hns3: Fixes the missing PCI iounmap for various legs
> >       net: hns3: Fix for netdev not running problem after calling net_stop and net_open
> >       net: hns3: Fixes the init of the VALID BD info in the descriptor
> >       net: hns3: Removes unnecessary check when clearing TX/RX rings
> >       net: hns3: Clear TX/RX rings when stopping port & un-initializing client
> >       UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
>                         ^
>                         +- Is that *really* intended to be that way? What is
>                            this supposed to mean?

That's an artifact of the driver tree I pulled it from. I take it to
mean it is in the queue to be posted to netdev (which, I'm told, it
is). I thought about whether or not to strip that, but decided to
leave it as-provided.

  -dann

> >       UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and shift in hclge_get_ring_chain_from_mbx
> >       UBUNTU: SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx
> > 
> > Huazhong Tan (26):
> >       net: hns3: fix to correctly fetch l4 protocol outer header
> >       net: hns3: Fixes the out of bounds access in hclge_map_tqp
> >       net: hns3: Fixes the error legs in hclge_init_ae_dev function
> >       net: hns3: fix for phy_addr error in hclge_mac_mdio_config
> >       net: hns3: fix a dead loop in hclge_cmd_csq_clean
> >       net: hns3: Use enums instead of magic number in hclge_is_special_opcode
> >       UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw
> >       UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
> >       UBUNTU: SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
> >       UBUNTU: SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
> >       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
> >       UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
> >       UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters in hclge_cmd_send
> >       UBUNTU: SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
> >       UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of some structures
> >       UBUNTU: SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
> >       UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
> >       UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
> >       UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during global or core reset
> >       UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing command queue register
> >       UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock
> >       UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset frequently
> >       UBUNTU: SAUCE: {topost} net: hns3: correct reset event status register
> >       UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when resetting
> >       UBUNTU: SAUCE: {topost} net: hns3: fix return value error in hns3_reset_notify_down_enet
> >       UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation while resetting
> > 
> > Jian Shen (20):
> >       net: hns3: fix error type definition of return value
> >       net: hns3: fix return value error of hclge_get_mac_vlan_cmd_status()
> >       net: hns3: add existence checking before adding unicast mac address
> >       net: hns3: add result checking for VF when modify unicast mac address
> >       net: hns3: cleanup of return values in hclge_init_client_instance()
> >       net: hns3: Remove unused led control code
> >       net: hns3: Adds support for led locate command for copper port
> >       net: hns3: Add repeat address checking for setting mac address
> >       net: hns3: Fix setting mac address error
> >       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
> >       UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return value
> >       UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets
> >       UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments
> >       UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset macros
> >       UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
> >       UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name
> >       UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and definition
> >       UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
> >       UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
> >       UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver
> > 
> > Lijun Ou (2):
> >       net: hns3: Fixes initalization of RoCE handle and makes it conditional
> >       UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE
> > 
> > Peng Li (30):
> >       net: hns3: VF should get the real rss_size instead of rss_size_max
> >       net: hns3: set the cmdq out_vld bit to 0 after used
> >       net: hns3: fix endian issue when PF get mbx message flag
> >       net: hns3: fix the queue id for tqp enable&&reset
> >       net: hns3: set the max ring num when alloc netdev
> >       net: hns3: add support for VF driver inner interface hclgevf_ops.get_tqps_and_rss_info
> >       net: hns3: fix rx path skb->truesize reporting bug
> >       net: hns3: add support for querying pfc puase packets statistic
> >       net: hns3: fix the VF queue reset flow error
> >       net: hns3: increase the max time for IMP handle command
> >       net: hns3: never send command queue message to IMP when reset
> >       net: hns3: Add support of .sriov_configure in HNS3 driver
> >       net: hns3: Fixes API to fetch ethernet header length with kernel default
> >       net: hns3: Updates RX packet info fetch in case of multi BD
> >       net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
> >       net: hns3: Add STRP_TAGP field support for hardware revision 0x21
> >       net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
> >       net: hns3: Fixes the state to indicate client-type initialization
> >       net: hns3: Add support for IFF_ALLMULTI flag
> >       UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in last BD except VLD bit and buffer size
> >       UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
> >       UBUNTU: SAUCE: {topost} net: hns3: rename the interface for init_client_instance and uninit_client_instance
> >       UBUNTU: SAUCE: {topost} net: hns3: add vector status check before free vector
> >       UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
> >       UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
> >       UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state state init|uninit
> >       UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error information
> >       UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector in hns3_client_uninit
> >       UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check
> >       UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear reset cause
> > 
> > Salil Mehta (10):
> >       net: hns3: Changes to make enet watchdog timeout func common for PF/VF
> >       net: hns3: Add VF Reset Service Task to support event handling
> >       net: hns3: Add VF Reset device state and its handling
> >       net: hns3: Add support to request VF Reset to PF
> >       net: hns3: Add support to reset the enet/ring mgmt layer
> >       net: hns3: Add support to re-initialize the hclge device
> >       net: hns3: Changes to support ARQ(Asynchronous Receive Queue)
> >       net: hns3: Add *Asserting Reset* mailbox message & handling in VF
> >       net: hns3: Changes required in PF mailbox to support VF reset
> >       net: hns3: Fixes error reported by Kbuild and internal review
> > 
> > Tan Xiaojun (1):
> >       net: hns3: fix length overflow when CONFIG_ARM64_64K_PAGES
> > 
> > Wei Hu (Xavier) (3):
> >       UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying roce client
> >       UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback function when link status change
> >       UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce callback function
> > 
> > Wei Yongjun (1):
> >       net: hns3: remove unnecessary pci_set_drvdata() and devm_kfree()
> > 
> > Xi Wang (11):
> >       net: hns3: Remove packet statistics in the range of 8192~12287
> >       net: hns3: Fix the missing client list node initialization
> >       net: hns3: Fix for hns3 module is loaded multiple times problem
> >       net: hns3: Fixes kernel panic issue during rmmod hns3 driver
> >       net: hns3: Fix for PF mailbox receving unknown message
> >       net: hns3: Optimize the PF's process of updating multicast MAC
> >       net: hns3: Optimize the VF's process of updating multicast MAC
> >       UBUNTU: SAUCE: {topost} net: hns3: fix unused function warning in VF driver
> >       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
> >       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
> >       UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process
> > 
> > Yunsheng Lin (36):
> >       net: hns3: refactor the hclge_get/set_rss function
> >       net: hns3: refactor the hclge_get/set_rss_tuple function
> >       net: hns3: fix for RSS configuration loss problem during reset
> >       net: hns3: fix for pause configuration lost during reset
> >       net: hns3: fix for use-after-free when setting ring parameter
> >       net: hns3: refactor the get/put_vector function
> >       net: hns3: fix for coalesce configuration lost during reset
> >       net: hns3: refactor the coalesce related struct
> >       net: hns3: fix for coal configuation lost when setting the channel
> >       net: hns3: fix for loopback failure when vlan filter is enable
> >       net: hns3: fix for buffer overflow smatch warning
> >       net: hns3: fix for vlan table lost problem when resetting
> >       net: hns3: Remove error log when getting pfc stats fails
> >       net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
> >       net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
> >       net: hns3: Fix for setting mac address when resetting
> >       net: hns3: remove add/del_tunnel_udp in hns3_enet module
> >       net: hns3: fix for cleaning ring problem
> >       net: hns3: refactor the loopback related function
> >       net: hns3: Fixes the back pressure setting when sriov is enabled
> >       net: hns3: Fix for fiber link up problem
> >       net: hns3: Fix for CMDQ and Misc. interrupt init order problem
> >       net: hns3: Disable vf vlan filter when vf vlan table is full
> >       net: hns3: Fix for service_task not running problem after resetting
> >       net: hns3: Fix for hclge_reset running repeatly problem
> >       net: hns3: Fix for phy not link up problem after resetting
> >       net: hns3: Add missing break in misc_irq_handle
> >       net: hns3: Fix for vxlan tx checksum bug
> >       UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback selftest
> >       UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
> >       UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
> >       UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting correctly
> >       UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
> >       UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
> >       UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
> >       UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm
> > 
> > kbuild test robot (1):
> >       net: hns3: hclge_inform_reset_assert_to_vf() can be static
> > 
> >  drivers/net/ethernet/hisilicon/Kconfig             |   15 +-
> >  drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |   20 +
> >  drivers/net/ethernet/hisilicon/hns3/hnae3.c        |  126 +-
> >  drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   66 +-
> >  drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c   |   10 +-
> >  drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    | 1347 ++++++++------
> >  drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   45 +-
> >  drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  197 +--
> >  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c |  128 +-
> >  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |  144 +-
> >  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |   26 +-
> >  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.h |   10 +-
> >  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 1848 +++++++++++---------
> >  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |  115 +-
> >  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |  206 ++-
> >  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c    |   63 +-
> >  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h    |   10 +-
> >  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c  |  133 +-
> >  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h  |   30 +-
> >  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   32 +-
> >  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h   |    2 +-
> >  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |  749 ++++++--
> >  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |   41 +-
> >  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  119 +-
> >  24 files changed, 3427 insertions(+), 2055 deletions(-)
> > 
> 
>
Stefan Bader June 6, 2018, 12:21 a.m. | #3
On 05.06.2018 16:04, dann frazier wrote:
> hns3 is a driver under active development, and is only used on
> hardware that is currently pre-production. In fact, the current
> version of the driver in Ubuntu doesn't work on current silicon
> (crashes during init).
> 
> Given the rate of development - and the pre-production status - I
> believe syncing with the upstream driver-specific changes will be more
> risk-averse/maintainable than surgically backporting only changesets
> that individually qualify for SRU. This PR will get us in-sync with
> the current state of linux-next. It also includes a number of
> non-upstream (SAUCE) patches that are making their way upstream in
> batches. I plan to track their upstream integration and replace the
> SAUCE with upstream cherry-picks going forward.
> 
> Tested on a D06 devel system.
> 
> The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> 
>   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hns3-updates-v3
> 
> for you to fetch changes up to d9f218aeb35ae8a1d85e24e8aa456cbc89ec85e7:
> 
>   UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process (2018-06-05 16:21:07 -0600)
> 
> ----------------------------------------------------------------
> Fuyun Liang (30):
>       net: hns3: add existence check when remove old uc mac address
>       net: hns3: fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: fix for ipv6 address loss problem after setting channels
>       net: hns3: unify the pause params setup function
>       net: hns3: reallocate tx/rx buffer after changing mtu
>       net: hns3: change GL update rate
>       net: hns3: change the time interval of int_gl calculating
>       net: hns3: fix for getting wrong link mode problem
>       net: hns3: add get_link support to VF
>       net: hns3: add querying speed and duplex support to VF
>       net: hns3: fix for not returning problem in get_link_ksettings when phy exists
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_key_size
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_indir_size
>       net: hns3: fix for the wrong shift problem in hns3_set_txbd_baseinfo
>       net: hns3: fix for not initializing VF rss_hash_key problem
>       net: hns3: Fix to support autoneg only for port attached with phy
>       net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
>       net: hns3: Fix for the null pointer problem occurring when initializing ae_dev failed
>       net: hns3: Add a check for client instance init state
>       net: hns3: Change return type of hnae3_register_ae_dev
>       net: hns3: Change return type of hnae3_register_ae_algo
>       net: hns3: Change return value in hnae3_register_client
>       net: hns3: Fixes the missing PCI iounmap for various legs
>       net: hns3: Fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: Fixes the init of the VALID BD info in the descriptor
>       net: hns3: Removes unnecessary check when clearing TX/RX rings
>       net: hns3: Clear TX/RX rings when stopping port & un-initializing client
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
>       UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and shift in hclge_get_ring_chain_from_mbx
>       UBUNTU: SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx
> 
> Huazhong Tan (26):
>       net: hns3: fix to correctly fetch l4 protocol outer header
>       net: hns3: Fixes the out of bounds access in hclge_map_tqp
>       net: hns3: Fixes the error legs in hclge_init_ae_dev function
>       net: hns3: fix for phy_addr error in hclge_mac_mdio_config
>       net: hns3: fix a dead loop in hclge_cmd_csq_clean
>       net: hns3: Use enums instead of magic number in hclge_is_special_opcode
>       UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw
>       UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
>       UBUNTU: SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
>       UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
>       UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of some structures
>       UBUNTU: SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
>       UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
>       UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
>       UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during global or core reset
>       UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing command queue register
>       UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock
>       UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset frequently
>       UBUNTU: SAUCE: {topost} net: hns3: correct reset event status register
>       UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when resetting
>       UBUNTU: SAUCE: {topost} net: hns3: fix return value error in hns3_reset_notify_down_enet
>       UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation while resetting
> 
> Jian Shen (20):
>       net: hns3: fix error type definition of return value
>       net: hns3: fix return value error of hclge_get_mac_vlan_cmd_status()
>       net: hns3: add existence checking before adding unicast mac address
>       net: hns3: add result checking for VF when modify unicast mac address
>       net: hns3: cleanup of return values in hclge_init_client_instance()
>       net: hns3: Remove unused led control code
>       net: hns3: Adds support for led locate command for copper port
>       net: hns3: Add repeat address checking for setting mac address
>       net: hns3: Fix setting mac address error
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return value
>       UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets
>       UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments
>       UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset macros
>       UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
>       UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and definition
>       UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
>       UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
>       UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver
> 
> Lijun Ou (2):
>       net: hns3: Fixes initalization of RoCE handle and makes it conditional
>       UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE
> 
> Peng Li (30):
>       net: hns3: VF should get the real rss_size instead of rss_size_max
>       net: hns3: set the cmdq out_vld bit to 0 after used
>       net: hns3: fix endian issue when PF get mbx message flag
>       net: hns3: fix the queue id for tqp enable&&reset
>       net: hns3: set the max ring num when alloc netdev
>       net: hns3: add support for VF driver inner interface hclgevf_ops.get_tqps_and_rss_info
>       net: hns3: fix rx path skb->truesize reporting bug
>       net: hns3: add support for querying pfc puase packets statistic
>       net: hns3: fix the VF queue reset flow error
>       net: hns3: increase the max time for IMP handle command
>       net: hns3: never send command queue message to IMP when reset
>       net: hns3: Add support of .sriov_configure in HNS3 driver
>       net: hns3: Fixes API to fetch ethernet header length with kernel default
>       net: hns3: Updates RX packet info fetch in case of multi BD
>       net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
>       net: hns3: Add STRP_TAGP field support for hardware revision 0x21
>       net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
>       net: hns3: Fixes the state to indicate client-type initialization
>       net: hns3: Add support for IFF_ALLMULTI flag
>       UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in last BD except VLD bit and buffer size
>       UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
>       UBUNTU: SAUCE: {topost} net: hns3: rename the interface for init_client_instance and uninit_client_instance
>       UBUNTU: SAUCE: {topost} net: hns3: add vector status check before free vector
>       UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
>       UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state state init|uninit
>       UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error information
>       UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector in hns3_client_uninit
>       UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check
>       UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear reset cause
> 
> Salil Mehta (10):
>       net: hns3: Changes to make enet watchdog timeout func common for PF/VF
>       net: hns3: Add VF Reset Service Task to support event handling
>       net: hns3: Add VF Reset device state and its handling
>       net: hns3: Add support to request VF Reset to PF
>       net: hns3: Add support to reset the enet/ring mgmt layer
>       net: hns3: Add support to re-initialize the hclge device
>       net: hns3: Changes to support ARQ(Asynchronous Receive Queue)
>       net: hns3: Add *Asserting Reset* mailbox message & handling in VF
>       net: hns3: Changes required in PF mailbox to support VF reset
>       net: hns3: Fixes error reported by Kbuild and internal review
> 
> Tan Xiaojun (1):
>       net: hns3: fix length overflow when CONFIG_ARM64_64K_PAGES
> 
> Wei Hu (Xavier) (3):
>       UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying roce client
>       UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback function when link status change
>       UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce callback function
> 
> Wei Yongjun (1):
>       net: hns3: remove unnecessary pci_set_drvdata() and devm_kfree()
> 
> Xi Wang (11):
>       net: hns3: Remove packet statistics in the range of 8192~12287
>       net: hns3: Fix the missing client list node initialization
>       net: hns3: Fix for hns3 module is loaded multiple times problem
>       net: hns3: Fixes kernel panic issue during rmmod hns3 driver
>       net: hns3: Fix for PF mailbox receving unknown message
>       net: hns3: Optimize the PF's process of updating multicast MAC
>       net: hns3: Optimize the VF's process of updating multicast MAC
>       UBUNTU: SAUCE: {topost} net: hns3: fix unused function warning in VF driver
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
>       UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process
> 
> Yunsheng Lin (36):
>       net: hns3: refactor the hclge_get/set_rss function
>       net: hns3: refactor the hclge_get/set_rss_tuple function
>       net: hns3: fix for RSS configuration loss problem during reset
>       net: hns3: fix for pause configuration lost during reset
>       net: hns3: fix for use-after-free when setting ring parameter
>       net: hns3: refactor the get/put_vector function
>       net: hns3: fix for coalesce configuration lost during reset
>       net: hns3: refactor the coalesce related struct
>       net: hns3: fix for coal configuation lost when setting the channel
>       net: hns3: fix for loopback failure when vlan filter is enable
>       net: hns3: fix for buffer overflow smatch warning
>       net: hns3: fix for vlan table lost problem when resetting
>       net: hns3: Remove error log when getting pfc stats fails
>       net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
>       net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
>       net: hns3: Fix for setting mac address when resetting
>       net: hns3: remove add/del_tunnel_udp in hns3_enet module
>       net: hns3: fix for cleaning ring problem
>       net: hns3: refactor the loopback related function
>       net: hns3: Fixes the back pressure setting when sriov is enabled
>       net: hns3: Fix for fiber link up problem
>       net: hns3: Fix for CMDQ and Misc. interrupt init order problem
>       net: hns3: Disable vf vlan filter when vf vlan table is full
>       net: hns3: Fix for service_task not running problem after resetting
>       net: hns3: Fix for hclge_reset running repeatly problem
>       net: hns3: Fix for phy not link up problem after resetting
>       net: hns3: Add missing break in misc_irq_handle
>       net: hns3: Fix for vxlan tx checksum bug
>       UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
>       UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting correctly
>       UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
>       UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
>       UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm
> 
> kbuild test robot (1):
>       net: hns3: hclge_inform_reset_assert_to_vf() can be static
> 
>  drivers/net/ethernet/hisilicon/Kconfig             |   15 +-
>  drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |   20 +
>  drivers/net/ethernet/hisilicon/hns3/hnae3.c        |  126 +-
>  drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   66 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c   |   10 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    | 1347 ++++++++------
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   45 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  197 +--
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c |  128 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |  144 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |   26 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.h |   10 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 1848 +++++++++++---------
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |  115 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |  206 ++-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c    |   63 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h    |   10 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c  |  133 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h  |   30 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   32 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h   |    2 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |  749 ++++++--
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |   41 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  119 +-
>  24 files changed, 3427 insertions(+), 2055 deletions(-)
> 
if it must be...
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Kleber Souza June 6, 2018, 12:54 a.m. | #4
On 06/05/18 16:04, dann frazier wrote:
> hns3 is a driver under active development, and is only used on
> hardware that is currently pre-production. In fact, the current
> version of the driver in Ubuntu doesn't work on current silicon
> (crashes during init).
> 
> Given the rate of development - and the pre-production status - I
> believe syncing with the upstream driver-specific changes will be more
> risk-averse/maintainable than surgically backporting only changesets
> that individually qualify for SRU. This PR will get us in-sync with
> the current state of linux-next. It also includes a number of
> non-upstream (SAUCE) patches that are making their way upstream in
> batches. I plan to track their upstream integration and replace the
> SAUCE with upstream cherry-picks going forward.
> 
> Tested on a D06 devel system.
> 
> The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> 
>   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hns3-updates-v3
> 
> for you to fetch changes up to d9f218aeb35ae8a1d85e24e8aa456cbc89ec85e7:
> 
>   UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process (2018-06-05 16:21:07 -0600)
> 
> ----------------------------------------------------------------
> Fuyun Liang (30):
>       net: hns3: add existence check when remove old uc mac address
>       net: hns3: fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: fix for ipv6 address loss problem after setting channels
>       net: hns3: unify the pause params setup function
>       net: hns3: reallocate tx/rx buffer after changing mtu
>       net: hns3: change GL update rate
>       net: hns3: change the time interval of int_gl calculating
>       net: hns3: fix for getting wrong link mode problem
>       net: hns3: add get_link support to VF
>       net: hns3: add querying speed and duplex support to VF
>       net: hns3: fix for not returning problem in get_link_ksettings when phy exists
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_key_size
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_indir_size
>       net: hns3: fix for the wrong shift problem in hns3_set_txbd_baseinfo
>       net: hns3: fix for not initializing VF rss_hash_key problem
>       net: hns3: Fix to support autoneg only for port attached with phy
>       net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
>       net: hns3: Fix for the null pointer problem occurring when initializing ae_dev failed
>       net: hns3: Add a check for client instance init state
>       net: hns3: Change return type of hnae3_register_ae_dev
>       net: hns3: Change return type of hnae3_register_ae_algo
>       net: hns3: Change return value in hnae3_register_client
>       net: hns3: Fixes the missing PCI iounmap for various legs
>       net: hns3: Fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: Fixes the init of the VALID BD info in the descriptor
>       net: hns3: Removes unnecessary check when clearing TX/RX rings
>       net: hns3: Clear TX/RX rings when stopping port & un-initializing client
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
>       UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and shift in hclge_get_ring_chain_from_mbx
>       UBUNTU: SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx
> 
> Huazhong Tan (26):
>       net: hns3: fix to correctly fetch l4 protocol outer header
>       net: hns3: Fixes the out of bounds access in hclge_map_tqp
>       net: hns3: Fixes the error legs in hclge_init_ae_dev function
>       net: hns3: fix for phy_addr error in hclge_mac_mdio_config
>       net: hns3: fix a dead loop in hclge_cmd_csq_clean
>       net: hns3: Use enums instead of magic number in hclge_is_special_opcode
>       UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw
>       UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
>       UBUNTU: SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
>       UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
>       UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of some structures
>       UBUNTU: SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
>       UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
>       UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
>       UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during global or core reset
>       UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing command queue register
>       UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock
>       UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset frequently
>       UBUNTU: SAUCE: {topost} net: hns3: correct reset event status register
>       UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when resetting
>       UBUNTU: SAUCE: {topost} net: hns3: fix return value error in hns3_reset_notify_down_enet
>       UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation while resetting
> 
> Jian Shen (20):
>       net: hns3: fix error type definition of return value
>       net: hns3: fix return value error of hclge_get_mac_vlan_cmd_status()
>       net: hns3: add existence checking before adding unicast mac address
>       net: hns3: add result checking for VF when modify unicast mac address
>       net: hns3: cleanup of return values in hclge_init_client_instance()
>       net: hns3: Remove unused led control code
>       net: hns3: Adds support for led locate command for copper port
>       net: hns3: Add repeat address checking for setting mac address
>       net: hns3: Fix setting mac address error
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return value
>       UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets
>       UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments
>       UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset macros
>       UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
>       UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and definition
>       UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
>       UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
>       UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver
> 
> Lijun Ou (2):
>       net: hns3: Fixes initalization of RoCE handle and makes it conditional
>       UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE
> 
> Peng Li (30):
>       net: hns3: VF should get the real rss_size instead of rss_size_max
>       net: hns3: set the cmdq out_vld bit to 0 after used
>       net: hns3: fix endian issue when PF get mbx message flag
>       net: hns3: fix the queue id for tqp enable&&reset
>       net: hns3: set the max ring num when alloc netdev
>       net: hns3: add support for VF driver inner interface hclgevf_ops.get_tqps_and_rss_info
>       net: hns3: fix rx path skb->truesize reporting bug
>       net: hns3: add support for querying pfc puase packets statistic
>       net: hns3: fix the VF queue reset flow error
>       net: hns3: increase the max time for IMP handle command
>       net: hns3: never send command queue message to IMP when reset
>       net: hns3: Add support of .sriov_configure in HNS3 driver
>       net: hns3: Fixes API to fetch ethernet header length with kernel default
>       net: hns3: Updates RX packet info fetch in case of multi BD
>       net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
>       net: hns3: Add STRP_TAGP field support for hardware revision 0x21
>       net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
>       net: hns3: Fixes the state to indicate client-type initialization
>       net: hns3: Add support for IFF_ALLMULTI flag
>       UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in last BD except VLD bit and buffer size
>       UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
>       UBUNTU: SAUCE: {topost} net: hns3: rename the interface for init_client_instance and uninit_client_instance
>       UBUNTU: SAUCE: {topost} net: hns3: add vector status check before free vector
>       UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
>       UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state state init|uninit
>       UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error information
>       UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector in hns3_client_uninit
>       UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check
>       UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear reset cause
> 
> Salil Mehta (10):
>       net: hns3: Changes to make enet watchdog timeout func common for PF/VF
>       net: hns3: Add VF Reset Service Task to support event handling
>       net: hns3: Add VF Reset device state and its handling
>       net: hns3: Add support to request VF Reset to PF
>       net: hns3: Add support to reset the enet/ring mgmt layer
>       net: hns3: Add support to re-initialize the hclge device
>       net: hns3: Changes to support ARQ(Asynchronous Receive Queue)
>       net: hns3: Add *Asserting Reset* mailbox message & handling in VF
>       net: hns3: Changes required in PF mailbox to support VF reset
>       net: hns3: Fixes error reported by Kbuild and internal review
> 
> Tan Xiaojun (1):
>       net: hns3: fix length overflow when CONFIG_ARM64_64K_PAGES
> 
> Wei Hu (Xavier) (3):
>       UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying roce client
>       UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback function when link status change
>       UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce callback function
> 
> Wei Yongjun (1):
>       net: hns3: remove unnecessary pci_set_drvdata() and devm_kfree()
> 
> Xi Wang (11):
>       net: hns3: Remove packet statistics in the range of 8192~12287
>       net: hns3: Fix the missing client list node initialization
>       net: hns3: Fix for hns3 module is loaded multiple times problem
>       net: hns3: Fixes kernel panic issue during rmmod hns3 driver
>       net: hns3: Fix for PF mailbox receving unknown message
>       net: hns3: Optimize the PF's process of updating multicast MAC
>       net: hns3: Optimize the VF's process of updating multicast MAC
>       UBUNTU: SAUCE: {topost} net: hns3: fix unused function warning in VF driver
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
>       UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process
> 
> Yunsheng Lin (36):
>       net: hns3: refactor the hclge_get/set_rss function
>       net: hns3: refactor the hclge_get/set_rss_tuple function
>       net: hns3: fix for RSS configuration loss problem during reset
>       net: hns3: fix for pause configuration lost during reset
>       net: hns3: fix for use-after-free when setting ring parameter
>       net: hns3: refactor the get/put_vector function
>       net: hns3: fix for coalesce configuration lost during reset
>       net: hns3: refactor the coalesce related struct
>       net: hns3: fix for coal configuation lost when setting the channel
>       net: hns3: fix for loopback failure when vlan filter is enable
>       net: hns3: fix for buffer overflow smatch warning
>       net: hns3: fix for vlan table lost problem when resetting
>       net: hns3: Remove error log when getting pfc stats fails
>       net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
>       net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
>       net: hns3: Fix for setting mac address when resetting
>       net: hns3: remove add/del_tunnel_udp in hns3_enet module
>       net: hns3: fix for cleaning ring problem
>       net: hns3: refactor the loopback related function
>       net: hns3: Fixes the back pressure setting when sriov is enabled
>       net: hns3: Fix for fiber link up problem
>       net: hns3: Fix for CMDQ and Misc. interrupt init order problem
>       net: hns3: Disable vf vlan filter when vf vlan table is full
>       net: hns3: Fix for service_task not running problem after resetting
>       net: hns3: Fix for hclge_reset running repeatly problem
>       net: hns3: Fix for phy not link up problem after resetting
>       net: hns3: Add missing break in misc_irq_handle
>       net: hns3: Fix for vxlan tx checksum bug
>       UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
>       UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting correctly
>       UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
>       UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
>       UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm
> 
> kbuild test robot (1):
>       net: hns3: hclge_inform_reset_assert_to_vf() can be static
> 
>  drivers/net/ethernet/hisilicon/Kconfig             |   15 +-
>  drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |   20 +
>  drivers/net/ethernet/hisilicon/hns3/hnae3.c        |  126 +-
>  drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   66 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c   |   10 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    | 1347 ++++++++------
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   45 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  197 +--
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c |  128 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |  144 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |   26 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.h |   10 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 1848 +++++++++++---------
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |  115 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |  206 ++-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c    |   63 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h    |   10 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c  |  133 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h  |   30 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   32 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h   |    2 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |  749 ++++++--
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |   41 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  119 +-
>  24 files changed, 3427 insertions(+), 2055 deletions(-)
> 

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Khalid Elmously June 6, 2018, 11:16 p.m. | #5
Applied to Bionic


On 2018-06-05 17:04:54 , dann frazier wrote:
> hns3 is a driver under active development, and is only used on
> hardware that is currently pre-production. In fact, the current
> version of the driver in Ubuntu doesn't work on current silicon
> (crashes during init).
> 
> Given the rate of development - and the pre-production status - I
> believe syncing with the upstream driver-specific changes will be more
> risk-averse/maintainable than surgically backporting only changesets
> that individually qualify for SRU. This PR will get us in-sync with
> the current state of linux-next. It also includes a number of
> non-upstream (SAUCE) patches that are making their way upstream in
> batches. I plan to track their upstream integration and replace the
> SAUCE with upstream cherry-picks going forward.
> 
> Tested on a D06 devel system.
> 
> The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> 
>   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hns3-updates-v3
> 
> for you to fetch changes up to d9f218aeb35ae8a1d85e24e8aa456cbc89ec85e7:
> 
>   UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process (2018-06-05 16:21:07 -0600)
> 
> ----------------------------------------------------------------
> Fuyun Liang (30):
>       net: hns3: add existence check when remove old uc mac address
>       net: hns3: fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: fix for ipv6 address loss problem after setting channels
>       net: hns3: unify the pause params setup function
>       net: hns3: reallocate tx/rx buffer after changing mtu
>       net: hns3: change GL update rate
>       net: hns3: change the time interval of int_gl calculating
>       net: hns3: fix for getting wrong link mode problem
>       net: hns3: add get_link support to VF
>       net: hns3: add querying speed and duplex support to VF
>       net: hns3: fix for not returning problem in get_link_ksettings when phy exists
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_key_size
>       net: hns3: fix for returning wrong value problem in hns3_get_rss_indir_size
>       net: hns3: fix for the wrong shift problem in hns3_set_txbd_baseinfo
>       net: hns3: fix for not initializing VF rss_hash_key problem
>       net: hns3: Fix to support autoneg only for port attached with phy
>       net: hns3: Fix for deadlock problem occurring when unregistering ae_algo
>       net: hns3: Fix for the null pointer problem occurring when initializing ae_dev failed
>       net: hns3: Add a check for client instance init state
>       net: hns3: Change return type of hnae3_register_ae_dev
>       net: hns3: Change return type of hnae3_register_ae_algo
>       net: hns3: Change return value in hnae3_register_client
>       net: hns3: Fixes the missing PCI iounmap for various legs
>       net: hns3: Fix for netdev not running problem after calling net_stop and net_open
>       net: hns3: Fixes the init of the VALID BD info in the descriptor
>       net: hns3: Removes unnecessary check when clearing TX/RX rings
>       net: hns3: Clear TX/RX rings when stopping port & un-initializing client
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mailbox message truncated problem
>       UBUNTU: SAUCE: {topost} net: hns3: fix for using wrong mask and shift in hclge_get_ring_chain_from_mbx
>       UBUNTU: SAUCE: {topost} net: hns3: fix comments for hclge_get_ring_chain_from_mbx
> 
> Huazhong Tan (26):
>       net: hns3: fix to correctly fetch l4 protocol outer header
>       net: hns3: Fixes the out of bounds access in hclge_map_tqp
>       net: hns3: Fixes the error legs in hclge_init_ae_dev function
>       net: hns3: fix for phy_addr error in hclge_mac_mdio_config
>       net: hns3: fix a dead loop in hclge_cmd_csq_clean
>       net: hns3: Use enums instead of magic number in hclge_is_special_opcode
>       UBUNTU: SAUCE: {topost} net: hns3: remove back in struct hclge_hw
>       UBUNTU: SAUCE: {topost} net: hns3: use lower_32_bits and upper_32_bits
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused hclge_ring_to_dma_dir
>       UBUNTU: SAUCE: {topost} net: hns3: remove useless code in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: simplify hclge_cmd_csq_clean
>       UBUNTU: SAUCE: {topost} net: hns3: using modulo for cyclic counters in hclge_cmd_send
>       UBUNTU: SAUCE: {topost} net: hns3: remove a redundant hclge_cmd_csq_done
>       UBUNTU: SAUCE: {topost} net: hns3: remove some unused members of some structures
>       UBUNTU: SAUCE: {topost} net: hns3: give default option while dependency HNS3 set
>       UBUNTU: SAUCE: {topost} net: hns3: use dma_zalloc_coherent instead of kzalloc/dma_map_single
>       UBUNTU: SAUCE: {topost} net: hns3: modify hnae_ to hnae3_
>       UBUNTU: SAUCE: {topost} net: hns3: prevent sending command during global or core reset
>       UBUNTU: SAUCE: {topost} net: hns3: modify the order of initializeing command queue register
>       UBUNTU: SAUCE: {topost} net: hns3: reset net device with rtnl_lock
>       UBUNTU: SAUCE: {topost} net: hns3: prevent to request reset frequently
>       UBUNTU: SAUCE: {topost} net: hns3: correct reset event status register
>       UBUNTU: SAUCE: {topost} net: hns3: separate roce from nic when resetting
>       UBUNTU: SAUCE: {topost} net: hns3: fix return value error in hns3_reset_notify_down_enet
>       UBUNTU: SAUCE: {topost} net: hns3: remove unnecessary ring configuration operation while resetting
> 
> Jian Shen (20):
>       net: hns3: fix error type definition of return value
>       net: hns3: fix return value error of hclge_get_mac_vlan_cmd_status()
>       net: hns3: add existence checking before adding unicast mac address
>       net: hns3: add result checking for VF when modify unicast mac address
>       net: hns3: cleanup of return values in hclge_init_client_instance()
>       net: hns3: Remove unused led control code
>       net: hns3: Adds support for led locate command for copper port
>       net: hns3: Add repeat address checking for setting mac address
>       net: hns3: Fix setting mac address error
>       UBUNTU: SAUCE: {topost} net: hns3: remove some redundant assignments
>       UBUNTU: SAUCE: {topost} net: hns3: standardize the handle of return value
>       UBUNTU: SAUCE: {topost} net: hns3: remove extra space and brackets
>       UBUNTU: SAUCE: {topost} net: hns3: fix unreasonable code comments
>       UBUNTU: SAUCE: {topost} net: hns3: use decimal for bit offset macros
>       UBUNTU: SAUCE: {topost} net: hns3: modify inconsistent bit mask macros
>       UBUNTU: SAUCE: {topost} net: hns3: fix mislead parameter name
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused struct member and definition
>       UBUNTU: SAUCE: {topost} net: hns3: Add SPDX tags to hns3 driver
>       UBUNTU: SAUCE: {topost} net: hns3: Add configure for mac minimal frame size
>       UBUNTU: SAUCE: net: hns3: Fix for phy link issue when using marvell phy driver
> 
> Lijun Ou (2):
>       net: hns3: Fixes initalization of RoCE handle and makes it conditional
>       UBUNTU: SAUCE: {topost} net: hns3: Add pf reset for hip08 RoCE
> 
> Peng Li (30):
>       net: hns3: VF should get the real rss_size instead of rss_size_max
>       net: hns3: set the cmdq out_vld bit to 0 after used
>       net: hns3: fix endian issue when PF get mbx message flag
>       net: hns3: fix the queue id for tqp enable&&reset
>       net: hns3: set the max ring num when alloc netdev
>       net: hns3: add support for VF driver inner interface hclgevf_ops.get_tqps_and_rss_info
>       net: hns3: fix rx path skb->truesize reporting bug
>       net: hns3: add support for querying pfc puase packets statistic
>       net: hns3: fix the VF queue reset flow error
>       net: hns3: increase the max time for IMP handle command
>       net: hns3: never send command queue message to IMP when reset
>       net: hns3: Add support of .sriov_configure in HNS3 driver
>       net: hns3: Fixes API to fetch ethernet header length with kernel default
>       net: hns3: Updates RX packet info fetch in case of multi BD
>       net: hns3: Add support for tx_accept_tag2 and tx_accept_untag2 config
>       net: hns3: Add STRP_TAGP field support for hardware revision 0x21
>       net: hns3: Add support to enable TX/RX promisc mode for H/W rev(0x21)
>       net: hns3: Fixes the state to indicate client-type initialization
>       net: hns3: Add support for IFF_ALLMULTI flag
>       UBUNTU: SAUCE: {topost} net: hns3: RX BD information valid only in last BD except VLD bit and buffer size
>       UBUNTU: SAUCE: {topost} net: hns3: remove hclge_get_vector_index from hclge_bind_ring_with_vector
>       UBUNTU: SAUCE: {topost} net: hns3: rename the interface for init_client_instance and uninit_client_instance
>       UBUNTU: SAUCE: {topost} net: hns3: add vector status check before free vector
>       UBUNTU: SAUCE: {topost} net: hns3: add l4_type check for both ipv4 and ipv6
>       UBUNTU: SAUCE: {topost} net: hns3: remove unused head file in hnae3.c
>       UBUNTU: SAUCE: {topost} net: hns3: extraction an interface for state state init|uninit
>       UBUNTU: SAUCE: {topost} net: hns3: print the ret value in error information
>       UBUNTU: SAUCE: {topost} net: hns3: remove the Redundant put_vector in hns3_client_uninit
>       UBUNTU: SAUCE: {topost} net: hns3: add unlikely for error check
>       UBUNTU: SAUCE: {topost} net: hns3: remove the warning when clear reset cause
> 
> Salil Mehta (10):
>       net: hns3: Changes to make enet watchdog timeout func common for PF/VF
>       net: hns3: Add VF Reset Service Task to support event handling
>       net: hns3: Add VF Reset device state and its handling
>       net: hns3: Add support to request VF Reset to PF
>       net: hns3: Add support to reset the enet/ring mgmt layer
>       net: hns3: Add support to re-initialize the hclge device
>       net: hns3: Changes to support ARQ(Asynchronous Receive Queue)
>       net: hns3: Add *Asserting Reset* mailbox message & handling in VF
>       net: hns3: Changes required in PF mailbox to support VF reset
>       net: hns3: Fixes error reported by Kbuild and internal review
> 
> Tan Xiaojun (1):
>       net: hns3: fix length overflow when CONFIG_ARM64_64K_PAGES
> 
> Wei Hu (Xavier) (3):
>       UBUNTU: SAUCE: {topost} net: hns3: optimize the process of notifying roce client
>       UBUNTU: SAUCE: {topost} net: hns3: Add calling roce callback function when link status change
>       UBUNTU: SAUCE: {topost} net: hns3: Use roce handle when calling roce callback function
> 
> Wei Yongjun (1):
>       net: hns3: remove unnecessary pci_set_drvdata() and devm_kfree()
> 
> Xi Wang (11):
>       net: hns3: Remove packet statistics in the range of 8192~12287
>       net: hns3: Fix the missing client list node initialization
>       net: hns3: Fix for hns3 module is loaded multiple times problem
>       net: hns3: Fixes kernel panic issue during rmmod hns3 driver
>       net: hns3: Fix for PF mailbox receving unknown message
>       net: hns3: Optimize the PF's process of updating multicast MAC
>       net: hns3: Optimize the VF's process of updating multicast MAC
>       UBUNTU: SAUCE: {topost} net: hns3: fix unused function warning in VF driver
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox cannot receiving PF response
>       UBUNTU: SAUCE: net: hns3: Fix for VF mailbox receiving unknown message
>       UBUNTU: SAUCE: net: hns3: Optimize PF CMDQ interrupt switching process
> 
> Yunsheng Lin (36):
>       net: hns3: refactor the hclge_get/set_rss function
>       net: hns3: refactor the hclge_get/set_rss_tuple function
>       net: hns3: fix for RSS configuration loss problem during reset
>       net: hns3: fix for pause configuration lost during reset
>       net: hns3: fix for use-after-free when setting ring parameter
>       net: hns3: refactor the get/put_vector function
>       net: hns3: fix for coalesce configuration lost during reset
>       net: hns3: refactor the coalesce related struct
>       net: hns3: fix for coal configuation lost when setting the channel
>       net: hns3: fix for loopback failure when vlan filter is enable
>       net: hns3: fix for buffer overflow smatch warning
>       net: hns3: fix for vlan table lost problem when resetting
>       net: hns3: Remove error log when getting pfc stats fails
>       net: hns3: Fix for packet loss due wrong filter config in VLAN tbls
>       net: hns3: Add support of hardware rx-vlan-offload to HNS3 VF driver
>       net: hns3: Fix for setting mac address when resetting
>       net: hns3: remove add/del_tunnel_udp in hns3_enet module
>       net: hns3: fix for cleaning ring problem
>       net: hns3: refactor the loopback related function
>       net: hns3: Fixes the back pressure setting when sriov is enabled
>       net: hns3: Fix for fiber link up problem
>       net: hns3: Fix for CMDQ and Misc. interrupt init order problem
>       net: hns3: Disable vf vlan filter when vf vlan table is full
>       net: hns3: Fix for service_task not running problem after resetting
>       net: hns3: Fix for hclge_reset running repeatly problem
>       net: hns3: Fix for phy not link up problem after resetting
>       net: hns3: Add missing break in misc_irq_handle
>       net: hns3: Fix for vxlan tx checksum bug
>       UBUNTU: SAUCE: {topost} net: hns3: add support for serdes loopback selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix tc setup when netdev is first up
>       UBUNTU: SAUCE: {topost} net: hns3: fix for mac pause not disable in pfc mode
>       UBUNTU: SAUCE: {topost} net: hns3: fix for waterline not setting correctly
>       UBUNTU: SAUCE: {topost} net: hns3: fix for l4 checksum offload bug
>       UBUNTU: SAUCE: {topost} net: hns3: fix warning bug when doing lp selftest
>       UBUNTU: SAUCE: {topost} net: hns3: fix get_vector ops in hclgevf_main module
>       UBUNTU: SAUCE: {topost} net: hns3: fix for reset_level default assignment probelm
> 
> kbuild test robot (1):
>       net: hns3: hclge_inform_reset_assert_to_vf() can be static
> 
>  drivers/net/ethernet/hisilicon/Kconfig             |   15 +-
>  drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |   20 +
>  drivers/net/ethernet/hisilicon/hns3/hnae3.c        |  126 +-
>  drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   66 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c   |   10 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    | 1347 ++++++++------
>  drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   45 +-
>  drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  197 +--
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c |  128 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |  144 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |   26 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.h |   10 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    | 1848 +++++++++++---------
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |  115 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |  206 ++-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c    |   63 +-
>  .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.h    |   10 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c  |  133 +-
>  .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h  |   30 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   32 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h   |    2 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |  749 ++++++--
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |   41 +-
>  .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  119 +-
>  24 files changed, 3427 insertions(+), 2055 deletions(-)
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team