From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Jakub Kicinski <kuba@kernel.org>,
Breno Leitao <leitao@debian.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
Jason Wang <jasowang@redhat.com>,
Heng Qi <hengqi@linux.alibaba.com>,
Shivani Agarwal <shivani.agarwal@broadcom.com>
Subject: [PATCH 6.1 094/101] virtio_net: Fix napi_skb_cache_put warning
Date: Thu, 5 Sep 2024 11:42:06 +0200 [thread overview]
Message-ID: <20240905093719.800298913@linuxfoundation.org> (raw)
In-Reply-To: <20240905093716.075835938@linuxfoundation.org>
6.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: Breno Leitao <leitao@debian.org>
commit f8321fa75102246d7415a6af441872f6637c93ab upstream.
After the commit bdacf3e34945 ("net: Use nested-BH locking for
napi_alloc_cache.") was merged, the following warning began to appear:
WARNING: CPU: 5 PID: 1 at net/core/skbuff.c:1451 napi_skb_cache_put+0x82/0x4b0
__warn+0x12f/0x340
napi_skb_cache_put+0x82/0x4b0
napi_skb_cache_put+0x82/0x4b0
report_bug+0x165/0x370
handle_bug+0x3d/0x80
exc_invalid_op+0x1a/0x50
asm_exc_invalid_op+0x1a/0x20
__free_old_xmit+0x1c8/0x510
napi_skb_cache_put+0x82/0x4b0
__free_old_xmit+0x1c8/0x510
__free_old_xmit+0x1c8/0x510
__pfx___free_old_xmit+0x10/0x10
The issue arises because virtio is assuming it's running in NAPI context
even when it's not, such as in the netpoll case.
To resolve this, modify virtnet_poll_tx() to only set NAPI when budget
is available. Same for virtnet_poll_cleantx(), which always assumed that
it was in a NAPI context.
Fixes: df133f3f9625 ("virtio_net: bulk free tx skbs")
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Heng Qi <hengqi@linux.alibaba.com>
Link: https://patch.msgid.link/20240712115325.54175-1-leitao@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
[Shivani: Modified to apply on v6.6.y]
Signed-off-by: Shivani Agarwal <shivani.agarwal@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/virtio_net.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1638,7 +1638,7 @@ static bool is_xdp_raw_buffer_queue(stru
return false;
}
-static void virtnet_poll_cleantx(struct receive_queue *rq)
+static void virtnet_poll_cleantx(struct receive_queue *rq, int budget)
{
struct virtnet_info *vi = rq->vq->vdev->priv;
unsigned int index = vq2rxq(rq->vq);
@@ -1656,7 +1656,7 @@ static void virtnet_poll_cleantx(struct
do {
virtqueue_disable_cb(sq->vq);
- free_old_xmit_skbs(sq, true);
+ free_old_xmit_skbs(sq, !!budget);
} while (unlikely(!virtqueue_enable_cb_delayed(sq->vq)));
if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS)
@@ -1675,7 +1675,7 @@ static int virtnet_poll(struct napi_stru
unsigned int received;
unsigned int xdp_xmit = 0;
- virtnet_poll_cleantx(rq);
+ virtnet_poll_cleantx(rq, budget);
received = virtnet_receive(rq, budget, &xdp_xmit);
@@ -1778,7 +1778,7 @@ static int virtnet_poll_tx(struct napi_s
txq = netdev_get_tx_queue(vi->dev, index);
__netif_tx_lock(txq, raw_smp_processor_id());
virtqueue_disable_cb(sq->vq);
- free_old_xmit_skbs(sq, true);
+ free_old_xmit_skbs(sq, !!budget);
if (sq->vq->num_free >= 2 + MAX_SKB_FRAGS)
netif_tx_wake_queue(txq);
next prev parent reply other threads:[~2024-09-05 10:04 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 9:40 [PATCH 6.1 000/101] 6.1.109-rc1 review Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 001/101] drm: panel-orientation-quirks: Add quirk for OrangePi Neo Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 002/101] scsi: ufs: core: Bypass quick recovery if force reset is needed Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 003/101] ALSA: hda/generic: Add a helper to mute speakers at suspend/shutdown Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 004/101] ALSA: hda/conexant: Mute speakers at suspend / shutdown Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 005/101] i2c: Fix conditional for substituting empty ACPI functions Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 006/101] dma-debug: avoid deadlock between dma debug vs printk and netconsole Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 007/101] net: usb: qmi_wwan: add MeiG Smart SRM825L Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 008/101] ASoC: amd: yc: Support mic on Lenovo Thinkpad E14 Gen 6 Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 009/101] mptcp: make pm_remove_addrs_and_subflows static Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 010/101] mptcp: pm: fix RM_ADDR ID for the initial subflow Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 011/101] PCI/MSI: Fix UAF in msi_capability_init Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 012/101] f2fs: fix to truncate preallocated blocks in f2fs_file_open() Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 013/101] mptcp: pm: fullmesh: select the right ID later Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 014/101] mptcp: pm: avoid possible UaF when selecting endp Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 015/101] mptcp: pm: reuse ID 0 after delete and re-add Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 016/101] mptcp: pm: fix ID 0 endp usage after multiple re-creations Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 017/101] selftests: mptcp: join: validate fullmesh endp on 1st sf Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 018/101] selftests: mptcp: join: check re-using ID of closed subflow Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 019/101] selftests: mptcp: add explicit test case for remove/readd Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 020/101] selftests: mptcp: join: test for flush/re-add endpoints Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 021/101] selftests: mptcp: join: check re-using ID of unused ADD_ADDR Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 022/101] selftests: mptcp: join: check re-adding init endp with != id Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 023/101] mptcp: pr_debug: add missing \n at the end Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 024/101] mptcp: avoid duplicated SUB_CLOSED events Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 025/101] selftests: mptcp: join: check removing ID 0 endpoint Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 026/101] selftests: mptcp: join: no extra msg if no counter Greg Kroah-Hartman
2024-09-05 9:40 ` [PATCH 6.1 027/101] selftests: mptcp: join: check re-re-adding ID 0 endp Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 028/101] selftests: mptcp: join: cannot rm sf if closed Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 029/101] drm/amdgpu: Fix uninitialized variable warning in amdgpu_afmt_acr Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 030/101] drm/amd/display: Assign linear_pitch_alignment even for VM Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 031/101] drm/amdgpu: fix overflowed array index read warning Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 032/101] drm/amdgpu/pm: Check the return value of smum_send_msg_to_smc Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 033/101] drm/amd/pm: fix uninitialized variable warning Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 034/101] drm/amd/pm: fix uninitialized variable warning for smu8_hwmgr Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 035/101] drm/amd/pm: fix warning using uninitialized value of max_vid_step Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 036/101] drm/amd/pm: Fix negative array index read Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 037/101] drm/amd/pm: fix the Out-of-bounds read warning Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 038/101] drm/amd/pm: fix uninitialized variable warnings for vega10_hwmgr Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 039/101] drm/amdgpu: avoid reading vf2pf info size from FB Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 040/101] drm/amd/display: Check gpio_id before used as array index Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 041/101] drm/amd/display: Stop amdgpu_dm initialize when stream nums greater than 6 Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 042/101] drm/amd/display: Add array index check for hdcp ddc access Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 043/101] drm/amd/display: Check num_valid_sets before accessing reader_wm_sets[] Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 044/101] drm/amd/display: Check msg_id before processing transcation Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 045/101] drm/amd/display: Fix Coverity INTEGER_OVERFLOW within dal_gpio_service_create Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 046/101] drm/amd/display: Spinlock before reading event Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 047/101] drm/amd/display: Ensure index calculation will not overflow Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 048/101] drm/amd/display: Skip inactive planes within ModeSupportAndSystemConfiguration Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 049/101] drm/amd/amdgpu: Check tbo resource pointer Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 050/101] drm/amd/pm: fix uninitialized variable warnings for vangogh_ppt Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 051/101] drm/amdgpu/pm: Fix uninitialized variable warning for smu10 Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 052/101] drm/amdgpu/pm: Fix uninitialized variable agc_btc_response Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 053/101] drm/amdgpu: Fix out-of-bounds write warning Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 054/101] drm/amdgpu: Fix out-of-bounds read of df_v1_7_channel_number Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 055/101] drm/amdgpu: fix ucode out-of-bounds read warning Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 056/101] drm/amdgpu: fix mc_data " Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 057/101] drm/amdkfd: Reconcile the definition and use of oem_id in struct kfd_topology_device Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 058/101] apparmor: fix possible NULL pointer dereference Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 059/101] wifi: ath11k: initialize ret in ath11k_qmi_load_file_target_mem() Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 060/101] drm/amdgpu/pm: Check input value for CUSTOM profile mode setting on legacy SOCs Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 061/101] drm/amdgpu: fix dereference after null check Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 062/101] drm/amdgpu: fix the waring dereferencing hive Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 063/101] drm/amd/pm: check specific index for aldebaran Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 064/101] drm/amdgpu: the warning dereferencing obj for nbio_v7_4 Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 065/101] drm/amd/pm: check negtive return for table entries Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 066/101] wifi: rtw89: ser: avoid multiple deinit on same CAM Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 067/101] drm/amdgpu: update type of buf size to u32 for eeprom functions Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 068/101] wifi: iwlwifi: remove fw_running op Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 069/101] cpufreq: scmi: Avoid overflow of target_freq in fast switch Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 070/101] PCI: al: Check IORESOURCE_BUS existence during probe Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 071/101] hwspinlock: Introduce hwspin_lock_bust() Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 072/101] RDMA/efa: Properly handle unexpected AQ completions Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 073/101] ionic: fix potential irq name truncation Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 074/101] pwm: xilinx: Fix u32 overflow issue in 32-bit width PWM mode Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 075/101] rcu/nocb: Remove buggy bypass lock contention mitigation Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 076/101] usbip: Dont submit special requests twice Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 077/101] usb: typec: ucsi: Fix null pointer dereference in trace Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 078/101] fsnotify: clear PARENT_WATCHED flags lazily Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 079/101] regmap: spi: Fix potential off-by-one when calculating reserved size Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 080/101] smack: tcp: ipv4, fix incorrect labeling Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 081/101] net/mlx5e: SHAMPO, Fix incorrect page release Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 082/101] drm/meson: plane: Add error handling Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 083/101] drm/bridge: tc358767: Check if fully initialized before signalling HPD event via IRQ Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 084/101] dmaengine: altera-msgdma: use irq variant of spin_lock/unlock while invoking callbacks Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 085/101] dmaengine: altera-msgdma: properly free descriptor in msgdma_free_descriptor Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 086/101] hwmon: (k10temp) Check return value of amd_smn_read() Greg Kroah-Hartman
2024-09-05 9:41 ` [PATCH 6.1 087/101] wifi: cfg80211: make hash table duplicates more survivable Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 088/101] driver: iio: add missing checks on iio_infos callback access Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 089/101] block: remove the blk_flush_integrity call in blk_integrity_unregister Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 090/101] drm/amd/display: added NULL check at start of dc_validate_stream Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 091/101] drm/amd/display: Correct the defined value for AMDGPU_DMUB_NOTIFICATION_MAX Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 092/101] drm/amd/display: Skip wbscl_set_scaler_filter if filter is null Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 093/101] media: uvcvideo: Enforce alignment of frame and interval Greg Kroah-Hartman
2024-09-05 9:42 ` Greg Kroah-Hartman [this message]
2024-09-05 9:42 ` [PATCH 6.1 095/101] Bluetooth: SCO: Fix possible circular locking dependency on sco_connect_cfm Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 096/101] Bluetooth: SCO: fix sco_conn related locking and validity issues Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 097/101] ext4: fix inode tree inconsistency caused by ENOMEM Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 098/101] udf: Limit file size to 4TB Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 099/101] ext4: reject casefold inode flag without casefold feature Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 100/101] ext4: handle redirtying in ext4_bio_write_page() Greg Kroah-Hartman
2024-09-05 9:42 ` [PATCH 6.1 101/101] i2c: Use IS_REACHABLE() for substituting empty ACPI functions Greg Kroah-Hartman
2024-09-05 13:51 ` [PATCH 6.1 000/101] 6.1.109-rc1 review Pavel Machek
2024-09-05 14:18 ` Mark Brown
2024-09-05 21:08 ` Florian Fainelli
2024-09-06 0:25 ` Shuah Khan
2024-09-06 6:44 ` Naresh Kamboju
2024-09-06 10:02 ` Jon Hunter
2024-09-06 11:43 ` Peter Schneider
2024-09-06 22:32 ` Ron Economos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240905093719.800298913@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=hengqi@linux.alibaba.com \
--cc=jasowang@redhat.com \
--cc=kuba@kernel.org \
--cc=leitao@debian.org \
--cc=mst@redhat.com \
--cc=patches@lists.linux.dev \
--cc=shivani.agarwal@broadcom.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).