1. 17 May, 2021 40 commits
    • David S. Miller's avatar
      Merge branch 'mlxsw-next' · 609c8ae8
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Various updates
      
      This patchset contains various updates to the mlxsw driver and related
      selftests.
      
      Patches #1-#5 contain various updates to mlxsw selftests. The most
      significant change is the conversion of the DCB selftests to use the new
      iproute2 DCB support.
      
      Patches #6-#9 contain mostly trivial changes to the driver itself. No
      user facing changes.
      
      Patches #10-#11 remove support for SwitchX-2 and SwitchIB ASICs that did
      not see any updates in the last 4-5 years and will not see any in the
      future. See individual commit messages for detailed explanation as to
      why it is OK to remove these drivers from the kernel.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      609c8ae8
    • Amit Cohen's avatar
      mlxsw: Remove Mellanox SwitchX-2 ASIC support · b0d80c01
      Amit Cohen authored
      Initial support for the Mellanox SwitchX-2 ASIC was added in July 2015.
      Since then all development efforts shifted towards the Mellanox Spectrum
      ASICs and development of this driver stopped beside trivial fixes and
      refactoring. Therefore, the driver does not support any switch offloads
      and simply traps all traffic to the CPU, rendering it irrelevant for
      deployment.
      
      In addition, support for this ASIC was dropped by Mellanox a few years
      ago.
      
      Given the driver is not used by any users and that there is no
      intention of investing in its development, remove it from the kernel.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b0d80c01
    • Amit Cohen's avatar
      mlxsw: Remove Mellanox SwitchIB ASIC support · 9b43fbb8
      Amit Cohen authored
      Initial support for the Mellanox SwitchIB and SwitchIB-2 ASICs was added
      in October 2016, but since then development of this driver stopped.
      Therefore, the driver does not support any offloads and simply registers
      devlink ports for its front panel ports, rendering it irrelevant for
      deployment.
      
      Given the driver is not used by any users and that there is no intention
      of investing in its development, remove it from the kernel.
      Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b43fbb8
    • Ido Schimmel's avatar
      mlxsw: spectrum_router: Avoid missing error code warning · 51746a35
      Ido Schimmel authored
      Explicitly set the error code to zero before the goto statement to avoid
      the following smatch warning:
      
      drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err'
      
      The warning is a false positive, but the change both suppresses the
      warning and makes it clear to future readers that this is not an error
      path.
      
      The original report and discussion can be found here [1].
      
      [1] https://lore.kernel.org/lkml/202105141823.Td2h3Mbi-lkp@intel.com/
      
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Suggested-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      51746a35
    • Ido Schimmel's avatar
      mlxsw: core: Avoid unnecessary EMAD buffer copy · 8c2b58e6
      Ido Schimmel authored
      mlxsw_emad_transmit() takes care of sending EMAD transactions to the
      device. Since these transactions can time out, the driver performs up to
      5 retransmissions, each time copying the skb with the original request.
      
      The data of the skb does not change throughout the process, so there is
      no need to copy it each time. Instead, only the skb itself can be
      copied. Therefore, use skb_clone() instead of skb_copy().
      
      This reduces the latency of the function by about 16%.
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8c2b58e6
    • Danielle Ratson's avatar
      mlxsw: Verify the accessed index doesn't exceed the array length · 837ec05c
      Danielle Ratson authored
      There are few cases in which an array index queried from a fw register,
      is accessed without any validation that it doesn't exceed the array
      length.
      
      Add a proper length validation, so accessing memory past the end of an
      array will be forbidden.
      Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      837ec05c
    • Danielle Ratson's avatar
      mlxsw: spectrum_buffers: Switch function arguments · ece5df87
      Danielle Ratson authored
      In the call path:
      
      mlxsw_sp_hdroom_bufs_reset_sizes()
          mlxsw_sp_hdroom_int_buf_size_get()
              ->int_buf_size_get()
      
      The 'speed' and 'mtu' arguments were mistakenly switched twice. The two
      bugs thus canceled each other.
      
      Clean this up by switching the arguments in both call sites, so that
      they are passed in the right order.
      
      Found during manual code inspection.
      Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ece5df87
    • Petr Machata's avatar
      selftests: mlxsw: qos_lib: Drop __mlnx_qos · b4d78694
      Petr Machata authored
      Now that the two users of this helper have been converted to iproute2 dcb,
      it is not necessary anymore. Drop it.
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b4d78694
    • Petr Machata's avatar
      selftests: mlxsw: qos_pfc: Convert to iproute2 dcb · b0bab229
      Petr Machata authored
      There is a dedicated tool for configuration of DCB in iproute2 now. Use it
      in the selftest instead of mlnx_qos.
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b0bab229
    • Petr Machata's avatar
      selftests: mlxsw: qos_headroom: Convert to iproute2 dcb · 9a1cac06
      Petr Machata authored
      There is a dedicated tool for configuration of DCB in iproute2 now. Use it
      in the selftest instead of mlnx_qos.
      Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9a1cac06
    • Ido Schimmel's avatar
      selftests: mlxsw: Make sampling test more robust · 16355c0b
      Ido Schimmel authored
      The test sometimes fails with an error message such as:
      
      TEST: tc sample (w/ flower) rate (egress)                           [FAIL]
      	Expected 100 packets, got 70 packets, which is -30% off. Required accuracy is +-25%
      
      Make the test more robust by generating more packets, therefore
      increasing the number of expected samples. Decrease the transmission
      delay in order not to needlessly prolong the test.
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16355c0b
    • Danielle Ratson's avatar
      selftests: mlxsw: Make the unsplit array global in port_scale test · 5d01071e
      Danielle Ratson authored
      Currently, the array of the ports that were split in the port_scale test
      is local, so the port_cleanup() unsplits an empty array.
      
      Make the array global so the cleanup will be preformed properly.
      Suggested-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
      Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5d01071e
    • David S. Miller's avatar
      Merge branch 'func-names-comment' · 16145dbd
      David S. Miller authored
      Yang Shen says:
      
      ====================
      Rid W=1 warnings in net
      
      This is a set to fully clean drivers/net.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16145dbd
    • Yang Shen's avatar
      net: hisilicon: hns: Fix wrong function name in comments · 5a9594cf
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c:121: warning: expecting prototype for hns_mac_is_adjust_link(). Prototype was for hns_mac_need_adjust_link() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c:386: warning: expecting prototype for hns_mac_queue_config_bc_en(). Prototype was for hns_mac_port_config_bc_en() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c:607: warning: expecting prototype for hns_mac_set_autoneg(). Prototype was for hns_mac_set_pauseparam() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:236: warning: expecting prototype for hns_ppe_qid_cfg(). Prototype was for hns_dsaf_ppe_qid_cfg() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:623: warning: expecting prototype for dsaf_tbl_tcam_mcast_cfg(). Prototype was for hns_dsaf_tbl_tcam_mcast_cfg() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:1220: warning: expecting prototype for hns_dsaf_tbl_tcam_init(). Prototype was for hns_dsaf_comm_init() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:2121: warning: expecting prototype for dsaf_pfc_unit_cnt(). Prototype was for hns_dsaf_pfc_unit_cnt() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:2153: warning: expecting prototype for dsaf_port_work_rate_cfg(). Prototype was for hns_dsaf_port_work_rate_cfg() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:2745: warning: expecting prototype for hns_dsaf_get_sset_count(). Prototype was for hns_dsaf_get_regs_count() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:2957: warning: expecting prototype for dsaf_probe(). Prototype was for hns_dsaf_probe() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c:3011: warning: expecting prototype for dsaf_remove(). Prototype was for hns_dsaf_remove() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:366: warning: expecting prototype for hns_dsaf_srst_chns(). Prototype was for hns_dsaf_srst_chns_acpi() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c:509: warning: expecting prototype for hns_mac_get_sds_mode(). Prototype was for hns_mac_get_phy_if() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:303: warning: expecting prototype for ppe_init_hw(). Prototype was for hns_ppe_init_hw() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:350: warning: expecting prototype for ppe_uninit_hw(). Prototype was for hns_ppe_uninit_hw() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:391: warning: expecting prototype for hns_ppe_reset(). Prototype was for hns_ppe_reset_common() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c:464: warning: expecting prototype for ppe_get_strings(). Prototype was for hns_ppe_get_strings() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c:920: warning: expecting prototype for rcb_get_sset_count(). Prototype was for hns_rcb_get_ring_regs_count() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c:112: warning: expecting prototype for hns_xgmac_tx_lf_rf_insert(). Prototype was for hns_xgmac_lf_rf_insert() instead
       drivers/net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c:122: warning: expecting prototype for hns_xgmac__lf_rf_control_init(). Prototype was for hns_xgmac_lf_rf_control_init() instead
       drivers/net/ethernet/hisilicon/hns/hns_enet.c:777: warning: expecting prototype for hns_nic_adp_coalesce(). Prototype was for hns_nic_adpt_coalesce() instead
       drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:202: warning: expecting prototype for hns_nic_set_link_settings(). Prototype was for hns_nic_set_link_ksettings() instead
       drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:837: warning: expecting prototype for get_ethtool_stats(). Prototype was for hns_get_ethtool_stats() instead
       drivers/net/ethernet/hisilicon/hns/hns_ethtool.c:894: warning: expecting prototype for get_strings(). Prototype was for hns_get_strings() instead
      
      Cc: Yisen Zhuang <yisen.zhuang@huawei.com>
      Cc: Salil Mehta <salil.mehta@huawei.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a9594cf
    • Yang Shen's avatar
      net: phy: Demote non-compliant kernel-doc headers · 1f2d109e
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/phy/adin.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
       drivers/net/phy/rockchip.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
      
      Cc: Heiner Kallweit <hkallweit1@gmail.com>
      Cc: Russell King <linux@armlinux.org.uk>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1f2d109e
    • Yang Shen's avatar
      net: via: Fix wrong function name in comments · 03055a25
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/via/via-velocity.c:1908: warning: expecting prototype for tx_srv(). Prototype was for velocity_tx_srv() instead
       drivers/net/ethernet/via/via-velocity.c:2466: warning: expecting prototype for velocity_get_status(). Prototype was for velocity_get_stats() instead
       drivers/net/ethernet/via/via-velocity.c:3734: warning: expecting prototype for velocity_cleanup(). Prototype was for velocity_cleanup_module() instead
      
      Cc: Francois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      03055a25
    • Yang Shen's avatar
      net: ti: Fix wrong struct name in comments · 85ead77d
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/ti/cpsw_ale.c:88: warning: expecting prototype for struct ale_dev_id. Prototype was for struct cpsw_ale_dev_id instead
      
      Cc: Cyril Chemparathy <cyril@ti.com>
      Cc: Grygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      85ead77d
    • Yang Shen's avatar
      net: socionext: Demote non-compliant kernel-doc headers · 40d9fca8
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/socionext/sni_ave.c:28: warning: expecting prototype for sni_ave.c(). Prototype was for AVE_IDR() instead
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Reviewed-by: default avatarKunihiko Hayashi <hayashi.kunihiko@socionext.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      40d9fca8
    • Yang Shen's avatar
      net: samsung: sxgbe: Fix wrong function name in comments · 61633d71
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c:797: warning: expecting prototype for sxgbe_tx_clean(). Prototype was for sxgbe_tx_all_clean() instead
       drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c:1026: warning: expecting prototype for sxgbe_init_tx_coalesce(). Prototype was for sxgbe_tx_init_coalesce() instead
      
      Cc: Byungho An <bh74.an@samsung.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61633d71
    • Yang Shen's avatar
      net: calxeda: Fix wrong function name in comments · 9f2e6fb6
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c:761: warning: expecting prototype for qlcnic_83xx_idc_cold_state(). Prototype was for qlcnic_83xx_idc_cold_state_handler() instead
       drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c:192: warning: expecting prototype for qlcnic_83xx_vnic_opmode(). Prototype was for qlcnic_83xx_config_vnic_opmode() instead
      
      Cc: Shahed Shaikh <shshaikh@marvell.com>
      Cc: Manish Chopra <manishc@marvell.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9f2e6fb6
    • Yang Shen's avatar
      net: netronome: nfp: Fix wrong function name in comments · a507b164
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/netronome/nfp/ccm_mbox.c:52: warning: expecting prototype for struct nfp_ccm_mbox_skb_cb. Prototype was for struct nfp_ccm_mbox_cmsg_cb instead
       drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c:35: warning: expecting prototype for struct nfp_tun_pre_run_rule. Prototype was for struct nfp_tun_pre_tun_rule instead
       drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nffw.c:38: warning: expecting prototype for NFFW_INFO_VERSION history(). Prototype was for NFFW_INFO_VERSION_CURRENT() instead
      
      Cc: Simon Horman <simon.horman@netronome.com>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@netronome.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a507b164
    • Yang Shen's avatar
      net: neterion: vxge: Fix wrong function name in comments · 146c91e2
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/neterion/vxge/vxge-config.c:4895: warning: expecting prototype for vxge_hw_vpath_rx_doorbell_post(). Prototype was for vxge_hw_vpath_rx_doorbell_init() instead
       drivers/net/ethernet/neterion/vxge/vxge-main.c:1814: warning: expecting prototype for vxge_poll(). Prototype was for vxge_poll_msix() instead
       drivers/net/ethernet/neterion/vxge/vxge-main.c:4761: warning: expecting prototype for vxge_rem_nic(). Prototype was for vxge_remove() instead
      
      Cc: Jon Mason <jdmason@kudzu.us>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      146c91e2
    • Yang Shen's avatar
      net: neterion: Fix wrong function name in comments · dc432f5a
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/neterion/s2io.c:2759: warning: expecting prototype for s2io_poll(). Prototype was for s2io_poll_msix() instead
       drivers/net/ethernet/neterion/s2io.c:5304: warning: expecting prototype for s2io_ethtol_get_link_ksettings(). Prototype was for s2io_ethtool_get_link_ksettings() instead
      
      Cc: Jon Mason <jdmason@kudzu.us>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc432f5a
    • Yang Shen's avatar
      net: microchip: Demote non-compliant kernel-doc headers · 331a3219
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/microchip/encx24j600.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
      
      Cc: Jon Ringle <jringle@gridpoint.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      331a3219
    • Yang Shen's avatar
      net: micrel: Fix wrong function name in comments · 229fd41f
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/micrel/ksz884x.c:2163: warning: expecting prototype for sw_get_board_storm(). Prototype was for sw_get_broad_storm() instead
       drivers/net/ethernet/micrel/ksz884x.c:2985: warning: expecting prototype for port_w_phy(). Prototype was for hw_w_phy() instead
       drivers/net/ethernet/micrel/ksz884x.c:4792: warning: expecting prototype for transmit_done(). Prototype was for tx_done() instead
      
      Cc: Tristram Ha <Tristram.Ha@micrel.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      229fd41f
    • Yang Shen's avatar
      net: huawei: hinic: Fix wrong function name in comments · d6174870
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
       drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c:604: warning: expecting prototype for cmdq_arm_ceq_handler(). Prototype was for cmdq_sync_cmd_handler() instead
       drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c:59: warning: expecting prototype for get_capability(). Prototype was for parse_capability() instead
       drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c:101: warning: expecting prototype for get_cap_from_fw(). Prototype was for get_capability() instead
       drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c:355: warning: expecting prototype for clear_io_resource(). Prototype was for clear_io_resources() instead
       drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c:1100: warning: expecting prototype for hinic_hwdev_get_sq(). Prototype was for hinic_hwdev_get_rq() instead
       drivers/net/ethernet/huawei/hinic/hinic_hw_if.c:341: warning: expecting prototype for dma_attr_table_init(). Prototype was for dma_attr_init() instead
       drivers/net/ethernet/huawei/hinic/hinic_hw_qp.c:904: warning: expecting prototype for hinic_put_wqe(). Prototype was for hinic_rq_put_wqe() instead
       drivers/net/ethernet/huawei/hinic/hinic_main.c:241: warning: expecting prototype for create_txqs(). Prototype was for create_rxqs() instead
       drivers/net/ethernet/huawei/hinic/hinic_main.c:295: warning: expecting prototype for free_txqs(). Prototype was for free_rxqs() instead
       drivers/net/ethernet/huawei/hinic/hinic_tx.c:667: warning: expecting prototype for free_all_rx_skbs(). Prototype was for free_all_tx_skbs() instead
      
      Cc: Bin Luo <luobin9@huawei.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d6174870
    • Yang Shen's avatar
      net: chelsio: cxgb4vf: Fix wrong function name in comments · 1eb00ff5
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/chelsio/cxgb4vf/sge.c:966: warning: expecting prototype for check_ring_tx_db(). Prototype was for ring_tx_db() instead
      
      Cc: Raju Rangoju <rajur@chelsio.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1eb00ff5
    • Yang Shen's avatar
      net: chelsio: cxgb4: Fix wrong function name in comments · e0333b1b
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/chelsio/cxgb3/sge.c:677: warning: expecting prototype for free_qset(). Prototype was for t3_free_qset() instead
       drivers/net/ethernet/chelsio/cxgb3/sge.c:1266: warning: expecting prototype for eth_xmit(). Prototype was for t3_eth_xmit() instead
      
      Cc: Raju Rangoju <rajur@chelsio.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0333b1b
    • Yang Shen's avatar
      net: chelsio: cxgb3: Fix wrong function name in comments · aeed744a
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/chelsio/cxgb3/sge.c:677: warning: expecting prototype for free_qset(). Prototype was for t3_free_qset() instead
       drivers/net/ethernet/chelsio/cxgb3/sge.c:1266: warning: expecting prototype for eth_xmit(). Prototype was for t3_eth_xmit() instead
      
      Cc: Raju Rangoju <rajur@chelsio.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aeed744a
    • Yang Shen's avatar
      net: calxeda: Fix wrong function name in comments · 2e45d961
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/calxeda/xgmac.c:720: warning: expecting prototype for init_xgmac_dma_desc_rings(). Prototype was for xgmac_dma_desc_rings_init() instead
       drivers/net/ethernet/calxeda/xgmac.c:867: warning: expecting prototype for xgmac_tx(). Prototype was for xgmac_tx_complete() instead
       drivers/net/ethernet/calxeda/xgmac.c:1049: warning: expecting prototype for xgmac_release(). Prototype was for xgmac_stop() instead
       drivers/net/ethernet/calxeda/xgmac.c:1822: warning: expecting prototype for xgmac_dvr_remove(). Prototype was for xgmac_remove() instead
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e45d961
    • Yang Shen's avatar
      net: cadence: Demote non-compliant kernel-doc headers · c1167cee
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/cadence/macb_pci.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
       drivers/net/ethernet/cadence/macb_ptp.c:3: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
      
      Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
      Cc: Claudiu Beznea <claudiu.beznea@microchip.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c1167cee
    • Yang Shen's avatar
      net: brocade: bna: Fix wrong function name in comments · 5a02bf4f
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/brocade/bna/bfa_cee.c:91: warning: expecting prototype for bfa_cee_get_attr_isr(). Prototype was for bfa_cee_get_stats_isr() instead
      
      Cc: Rasesh Mody <rmody@marvell.com>
      Cc: Sudarsana Kalluru <skalluru@marvell.com>
      Cc: GR-Linux-NIC-Dev@marvell.com
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a02bf4f
    • Yang Shen's avatar
      net: broadcom: bnx2x: Fix wrong function name in comments · 76d85049
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c:13595: warning: expecting prototype for bnx2x_get_num_none_def_sbs(). Prototype was for bnx2x_get_num_non_def_sbs() instead
       drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c:4165: warning: expecting prototype for atomic_add_ifless(). Prototype was for __atomic_add_ifless() instead
       drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c:4193: warning: expecting prototype for atomic_dec_ifmoe(). Prototype was for __atomic_dec_ifmoe() instead
      
      Cc: Ariel Elior <aelior@marvell.com>
      Cc: Sudarsana Kalluru <skalluru@marvell.com>
      Cc: GR-everest-linux-l2@marvell.com
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      76d85049
    • Yang Shen's avatar
      net: atheros: atl1x: Fix wrong function name in comments · c706c75a
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/atheros/atlx/atl1.c:1020: warning: expecting prototype for atl1_setup_mem_resources(). Prototype was for atl1_setup_ring_resources() instead
      
      Cc: Chris Snook <chris.snook@gmail.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c706c75a
    • Yang Shen's avatar
      net: atheros: atl1e: Fix wrong function name in comments · b43e1554
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/atheros/atl1e/atl1e_main.c:367: warning: expecting prototype for atl1e_set_mac(). Prototype was for atl1e_set_mac_addr() instead
       drivers/net/ethernet/atheros/atl1e/atl1e_main.c:796: warning: expecting prototype for atl1e_setup_mem_resources(). Prototype was for atl1e_setup_ring_resources() instead
      
      Cc: Chris Snook <chris.snook@gmail.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b43e1554
    • Yang Shen's avatar
      net: atheros: atl1c: Fix wrong function name in comments · 8965c1c5
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/atheros/atl1c/atl1c_main.c:442: warning: expecting prototype for atl1c_set_mac(). Prototype was for atl1c_set_mac_addr() instead
       drivers/net/ethernet/atheros/atl1c/atl1c_main.c:969: warning: expecting prototype for atl1c_setup_mem_resources(). Prototype was for atl1c_setup_ring_resources() instead
       drivers/net/ethernet/atheros/atl1c/atl1c_main.c:1375: warning: expecting prototype for atl1c_configure(). Prototype was for atl1c_configure_mac() instead
      
      Cc: Chris Snook <chris.snook@gmail.com>
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8965c1c5
    • Yang Shen's avatar
      net: arc: Demote non-compliant kernel-doc headers · 1d7f7eca
      Yang Shen authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/arc/emac_rockchip.c:18: warning: expecting prototype for emac(). Prototype was for DRV_NAME() instead
      Signed-off-by: default avatarYang Shen <shenyang39@huawei.com>
      Reviewed-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1d7f7eca
    • Heiner Kallweit's avatar
      r8169: use KBUILD_MODNAME instead of own module name definition · 7cb7541a
      Heiner Kallweit authored
      Remove own module name definition and use KBUILD_MODNAME instead.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7cb7541a
    • David S. Miller's avatar
      Merge branch 'ipv4-unicast' · 58fee5fc
      David S. Miller authored
      Seth David Schoen says:
      
      ====================
      Treat IPv4 lowest address as ordinary unicast address
      
      Treat the lowest address in a subnet (the address within the subnet
      which contains all 0 bits) as an ordinary unicast address instead
      of as a potential second broadcast address.  For example, in subnet
      192.168.17.24/29, which contains 8 addresses, make address 192.168.17.24
      usable as a normal unicast address (while continuing to support
      192.168.17.31 as a broadcast address).
      
      Since EVERY network number or subnet formerly had its host number 0
      reserved, this patchset adds 1 more usable host address to every network
      and subnet (i.e., 2^(32-n)-1 instead of 2^(32-n)-2 addresses available
      for assignment on each IPv4 /n subnet).  For small subnets, this is a
      significant gain; instead of 6 usable host addresses, a /29 would now
      contain 7, a 16% increase.
      
      The reserving of host number 0 for broadcast came about in RFC 1122 from
      1989 (page 31, "IP addresses are not permitted to have the value 0 or -1
      for any of the <Host-number>, <Network-number>, or <Subnet-number>
      fields (except in the special cases listed above)" and page 66, "There
      is a class of hosts [4.2BSD Unix and its derivatives, but not 4.3BSD]
      that use non-standard broadcast address forms, substituting 0 for -1.
      All hosts SHOULD recognize and accept any of these non-standard
      broadcast addresses as the destination address of an incoming
      datagram.").  This has been repeated in subsequent RFCs, always with
      backwards-compatibility rationales.  Network troubles (broadcast storms)
      ensued when some early hosts on a LAN treated the lowest address as
      unicast and others treated it as broadcast.  Multiple 1989 changes to IP
      successfully prevented these.  The key was adding the layering violation
      rule requiring hosts to ignore all IP datagrams with unicast destination
      addresses that were received in low-level (Ethernet) broadcasts.  That
      change is still in effect, and this patchset does not alter it.  All
      operating systems since 4.3BSD, including all the current BSD OSes, now
      use the standard IP broadcast address.  4.2BSD has been obsolete for
      more than 30 years, and all modern hosts ignore hardware broadcasts
      containing unicast IP addresses, so there is no modern likelihood of
      broadcast storms even when hosts disagree on the unicast vs. broadcast
      status of a given address.
      
      Tests with this patchset show that other Linux hosts on the local segment
      simply ignore a host numbered with the lowest address, both for incoming
      and outgoing packet purposes.  They don't interoperate with it, but they
      also don't cause broadcast storms or any other malfunction.  If patched,
      they have no trouble interoperating with a host at the lowest address.
      
      Unmodified "distant" hosts that are not on the same segment successfully
      interoperate, as long as the gateway on the local segment, and the local
      host itself using the lowest address, have this patch.  (Distant hosts
      have no way of knowing whether a given address is the lowest address
      in a faraway network segment, so they treat it no differently than any
      other unicast address.)  This means that each local site can change this
      behavior locally, resulting immediately in global interoperability with
      the newly usable lowest local address.
      
      Modern software and documentation continues to use the definition of the
      directed, or "net-directed", broadcast address as "a host ID of all one
      bits".  The Internet no longer gets any benefit from having two different
      broadcast addresses usable on every Ethernet segment.  I have not been
      able to find any documentation that suggests that users or software should
      ever intentionally use the all-zero form, or that justifies it other than
      as a historic Berkeleyism.  RFCs 1112, 1812, and 3021 state that hosts and
      routers need to maintain compatibility with the old form -- but they give
      no rationale other than the past existence of the 4.2BSD behavior.
      
      We're happy to provide more historical details or information about
      behavior of other systems in this regard by e-mail or as future patches
      to kernel documentation files.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58fee5fc
    • Seth David Schoen's avatar
      selftests: Lowest IPv4 address in a subnet is valid · 6101ca03
      Seth David Schoen authored
      Expect the lowest IPv4 address in a subnet to be assignable
      and addressable as a unicast (non-broadcast) address on a
      local network segment.
      Signed-off-by: default avatarSeth David Schoen <schoen@loyalty.org>
      Suggested-by: default avatarJohn Gilmore <gnu@toad.com>
      Acked-by: default avatarDave Taht <dave.taht@gmail.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6101ca03