1. 17 May, 2021 27 commits
    • 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
    • Seth David Schoen's avatar
      ip: Treat IPv4 segment's lowest address as unicast · 94c821c7
      Seth David Schoen authored
      Treat only the highest, not the lowest, IPv4 address within a local
      subnet as a broadcast address.
      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>
      94c821c7
  2. 14 May, 2021 13 commits
    • Ansuel Smith's avatar
      net: mdio: ipq8064: enlarge sleep after read/write operation · 77091933
      Ansuel Smith authored
      With the use of the qca8k dsa driver, some problem arised related to
      port status detection. With a load on a specific port (for example a
      simple speed test), the driver starts to behave in a strange way and
      garbage data is produced. To address this, enlarge the sleep delay and
      address a bug for the reg offset 31 that require additional delay for
      this specific reg.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      77091933
    • Ansuel Smith's avatar
      net: mdio: ipq8064: add regmap config to disable REGCACHE · b097bea1
      Ansuel Smith authored
      mdio drivers should not use REGCHACHE. Also disable locking since it's
      handled by the mdio users and regmap is always accessed atomically.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b097bea1
    • Ansuel Smith's avatar
      net: mdio: ipq8064: clean whitespaces in define · 94864069
      Ansuel Smith authored
      Fix mixed whitespace and tab for define spacing.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      94864069
    • David S. Miller's avatar
      Merge branch 'qca8k-improvements' · ddd998af
      David S. Miller authored
      Ansuel Smith says:
      
      ====================
      Multiple improvement to qca8k stability
      
      Currently qca8337 switch are widely used on ipq8064 based router.
      On these particular router it was notice a very unstable switch with
      port not link detected as link with unknown speed, port dropping
      randomly and general unreliability. Lots of testing and comparison
      between this dsa driver and the original qsdk driver showed lack of some
      additional delay and values. A main difference arised from the original
      driver and the dsa one. The original driver didn't use MASTER regs to
      read phy status and the dedicated mdio driver worked correctly. Now that
      the dsa driver actually use these regs, it was found that these special
      read/write operation required mutual exclusion to normal
      qca8k_read/write operation. The add of mutex for these operation fixed
      the random port dropping and now only the actual linked port randomly
      dropped. Adding additional delay for set_page operation and fixing a bug
      in the mdio dedicated driver fixed also this problem. The current driver
      requires also more time to apply vlan switch. All of these changes and
      tweak permit a now very stable and reliable dsa driver and 0 port
      dropping. This series is currently tested by at least 5 user with
      different routers and all reports positive results and no problems.
      
      Changes v6:
      - Fix spelling mistake
      - Change ms to ns (confirmed by datasheet)
      Changes v5:
      - Removed mdio patch (sent separetly to try to reduce the series)
        I know it was asked to reduced this series since it big, but rework
        the new changes to skip and error check looks wrong. Since half of them
        are actually already reviewed I think it's better to keep this series as is.
      - Improve rgmii configurable patch
      - Move qca8k phy dedicated driver to at803x phy driver
      - Add support for dedicated internal mdio driver for qca8k
      Changes v4:
      - Use iopoll for busy_wait function
      - Better describe and split some confusing commits
      - Fix bad rgmii delay configurable patch
      - Drop phy generic patch to pass flags with phylink_connect_phy
      - Add dsa2 patch to declare mdio node in the switch node
      - Add dsa patch to permit dsa driver to declare custom get_phys_mii_mask
          Some background about the last 2 patch.
          The qca8k switch doesn't have a 1:1 map between port reg and phy reg.
          Currently it's used a function to convert port to the internal phy reg.
          I added some patch to fix this.
          - The dsa driver now check if the mdio node is present and use the of variant
            of the mdiobus_register
          - A custom phy_mii_mask is required as currently the mask is generated from
            the port reg, but in our case the mask would be different as it should be
            generated from the phy reg. To generalize this I added an extra function
            that driver can provide to pass custom phy_mii_mask.
      Changes v3:
      - Revert mdio writel changes (use regmap with REGCACHE disabled)
      - Split propagate error patch to 4 different patch
      Changes v2:
      - Implemented phy driver for internal PHYs
        I'm testing cable test functions as I found some documentation that
        actually declare regs about it. Problem is that it doesn't actually
        work. It seems that the value set are ignored by the phy.
      - Made the rgmii delay configurable
      - Reordered patch
      - Split mdio patches to more specific ones
      - Reworked mdio driver to use readl/writel instead of regmap
      - Reworked the entire driver to make it aware of any read/write error.
      - Added phy generic patch to pass flags with phylink_connect_phy
        function
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ddd998af
    • Ansuel Smith's avatar
      net: phy: add support for qca8k switch internal PHY in at803x · 272833b9
      Ansuel Smith authored
      Since the at803x share the same regs, it's assumed they are based on the
      same implementation. Make it part of the at803x PHY driver to skip
      having redudant code.
      Add initial support for qca8k internal PHYs. The internal PHYs requires
      special mmd and debug values to be set based on the switch revision
      passwd using the dev_flags. Supports output of idle, receive and eee_wake
      errors stats.
      Some debug values sets can't be translated as the documentation lacks any
      reference about them.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      272833b9
    • Ansuel Smith's avatar
      net: phy: at803x: clean whitespace errors · d0e13fd5
      Ansuel Smith authored
      Clean any whitespace errors and fix not aligned define.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d0e13fd5
    • Ansuel Smith's avatar
      net: dsa: qca8k: pass switch_revision info to phy dev_flags · a46aec02
      Ansuel Smith authored
      Define get_phy_flags to pass switch_Revision needed to tweak the
      internal PHY with debug values based on the revision.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a46aec02
    • Ansuel Smith's avatar
      net: dsa: qca8k: improve internal mdio read/write bus access · b7ebac35
      Ansuel Smith authored
      Improve the internal mdio read/write bus access by caching the value
      without accessing it for every read/write.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b7ebac35
    • Ansuel Smith's avatar
      devicetree: bindings: dsa: qca8k: Document internal mdio definition · 0c994a28
      Ansuel Smith authored
      Document new way of declare mapping of internal PHY to port.
      The new implementation directly declare the PHY connected to the port
      by adding a node in the switch node. The driver detect this and register
      an internal mdiobus using the mapping defined in the mdio node.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0c994a28
    • Ansuel Smith's avatar
      net: dsa: qca8k: add support for internal phy and internal mdio · 759bafb8
      Ansuel Smith authored
      Add support to setup_mdio_bus for internal phy declaration. Introduce a
      flag to use the legacy port phy mapping by default and use the direct
      mapping if a mdio node is detected in the switch node. Register a
      dedicated mdio internal mdio bus to address the different mapping
      between port and phy if the mdio node is detected.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      759bafb8
    • Ansuel Smith's avatar
      net: dsa: qca8k: enlarge mdio delay and timeout · 617960d7
      Ansuel Smith authored
      The witch require some extra delay after setting page or the next
      read/write can use still use the old page. Add a delay after the
      set_page function to address this as it's done in QSDK legacy driver.
      Some timeouts were notice with VLAN and phy function, enlarge the
      mdio busy wait timeout to fix these problems.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      617960d7
    • Ansuel Smith's avatar
      net: dsa: qca8k: dsa: qca8k: protect MASTER busy_wait with mdio mutex · 60df02b6
      Ansuel Smith authored
      MDIO_MASTER operation have a dedicated busy wait that is not protected
      by the mdio mutex. This can cause situation where the MASTER operation
      is done and a normal operation is executed between the MASTER read/write
      and the MASTER busy_wait. Rework the qca8k_mdio_read/write function to
      address this issue by binding the lock for the whole MASTER operation
      and not only the mdio read/write common operation.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      60df02b6
    • Ansuel Smith's avatar
      net: dsa: qca8k: clear MASTER_EN after phy read/write · 63c33bbf
      Ansuel Smith authored
      Clear MDIO_MASTER_EN bit from MDIO_MASTER_CTRL after read/write
      operation. The MDIO_MASTER_EN bit is not reset after read/write
      operation and the next operation can be wrongly interpreted by the
      switch as a mdio operation. This cause a production of wrong/garbage
      data from the switch and underfined bheavior. (random port drop,
      unplugged port flagged with link up, wrong port speed)
      Also on driver remove the MASTER_CTRL can be left set and cause the
      malfunction of any next driver using the mdio device.
      Signed-off-by: default avatarAnsuel Smith <ansuelsmth@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      63c33bbf