[PATCH v2 00/13] ata,libsas: Assign the unique id used for printing earlier

Niklas Cassel
2024-06-26T18:00:53Z

Hello all,

This patch series was orginally meant to simply assign a unique id used
for printing earlier (ap->print_id), but has since grown to also include
cleanups related to ata_port_alloc() (since ap->print_id is now assigned
in ata_port_alloc()).

Patch 1-3 fixes incorrect cleanups in the error paths.
Patch 4,12 removes a useless libata wrappers only used for libsas.
Patch 5 introduces a ata_port_free(), in order to avoid duplicated code.
Patch 6 removes a unused function declaration in include/linux/libata.h.
Patch 7 remove support for decreasing the number of ports, as it is never
used by any libata driver (including libsas and ipr).
Patch 8 removes a superfluous assignment in ata_sas_port_alloc().
Patch 9 removes the unnecessary local_port_no struct member in ata_port.
Patch 10 performs the ata_port print_id assignment earlier, so that the
ata_port_* print functions can be used even before the ata_host
has been registered.
Patch 11 changes the print_id assignment to use an ida_alloc(), such that
we will reuse IDs that are no longer in use, rather than keep
increasing the print_id forever.
Patch 13 adds a debug print in case the port is marked as external, this
code runs before the ata_host has been registered, so it depends
on patch 10.

Martin, how do you want us to coordinate libsas changes?

You don't seem to have any libsas changes staged for 6.11 so far,
and the libsas changes in this series are quite isolated (and small),
so perhaps we can simply queue them via the libata tree?

Kind regards,
Niklas

Changes since v1:
-Added patches that fixes incorrect cleanups in the error paths.
-Added patches to remove useless libata wrappers only used for libsas.
-Added patch that introduces ata_port_free().
-Added patch that removes a unused function declaration in libata.h.
-Added patch that removes local_port_no (Damien).
-Added patch that assigns the print_id using ida_alloc() (Damien).
-Picked up tags.

Link to v1:
https://lore.kernel.org/linux-ide/20240618153537.2687621-7-cassel@kernel.org/

Niklas Cassel (13):
ata: libata-core: Fix null pointer dereference on error
ata: libata-core: Fix double free on error
ata: ahci: Clean up sysfs file on error
ata,scsi: Remove useless wrappers ata_sas_tport_{add,delete}()
ata,scsi: libata-core: Add ata_port_free()
ata: libata: Remove unused function declaration for ata_scsi_detect()
ata: libata-core: Remove support for decreasing the number of ports
ata: libata-sata: Remove superfluous assignment in
ata_sas_port_alloc()
ata: libata-core: Remove local_port_no struct member
ata: libata: Assign print_id at port allocation time
ata: libata-core: Reuse available ata_port print_ids
ata,scsi: Remove useless ata_sas_port_alloc() wrapper
ata: ahci: Add debug print for external port

drivers/ata/ahci.c | 21 +++++++---
drivers/ata/libata-core.c | 66 ++++++++++++++++--------------
drivers/ata/libata-sata.c | 49 ----------------------
drivers/ata/libata-transport.c | 5 ++-
drivers/ata/libata-transport.h | 3 --
drivers/ata/libata.h | 1 -
drivers/scsi/libsas/sas_ata.c | 14 +++++--
drivers/scsi/libsas/sas_discover.c | 4 +-
include/linux/libata.h | 12 +++---
9 files changed, 71 insertions(+), 104 deletions(-)

--
2.45.2