[patch 02/37] device: Add device::msi_data pointer and struct msi_device_data

Jason Gunthorpe jgg at nvidia.com
Sat Nov 27 16:14:06 PST 2021


On Sat, Nov 27, 2021 at 02:20:09AM +0100, Thomas Gleixner wrote:

> +/**
> + * msi_setup_device_data - Setup MSI device data
> + * @dev:	Device for which MSI device data should be set up
> + *
> + * Return: 0 on success, appropriate error code otherwise
> + *
> + * This can be called more than once for @dev. If the MSI device data is
> + * already allocated the call succeeds. The allocated memory is
> + * automatically released when the device is destroyed.

I would say 'by devres when the driver is removed' rather than device
is destroyed - to me the latter implies it would happen at device_del
or perhaps during release..

> +int msi_setup_device_data(struct device *dev)
> +{
> +	struct msi_device_data *md;
> +
> +	if (dev->msi.data)
> +		return 0;
> +
> +	md = devres_alloc(msi_device_data_release, sizeof(*md), GFP_KERNEL);
> +	if (!md)
> +		return -ENOMEM;
> +
> +	raw_spin_lock_init(&md->lock);

I also couldn't guess why this needed to be raw?

Jason



More information about the linux-arm-kernel mailing list