Alex Williamson wrote: > Wow, I didn't think that kind of broken was possible. Maybe instead of > a bitmap of function aliases we could have a single devfn alias for a > device. That means we'd only be able to support a single alias for a > device, but since I don't think we've seen devices that use more than a > single alias, maybe that's ok. In my (never finished) patch set for the same problem, the first thing I did was diff --git a/include/linux/pci.h b/include/linux/pci.h index a13d6825..7788870a 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -251,12 +251,13 @@ struct pci_dev { struct proc_dir_entry *procent; /* device entry in /proc/bus/pci */ struct pci_slot *slot; /* Physical slot this device is in */ - unsigned int devfn; /* encoded device & function index */ unsigned short vendor; unsigned short device; unsigned short subsystem_vendor; unsigned short subsystem_device; unsigned int class; /* 3 bytes: (base,sub,prog-if) */ + u8 devfn; /* encoded device & function index */ + u8 devfn_quirk; /* zero is non-quirky */ u8 revision; /* PCI revision, low byte of class word */ u8 hdr_type; /* PCI header type (`multi' flag masked out) */ u8 pcie_cap; /* PCIe capability offset */ I encoded "devfn_quirk" as a delta to devfn, so that zero would mean "no quirk", and no existing intialization would need changing. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html