The following commit has been merged in the linux branch: commit 6c60e0c30c80fcd53e61701b7865a85283f8a341 Author: Ben Hutchings ben@decadent.org.uk Date: Mon Oct 12 04:18:48 2009 -0700
acenic: Pass up error code from ace_load_firmware()
If ace_load_firmware() fails, ace_init() cleans up but still returns 0, leading to an oops as seen in http://bugs.debian.org/521383. It should pass the error code up.
Signed-off-by: Ben Hutchings ben@decadent.org.uk Signed-off-by: David S. Miller davem@davemloft.net
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c index 5f0b05c..d82a9a9 100644 --- a/drivers/net/acenic.c +++ b/drivers/net/acenic.c @@ -1209,7 +1209,8 @@ static int __devinit ace_init(struct net_device *dev) memset(ap->info, 0, sizeof(struct ace_info)); memset(ap->skb, 0, sizeof(struct ace_skb));
- if (ace_load_firmware(dev)) + ecode = ace_load_firmware(dev); + if (ecode) goto init_error;
ap->fw_running = 0;