| 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 |
| |
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
|