Re: Q: What will happen if I insmod a new version driver when ithas already been statically in kernel?

From: Randy Dunlap
Date: Mon Aug 27 2012 - 19:38:38 EST


On 08/27/2012 03:06 AM, Yang Bai wrote:

> Hi all,
>
> We have one driver which has been statically compiled into kernel, and
> now we want to upgrade it. But we only have a new version module for
> this driver. Could I just insmod this module and make the new driver
> work?

No, that should not work -- unless the in-kernel driver has a
close/release method that you can somehow trigger.


> If so, what happens to the static old one?

It stays.

> If not, Can we upgrade this driver without re-compile the kernel to
> make the in-kernel driver out or module?


If the current driver is not a loadable module, you cannot
replace it. Assuming that they use mostly the same resources,
like I/O devices or memory BARs or however the device presents
its control & data interfaces, the new module would not be
able to access the device interfaces since they would still
be used/owned by the in-kernel driver.



--
~Randy
--
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/