From 8236251dc839799c4ebd733f583c6dddf3bee2fa Mon Sep 17 00:00:00 2001 From: Matthew Wilcox Date: Tue, 17 Mar 2009 08:54:08 -0400 Subject: [PATCH] --- yaml --- r: 139354 b: refs/heads/master c: 264d9caaa1c574c0274b019a810abfe957391005 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/pci/msi.c | 5 ++--- trunk/include/linux/msi.h | 5 ++++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 17efdfdaffca..7d6054783431 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 379f5327a86f7822a51ec7d088a085167724df75 +refs/heads/master: 264d9caaa1c574c0274b019a810abfe957391005 diff --git a/trunk/drivers/pci/msi.c b/trunk/drivers/pci/msi.c index a658c0f34e16..fcde04df6dfe 100644 --- a/trunk/drivers/pci/msi.c +++ b/trunk/drivers/pci/msi.c @@ -145,7 +145,7 @@ static int msi_set_mask_bits(struct irq_desc *desc, u32 mask, u32 flag) if (!entry->msi_attrib.maskbit) return 0; - pos = (long)entry->mask_base; + pos = entry->mask_pos; pci_read_config_dword(entry->dev, pos, &mask_bits); mask_bits &= ~mask; mask_bits |= flag & mask; @@ -363,8 +363,7 @@ static int msi_capability_init(struct pci_dev *dev) unsigned int base, maskbits, temp; base = msi_mask_bits_reg(pos, entry->msi_attrib.is_64); - entry->mask_base = (void __iomem *)(long)base; - + entry->mask_pos = base; /* All MSIs are unmasked by default, Mask them all */ pci_read_config_dword(dev, base, &maskbits); temp = msi_mask((control & PCI_MSI_FLAGS_QMASK) >> 1); diff --git a/trunk/include/linux/msi.h b/trunk/include/linux/msi.h index 9c5ce214fbf4..5025ca4d91e4 100644 --- a/trunk/include/linux/msi.h +++ b/trunk/include/linux/msi.h @@ -33,7 +33,10 @@ struct msi_desc { unsigned int irq; struct list_head list; - void __iomem *mask_base; + union { + void __iomem *mask_base; + u8 mask_pos; + }; struct pci_dev *dev; /* Last set MSI message */