• Bjorn Helgaas's avatar
    PCI: Fix generic NCR 53c810 class code quirk · e6323e3c
    Bjorn Helgaas authored
    In the generic quirk fixup_rev1_53c810(), added by a5312e28 ("[PATCH]
    PCI: NCR 53c810 quirk"), we assigned "class = PCI_CLASS_STORAGE_SCSI".  But
    PCI_CLASS_STORAGE_SCSI is only the two-byte base class/sub-class and needs
    to be shifted to make space for the low-order interface byte.
    
    Furthermore, we had a similar quirk, pci_fixup_ncr53c810(), for arch/x86,
    which assigned class correctly.  The arch code is linked before the PCI
    core, so arch quirks run before generic quirks.  Therefore, on x86, the x86
    arch quirk ran first, and the generic quirk did nothing because it saw that
    dev->class was already set.  But on other arches, the generic quirk set the
    wrong class code.
    
    Fix the generic quirk to set the correct class code and remove the
    now-unnecessary x86-specific quirk.
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    CC: Matthew Wilcox <matthew@wil.cx>
    e6323e3c
fixup.c 17.9 KB