From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2049.outbound.protection.outlook.com. [40.107.93.49]) by gmr-mx.google.com with ESMTPS id j18si189706pgb.5.2021.12.08.16.47.05 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 08 Dec 2021 16:47:05 -0800 (PST) Date: Wed, 8 Dec 2021 20:47:02 -0400 From: Jason Gunthorpe Subject: Re: [patch V2 02/31] genirq/msi: Add mutex for MSI list protection Message-ID: <20211209004702.GL6385@nvidia.com> References: <20211206210600.123171746@linutronix.de> <20211206210747.708877269@linutronix.de> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211206210747.708877269@linutronix.de> Return-Path: jgg@nvidia.com MIME-Version: 1.0 To: Thomas Gleixner Cc: LKML , Bjorn Helgaas , Marc Zygnier , Alex Williamson , Kevin Tian , Megha Dey , Ashok Raj , linux-pci@vger.kernel.org, Cedric Le Goater , xen-devel@lists.xenproject.org, Juergen Gross , Greg Kroah-Hartman , Niklas Schnelle , linux-s390@vger.kernel.org, Heiko Carstens , Christian Borntraeger , Logan Gunthorpe , Jon Mason , Dave Jiang , Allen Hubbe , linux-ntb@googlegroups.com List-ID: On Mon, Dec 06, 2021 at 11:51:05PM +0100, Thomas Gleixner wrote: > +++ b/kernel/irq/msi.c > @@ -127,12 +127,37 @@ int msi_setup_device_data(struct device > return -ENOMEM; > > INIT_LIST_HEAD(&md->list); > + mutex_init(&md->mutex); > dev->msi.data = md; > devres_add(dev, md); > return 0; > } > > /** > + * msi_lock_descs - Lock the MSI descriptor storage of a device > + * @dev: Device to operate on > + */ > +void msi_lock_descs(struct device *dev) > +{ > + if (WARN_ON_ONCE(!dev->msi.data)) > + return; Is this useful? Other places that call msi_lock_descs will continue on and deref null dev->msi anyhow - is the dump from the WARN_ON that much better than the oops from the null deref here: > + mutex_lock(&dev->msi.data->mutex); ? Honestly, still a bit unclear on what the community consensus is for using WARN_ON. Jason