[073/119] acenic: Pass up error code from ace_load_firmware()

Greg KH
2009-12-07T00:24:30Z

[-- Attachment #1: acenic-pass-up-error-code-from-ace_load_firmware.patch --]
[-- Type: text/plain, Size: 951 bytes --]

2.6.31-stable review patch. If anyone has any objections, please let us know.

------------------
From: Ben Hutchings <ben@decadent.org.uk>

[ Upstream commit 6c60e0c30c80fcd53e61701b7865a85283f8a341 ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/net/acenic.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -1209,7 +1209,8 @@ static int __devinit ace_init(struct net
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;