From nobody Fri May 22 22:13:38 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gMfgV6XkDz6frmP; Fri, 22 May 2026 22:13:42 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gMfgV5THTz3nD2; Fri, 22 May 2026 22:13:42 +0000 (UTC) (envelope-from bz@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779488022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=w1skYhojM89BTJ9o4CiOr8AMt/kWVXn1QhzbetS2JA8=; b=lfhdpIKVlLAULC+71FfhnESwsmdSijvlHxY//mqDoVryudd8cTdpL2UL+qCZ90awLqDDE3 LqlYdTY/zHGg62fBtLCbOp/lthrpRQKzsReQCw5wEnxekhT5Yb1o8ULw8bPZ/BEJvbLhR/ XXYWA1SHVZ3P19yhXWFP95BlBXl1vjHMPJn1ewgjTpA14ioBoJ/hnX1FFEki9C0g3dEoiO lvvtX92gt1iKr2lCNZcKlFZ1Y+td58nd4WkkLuuxlkMsGfTLT/wpjBsyvoCQie7IAZfCLw X6s1HvwfMKtvRONYBE4TSUaxtirTZw2nWQSfJA5bYbfK+juwiqKH05zRcNi6Tw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1779488022; a=rsa-sha256; cv=none; b=AokK5lJmzbAhf3VQS88p+ANvANJqyZysMkZhmdhL4jgmTQXtlRLSAicGFJbM/bqSnzgxDQ jgp4CZIx74XhmyKHUk3PI0Vy/LqEFlJXzCd+hD21ubyiDx1IbFloWqJ87IDX3uawNKRLPq B48YjxmzbzHzR6ftR2o33Y/xrqaBYYD+Gf+VZflBI7GkB4EOMn/AoCn0JQBIkBn62LplFf jotUarORQ0ODNFaK+eCmbHP/6LCOaGz2f0ZavigSmh4itj1A8vBzbJBATbG9lC5QsBRr4f dtqmT13GlFk7hlJ42Hl4eAZ56M9PXBzBj7TUcVbTqjnsTa/3GI0XErqbIB2ThA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1779488022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=w1skYhojM89BTJ9o4CiOr8AMt/kWVXn1QhzbetS2JA8=; b=DC5K7bpsOi+Br4qrymOFeOwQRi6mZo/X8fvl7Q+73c0hFiGtwPOxBZ94zZQhQeQi7p01gS RJ+vhmzIYKpR1w7nmpe+8yJg/Vh7dV9iY5xqh0jSjyhGuMyxIKkSBb+48hcwPTXPu+Yes2 ZC9rw7WMQs1w2DnsaZBQDg9rFGNfxlrsyrqpaW2WXEJrpxnCCbou3LAR2teHPG43j5e2pJ AVk5InMZdIZ6sVB/ZMvD9SHkprvVWEcu8e59tEY9hnsDXM2HeBSXcnZ1q4ean98G5ozxz2 GRDSl4IdqtkhFwHg36T4dlwnJ8t2lDgnf3hNSPPRvxcRZC0lpZGxKHQ8zOM9Pg== Received: from mx-01.divo.sbone.de (mx-01.divo.sbone.de [IPv6:2003:a:140a:2200:6:594:fffe:19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (prime256v1) client-digest SHA256) (Client CN "mx-01.divo.sbone.de", Issuer "E7" (not verified)) (Authenticated sender: bz/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4gMfgV3qhhz4GG; Fri, 22 May 2026 22:13:42 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:4902:0:7404:2:1025]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx-01.divo.sbone.de (Postfix) with ESMTPS id 4D1EEA64805; Fri, 22 May 2026 22:13:16 +0000 (UTC) Received: from content-filter.t4-02.sbone.de (content-filter.t4-02.sbone.de [IPv6:fde9:577b:c1a9:4902:0:7404:2:2742]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id D35EF2D029E9; Fri, 22 May 2026 22:13:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:4902:0:7404:2:1025]) by content-filter.t4-02.sbone.de (content-filter.t4-02.sbone.de [IPv6:fde9:577b:c1a9:4902:0:7404:2:2742]) (amavisd-new, port 10024) with ESMTP id IKLcv0Fsr-mN; Fri, 22 May 2026 22:13:39 +0000 (UTC) Received: from nv.t4-02.sbone.de (nv.t4-02.sbone.de [IPv6:fde9:577b:c1a9:4902:0:7404:2:22]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 21BC62D029D8; Fri, 22 May 2026 22:13:39 +0000 (UTC) Date: Fri, 22 May 2026 22:13:38 +0000 (UTC) From: "Bjoern A. Zeeb" To: Mark Johnston cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 36b855f18925 - main - amd64/vmm: Lock global PCI passthrough structures In-Reply-To: <69860b30.3f83f.acb567e@gitrepo.freebsd.org> Message-ID: <21416977-p363-rs27-90n6-qq2o931r4ps5@mnoonqbm.arg> References: <69860b30.3f83f.acb567e@gitrepo.freebsd.org> X-OpenPGP-Key-Id: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed On Fri, 6 Feb 2026, Mark Johnston wrote: > The branch main has been updated by markj: > > URL: https://cgit.FreeBSD.org/src/commit/?id=36b855f1892575cbfe1cd5455b989bfc8ae07502 > > commit 36b855f1892575cbfe1cd5455b989bfc8ae07502 > Author: Mark Johnston > AuthorDate: 2026-02-06 15:29:22 +0000 > Commit: Mark Johnston > CommitDate: 2026-02-06 15:38:51 +0000 > > amd64/vmm: Lock global PCI passthrough structures > > There is a global list of ppt-claimed devices, accessed via several > vmm ioctls. The ioctls are locked by per-VM locks, but this isn't > sufficient to prevent multiple VMs from trying to bind a given device. > > Add a sleepable lock and use that to synchronize all access to ppt > devices. > > Reviewed by: corvink, jhb > MFC after: 2 weeks > Differential Revision: https://reviews.freebsd.org/D55065 > --- > sys/amd64/vmm/io/ppt.c | 162 +++++++++++++++++++++++++++++++++---------------- > 1 file changed, 111 insertions(+), 51 deletions(-) > > diff --git a/sys/amd64/vmm/io/ppt.c b/sys/amd64/vmm/io/ppt.c > index 6feac5dcbbed..b522e18e3b24 100644 > --- a/sys/amd64/vmm/io/ppt.c > +++ b/sys/amd64/vmm/io/ppt.c ... > int > @@ -529,10 +558,12 @@ ppt_unmap_mmio(struct vm *vm, int bus, int slot, int func, > struct pptseg *seg; > struct pptdev *ppt; > > + PPT_LOCK(); > error = ppt_find(vm, bus, slot, func, &ppt); > if (error) > - return (error); > + goto out; > > + error = ENOENT; > for (i = 0; i < MAX_MMIOSEGS; i++) { > seg = &ppt->mmio[i]; > if (seg->gpa == gpa && seg->len == len) { > @@ -541,9 +572,11 @@ ppt_unmap_mmio(struct vm *vm, int bus, int slot, int func, > seg->gpa = 0; > seg->len = 0; > } > - return (error); > + break; > } > } > +out: > + PPT_UNLOCK(); > return (ENOENT); > } There's a bug here. That should be return (error). That's been breaking pci passthru since February. I cannot imagine how no one noticed this in 3 months? /bz -- Bjoern A. Zeeb r15:7