From patchwork Tue Jun 5 23:04:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: dann frazier X-Patchwork-Id: 925661 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 410nT03lH8z9s15; Wed, 6 Jun 2018 09:05:08 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1fQL0e-00080g-9c; Tue, 05 Jun 2018 23:05:00 +0000 Received: from complete.lackof.org ([198.49.126.79]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1fQL0b-0007xO-Cu for kernel-team@lists.ubuntu.com; Tue, 05 Jun 2018 23:04:57 +0000 Received: from localhost (50-201-118-110-static.hfc.comcastbusiness.net [50.201.118.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by complete.lackof.org (Postfix) with ESMTPSA id 4422533E008B for ; Tue, 5 Jun 2018 17:04:55 -0600 (MDT) Date: Tue, 5 Jun 2018 17:04:54 -0600 From: dann frazier To: kernel-team@lists.ubuntu.com Subject: [PULL v3][SRU Bionic] hns3 driver updates Message-ID: <20180605230454.GA10548@xps13.dannf> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.0 (2018-05-17) X-Virus-Scanned: clamav-milter 0.99.4 at complete.lackof.org X-Virus-Status: Clean X-Spam-Status: No, score=0.2 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on complete.lackof.org X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" 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: Stefan Bader Acked-by: Kleber Sacilotto de Souza