mbox series

[v5,0/9] Code cleanup and memory usage reduction

Message ID 20240906015847.229539-1-dlemoal@kernel.org
Headers show
Series Code cleanup and memory usage reduction | expand

Message

Damien Le Moal Sept. 6, 2024, 1:58 a.m. UTC
Patch 1 of this series cleans up libata-transport (avoid forward
declarations and improved kdoc comments).

Patch 2 improves device flag manipulation in
ata_scsi_handle_link_detach().

Patch 3 introduces a small simplification/improvement of
__ata_qc_complete().

Patches 4 and 5 move code that is SATA specific from libata-core.c to
libata-sata.c, without any functional change. The benefits of this code
reorganization is a smaller libata binary size for hosts that do not
support SATA.

Patch 6 renames some functions to make it clearer what the functions do.

Finally, patch 7 to 9 reduce memory usage of libata by:
 - Moving the sector_buf buffer from struct ata_port to struct
   ata_device
 - Agregating CDL related buffers together into a new ata_cdl structure
   and referencing this new structure from struct ata_device only for
   devices that support CDL.

Changes from V4:
 - Added patch 2 and 8
 - Modified patch 9 to use the ata_dev_free_resources() function
   introduced in patch 8.

Changes from V3:
 - Small change to struct ata_cdl kzalloc() call as suggested by Niklas
 - Removed bogus call to ata_dev_cleanup_cdl_resources() in patch 7
 - Added review tags

Changes from V2:
 - Reworked patch 1 to address Hannes' comments
 - Added Hannes' review tags

Changes from V1:
 - Reworked patch 1 to do more cleanups
 - Added patch 6. The former patch 6 of v1 is now squashed into patch 7
 - Added Niklas review tags

Damien Le Moal (9):
  ata: libata: Cleanup libata-transport
  ata: libata-scsi: Improve ata_scsi_handle_link_detach()
  ata: libata: Improve __ata_qc_complete()
  ata: libata: Move sata_down_spd_limit() to libata-sata.c
  ata: libata: Move sata_std_hardreset() definition to libata-sata.c
  ata: libata: Rename ata_eh_read_sense_success_ncq_log()
  ata: libata: Move sector_buf from struct ata_port to struct ata_device
  ata: libata: Introduce ata_dev_free_resources
  ata: libata: Improve CDL resource management

 drivers/ata/libata-core.c      | 278 ++++++++++--------------------
 drivers/ata/libata-eh.c        |  13 +-
 drivers/ata/libata-pmp.c       |   3 +-
 drivers/ata/libata-sata.c      | 127 +++++++++++++-
 drivers/ata/libata-scsi.c      |  11 +-
 drivers/ata/libata-transport.c | 299 ++++++++++++++++-----------------
 drivers/ata/libata-zpodd.c     |   2 +-
 drivers/ata/libata.h           |  24 ++-
 include/linux/libata.h         |  39 +++--
 9 files changed, 419 insertions(+), 377 deletions(-)