Patchwork 2.6.28-git8: tg3 doesn't work due to firmware not loading (-git7 is ok)

login
register
mail settings
Submitter David Woodhouse
Date Jan. 12, 2009, 8:13 a.m.
Message ID <1231748039.25018.1277.camel@macbook.infradead.org>
Download mbox | patch
Permalink /patch/17887/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

David Woodhouse - Jan. 12, 2009, 8:13 a.m.
On Sun, 2009-01-11 at 19:10 -0500, Valdis.Kletnieks@vt.edu wrote:
> So it looks like the patch is failing to finish initialization of the card.
> Damned if *I* can see what's breaking it, the conversion to use a helper
> function tg3_request_firmware seems sane enough....

Ahem...
Valdis.Kletnieks@vt.edu - Jan. 13, 2009, 4:46 a.m.
On Mon, 12 Jan 2009 08:13:59 GMT, David Woodhouse said:
> On Sun, 2009-01-11 at 19:10 -0500, Valdis.Kletnieks@vt.edu wrote:
> > So it looks like the patch is failing to finish initialization of the card.
> > Damned if *I* can see what's breaking it, the conversion to use a helper
> > function tg3_request_firmware seems sane enough....
> 
> Ahem...
> 
> --- drivers/net/tg3.c.stupiddwmw2	2009-01-12 08:13:05.000000000 +0000
> +++ drivers/net/tg3.c	2009-01-12 08:13:09.000000000 +0000
> @@ -13151,7 +13151,7 @@ static int __devinit tg3_init_one(struct

OK, tested on my laptop.  Results:

CONFIG_TIGON3=y CONFIG_PREVENT_FIRMWARE_BUILD=y works - the firmware gets
loaded during early system boot and all is as expected.

CONFIG_TIGON3=y CONFIG_FIRMWARE_IN_KERNEL=n wedges up - Booted with
'ignore_loglevel initcall_debug', and the last thing we get is:

tg3 0000:09:00.0: firmware: requesting tigon/tg3_tso.bin

At which point we hang because request_firmware apparently never returns.
It's wedged up *really* good at that point - I can't even use
alt-sysrq-anything.
Valdis.Kletnieks@vt.edu - Jan. 13, 2009, 5:52 a.m.
On Mon, 12 Jan 2009 08:13:59 GMT, David Woodhouse said:
> On Sun, 2009-01-11 at 19:10 -0500, Valdis.Kletnieks@vt.edu wrote:
> > So it looks like the patch is failing to finish initialization of the card.
> > Damned if *I* can see what's breaking it, the conversion to use a helper
> > function tg3_request_firmware seems sane enough....
> 
> Ahem...
> 
> --- drivers/net/tg3.c.stupiddwmw2	2009-01-12 08:13:05.000000000 +0000
> +++ drivers/net/tg3.c	2009-01-12 08:13:09.000000000 +0000
> @@ -13151,7 +13151,7 @@ static int __devinit tg3_init_one(struct

OK, tested on my laptop.  Results:

CONFIG_TIGON3=y CONFIG_PREVENT_FIRMWARE_BUILD=y works - the firmware gets
loaded during early system boot and all is as expected.

CONFIG_TIGON3=y CONFIG_FIRMWARE_IN_KERNEL=n wedges up - Booted with
'ignore_loglevel initcall_debug', and the last thing we get is:

tg3 0000:09:00.0: firmware: requesting tigon/tg3_tso.bin

At which point we hang because request_firmware apparently never returns.
It's wedged up *really* good at that point - I can't even use
alt-sysrq-anything.

Patch

--- drivers/net/tg3.c.stupiddwmw2	2009-01-12 08:13:05.000000000 +0000
+++ drivers/net/tg3.c	2009-01-12 08:13:09.000000000 +0000
@@ -13151,7 +13151,7 @@  static int __devinit tg3_init_one(struct
 		   try again in tg3_open(). So if you have the driver built
 		   into the kernel, you can still get the firmware loaded
 		   after userspace is running, when the device comes up. */
-		if (err != -ENOENT)
+		if (err && err != -ENOENT)
 			goto err_out_fw;
 	}