Re: OOPS w83781d during rmmod (2.5.70-bk1[1234])
Martin Schlemmer (azarah@gentoo.org)
11 Jun 2003 07:44:02 +0200
On Tue, 2003-06-10 at 07:51, Martin Schlemmer wrote:
> On Tue, 2003-06-10 at 07:41, Mark M. Hoffman wrote:
> > * Martin Schlemmer <azarah@gentoo.org> [2003-06-09 07:34:30 +0200]:
> > >
> > > Anyhow, Only change I have made to the w83781d driver, is one line
> > > (just tell it to that if the chip id is 0x72, its also of type
> > > w83726HF), but now (2.5.70-bk1[123]) it segfaults for me on rmmod, where
> > > it did not with 2.5.68 kernels when I still had the other board. I will
> > > attach a oops tomorrow or such when I get home.
> >
> > I reproduced the segfault here. It looks like i2c_del_driver() tries
> > to call w83781d_detach_client() more than once now, partly because of
> > the safe list fix in 2.5.70-bk11. But that function should only be
> > called for the "primary" client, not the subclients.
> >
> > The quick/ugly patch below fixes the symptom, but maybe not the disease.
> > There might be more fundamental brokenness in the whole subclient scheme.
> > I'll keep looking when I get the chance.
> >
>
Nope, It does not fix it. It basically happens when i2c_del_driver is
called for w83781d_driver. I did add a few printk's, but it do not
seem to be anything that w83781d_detach_client does. Rather, it
looks to be while i2c_del_driver is walking the clients for the
adapter, after it ran w83781d_detach_client for the chip (and not the
two clients). I am assuming it grabs the client for the main chip,
calls w83781d_detach_client which then in turn free all the memory for
the main client and the two lm75 clients, return, and then check the
next client for the adapter, which happens to be one of the lm75 clients
for who we already freed the structures ....
I hope that was sort of comprehensible. Anyhow, I will poke at it more
tonight, if thoughts, let me know.
Regards,
--
Martin Schlemmer
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/