Re: agpgart.ko can't be unloaded

From: Dave Jones
Date: Thu Dec 15 2005 - 15:52:53 EST


On Thu, Dec 15, 2005 at 09:19:10PM +0100, Krzysztof Halasa wrote:
> Hi,
>
> I recently noticed that agpgart.ko (and corresponding hardware driver)
> can't be unloaded:
>
> Module Size Used by
> intel_agp 19228 1
> agpgart 27592 1 intel_agp
>
> The same is true for via_agp and probably for all other drivers.
>
> The problem is agpgart increases reference count of hw driver
> to prevent it from being unloaded, and the hw driver references
> agpgart so agpgart can't be unloaded either.
>
> Should agpgart be split into 2 parts, one (which would have to be unloaded
> first) managing the thing and the other - the library referenced by
> hw drivers?

the reference on the chipset driver should only be bumped when
/dev/agpgart is open()'d, but currently that isn't the case.

> I wouldn't write about this but there is code to unload them so I think
> it's not intentional.

The reference counting has been horked since the 'new' module loader
appeared[*], and never got fixed as I've nearly always found something
more important to work on, and it's not really a problem for 99%
of users. If someone found the time to write a patch to make it do the
right thing though, I'd be happy to merge it as long as it's done
correctly.

Dave

[*] In fact, my first attempt at fixing it way back then may have
even made the problem worse.
-
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/