On Tue, Feb 16, 2010 at 09:37:14AM -0700, Mukker, Atul wrote: > Thanks for the inputs Christoph. > > We sort of had an idea for this possible route. What are your biggest concerns for a single driver model? My biggest concern is that you'll do something to fix a bug in the new hardware and inadvertently create a bug for some old piece of hardware. > The split model has implications for LSI RAID management applications and we want to make sure that decision is made with a thorough analysis. I'm not sure I see the downside to having a second driver. One interesting possibility, if you feel you really must have a single driver that handles both sets of hardware is to do this: ------ a.c: struct pci_driver a_pci_driver { ... }; b.c: struct pci_driver b_pci_driver { ... }; common.c: static int __init my_init(void) { error = pci_register_driver(&a_pci_driver); if (error) return error; error = pci_register_driver(&b_pci_driver); if (error) pci_unregister_driver(&a_pci_driver); return error; } module_init(my_init); ------ Now you have two completely separated drivers which are bound together into a single object file. Bit wasteful, but might make your management happier. -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html