mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
scsi: lpfc: Reorder freeing of various DMA buffers and their list removal
Code sections where DMA resources are freed before list removal are reworked to ensure item removal before being freed. Signed-off-by: Justin Tee <justin.tee@broadcom.com> Link: https://lore.kernel.org/r/20230301231626.9621-3-justintee8345@gmail.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
c6087b82a9
commit
bf21c9bb62
@ -134,8 +134,8 @@ lpfc_free_bsg_buffers(struct lpfc_hba *phba, struct lpfc_dmabuf *mlist)
|
||||
if (mlist) {
|
||||
list_for_each_entry_safe(mlast, next_mlast, &mlist->list,
|
||||
list) {
|
||||
lpfc_mbuf_free(phba, mlast->virt, mlast->phys);
|
||||
list_del(&mlast->list);
|
||||
lpfc_mbuf_free(phba, mlast->virt, mlast->phys);
|
||||
kfree(mlast);
|
||||
}
|
||||
lpfc_mbuf_free(phba, mlist->virt, mlist->phys);
|
||||
|
@ -476,8 +476,8 @@ lpfc_free_ct_rsp(struct lpfc_hba *phba, struct lpfc_dmabuf *mlist)
|
||||
struct lpfc_dmabuf *mlast, *next_mlast;
|
||||
|
||||
list_for_each_entry_safe(mlast, next_mlast, &mlist->list, list) {
|
||||
lpfc_mbuf_free(phba, mlast->virt, mlast->phys);
|
||||
list_del(&mlast->list);
|
||||
lpfc_mbuf_free(phba, mlast->virt, mlast->phys);
|
||||
kfree(mlast);
|
||||
}
|
||||
lpfc_mbuf_free(phba, mlist->virt, mlist->phys);
|
||||
|
@ -22329,10 +22329,10 @@ lpfc_free_sgl_per_hdwq(struct lpfc_hba *phba,
|
||||
/* Free sgl pool */
|
||||
list_for_each_entry_safe(list_entry, tmp,
|
||||
buf_list, list_node) {
|
||||
list_del(&list_entry->list_node);
|
||||
dma_pool_free(phba->lpfc_sg_dma_buf_pool,
|
||||
list_entry->dma_sgl,
|
||||
list_entry->dma_phys_sgl);
|
||||
list_del(&list_entry->list_node);
|
||||
kfree(list_entry);
|
||||
}
|
||||
|
||||
@ -22479,10 +22479,10 @@ lpfc_free_cmd_rsp_buf_per_hdwq(struct lpfc_hba *phba,
|
||||
list_for_each_entry_safe(list_entry, tmp,
|
||||
buf_list,
|
||||
list_node) {
|
||||
list_del(&list_entry->list_node);
|
||||
dma_pool_free(phba->lpfc_cmd_rsp_buf_pool,
|
||||
list_entry->fcp_cmnd,
|
||||
list_entry->fcp_cmd_rsp_dma_handle);
|
||||
list_del(&list_entry->list_node);
|
||||
kfree(list_entry);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user