[lkml]   [2003]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectPCI hotplug w/ drivers linked statically vs. module


I noticed a difference in behavior with PCI hotplug, depending
on if the driver in questino is loaded as a module, or statically

For example, the tg3 driver, hot-unplugging, then hot-replugging
works seemingly well if the driver is a module, but differnetly (poorly?)
if it is statically linked. (eth0 disappears and does not come

Trying out the cciss driver (with some changes), we did get it to
hot-unplug and hot-replug while it was in use as md multipath
primary path (failed over to secondary path ok upon hot-unplug.)
and then i/o was able to be done on the old card when the card was
re-plugged. This was with the driver linked as a module.
(BTW, how can you tell the md driver that a failed path
is now good again?)

However, if we linked statically, then we still get requests
coming into the driver after the hba[] structure is deallocated.
(resulting in a panic). This does not seem to happen if the driver
is linked as a module.

Looking at the tg3 driver, it doesn't seem to take any precautions
in it's remove function. (Maybe there are things in the upper layers
there for e.g. pcmcia, that make it work...)

Note, in no case that I can see is the modular driver _unloaded_.
(e.g. there are other same type boards in the system which continue to
function after one board is hot-unplugged)

So why the difference in behavior with PCI hotplug and drivers
linked statically vs. as a module?


-- steve

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:33    [W:0.044 / U:0.268 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site