Skip to content
  1. Jan 20, 2021
    • Xin Long's avatar
      net: add inline function skb_csum_is_sctp · fa821170
      Xin Long authored
      
      
      This patch is to define a inline function skb_csum_is_sctp(), and
      also replace all places where it checks if it's a SCTP CSUM skb.
      This function would be used later in many networking drivers in
      the following patches.
      
      Suggested-by: default avatarAlexander Duyck <alexander.duyck@gmail.com>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Reviewed-by: default avatarAlexander Duyck <alexanderduyck@fb.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      fa821170
    • Alexander Lobakin's avatar
      mdio, phy: fix -Wshadow warnings triggered by nested container_of() · 7eab14de
      Alexander Lobakin authored
      
      
      container_of() macro hides a local variable '__mptr' inside. This
      becomes a problem when several container_of() are nested in each
      other within single line or plain macros.
      As C preprocessor doesn't support generating random variable names,
      the sole solution is to avoid defining macros that consist only of
      container_of() calls, or they will self-shadow '__mptr' each time:
      
      In file included from ./include/linux/bitmap.h:10,
                       from drivers/net/phy/phy_device.c:12:
      drivers/net/phy/phy_device.c: In function ‘phy_device_release’:
      ./include/linux/kernel.h:693:8: warning: declaration of ‘__mptr’ shadows a previous local [-Wshadow]
        693 |  void *__mptr = (void *)(ptr);     \
            |        ^~~~~~
      ./include/linux/phy.h:647:26: note: in expansion of macro ‘container_of’
        647 | #define to_phy_device(d) container_of(to_mdio_device(d), \
            |                          ^~~~~~~~~~~~
      ./include/linux/mdio.h:52:27: note: in expansion of macro ‘container_of’
         52 | #define to_mdio_device(d) container_of(d, struct mdio_device, dev)
            |                           ^~~~~~~~~~~~
      ./include/linux/phy.h:647:39: note: in expansion of macro ‘to_mdio_device’
        647 | #define to_phy_device(d) container_of(to_mdio_device(d), \
            |                                       ^~~~~~~~~~~~~~
      drivers/net/phy/phy_device.c:217:8: note: in expansion of macro ‘to_phy_device’
        217 |  kfree(to_phy_device(dev));
            |        ^~~~~~~~~~~~~
      ./include/linux/kernel.h:693:8: note: shadowed declaration is here
        693 |  void *__mptr = (void *)(ptr);     \
            |        ^~~~~~
      ./include/linux/phy.h:647:26: note: in expansion of macro ‘container_of’
        647 | #define to_phy_device(d) container_of(to_mdio_device(d), \
            |                          ^~~~~~~~~~~~
      drivers/net/phy/phy_device.c:217:8: note: in expansion of macro ‘to_phy_device’
        217 |  kfree(to_phy_device(dev));
            |        ^~~~~~~~~~~~~
      
      As they are declared in header files, these warnings are highly
      repetitive and very annoying (along with the one from linux/pci.h).
      
      Convert the related macros from linux/{mdio,phy}.h to static inlines
      to avoid self-shadowing and potentially improve bug-catching.
      No functional changes implied.
      
      Signed-off-by: default avatarAlexander Lobakin <alobakin@pm.me>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Link: https://lore.kernel.org/r/20210116161246.67075-1-alobakin@pm.me
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7eab14de
    • Yunjian Wang's avatar
      vhost_net: avoid tx queue stuck when sendmsg fails · dc9c9e72
      Yunjian Wang authored
      
      
      Currently the driver doesn't drop a packet which can't be sent by tun
      (e.g bad packet). In this case, the driver will always process the
      same packet lead to the tx queue stuck.
      
      To fix this issue:
      1. in the case of persistent failure (e.g bad packet), the driver
         can skip this descriptor by ignoring the error.
      2. in the case of transient failure (e.g -ENOBUFS, -EAGAIN and -ENOMEM),
         the driver schedules the worker to try again.
      
      Signed-off-by: default avatarYunjian Wang <wangyunjian@huawei.com>
      Acked-by: default avatarJason Wang <jasowang@redhat.com>
      Acked-by: default avatarWillem de Bruijn <willemb@google.com>
      Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Link: https://lore.kernel.org/r/1610685980-38608-1-git-send-email-wangyunjian@huawei.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      dc9c9e72
  2. Jan 19, 2021
  3. Jan 17, 2021
    • Jakub Kicinski's avatar
      Merge branch 'net-fix-the-features-flag-in-sctp_gso_segment' · 213b97b1
      Jakub Kicinski authored
      Xin Long says:
      
      ====================
      net: fix the features flag in sctp_gso_segment
      
      Patch 1/2 is to improve the code in skb_segment(), and it is needed
      by Patch 2/2.
      ====================
      
      Link: https://lore.kernel.org/r/cover.1610703289.git.lucien.xin@gmail.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      213b97b1
    • Xin Long's avatar
      sctp: remove the NETIF_F_SG flag before calling skb_segment · 1fef8544
      Xin Long authored
      
      
      It makes more sense to clear NETIF_F_SG instead of set it when
      calling skb_segment() in sctp_gso_segment(), since SCTP GSO is
      using head_skb's fraglist, of which all frags are linear skbs.
      
      This will make SCTP GSO code more understandable.
      
      Suggested-by: default avatarAlexander Duyck <alexander.duyck@gmail.com>
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      1fef8544
    • Xin Long's avatar
      net: move the hsize check to the else block in skb_segment · dbd50f23
      Xin Long authored
      After commit 89319d38
      
       ("net: Add frag_list support to skb_segment"),
      it goes to process frag_list when !hsize in skb_segment(). However, when
      using skb frag_list, sg normally should not be set. In this case, hsize
      will be set with len right before !hsize check, then it won't go to
      frag_list processing code.
      
      So the right thing to do is move the hsize check to the else block, so
      that it won't affect the !hsize check for frag_list processing.
      
      v1->v2:
        - change to do "hsize <= 0" check instead of "!hsize", and also move
          "hsize < 0" into else block, to save some cycles, as Alex suggested.
      
      Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
      Reviewed-by: default avatarAlexander Duyck <alexanderduyck@fb.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      dbd50f23
    • vulab's avatar
      net: mscc: ocelot: Remove unneeded semicolon · 20efd2c7
      vulab authored
      
      
      fix semicolon.cocci warnings:
      drivers/net/ethernet/mscc/ocelot_net.c:460:2-3: Unneeded semicolon
      
      Signed-off-by: default avatarXu Wang <vulab@iscas.ac.cn>
      Link: https://lore.kernel.org/r/20210115095544.33164-1-vulab@iscas.ac.cn
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      20efd2c7
    • Raju Rangoju's avatar
      cxgb4: enable interrupt based Tx completions for T5 · b660bccb
      Raju Rangoju authored
      
      
      Enable interrupt based Tx completions to improve latency for T5.
      The consumer index (CIDX) will now come via interrupts so that Tx
      SKBs can be freed up sooner in Rx path. Also, enforce CIDX flush
      threshold override (CIDXFTHRESHO) to improve latency for slow
      traffic. This ensures that the interrupt is generated immediately
      whenever hardware catches up with driver (i.e. CIDX == PIDX is
      reached), which is often the case for slow traffic.
      
      Signed-off-by: default avatarRaju Rangoju <rajur@chelsio.com>
      Link: https://lore.kernel.org/r/20210115102059.6846-1-rajur@chelsio.com
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b660bccb
    • Jakub Kicinski's avatar
      Merge branch 'rid-w-1-warnings-in-ethernet' · c761b2df
      Jakub Kicinski authored
      Lee Jones says:
      
      ====================
      Rid W=1 warnings in Ethernet
      
      This set is part of a larger effort attempting to clean-up W=1
      kernel builds, which are currently overwhelmingly riddled with
      niggly little warnings.
      
      v2:
       - Squashed IBM patches
       - Fixed real issue in SMSC
       - Added Andrew's Reviewed-by tags on remainder
      ====================
      
      Link: https://lore.kernel.org/r/20210115200905.3470941-1-lee.jones@linaro.org
      
      
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c761b2df
    • Lee Jones's avatar
      net: ethernet: toshiba: spider_net: Document a whole bunch of function parameters · e242d598
      Lee Jones authored
      
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/toshiba/spider_net.c:263: warning: Function parameter or member 'hwdescr' not described in 'spider_net_get_descr_status'
       drivers/net/ethernet/toshiba/spider_net.c:263: warning: Excess function parameter 'descr' description in 'spider_net_get_descr_status'
       drivers/net/ethernet/toshiba/spider_net.c:554: warning: Function parameter or member 'netdev' not described in 'spider_net_get_multicast_hash'
       drivers/net/ethernet/toshiba/spider_net.c:902: warning: Function parameter or member 't' not described in 'spider_net_cleanup_tx_ring'
       drivers/net/ethernet/toshiba/spider_net.c:902: warning: Excess function parameter 'card' description in 'spider_net_cleanup_tx_ring'
       drivers/net/ethernet/toshiba/spider_net.c:1074: warning: Function parameter or member 'card' not described in 'spider_net_resync_head_ptr'
       drivers/net/ethernet/toshiba/spider_net.c:1234: warning: Function parameter or member 'napi' not described in 'spider_net_poll'
       drivers/net/ethernet/toshiba/spider_net.c:1234: warning: Excess function parameter 'netdev' description in 'spider_net_poll'
       drivers/net/ethernet/toshiba/spider_net.c:1278: warning: Function parameter or member 'p' not described in 'spider_net_set_mac'
       drivers/net/ethernet/toshiba/spider_net.c:1278: warning: Excess function parameter 'ptr' description in 'spider_net_set_mac'
       drivers/net/ethernet/toshiba/spider_net.c:1350: warning: Function parameter or member 'error_reg1' not described in 'spider_net_handle_error_irq'
       drivers/net/ethernet/toshiba/spider_net.c:1350: warning: Function parameter or member 'error_reg2' not described in 'spider_net_handle_error_irq'
       drivers/net/ethernet/toshiba/spider_net.c:1968: warning: Function parameter or member 't' not described in 'spider_net_link_phy'
       drivers/net/ethernet/toshiba/spider_net.c:1968: warning: Excess function parameter 'data' description in 'spider_net_link_phy'
       drivers/net/ethernet/toshiba/spider_net.c:2149: warning: Function parameter or member 'work' not described in 'spider_net_tx_timeout_task'
       drivers/net/ethernet/toshiba/spider_net.c:2149: warning: Excess function parameter 'data' description in 'spider_net_tx_timeout_task'
       drivers/net/ethernet/toshiba/spider_net.c:2182: warning: Function parameter or member 'txqueue' not described in 'spider_net_tx_timeout'
      
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e242d598
    • Lee Jones's avatar
      net: ethernet: toshiba: ps3_gelic_net: Fix some kernel-doc misdemeanours · b5103632
      Lee Jones authored
      
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/net/ethernet/toshiba/ps3_gelic_net.c:1107: warning: Function parameter or member 'irq' not described in 'gelic_card_interrupt'
       drivers/net/ethernet/toshiba/ps3_gelic_net.c:1107: warning: Function parameter or member 'ptr' not described in 'gelic_card_interrupt'
       drivers/net/ethernet/toshiba/ps3_gelic_net.c:1407: warning: Function parameter or member 'txqueue' not described in 'gelic_net_tx_timeout'
       drivers/net/ethernet/toshiba/ps3_gelic_net.c:1439: warning: Function parameter or member 'napi' not described in 'gelic_ether_setup_netdev_ops'
       drivers/net/ethernet/toshiba/ps3_gelic_net.c:1639: warning: Function parameter or member 'dev' not described in 'ps3_gelic_driver_probe'
       drivers/net/ethernet/toshiba/ps3_gelic_net.c:1795: warning: Function parameter or member 'dev' not described in 'ps3_gelic_driver_remove'
      
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b5103632
    • Lee Jones's avatar
      net: ethernet: ibm: ibmvnic: Fix some kernel-doc misdemeanours · 80708602
      Lee Jones authored
      
      
      Fixes the following W=1 kernel build warning(s):
      
       from drivers/net/ethernet/ibm/ibmvnic.c:35:
       inlined from ‘handle_vpd_rsp’ at drivers/net/ethernet/ibm/ibmvnic.c:4124:3:
       drivers/net/ethernet/ibm/ibmvnic.c:1362: warning: Function parameter or member 'hdr_field' not described in 'build_hdr_data'
       drivers/net/ethernet/ibm/ibmvnic.c:1362: warning: Function parameter or member 'skb' not described in 'build_hdr_data'
       drivers/net/ethernet/ibm/ibmvnic.c:1362: warning: Function parameter or member 'hdr_len' not described in 'build_hdr_data'
       drivers/net/ethernet/ibm/ibmvnic.c:1362: warning: Function parameter or member 'hdr_data' not described in 'build_hdr_data'
       drivers/net/ethernet/ibm/ibmvnic.c:1423: warning: Function parameter or member 'hdr_field' not described in 'create_hdr_descs'
       drivers/net/ethernet/ibm/ibmvnic.c:1423: warning: Function parameter or member 'hdr_data' not described in 'create_hdr_descs'
       drivers/net/ethernet/ibm/ibmvnic.c:1423: warning: Function parameter or member 'len' not described in 'create_hdr_descs'
       drivers/net/ethernet/ibm/ibmvnic.c:1423: warning: Function parameter or member 'hdr_len' not described in 'create_hdr_descs'
       drivers/net/ethernet/ibm/ibmvnic.c:1423: warning: Function parameter or member 'scrq_arr' not described in 'create_hdr_descs'
       drivers/net/ethernet/ibm/ibmvnic.c:1474: warning: Function parameter or member 'txbuff' not described in 'build_hdr_descs_arr'
       drivers/net/ethernet/ibm/ibmvnic.c:1474: warning: Function parameter or member 'num_entries' not described in 'build_hdr_descs_arr'
       drivers/net/ethernet/ibm/ibmvnic.c:1474: warning: Function parameter or member 'hdr_field' not described in 'build_hdr_descs_arr'
       drivers/net/ethernet/ibm/ibmvnic.c:1832: warning: Function parameter or member 'adapter' not described in 'do_change_param_reset'
       drivers/net/ethernet/ibm/ibmvnic.c:1832: warning: Function parameter or member 'rwi' not described in 'do_change_param_reset'
       drivers/net/ethernet/ibm/ibmvnic.c:1832: warning: Function parameter or member 'reset_state' not described in 'do_change_param_reset'
       drivers/net/ethernet/ibm/ibmvnic.c:1911: warning: Function parameter or member 'adapter' not described in 'do_reset'
       drivers/net/ethernet/ibm/ibmvnic.c:1911: warning: Function parameter or member 'rwi' not described in 'do_reset'
       drivers/net/ethernet/ibm/ibmvnic.c:1911: warning: Function parameter or member 'reset_state' not described in 'do_reset'
      
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      80708602