From: Simon Horman <horms@kernel.org>
To: Arnav Kapoor <kapoorarnav43@gmail.com>
Cc: Ronak Doshi <ronak.doshi@broadcom.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
syzbot+8eed6f83440ecdaf4be6@syzkaller.appspotmail.com
Subject: Re: [PATCH net] vmxnet3: stop DMA mapping the adapter structure
Date: Mon, 26 Oct 2026 17:02:00 +0000 [thread overview]
Message-ID: <20261026170200.GF257209@horms.kernel.org> (raw)
In-Reply-To: <20261021221221.502428-1-kapoorarnav43@gmail.com>
On Thu, Oct 22, 2026 at 03:42:12AM +0530, Arnav Kapoor wrote:
> vmxnet3_probe_device() maps the whole struct vmxnet3_adapter with
> dma_map_single() and passes its address to the device as the "driver
> data" (misc.ddPA/ddLen) in the shared area.
>
> The adapter is the netdev private area, and alloc_netdev_mqs() allocates
> it with kvzalloc(). struct vmxnet3_adapter embeds 32 tx and 32 rx queues
> and is well above PAGE_SIZE, so when a high-order allocation fails the
> adapter ends up in vmalloc memory. dma_map_single() then warns
> ("rejecting DMA map of vmalloc memory") and returns DMA_MAPPING_ERROR,
> and probe fails with -EFAULT. syzbot hit this with page allocation
> fault injection.
>
> The driver data is only informational: the mapping is DMA_TO_DEVICE,
> done once at probe and never synced, so the device could only ever see
> a stale copy. The per-queue descriptors in this driver already report
> no driver data with ddPA = ~0ULL and ddLen = 0, and other vmxnet3
> drivers, such as the one in DPDK, never set misc.ddPA at all.
>
> Drop the mapping and report no driver data in the shared area as well.
> This also removes a probe failure path and the adapter_pa field.
>
> Fixes: b0eb57cb97e7 ("VMXNET3: Add support for virtual IOMMU")
> Reported-by: syzbot+8eed6f83440ecdaf4be6@syzkaller.appspotmail.com
> Closes: https://syzkaller.appspot.com/bug?extid=8eed6f83440ecdaf4be6
> Signed-off-by: Arnav Kapoor <kapoorarnav43@gmail.com>
> ---
> Tested in QEMU (q35, KVM) on net/main (abeacca61eea), with KASAN,
> CONFIG_DMA_API_DEBUG and fail_page_alloc (min-order=4, as in the syzbot
> reproducer):
>
> - syzbot C reproducer: before, "rejecting DMA map of vmalloc memory"
> WARNING and probe fails with -EFAULT; after, no warning (probe then
> fails at BAR mapping, as the reproducer binds vmxnet3 to a non-vmxnet3
> device).
> - QEMU's emulated vmxnet3 (-device vmxnet3): probes, link up, ping
> works, before and after.
> - Same NIC unbound and rebound with order>=4 page allocations failing:
> before, the WARNING and probe fails, so the NIC is gone; after, it
> binds and ping works.
>
> No new W=1 warnings in drivers/net/vmxnet3/. Not tested on ESXi.
>
> drivers/net/vmxnet3/vmxnet3_drv.c | 19 +++----------------
> drivers/net/vmxnet3/vmxnet3_int.h | 1 -
> 2 files changed, 3 insertions(+), 17 deletions(-)
Reviewed-by: Simon Horman <horms@kernel.org>
next prev parent reply other threads:[~2026-10-26 17:02 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 22:12 [PATCH net] vmxnet3: stop DMA mapping the adapter structure Arnav Kapoor
2026-10-26 17:02 ` Simon Horman [this message]
2026-10-26 23:47 ` Jakub Kicinski
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=20261026170200.GF257209@horms.kernel.org \
--to=horms@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=davem@davemloft.net \
--cc=edumazet@kernel.org \
--cc=kapoorarnav43@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=ronak.doshi@broadcom.com \
--cc=syzbot+8eed6f83440ecdaf4be6@syzkaller.appspotmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.