mirror of
https://github.com/torvalds/linux.git
synced 2024-12-18 00:53:40 +00:00
078c68b87a
Rmmod on SLI-4 adapters is sometimes hitting a bad ptr dereference in
lpfc_els_free_iocb().
A prior patch refactored the lpfc_sli_abort_iocb() routine. One of the
changes was to convert from building/sending an abort within the routine to
using a common routine. The reworked routine passes, without modification,
the pring ptr to the new common routine. The older routine had logic to
check SLI-3 vs SLI-4 and adapt the pring ptr if necessary as callers were
passing SLI-3 pointers even when not on an SLI-4 adapter. The new routine
is missing this check and adapt, so the SLI-3 ring pointers are being used
in SLI-4 paths.
Fix by cleaning up the calling routines. In review, there is no need to
pass the ring ptr argument to abort_iocb at all. The routine can look at
the adapter type itself and reference the proper ring.
Link: https://lore.kernel.org/r/20210412013127.2387-2-jsmart2021@gmail.com
Fixes:
|
||
---|---|---|
.. | ||
lpfc_attr.c | ||
lpfc_attr.h | ||
lpfc_bsg.c | ||
lpfc_bsg.h | ||
lpfc_compat.h | ||
lpfc_crtn.h | ||
lpfc_ct.c | ||
lpfc_debugfs.c | ||
lpfc_debugfs.h | ||
lpfc_disc.h | ||
lpfc_els.c | ||
lpfc_hbadisc.c | ||
lpfc_hw4.h | ||
lpfc_hw.h | ||
lpfc_ids.h | ||
lpfc_init.c | ||
lpfc_logmsg.h | ||
lpfc_mbox.c | ||
lpfc_mem.c | ||
lpfc_nl.h | ||
lpfc_nportdisc.c | ||
lpfc_nvme.c | ||
lpfc_nvme.h | ||
lpfc_nvmet.c | ||
lpfc_scsi.c | ||
lpfc_scsi.h | ||
lpfc_sli4.h | ||
lpfc_sli.c | ||
lpfc_sli.h | ||
lpfc_version.h | ||
lpfc_vport.c | ||
lpfc_vport.h | ||
lpfc.h | ||
Makefile |