Hi Ben, On Thu, 02 Oct 2014 10:33:32 +1000 Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> wrote: > > --- a/arch/powerpc/kernel/pci_64.c > +++ b/arch/powerpc/kernel/pci_64.c > @@ -269,10 +269,7 @@ EXPORT_SYMBOL(pcibus_to_node); > > static void quirk_radeon_32bit_msi(struct pci_dev *dev) > { > - struct pci_dn *pdn = pci_get_pdn(dev); > - > - if (pdn) > - pdn->force_32bit_msi = true; > + dev->no_64bit_msi = true; > } > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x68f2, quirk_radeon_32bit_msi); > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0xaa68, quirk_radeon_32bit_msi); > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -331,6 +331,7 @@ struct pci_dev { > unsigned int is_added:1; > unsigned int is_busmaster:1; /* device is busmaster */ > unsigned int no_msi:1; /* device may not use msi */ > + unsigned int no_64bit_msi:1; /* Device has broken 64-bit MSIs */ > unsigned int block_cfg_access:1; /* config space access is blocked */ > unsigned int broken_parity_status:1; /* Device generates false positive parity */ > unsigned int irq_reroute_variant:2; /* device needs IRQ rerouting variant */ You really should not be assigning "true" to a single bit field ... -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
Attachment:
signature.asc
Description: PGP signature