[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090204101130.GB19498@flint.arm.linux.org.uk>
Date: Wed, 4 Feb 2009 10:11:30 +0000
From: Russell King <rmk+lkml@....linux.org.uk>
To: Rusty Russell <rusty@...tcorp.com.au>
Cc: Karsten Keil <kkeil@...e.de>, linux-kernel@...r.kernel.org,
Michal Hocko <mhocko@...e.cz>,
richard kennedy <richard@....demon.co.uk>,
Dan Williams <dan.j.williams@...el.com>,
Dmitry Torokhov <dmitry.torokhov@...il.com>,
dwmw2@...radead.org, Scott Wood <scottwood@...escale.com>,
netdev@...r.kernel.org, Al Viro <viro@...iv.linux.org.uk>
Subject: Re: [RFC] Suspicious bug in module refcounting
On Wed, Feb 04, 2009 at 02:18:08PM +1030, Rusty Russell wrote:
> gameport.c, serio.c and input.c increment their own refcount, but to get
> into those init functions someone must be holding a refcount already (ie. a
> module depends on this module). Ditto cyber2000fb.c, and MTD.
Err, wrong. cyber2000fb.c does it in its module initialization function
to prevent the module (when built for Shark) from being unloaded. It
does this because it's from the days of 2.2 kernels and no one bothered
writing the module unload support for Shark. I'm certainly not in a
position to do that.
Since you can't unload a module while its initialization function is
running, so someone else must be holding a refcount (the insmod process).
I'm not saying that it's the right solution, I'm saying that this is how
it's evolved.
If someone has an idea on what to do about it then patches will be given
due consideration.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists