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?
If so, what happens to the static old one?
If not, Can we upgrade this driver without re-compile the kernel to
make the in-kernel driver out or module?
Thanks,
Yang
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