[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <18923.37936.480968.59086@pilspetsen.it.uu.se>
Date: Sun, 19 Apr 2009 23:14:24 +0200
From: Mikael Pettersson <mikpe@...uu.se>
To: Mikael Pettersson <mikpe@...uu.se>
Cc: David Miller <davem@...emloft.net>, khc@...waw.pl,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
hugh@...itas.com
Subject: Re: [BUG] 2.6.30-rc broke ixp4xx_eth, firmware breakage?
Mikael Pettersson writes:
> David Miller writes:
> > From: Mikael Pettersson <mikpe@...uu.se>
> > Date: Sat, 18 Apr 2009 23:53:25 +0200 (MEST)
> >
> > > The ixp4xx_eth driver for my IXP420 XScale box (Synology DS101)
> > > worked fine in kernel 2.6.29. Now trying to boot 2.6.30-rc2 I'm
> > > greeted with the following failure during init:
> > >
> > > Bringing up interface eth0: RTNETLINK answers: No such file or directory
> > > Failed to bring up eth0.
> > > [FAILED]
> > >
> > > There's a fairly long (at least 10 seconds) delay between the 'Bringing up'
> > > message and the RTNETLINK error.
> > >
> > > A diff between the 2.6.29 and 2.6.30-rc2 boot logs indicates that
> > > the firmware doesn't get loaded:
> >
> > Please make sure CONFIG_FIRMWARE_IN_KERNEL is set in your
> > configuration if this driver is being built statically
> > into your kernel.
>
> ixp4xx_eth is built as a module and I have CONFIG_FIRMWARE_IN_KERNEL unset.
>
> > Otherwise, if modular, make sure the firmware files get installed into
> > the correct location and are available in the filesystem when the
> > driver loads.
>
> The firmware isn't shipped with the kernel but is something users have to
> download from Intel, build, and install themselves; once installed they work
> across kernel versions. The files reside in /lib/firmware/'s top-level
> directory, and they are available since firmware loading (triggered by init's
> attempt to up eth0) occurs after / has been mounted. My userspace uses oldish
> firmware-aware hotplug since udev's too heavy-weight.
>
> This all works with 2.6.29 and older 2.6.2x kernels.
>
> I'll do a bisect.
Bisection identified Arjan's f520360d93cdc37de5d972dac4bf3bdef6a7f6a7
"kobject: don't block for each kobject_uevent" as the culprit.
Hugh Dickins reverted that change a few days ago in commit
05f54c13cd0c33694eec39a265475c5d6cf223cf, noting that it was buggy
and broke CONFIG_UEVENT_HELPER_PATH by prematurely releasing memory
needed when exec:ing the helper program.
I tested 2.6.30-rc2 + Hugh's patch and with that everything works again.
Krzysztof: you can relax, ixp4xx_eth was just an innocent bystander.
Hugh: thanks for the revert, consider this a late Acked-by.
/Mikael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists