Commit 157188cb authored by Stefan Richter's avatar Stefan Richter

ieee1394: eth1394: unregister address space in failure case

Warn if hpsb_allocate_and_register_addrspace() failed.
Unregister the address space if something else failed.
Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent ea9057ad
...@@ -568,8 +568,10 @@ static void ether1394_add_host (struct hpsb_host *host) ...@@ -568,8 +568,10 @@ static void ether1394_add_host (struct hpsb_host *host)
&eth1394_highlevel, host, &addr_ops, &eth1394_highlevel, host, &addr_ops,
ETHER1394_REGION_ADDR_LEN, ETHER1394_REGION_ADDR_LEN, ETHER1394_REGION_ADDR_LEN, ETHER1394_REGION_ADDR_LEN,
CSR1212_INVALID_ADDR_SPACE, CSR1212_INVALID_ADDR_SPACE); CSR1212_INVALID_ADDR_SPACE, CSR1212_INVALID_ADDR_SPACE);
if (fifo_addr == CSR1212_INVALID_ADDR_SPACE) if (fifo_addr == CSR1212_INVALID_ADDR_SPACE) {
goto out; ETH1394_PRINT_G(KERN_ERR, "Cannot register CSR space\n");
return;
}
/* We should really have our own alloc_hpsbdev() function in /* We should really have our own alloc_hpsbdev() function in
* net_init.c instead of calling the one for ethernet then hijacking * net_init.c instead of calling the one for ethernet then hijacking
...@@ -640,16 +642,13 @@ static void ether1394_add_host (struct hpsb_host *host) ...@@ -640,16 +642,13 @@ static void ether1394_add_host (struct hpsb_host *host)
else else
priv->bc_state = ETHER1394_BC_RUNNING; priv->bc_state = ETHER1394_BC_RUNNING;
} }
return; return;
out: out:
if (dev != NULL) if (dev)
free_netdev(dev); free_netdev(dev);
if (hi) if (hi)
hpsb_destroy_hostinfo(&eth1394_highlevel, host); hpsb_destroy_hostinfo(&eth1394_highlevel, host);
hpsb_unregister_addrspace(&eth1394_highlevel, host, fifo_addr);
return;
} }
/* Remove a card from our list */ /* Remove a card from our list */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment