[PATCH v3 0/2] scsi: leapraid: fix firmware log mmap lifetime
Linmao Li <[email protected]>
| Newsgroups | gmane.linux.scsi,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
The firmware log mmap path has two related lifetime issues. VMA clones drop Scsi_Host references that they never acquired, and device removal can free the coherent log buffer while mmap is still setting up a VMA. Patch 1 gives each VMA its own host device reference. Patch 2 claims a temporary mmap activity reference under the adapter-list lock so teardown cannot miss an in-progress mapping. Patch 2 depends on patch 1: patch 1 keeps adapter non-NULL on the successful mmap path, allowing patch 2 to drop the temporary mmap reference at out_put. Applied alone, patch 2 would leak that reference and make teardown wait indefinitely. Neither patch has been tested on hardware; both are derived from the reference counting and locking in the code. Changes in v3: - 2/2: wrap the leapraid_ctl_lookup_adapter() declaration before bool track_mmap, aligned with int adapter_id, to stay within 80 columns, matching leapraid_ctl_validate_sge_offset() (Dongdong Hao) - 1/2: unchanged Changes in v2: - 2/2: keep the return type and function name on the same line (Dongdong Hao) - 1/2: unchanged v1: https://lore.kernel.org/all/[email protected]/ v2: https://lore.kernel.org/all/[email protected]/ Linmao Li (2): scsi: leapraid: balance host references for firmware log VMAs scsi: leapraid: serialize firmware log mmap with teardown drivers/scsi/leapraid/leapraid_app.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) base-commit: 376a3960e5efe85ff765abfb5b5b7e4655ad6aed -- 2.25.1