• J
    scsi: lpfc: Fix leaked lpfc_dmabuf mbox allocations with NPIV · f0d39196
    James Smart 提交于
    During rmmod testing, messages appeared indicating lpfc_mbuf_pool entries
    were still busy. This situation was only seen doing rmmod after at least 1
    vport (NPIV) instance was created and destroyed. The number of messages
    scaled with the number of vports created.
    
    When a vport is created, it can receive a PLOGI from another initiator
    Nport.  When this happens, the driver prepares to ack the PLOGI and
    prepares an RPI for registration (via mbx cmd) which includes an mbuf
    allocation. During the unsolicited PLOGI processing and after the RPI
    preparation, the driver recognizes it is one of the vport instances and
    decides to reject the PLOGI. During the LS_RJT preparation for the PLOGI,
    the mailbox struct allocated for RPI registration is freed, but the mbuf
    that was also allocated is not released.
    
    Fix by freeing the mbuf with the mailbox struct in the LS_RJT path.
    
    As part of the code review to figure the issue out a couple of other areas
    where found that also would not have released the mbuf. Those are cleaned
    up as well.
    
    Link: https://lore.kernel.org/r/20211204002644.116455-2-jsmart2021@gmail.comCo-developed-by: NJustin Tee <justin.tee@broadcom.com>
    Signed-off-by: NJustin Tee <justin.tee@broadcom.com>
    Signed-off-by: NJames Smart <jsmart2021@gmail.com>
    Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
    f0d39196
lpfc_els.c 364.0 KB