Re: [RFC]: new LSI MegaRAID driver implementation

From: Matthew Wilcox
Date: Tue Feb 16 2010 - 11:45:44 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/