|
@@ -284,47 +284,6 @@ static struct pci_driver liquidio_vf_pci_driver = {
|
|
.err_handler = &liquidio_vf_err_handler, /* For AER */
|
|
.err_handler = &liquidio_vf_err_handler, /* For AER */
|
|
};
|
|
};
|
|
|
|
|
|
-/**
|
|
|
|
- * \brief Delete gather lists
|
|
|
|
- * @param lio per-network private data
|
|
|
|
- */
|
|
|
|
-static void delete_glists(struct lio *lio)
|
|
|
|
-{
|
|
|
|
- struct octnic_gather *g;
|
|
|
|
- int i;
|
|
|
|
-
|
|
|
|
- kfree(lio->glist_lock);
|
|
|
|
- lio->glist_lock = NULL;
|
|
|
|
-
|
|
|
|
- if (!lio->glist)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- for (i = 0; i < lio->linfo.num_txpciq; i++) {
|
|
|
|
- do {
|
|
|
|
- g = (struct octnic_gather *)
|
|
|
|
- lio_list_delete_head(&lio->glist[i]);
|
|
|
|
- kfree(g);
|
|
|
|
- } while (g);
|
|
|
|
-
|
|
|
|
- if (lio->glists_virt_base && lio->glists_virt_base[i] &&
|
|
|
|
- lio->glists_dma_base && lio->glists_dma_base[i]) {
|
|
|
|
- lio_dma_free(lio->oct_dev,
|
|
|
|
- lio->glist_entry_size * lio->tx_qsize,
|
|
|
|
- lio->glists_virt_base[i],
|
|
|
|
- lio->glists_dma_base[i]);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- kfree(lio->glists_virt_base);
|
|
|
|
- lio->glists_virt_base = NULL;
|
|
|
|
-
|
|
|
|
- kfree(lio->glists_dma_base);
|
|
|
|
- lio->glists_dma_base = NULL;
|
|
|
|
-
|
|
|
|
- kfree(lio->glist);
|
|
|
|
- lio->glist = NULL;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* \brief Setup gather lists
|
|
* \brief Setup gather lists
|
|
* @param lio per-network private data
|
|
* @param lio per-network private data
|
|
@@ -359,7 +318,7 @@ static int setup_glists(struct lio *lio, int num_iqs)
|
|
GFP_KERNEL);
|
|
GFP_KERNEL);
|
|
|
|
|
|
if (!lio->glists_virt_base || !lio->glists_dma_base) {
|
|
if (!lio->glists_virt_base || !lio->glists_dma_base) {
|
|
- delete_glists(lio);
|
|
|
|
|
|
+ lio_delete_glists(lio);
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -374,7 +333,7 @@ static int setup_glists(struct lio *lio, int num_iqs)
|
|
&lio->glists_dma_base[i]);
|
|
&lio->glists_dma_base[i]);
|
|
|
|
|
|
if (!lio->glists_virt_base[i]) {
|
|
if (!lio->glists_virt_base[i]) {
|
|
- delete_glists(lio);
|
|
|
|
|
|
+ lio_delete_glists(lio);
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -393,7 +352,7 @@ static int setup_glists(struct lio *lio, int num_iqs)
|
|
}
|
|
}
|
|
|
|
|
|
if (j != lio->tx_qsize) {
|
|
if (j != lio->tx_qsize) {
|
|
- delete_glists(lio);
|
|
|
|
|
|
+ lio_delete_glists(lio);
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -837,7 +796,7 @@ static void liquidio_destroy_nic_device(struct octeon_device *oct, int ifidx)
|
|
|
|
|
|
cleanup_link_status_change_wq(netdev);
|
|
cleanup_link_status_change_wq(netdev);
|
|
|
|
|
|
- delete_glists(lio);
|
|
|
|
|
|
+ lio_delete_glists(lio);
|
|
|
|
|
|
free_netdev(netdev);
|
|
free_netdev(netdev);
|
|
|
|
|