correctly release resources on error in init, or on uninit

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22263 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2007-09-19 22:14:21 +00:00
parent d46597c7f2
commit 1d54a24d4d
@@ -333,6 +333,10 @@ init_driver(void)
#endif #endif
if (LM_GetAdapterInfo(&be_b57_dev_cards[cards_found].lm_dev) != LM_STATUS_SUCCESS) { if (LM_GetAdapterInfo(&be_b57_dev_cards[cards_found].lm_dev) != LM_STATUS_SUCCESS) {
for (j = 0; j < cards_found; j++) {
free(dev_list[j]);
delete_sem(be_b57_dev_cards[j].packet_release_sem);
}
put_module(B_PCI_MODULE_NAME); put_module(B_PCI_MODULE_NAME);
return ENODEV; return ENODEV;
} }
@@ -364,6 +368,7 @@ uninit_driver(void)
delete_area(pUmDevice->lockmem_list[i]); delete_area(pUmDevice->lockmem_list[i]);
delete_area(pUmDevice->mem_base); delete_area(pUmDevice->mem_base);
delete_sem(be_b57_dev_cards[j].packet_release_sem);
free((void *)dev_list[j]); free((void *)dev_list[j]);
} }