Skip to content
Permalink
Tony-Lu/net-sm…
Switch branches/tags

Commits on Nov 22, 2021

  1. net/smc: Unbind buffer size from clcsock and make it tunable

    SMC uses smc->sk.sk_{rcv|snd}buf to create buffer for send buffer or
    RMB. And the values of buffer size inherits from clcsock. The clcsock is
    a TCP sock which is initiated during SMC connection startup.
    
    The inherited buffer size doesn't fit SMC well. TCP provides two sysctl
    knobs to tune r/w buffers, net.ipv4.tcp_{r|w}mem, and SMC use the default
    value from TCP. The buffer size is tuned for TCP, but not fit SMC well
    in some scenarios. For example, we need larger buffer of SMC for high
    throughput applications, and smaller buffer of SMC for saving contiguous
    memory. We need to adjust the buffer size apart from TCP and not to
    disturb TCP.
    
    This unbinds buffer size which inherits from clcsock, and provides
    sysctl knobs to adjust buffer size independently. These knobs can be
    tuned with different values for different net namespaces for performance
    and flexibility.
    
    Signed-off-by: Tony Lu <tonylu@linux.alibaba.com>
    Reviewed-by: Wen Gu <guwen@linux.alibaba.com>
    Tony Lu authored and intel-lab-lkp committed Nov 22, 2021

Commits on Nov 20, 2021

  1. Merge branch 'mptcp-more-socket-options'

    Mat Martineau says:
    
    ====================
    mptcp: More socket option support
    
    These patches add MPTCP socket support for a few additional socket
    options: IP_TOS, IP_FREEBIND, IP_TRANSPARENT, IPV6_FREEBIND, and
    IPV6_TRANSPARENT.
    
    Patch 1 exposes __ip_sock_set_tos() for use in patch 2.
    
    Patch 2 adds IP_TOS support.
    
    Patches 3 and 4 add the freebind and transparent support, with a
    selftest for the latter.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 20, 2021
  2. selftests: mptcp: add tproxy test case

    No hard dependencies here, just skip if test environ lacks
    nft binary or the needed kernel config options.
    
    The test case spawns listener in ns2 but ns1 will connect
    to the ip address of ns4.
    
    policy routing + tproxy rule will redirect packets to ns2 instead
    of forward.
    
    v3: - update mptcp/config (Mat Martineau)
        - more verbose SKIP messages in mptcp_connect.sh
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Florian Westphal authored and davem330 committed Nov 20, 2021
  3. mptcp: sockopt: add SOL_IP freebind & transparent options

    These options also need to be set before bind, so do the sync of msk to
    new ssk socket a bit earlier.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Florian Westphal authored and davem330 committed Nov 20, 2021
  4. mptcp: Support for IP_TOS for MPTCP setsockopt()

    SOL_IP provides a way to configure network layer attributes in a
    socket. This patch adds support for IP_TOS for setsockopt(.. ,SOL_IP, ..)
    
    Support for SOL_IP is added in mptcp_setsockopt() and IP_TOS is handled in
    a private function. The idea here is to take in the value passed for IP_TOS
    and set it to the current subflow, open subflows as well new subflows that
    might be created after the initial call to setsockopt(). This sync is done
    using sync_socket_options(.., ssk) and setting the value of tos using
    __ip_sock_set_tos(ssk,..).
    
    The patch has been tested using the packetdrill script here -
    multipath-tcp/mptcp_net-next#220 (comment)
    
    Closes: multipath-tcp/mptcp_net-next#220
    Signed-off-by: Poorva Sonparote <psonparo@redhat.com>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Poorva Sonparote authored and davem330 committed Nov 20, 2021
  5. ipv4: Exposing __ip_sock_set_tos() in ip.h

    Making the static function __ip_sock_set_tos() from net/ipv4/ip_sockglue.c
    accessible by declaring it in include/net/ip.h
    The reason for doing this is to use this function to set IP_TOS value in
    mptcp_setsockopt() without the lock.
    
    Signed-off-by: Poorva Sonparote <psonparo@redhat.com>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Poorva Sonparote authored and davem330 committed Nov 20, 2021
  6. Merge branch 'dev_addr-const'

    Jakub Kicinski says:
    
    ====================
    net: constify netdev->dev_addr
    
    Take care of a few stragglers and make netdev->dev_addr const.
    
    netdev->dev_addr can be held on the address tree like any other
    address now.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 20, 2021
  7. net: kunit: add a test for dev_addr_lists

    Add a KUnit test for the dev_addr API.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jakub Kicinski authored and davem330 committed Nov 20, 2021
  8. dev_addr_list: put the first addr on the tree

    Since all netdev->dev_addr modifications go via dev_addr_mod()
    we can put it on the list. When address is change remove it
    and add it back.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jakub Kicinski authored and davem330 committed Nov 20, 2021
  9. dev_addr: add a modification check

    netdev->dev_addr should only be modified via helpers,
    but someone may be casting off the const. Add a runtime
    check to catch abuses.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jakub Kicinski authored and davem330 committed Nov 20, 2021
  10. net: unexport dev_addr_init() & dev_addr_flush()

    There are no module callers in-tree and it's hard to justify
    why anyone would init or flush addresses of a netdev (note
    the flush is more of a destructor, it frees netdev->dev_addr).
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jakub Kicinski authored and davem330 committed Nov 20, 2021
  11. net: constify netdev->dev_addr

    Commit 406f42f ("net-next: When a bond have a massive amount
    of VLANs...") introduced a rbtree for faster Ethernet address look
    up. We converted all users to make modifications via appropriate
    helpers, make netdev->dev_addr const.
    
    The update helpers need to upcast from the buffer to
    struct netdev_hw_addr.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jakub Kicinski authored and davem330 committed Nov 20, 2021
  12. bnx2x: constify static inline stub for dev_addr

    bnx2x_vfpf_config_mac() was constified by not its stub.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jakub Kicinski authored and davem330 committed Nov 20, 2021
  13. 82596: use eth_hw_addr_set()

    Byte by byte assignments.
    
    Fixes build on m68k.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jakub Kicinski authored and davem330 committed Nov 20, 2021
  14. net: phy: add support for TI DP83561-SP phy

    Add support for the TI DP83561-SP Gigabit ethernet phy device.
    
    The dp83561-sp is a radiation hardened space grade gigabit ethernet
    PHY. It has been tested for single event latch upto 121 MeV, the
    critical reliability parameter for space designs. It interfaces directly to
    twisted pair media through an external transformer. And the device also
    interfaces directly to the MAC layer through Reduced GMII (RGMII) and MII.
    
    DP83867, DP83869 and DP83561-SP, all these parts support 1000Base-T/
    100Base-TX/ and 10Base-Te standards and have similar register map for
    the core functionality.
    
    The data sheet for this part is at https://www.ti.com/product/DP83561-SP
    
    Signed-off-by: Hari Nagalla <hnagalla@ti.com>
    Signed-off-by: Geet Modi <geet.modi@ti.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Link: https://lore.kernel.org/r/20211118102532.9835-1-hnagalla@ti.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    h-nagalla authored and Jakub Kicinski committed Nov 20, 2021
  15. ethernet: renesas: Use div64_ul instead of do_div

    do_div() does a 64-by-32 division. Here the divisor is an
    unsigned long which on some platforms is 64 bit wide. So use
    div64_ul instead of do_div to avoid a possible truncation.
    
    Eliminate the following coccicheck warning:
    ./drivers/net/ethernet/renesas/ravb_main.c:2492:1-7: WARNING:
    do_div() does a 64-by-32 division, please consider using div64_ul
    instead.
    
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
    Link: https://lore.kernel.org/r/1637228883-100100-1-git-send-email-yang.lee@linux.alibaba.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Yang Li authored and Jakub Kicinski committed Nov 20, 2021
  16. ipv6: ip6_skb_dst_mtu() cleanups

    Use const attribute where we can, and cache skb_dst()
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20211119022355.2985984-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    neebe000 authored and Jakub Kicinski committed Nov 20, 2021

Commits on Nov 19, 2021

  1. net/bridge: replace simple_strtoul to kstrtol

    simple_strtoull is obsolete, use kstrtol instead.
    
    Signed-off-by: Bernard Zhao <bernard@vivo.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Bernard Zhao authored and davem330 committed Nov 19, 2021
  2. nfp: flower: correction of error handling

    Removing reduplicated error handling when running into error path
    of `nfp_compile_flow_metadata`.
    
    Signed-off-by: Yu Xiao <yu.xiao@corigine.com>
    Signed-off-by: Yinjun Zhang <yinjun.zhang@corigine.com>
    Signed-off-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    macris-xiao authored and davem330 committed Nov 19, 2021
  3. ethtool: stats: Use struct_group() to clear all stats at once

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memset(), avoid intentionally writing across
    neighboring fields.
    
    Add struct_group() to mark region of struct stats_reply_data that should
    be initialized, which can now be done in a single memset() call.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  4. net/af_iucv: Use struct_group() to zero struct iucv_sock region

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memset(), avoid intentionally writing across
    neighboring fields.
    
    Add struct_group() to mark the region of struct iucv_sock that gets
    initialized to zero. Avoid the future warning:
    
    In function 'fortify_memset_chk',
        inlined from 'iucv_sock_alloc' at net/iucv/af_iucv.c:476:2:
    ./include/linux/fortify-string.h:199:4: warning: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Wattribute-warning]
      199 |    __write_overflow_field(p_size_field, size);
          |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Acked-by: Karsten Graul <kgraul@linux.ibm.com>
    Link: https://lore.kernel.org/lkml/19ff61a0-0cda-6000-ce56-dc6b367c00d6@linux.ibm.com/
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  5. ipv6: Use memset_after() to zero rt6_info

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memset(), avoid intentionally writing across
    neighboring fields.
    
    Use memset_after() to clear everything after the dst_entry member of
    struct rt6_info.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  6. net: 802: Use memset_startat() to clear struct fields

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memset(), avoid intentionally writing across
    neighboring fields.
    
    Use memset_startat() so memset() doesn't get confused about writing
    beyond the destination member that is intended to be the starting point
    of zeroing through the end of the struct.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  7. net: dccp: Use memset_startat() for TP zeroing

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memset(), avoid intentionally writing across
    neighboring fields.
    
    Use memset_startat() so memset() doesn't get confused about writing
    beyond the destination member that is intended to be the starting point
    of zeroing through the end of the struct.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  8. sky2: use PCI VPD API in eeprom ethtool ops

    Recently pci_read/write_vpd_any() have been added to the PCI VPD API.
    These functions allow to access VPD address space outside the
    auto-detected VPD, and they can be used to significantly simplify the
    eeprom ethtool ops.
    
    Tested with a 88E8070 card with 1KB EEPROM.
    
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    hkallweit authored and davem330 committed Nov 19, 2021
  9. net: ipa: Use 'for_each_clear_bit' when possible

    Use 'for_each_clear_bit()' instead of hand writing it. It is much less
    version.
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    tititiou36 authored and davem330 committed Nov 19, 2021
  10. bnx2x: Use struct_group() for memcpy() region

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memcpy(), memmove(), and memset(), avoid
    intentionally writing across neighboring fields.
    
    Use struct_group() in struct nig_stats around members egress_mac_pkt0_lo,
    egress_mac_pkt0_hi, egress_mac_pkt1_lo, and egress_mac_pkt1_hi (and the
    respective members in struct bnx2x_eth_stats), so they can be referenced
    together. This will allow memcpy() and sizeof() to more easily reason
    about sizes, improve readability, and avoid future warnings about writing
    beyond the end of struct bnx2x_eth_stats's rx_stat_ifhcinbadoctets_hi.
    
    "pahole" shows no size nor member offset changes to either struct.
    "objdump -d" shows no meaningful object code changes (i.e. only source
    line number induced differences and optimizations).
    
    Additionally adds BUILD_BUG_ON() to compare the separate struct group
    sizes.
    
    Reviewed-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
    Link: https://lore.kernel.org/lkml/DM5PR18MB2229B0413C372CC6E49D59A3B2C59@DM5PR18MB2229.namprd18.prod.outlook.com
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  11. cxgb4: Use struct_group() for memcpy() region

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memcpy(), memmove(), and memset(), avoid
    intentionally writing across neighboring fields.
    
    Use struct_group() in struct fw_eth_tx_pkt_vm_wr around members ethmacdst,
    ethmacsrc, ethtype, and vlantci, so they can be referenced together. This
    will allow memcpy() and sizeof() to more easily reason about sizes,
    improve readability, and avoid future warnings about writing beyond the
    end of ethmacdst.
    
    "pahole" shows no size nor member offset changes to struct
    fw_eth_tx_pkt_vm_wr. "objdump -d" shows no object code changes.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  12. cxgb3: Use struct_group() for memcpy() region

    In preparation for FORTIFY_SOURCE performing compile-time and run-time
    field bounds checking for memcpy(), memmove(), and memset(), avoid
    intentionally writing across neighboring fields.
    
    Use struct_group() in struct rss_hdr around members imm_data and intr_gen,
    so they can be referenced together. This will allow memcpy() and sizeof()
    to more easily reason about sizes, improve readability, and avoid future
    warnings about writing beyond the end of imm_data.
    
    "pahole" shows no size nor member offset changes to struct rss_hdr.
    "objdump -d" shows no object code changes.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    kees authored and davem330 committed Nov 19, 2021
  13. net: phylink: add 1000base-KX to phylink_caps_to_linkmodes()

    1000base-KX was missed in phylink_caps_to_linkmodes(), add it. This
    will be necessary to convert stmmac with xpcs to ensure we don't drop
    any supported linkmodes.
    
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King (Oracle) authored and davem330 committed Nov 19, 2021
  14. Merge branch 's390-next'

    Karsten Graul says:
    
    ====================
    s390/net: updates 2021-11-18
    
    Please apply the following patches to netdev's net-next tree.
    
    Heiko provided fixes for kernel doc comments and solved some
    other compiler warnings.
    Julians qeth patch simplifies the rx queue handling in the code.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 19, 2021
  15. s390/lcs: add braces around empty function body

    Fix allmodconfig + W=1 compile breakage:
    
    drivers/s390/net/lcs.c: In function ‘lcs_get_frames_cb’:
    drivers/s390/net/lcs.c:1823:25: error: suggest braces around empty body in an ‘else’ statement [-Werror=empty-body]
     1823 |                         ; // FIXME: error message ?
          |                         ^
    
    Acked-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    hcahca authored and davem330 committed Nov 19, 2021
  16. s390/ctcm: add __printf format attribute to ctcm_dbf_longtext

    Allow the compiler to recognize and check format strings and parameters.
    
    As reported with allmodconfig and W=1:
    
    drivers/s390/net/ctcm_dbug.c: In function ‘ctcm_dbf_longtext’:
    drivers/s390/net/ctcm_dbug.c:73:9: error: function ‘ctcm_dbf_longtext’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format]
       73 |         vsnprintf(dbf_txt_buf, sizeof(dbf_txt_buf), fmt, args);
          |         ^~~~~~~~~
    
    Acked-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    hcahca authored and davem330 committed Nov 19, 2021
  17. s390/ctcm: fix format string

    The second parameter as specified by the format string is actually a
    string not an integer.
    
    Acked-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    hcahca authored and davem330 committed Nov 19, 2021
  18. net/af_iucv: fix kernel doc comments

    Fix kernel doc comments where appropriate, or remove incorrect kernel
    doc indicators.
    
    Acked-by: Julian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    hcahca authored and davem330 committed Nov 19, 2021
Older