Re: [patch V2 02/31] genirq/msi: Add mutex for MSI list protection

Thomas Gleixner
2021-12-09T20:07:24Z

On Wed, Dec 08 2021 at 20:47, Jason Gunthorpe wrote:
> 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);

I put it there for paranoia reasons and forgot to revist it later. In
that case yes, it's of questionable value.

Thanks,

tglx