In the pci_msi_update_mask() function, "lock = &to_pci_dev()" does the "to_pci_dev()" lookup, and there's another one buried inside "msi_desc_to_pci_dev()" Introduce a local variable to remove that duplication. Signed-off-by: Chris Li <chrisl@xxxxxxxxxx> --- drivers/pci/msi/msi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pci/msi/msi.c b/drivers/pci/msi/msi.c index 6ede55a7c5e652c80b51b10e58f0290eb6556430..78bed2def9d870d645751436793238ef2bc8b3ed 100644 --- a/drivers/pci/msi/msi.c +++ b/drivers/pci/msi/msi.c @@ -113,7 +113,8 @@ static int pci_setup_msi_context(struct pci_dev *dev) void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set) { - raw_spinlock_t *lock = &to_pci_dev(desc->dev)->msi_lock; + struct pci_dev *dev = msi_desc_to_pci_dev(desc); + raw_spinlock_t *lock = &dev->msi_lock; unsigned long flags; if (!desc->pci.msi_attrib.can_mask) @@ -122,8 +123,7 @@ void pci_msi_update_mask(struct msi_desc *desc, u32 clear, u32 set) raw_spin_lock_irqsave(lock, flags); desc->pci.msi_mask &= ~clear; desc->pci.msi_mask |= set; - pci_write_config_dword(msi_desc_to_pci_dev(desc), desc->pci.mask_pos, - desc->pci.msi_mask); + pci_write_config_dword(dev, desc->pci.mask_pos, desc->pci.msi_mask); raw_spin_unlock_irqrestore(lock, flags); } --- base-commit: 66ff9b2a9d55fecc8f0f940fe0cfe190a56c6a9c change-id: 20250617-pci-msi-avoid-dup-pcidev-c98943e29a80 Best regards, -- Chris Li <chrisl@xxxxxxxxxx>