Re: 2.6.19-rc3-mm1 -- missing network adaptors

Andrew Morton
2006-11-01T18:50:28Z

On Wed, 01 Nov 2006 10:26:24 +0100
Mike Galbraith <efault@gmx.de> wrote:

> On Wed, 2006-11-01 at 07:12 +0100, Mike Galbraith wrote:
> > On Tue, 2006-10-31 at 21:25 -0800, Andrew Morton wrote:
> > > On Wed, 01 Nov 2006 05:43:18 +0100
> > > Mike Galbraith <efault@gmx.de> wrote:
> > >
> > > > On Tue, 2006-10-31 at 19:14 +0100, Mike Galbraith wrote:
> > > >
> > > > > Seems it's driver-core-fixes-sysfs_create_link-retval-checks-in.patch
> > > > >
> > > > > Tomorrow, I'll revert that alone from 2.6.19-rc3-mm1 to confirm...
> > > >
> > > > Confirmed. Boots fine with that patch reverted.
> > >
> > > Could you test with something like this applied?
> >
> > No output. I had already enabled debugging, but got nada there either.
> > Bugger. <scritch scritch>
>
> Duh! (what a maroon) I booted the wrong kernel due to a typo.
>
> I enabled some other debug options (poke/hope), and it now boots past
> the BUG at arch/i386/mm/pageattr.c:165 point, through the sound NULL
> pointer dereference, and on to the eventual complete hang as NFS is
> being initialized. The log shows 326 failures at lines 385 and 589.

You mean 326 separate failures? erp.

So it's failing here:

static int device_add_class_symlinks(struct device *dev)
{
int error;

if (!dev->class)
return 0;
error = sysfs_create_link(&dev->kobj, &dev->class->subsys.kset.kobj,
"subsystem");
if (error) {
DB();
goto out;
}
error = sysfs_create_link(&dev->class->subsys.kset.kobj, &dev->kobj,
dev->bus_id);
if (error) {
-->> DB();
goto out_subsys;
}

Now, prior to driver-core-fixes-sysfs_create_link-retval-checks-in.patch we
were simply ignoring the return value of sysfs_create_link(). Now we're
not ignoring it and stuff is failing.

I'm suspecting that the second call to sysfs_create_link() in device_add():

if (dev->class) {
sysfs_create_link(&dev->kobj, &dev->class->subsys.kset.kobj,
"subsystem");
-->> sysfs_create_link(&dev->class->subsys.kset.kobj, &dev->kobj,
dev->bus_id);

is simply always failing, only we never knew about it.

It would be useful if you could tell us what `error' is in there. Usually
-EEXIST.

Greg, what is that call actually linking from and to?