Skip to content
Permalink
Pavel-Begunkov…
Switch branches/tags

Commits on Jan 11, 2022

  1. net: inline sock_alloc_send_skb

    sock_alloc_send_skb() is simple and just proxying to another function,
    so we can inline it and cut associated overhead.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  2. net: inline part of skb_csum_hwoffload_help

    Inline a HW csum'ed part of skb_csum_hwoffload_help().
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  3. skbuff: optimise alloc_skb_with_frags()

    Many users of alloc_skb_with_frags() pass zero datalen, e.g.
    all callers sock_alloc_send_skb() including udp. Extract and inline a
    part of it doing skb allocation. BTW, do a minor cleanup, e.g. don't
    set errcode in advance as it can't be optimised.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  4. skbuff: drop null check from skb_zcopy

    skb_zcopy() is used all around the networkong code with many of calls
    sitting in generic not necessarily zerocopy paths. Many of callers
    don't ever pass a NULL skb, however a NULL check inside skb_zcopy()
    can't be optimised out. As with previous patch, move the check out of
    the helper to a few places where it's needed.
    
    It removes a bunch of extra ifs in non-zerocopy paths, which is nice.
    E.g. before and after:
    
       text    data     bss     dec     hex filename
    8521472       0       0 8521472  820700 arch/x86/boot/bzImage
    8521056       0       0 8521056  820560 arch/x86/boot/bzImage
    delta=416B
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  5. skbuff: drop zero check from skb_zcopy_set

    Only two skb_zcopy_set() callers may pass a NULL skb, so kill the zero
    check from inside the function, which can't be compiled out, and place
    it where needed. It's also needed by the following patch.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  6. ipv6: hand dst refs to cork setup

    During cork->dst setup, ip6_make_skb() gets an additional reference to
    a passed in dst. However, udpv6_sendmsg() doesn't need dst after calling
    ip6_make_skb(), and so we can save two additional atomics by passing
    dst references to ip6_make_skb(). udpv6_sendmsg() is the only caller, so
    it's enough to make sure it doesn't use dst afterwards.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  7. ipv6/udp: don't make extra copies of iflow

    struct flowi takes 88 bytes and copying it is relatively expensive.
    Currenly, udpv6_sendmsg() first initialises an on-stack struct flowi6
    and then copies it into cork. Instead, directly initialise a flow in an
    on-stack cork, i.e. cork->fl, so corkless udp can avoid making an extra
    copy.
    
    Note: moving inet_cork_full instance shouldn't grow stack too much,
    it replaces 88 bytes for iflow with 160.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  8. ipv6: pass flow in ip6_make_skb together with cork

    Another preparation patch. inet_cork_full already contains a field for
    iflow, so we can avoid passing a separate struct iflow6 into
    __ip6_append_data() and ip6_make_skb(), and use the flow stored in
    inet_cork_full. Make sure callers set cork->fl right, i.e. we init it in
    ip6_append_data() and right before the only ip6_make_skb() call.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  9. ipv6: pass full cork into __ip6_append_data()

    Convert a struct inet_cork argument in __ip6_append_data() to struct
    inet_cork_full. As one struct contains another inet_cork is still can
    be accessed via ->base field. It's a preparation patch making further
    changes a bit cleaner.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  10. ipv6: don't zero cork's flowi after use

    It doesn't appear there is any reason to zero cork->fl after use, i.e.
    in ip6_cork_release(), especially when cork struct is on-stack. Not
    only the memset accounts to 0.3-0.5% of total cycles (perf profiling),
    but also prevents other optimisations implemented in further patches.
    Also, now we can remove a relatively expensive flow copy in
    udp_v6_push_pending_frames().
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  11. ipv6: clean up cork setup/release

    A simple cleanup of ip6_setup_cork() and ip6_cork_release() adding a
    local variable for v6_cork->opt instead of retyping it many times. It
    serves as a preparation patch to make further work cleaner.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  12. ipv6: remove daddr temp buffer in __ip6_make_skb

    __ip6_make_skb() doesn't actually need to keep an on-stack copy of
    fl6->daddr because even though ipv6_push_nfrag_opts() may return a
    different daddr it doesn't change the one that was passed in.
    Just set final_dst to fl6->daddr and get rid of the temp copy.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  13. ipv6: shuffle up->pending AF_INET bits

    Corked AF_INET for ipv6 socket doesn't appear to be the hottest case,
    so move it out of the common path under up->pending check to remove
    overhead.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022
  14. ipv6: optimise dst referencing

    __ip6_make_skb() initialises skb's dst by taking an additional reference
    to cork->dst. However, cork->dst comes into the function holding a ref,
    which will be put shortly at the end of the function in
    ip6_cork_release().
    
    Avoid this extra pair of get/put atomics by stealing cork->dst and
    NULL'ing the field, ip6_cork_release() already handles zero values.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    isilence authored and intel-lab-lkp committed Jan 11, 2022

Commits on Jan 10, 2022

  1. amt: fix wrong return type of amt_send_membership_update()

    amt_send_membership_update() would return -1 but it's return type is bool.
    So, it should be used TRUE instead of -1.
    
    Fixes: cbc21dc ("amt: add data plane of amt interface")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Link: https://lore.kernel.org/r/20220109163702.6331-1-ap420073@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    TaeheeYoo authored and Jakub Kicinski committed Jan 10, 2022
  2. net: mcs7830: handle usb read errors properly

    Syzbot reported uninit value in mcs7830_bind(). The problem was in
    missing validation check for bytes read via usbnet_read_cmd().
    
    usbnet_read_cmd() internally calls usb_control_msg(), that returns
    number of bytes read. Code should validate that requested number of bytes
    was actually read.
    
    So, this patch adds missing size validation check inside
    mcs7830_get_reg() to prevent uninit value bugs
    
    Reported-and-tested-by: syzbot+003c0a286b9af5412510@syzkaller.appspotmail.com
    Fixes: 2a36d70 ("USB: driver for mcs7830 (aka DeLOCK) USB ethernet adapter")
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20220106225716.7425-1-paskripkin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    pskrgag authored and Jakub Kicinski committed Jan 10, 2022
  3. net: openvswitch: Fix ct_state nat flags for conns arriving from tc

    Netfilter conntrack maintains NAT flags per connection indicating
    whether NAT was configured for the connection. Openvswitch maintains
    NAT flags on the per packet flow key ct_state field, indicating
    whether NAT was actually executed on the packet.
    
    When a packet misses from tc to ovs the conntrack NAT flags are set.
    However, NAT was not necessarily executed on the packet because the
    connection's state might still be in NEW state. As such, openvswitch
    wrongly assumes that NAT was executed and sets an incorrect flow key
    NAT flags.
    
    Fix this, by flagging to openvswitch which NAT was actually done in
    act_ct via tc_skb_ext and tc_skb_cb to the openvswitch module, so
    the packet flow key NAT flags will be correctly set.
    
    Fixes: b57dc7c ("net/sched: Introduce action ct")
    Signed-off-by: Paul Blakey <paulb@nvidia.com>
    Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
    Link: https://lore.kernel.org/r/20220106153804.26451-1-paulb@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Paul Blakey authored and Jakub Kicinski committed Jan 10, 2022

Commits on Jan 9, 2022

  1. Merge tag 'linux-can-fixes-for-5.16-20220109' of git://git.kernel.org…

    …/pub/scm/linux/kernel/git/mkl/linux-can
    
    Marc Kleine-Budde says:
    
    ====================
    pull-request: can 2022-01-09
    
    The first patch is by Johan Hovold and fixes a mem leak in the error
    path of the softing_cs driver.
    
    The next patch is by me and fixes a set but not used variable warning
    in the softing driver.
    
    Jiasheng Jiang's patch for the xilinx_can driver adds the missing
    error checking when getting the IRQ.
    
    Lad Prabhakar contributes a patch for the rcar_canfd driver to fix a
    mem leak in the error path.
    
    The last patch is by Brian Silverman and properly initializes the send
    USB messages to avoid spurious CAN error frames.
    
    * tag 'linux-can-fixes-for-5.16-20220109' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
      can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}
      can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
      can: xilinx_can: xcan_probe(): check for error irq
      can: softing: softing_startstop(): fix set but not used variable warning
      can: softing_cs: softingcs_probe(): fix memleak on registration failure
    ====================
    
    Link: https://lore.kernel.org/r/20220109134040.1945428-1-mkl@pengutronix.de
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Jan 9, 2022
  2. can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved}

    No information is deliberately sent in hf->flags in host -> device
    communications, but the open-source candleLight firmware echoes it
    back, which can result in the GS_CAN_FLAG_OVERFLOW flag being set and
    generating spurious ERRORFRAMEs.
    
    While there also initialize the reserved member with 0.
    
    Fixes: d08e973 ("can: gs_usb: Added support for the GS_USB CAN devices")
    Link: https://lore.kernel.org/all/20220106002952.25883-1-brian.silverman@bluerivertech.com
    Link: candle-usb/candleLight_fw#87
    Cc: stable@vger.kernel.org
    Signed-off-by: Brian Silverman <brian.silverman@bluerivertech.com>
    [mkl: initialize the reserved member, too]
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    brian-brt authored and marckleinebudde committed Jan 9, 2022
  3. can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN ne…

    …twork device
    
    Make sure we free CAN network device in the error path. There are
    several jumps to fail label after allocating the CAN network device
    successfully. This patch places the free_candev() under fail label so
    that in failure path a jump to fail label frees the CAN network
    device.
    
    Fixes: 76e9353 ("can: rcar_canfd: Add support for RZ/G2L family")
    Link: https://lore.kernel.org/all/20220106114801.20563-1-prabhakar.mahadev-lad.rj@bp.renesas.com
    Reported-by: Pavel Machek <pavel@denx.de>
    Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    prabhakarlad authored and marckleinebudde committed Jan 9, 2022
  4. can: xilinx_can: xcan_probe(): check for error irq

    For the possible failure of the platform_get_irq(), the returned irq
    could be error number and will finally cause the failure of the
    request_irq().
    
    Consider that platform_get_irq() can now in certain cases return
    -EPROBE_DEFER, and the consequences of letting request_irq()
    effectively convert that into -EINVAL, even at probe time rather than
    later on. So it might be better to check just now.
    
    Fixes: b1201e4 ("can: xilinx CAN controller support")
    Link: https://lore.kernel.org/all/20211224021324.1447494-1-jiasheng@iscas.ac.cn
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    JiangJias authored and marckleinebudde committed Jan 9, 2022
  5. can: softing: softing_startstop(): fix set but not used variable warning

    In the function softing_startstop() the variable error_reporting is
    assigned but not used. The code that uses this variable is commented
    out. Its stated that the functionality is not finally verified.
    
    To fix the warning:
    
    | drivers/net/can/softing/softing_fw.c:424:9: error: variable 'error_reporting' set but not used [-Werror,-Wunused-but-set-variable]
    
    remove the comment, activate the code, but add a "0 &&" to the if
    expression and rely on the optimizer rather than the preprocessor to
    remove the code.
    
    Link: https://lore.kernel.org/all/20220109103126.1872833-1-mkl@pengutronix.de
    Fixes: 03fd3cf ("can: add driver for Softing card")
    Cc: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    marckleinebudde committed Jan 9, 2022

Commits on Jan 8, 2022

  1. can: softing_cs: softingcs_probe(): fix memleak on registration failure

    In case device registration fails during probe, the driver state and
    the embedded platform device structure needs to be freed using
    platform_device_put() to properly free all resources (e.g. the device
    name).
    
    Fixes: 0a0b7a5 ("can: add driver for Softing card")
    Link: https://lore.kernel.org/all/20211222104843.6105-1-johan@kernel.org
    Cc: stable@vger.kernel.org # 2.6.38
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    jhovold authored and marckleinebudde committed Jan 8, 2022
  2. octeontx2-af: Fix interrupt name strings

    Fixed interrupt name string logic which currently results
    in wrong memory location being accessed while dumping
    /proc/interrupts.
    
    Fixes: 4826090 ("octeontx2-af: Enable CPT HW interrupts")
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Link: https://lore.kernel.org/r/1641538505-28367-1-git-send-email-sbhatta@marvell.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Sunil Goutham authored and Jakub Kicinski committed Jan 8, 2022

Commits on Jan 7, 2022

  1. netrom: fix api breakage in nr_setsockopt()

    This needs to copy an unsigned int from user space instead of a long to
    avoid breaking user space with an API change.
    
    I have updated all the integer overflow checks from ULONG to UINT as
    well.  This is a slight API change but I do not expect it to affect
    anything in real life.
    
    Fixes: 3087a6f ("netrom: fix copying in user data in nr_setsockopt")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    error27 authored and davem330 committed Jan 7, 2022
  2. ax25: uninitialized variable in ax25_setsockopt()

    The "opt" variable is unsigned long but we only copy 4 bytes from
    the user so the lower 4 bytes are uninitialized.
    
    I have changed the integer overflow checks from ULONG to UINT as well.
    This is a slight API change but I don't expect it to break anything.
    
    Fixes: a7b75c5 ("net: pass a sockptr_t into ->setsockopt")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    error27 authored and davem330 committed Jan 7, 2022
  3. Merge branch 'octeontx2-ptp-bugs'

    Subbaraya Sundeep says:
    
    ====================
    octeontx2: Fix PTP bugs
    
    This patchset addresses two problems found when using
    ptp.
    Patch 1 - Increases the refcount of ptp device before use
    which was missing and it lead to refcount increment after use
    bug when module is loaded and unloaded couple of times.
    Patch 2 - PTP resources allocated by VF are not being freed
    during VF teardown. This patch fixes that.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jan 7, 2022
  4. octeontx2-nicvf: Free VF PTP resources.

    When a VF is removed respective PTP resources are not
    being freed currently. This patch fixes it.
    
    Fixes: 43510ef ("octeontx2-nicvf: Add PTP hardware clock support to NIX VF")
    Signed-off-by: Rakesh Babu Saladi <rsaladi2@marvell.com>
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Rakesh Babu Saladi authored and davem330 committed Jan 7, 2022
  5. octeontx2-af: Increment ptp refcount before use

    Before using the ptp pci device by AF driver increment
    the reference count of it.
    
    Fixes: a8b90c9 ("octeontx2-af: Add PTP device id for CN10K and 95O silcons")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Subbaraya Sundeep authored and davem330 committed Jan 7, 2022
  6. Merge branch 'mptcp-fixes'

    Mat Martineau says:
    
    ====================
    mptcp: Fixes for buffer reclaim and option writing
    
    Here are three fixes dealing with a syzkaller crash MPTCP triggers in
    the memory manager in 5.16-rc8, and some option writing problems.
    
    Patches 1 and 2 fix some corner cases in MPTCP option writing.
    
    Patch 3 addresses a crash that syzkaller found a way to trigger in the mm
    subsystem by passing an invalid value to __sk_mem_reduce_allocated().
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jan 7, 2022
  7. mptcp: Check reclaim amount before reducing allocation

    syzbot found a page counter underflow that was triggered by MPTCP's
    reclaim code:
    
    page_counter underflow: -4294964789 nr_pages=4294967295
    WARNING: CPU: 2 PID: 3785 at mm/page_counter.c:56 page_counter_cancel+0xcf/0xe0 mm/page_counter.c:56
    Modules linked in:
    CPU: 2 PID: 3785 Comm: kworker/2:6 Not tainted 5.16.0-rc1-syzkaller #0
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014
    Workqueue: events mptcp_worker
    
    RIP: 0010:page_counter_cancel+0xcf/0xe0 mm/page_counter.c:56
    Code: c7 04 24 00 00 00 00 45 31 f6 eb 97 e8 2a 2b b5 ff 4c 89 ea 48 89 ee 48 c7 c7 00 9e b8 89 c6 05 a0 c1 ba 0b 01 e8 95 e4 4b 07 <0f> 0b eb a8 4c 89 e7 e8 25 5a fb ff eb c7 0f 1f 00 41 56 41 55 49
    RSP: 0018:ffffc90002d4f918 EFLAGS: 00010082
    
    RAX: 0000000000000000 RBX: ffff88806a494120 RCX: 0000000000000000
    RDX: ffff8880688c41c0 RSI: ffffffff815e8f28 RDI: fffff520005a9f15
    RBP: ffffffff000009cb R08: 0000000000000000 R09: 0000000000000000
    R10: ffffffff815e2cfe R11: 0000000000000000 R12: ffff88806a494120
    R13: 00000000ffffffff R14: 0000000000000000 R15: 0000000000000001
    FS:  0000000000000000(0000) GS:ffff88802cc00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000001b2de21000 CR3: 000000005ad59000 CR4: 0000000000150ee0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     page_counter_uncharge+0x2e/0x60 mm/page_counter.c:160
     drain_stock+0xc1/0x180 mm/memcontrol.c:2219
     refill_stock+0x139/0x2f0 mm/memcontrol.c:2271
     __sk_mem_reduce_allocated+0x24d/0x550 net/core/sock.c:2945
     __mptcp_rmem_reclaim net/mptcp/protocol.c:167 [inline]
     __mptcp_mem_reclaim_partial+0x124/0x410 net/mptcp/protocol.c:975
     mptcp_mem_reclaim_partial net/mptcp/protocol.c:982 [inline]
     mptcp_alloc_tx_skb net/mptcp/protocol.c:1212 [inline]
     mptcp_sendmsg_frag+0x18c6/0x2190 net/mptcp/protocol.c:1279
     __mptcp_push_pending+0x232/0x720 net/mptcp/protocol.c:1545
     mptcp_release_cb+0xfe/0x200 net/mptcp/protocol.c:2975
     release_sock+0xb4/0x1b0 net/core/sock.c:3306
     mptcp_worker+0x51e/0xc10 net/mptcp/protocol.c:2443
     process_one_work+0x9b2/0x1690 kernel/workqueue.c:2298
     worker_thread+0x658/0x11f0 kernel/workqueue.c:2445
     kthread+0x405/0x4f0 kernel/kthread.c:327
     ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
     </TASK>
    
    __mptcp_mem_reclaim_partial() could call __mptcp_rmem_reclaim() with a
    negative value, which passed that negative value to
    __sk_mem_reduce_allocated() and triggered the splat above.
    
    Check for a reclaim amount that is positive and large enough for
    __mptcp_rmem_reclaim() to actually adjust rmem_fwd_alloc (much like
    the sk_mem_reclaim_partial() code the function is based on).
    
    v2: Use '>' instead of '>=', since SK_MEM_QUANTUM - 1 would get
    right-shifted into nothing by __mptcp_rmem_reclaim.
    
    Fixes: 6511882 ("mptcp: allocate fwd memory separately on the rx and tx path")
    Closes: multipath-tcp/mptcp_net-next#252
    Reported-and-tested-by: syzbot+bc9e2d2dbcb347dd215a@syzkaller.appspotmail.com
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Acked-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    mjmartineau authored and davem330 committed Jan 7, 2022
  8. mptcp: fix a DSS option writing error

    'ptr += 1;' was omitted in the original code.
    
    If the DSS is the last option -- which is what we have most of the
    time -- that's not an issue. But it is if we need to send something else
    after like a RM_ADDR or an MP_PRIO.
    
    Fixes: 1bff1e4 ("mptcp: optimize out option generation")
    Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: Geliang Tang <geliang.tang@suse.com>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    geliangtang authored and davem330 committed Jan 7, 2022
  9. mptcp: fix opt size when sending DSS + MP_FAIL

    When these two options had to be sent -- which is not common -- the DSS
    size was not being taken into account in the remaining size.
    
    Additionally in this situation, the reported size was only the one of
    the MP_FAIL which can cause issue if at the end, we need to write more
    in the TCP options than previously said.
    
    Here we use a dedicated variable for MP_FAIL size to keep the
    WARN_ON_ONCE() just after.
    
    Fixes: c25aeb4 ("mptcp: MP_FAIL suboption sending")
    Acked-and-tested-by: Geliang Tang <geliang.tang@suse.com>
    Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    matttbe authored and davem330 committed Jan 7, 2022
  10. Merge tag 'mlx5-fixes-2022-01-06' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/saeed/linux
    
    Saeed Mahameed says:
    
    ====================
    mlx5 fixes 2022-01-06
    
    This series provides bug fixes to mlx5 driver.
    Please pull and let me know if there is any problem.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jan 7, 2022
  11. Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf

    Pablo Neira Ayuso says:
    
    ====================
    Netfilter fixes for net
    
    The following patchset contains Netfilter fixes for net:
    
    1) Refcount leak in ipt_CLUSTERIP rule loading path, from Xin Xiong.
    
    2) Use socat in netfilter selftests, from Hangbin Liu.
    
    3) Skip layer checksum 4 update for IP fragments.
    
    4) Missing allocation of pcpu scratch maps on clone in
       nft_set_pipapo, from Florian Westphal.
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf:
      netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone
      netfilter: nft_payload: do not update layer 4 checksum when mangling fragments
      selftests: netfilter: switch to socat for tests using -q option
      netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check()
    ====================
    
    Link: https://lore.kernel.org/r/20220106215139.170824-1-pablo@netfilter.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Jakub Kicinski committed Jan 7, 2022
Older