2005-03-14 23:30:13

by Brice Goglin

[permalink] [raw]
Subject: AGP module removal impossible ?

Hi Dave,

I can't remove the AGP chipset module on my boxes.
Looks like the AGP chipset driver holds a reference on itself and
thus makes removal impossible.

From what I understand, as soon as intel_agp is loaded, agp_intel_probe
is called. It gets a reference on intel_agp module through
!try_module_get(bridge->driver->owner) in agp_add_bridge.
Then this reference can only be released through module_put in
agp_remove_bridge which is called agp_intel_remove which is only called
when removing the module.

Thus it looks impossible to remove this module at all.
And I think the problem occurs with all other AGP chipset drivers.

I hope the reason is not just that module removal support is not important
in 2.6 :) It looks strange to implement a module removal routine if we
know it can't be used :)

Regards,
Brice Goglin


2005-03-15 01:06:53

by Dave Jones

[permalink] [raw]
Subject: Re: AGP module removal impossible ?

On Tue, Mar 15, 2005 at 12:28:51AM +0100, Brice Goglin wrote:
> Hi Dave,
>
> I can't remove the AGP chipset module on my boxes.
> Looks like the AGP chipset driver holds a reference on itself and
> thus makes removal impossible.
>
> From what I understand, as soon as intel_agp is loaded, agp_intel_probe
> is called. It gets a reference on intel_agp module through
> !try_module_get(bridge->driver->owner) in agp_add_bridge.
> Then this reference can only be released through module_put in
> agp_remove_bridge which is called agp_intel_remove which is only called
> when removing the module.
>
> Thus it looks impossible to remove this module at all.
> And I think the problem occurs with all other AGP chipset drivers.
>
> I hope the reason is not just that module removal support is not important
> in 2.6 :) It looks strange to implement a module removal routine if we
> know it can't be used :)

The locking is screwed up and has been for some time.
I've been meaning to take a look at it for a while, but keep finding
more important things to do. It should be fixed to lock/unlock when
the device is opened, as it was in 2.4

Dave