[PATCH] iseries_veth: Make init_connection() & destroy_connection() symmetrical
authorMichael Ellerman <michael@ellerman.id.au>
Thu, 1 Sep 2005 01:29:08 +0000 (11:29 +1000)
committerJeff Garzik <jgarzik@pobox.com>
Thu, 1 Sep 2005 02:39:43 +0000 (22:39 -0400)
commitec60beebed497691c97d674c1facac5ca3d7a4b3
tree0591903d946969283238116291b2755b1cfa86d2
parentcbf9074cc30ca0eee19c9bd7304faf9f1beb1e76
[PATCH] iseries_veth: Make init_connection() & destroy_connection() symmetrical

This patch makes veth_init_connection() and veth_destroy_connection()
symmetrical in that they allocate/deallocate the same data.

Currently if there's an error while initialising connections (ie. ENOMEM)
we call veth_module_cleanup(), however this will oops because we call
driver_unregister() before we've called driver_register(). I've never seen
this actually happen though.

So instead we explicitly call veth_destroy_connection() for each connection,
any that have been set up will be deallocated.

We also fix a potential leak if vio_register_driver() fails.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/iseries_veth.c