IB/qib: Clean up properly if qib_init() fails
authorRalph Campbell <ralph.campbell@qlogic.com>
Thu, 1 Jul 2010 20:25:45 +0000 (20:25 +0000)
committerRoland Dreier <rolandd@cisco.com>
Tue, 6 Jul 2010 21:14:04 +0000 (14:14 -0700)
commit756a33b8dc3ed5c27685a130339de8a894d528a7
tree1434ca4afa40f03d935b6563a4f4acdd4aef24bb
parent950aff53949268eec4b0f2bd49f700f9585698f7
IB/qib: Clean up properly if qib_init() fails

If qib_init() fails, the driver fails to free memory, unregister
device files, and unregister with the PCIe framework. The driver will
unload without error but a subsequent driver load will cause the
system to panic.  This was found by changing the 7220 code to load the
serdes microcode separately and not installing the microcode file.

Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/qib/qib_init.c