Re: [patch 04/10] NTB/msi: Switch MSI descriptor locking to lock guard()

Dave Jiang
2025-03-10T15:18:05Z

On 3/9/25 1:41 AM, Thomas Gleixner wrote:
> Convert the code to use the new guard(msi_descs_lock).
>
> No functional change intended.
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Jon Mason <jdmason@kudzu.us>
> Cc: Dave Jiang <dave.jiang@intel.com>
> Cc: Allen Hubbe <allenbh@gmail.com>
> Cc: ntb@lists.linux.dev

Acked-by: Dave Jiang <dave.jiang@intel.com>

> ---
> drivers/ntb/msi.c | 22 ++++++++--------------
> 1 file changed, 8 insertions(+), 14 deletions(-)
>
> --- a/drivers/ntb/msi.c
> +++ b/drivers/ntb/msi.c
> @@ -106,10 +106,10 @@ int ntb_msi_setup_mws(struct ntb_dev *nt
> if (!ntb->msi)
> return -EINVAL;
>
> - msi_lock_descs(&ntb->pdev->dev);
> - desc = msi_first_desc(&ntb->pdev->dev, MSI_DESC_ASSOCIATED);
> - addr = desc->msg.address_lo + ((uint64_t)desc->msg.address_hi << 32);
> - msi_unlock_descs(&ntb->pdev->dev);
> + scoped_guard (msi_descs_lock, &ntb->pdev->dev) {
> + desc = msi_first_desc(&ntb->pdev->dev, MSI_DESC_ASSOCIATED);
> + addr = desc->msg.address_lo + ((uint64_t)desc->msg.address_hi << 32);
> + }
>
> for (peer = 0; peer < ntb_peer_port_count(ntb); peer++) {
> peer_widx = ntb_peer_highest_mw_idx(ntb, peer);
> @@ -289,7 +289,7 @@ int ntbm_msi_request_threaded_irq(struct
> if (!ntb->msi)
> return -EINVAL;
>
> - msi_lock_descs(dev);
> + guard(msi_descs_lock)(dev);
> msi_for_each_desc(entry, dev, MSI_DESC_ASSOCIATED) {
> if (irq_has_action(entry->irq))
> continue;
> @@ -307,17 +307,11 @@ int ntbm_msi_request_threaded_irq(struct
> ret = ntbm_msi_setup_callback(ntb, entry, msi_desc);
> if (ret) {
> devm_free_irq(&ntb->dev, entry->irq, dev_id);
> - goto unlock;
> + return ret;
> }
> -
> - ret = entry->irq;
> - goto unlock;
> + return entry->irq;
> }
> - ret = -ENODEV;
> -
> -unlock:
> - msi_unlock_descs(dev);
> - return ret;
> + return -ENODEV;
> }
> EXPORT_SYMBOL(ntbm_msi_request_threaded_irq);
>
>