Files
linux/include/linux
Damien Le Moal 602bcf2126 ata: libata: Improve CDL resource management
The ncq_sense_buf buffer field of struct ata_port is allocated and used
only for devices that support the Command Duration Limits (CDL) feature.
However, the cdl buffer of struct ata_device, which is used to cache the
command duration limits log page for devices supporting CDL is always
allocated as part of struct ata_device, which is wasteful of memory for
devices that do not support this feature.

Clean this up by defining both buffers as part of the new ata_cdl
structure and allocating this structure only for devices that support
the CDL feature. This new structure is attached to struct ata_device
using the cdl pointer.

The functions ata_dev_init_cdl_resources() and
ata_dev_cleanup_cdl_resources() are defined to manage this new structure
allocation, initialization and freeing when a port is removed or a
device disabled. ata_dev_init_cdl_resources() is called from
ata_dev_config_cdl() only for devices that support CDL.
ata_dev_cleanup_cdl_resources() is called from ata_dev_free_resources()
to free the ata_cdl structure when a device is being disabled by EH.

Note that the name of the former cdl log buffer of struct ata_device is
changed to desc_log_buf to make it clearer that it is a buffer for the
limit descriptors log page.

This change reduces the size of struct ata_device, thus reducing memory
usage for ATA devices that do not support the CDL feature.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
2024-09-07 10:16:56 +09:00
..
2024-03-19 16:11:42 +01:00
2024-05-27 13:39:51 +02:00
2024-04-24 11:06:26 -07:00
2024-04-25 20:55:49 -07:00
2024-05-02 20:35:57 +02:00
2024-03-11 15:37:23 -07:00
2024-04-29 16:28:07 -07:00
2024-07-03 19:29:59 -07:00
2024-07-08 01:51:05 -06:00
2024-06-24 18:29:20 +02:00
2024-04-23 09:03:37 +09:00
2024-06-11 12:57:49 -05:00
2024-03-12 23:08:29 -07:00
2024-05-27 11:08:31 +02:00
2024-04-15 16:03:24 -04:00
2024-06-28 10:36:45 +02:00
2024-05-19 14:36:17 -07:00
2024-07-03 19:29:52 -07:00
2024-05-27 16:50:03 +02:00
2024-02-28 19:36:39 -08:00
2024-06-24 22:24:56 -07:00
2024-07-03 19:30:23 -07:00
2024-06-05 19:19:26 -07:00
2024-05-03 10:44:42 +01:00
2024-07-10 12:14:54 -07:00
2024-07-08 13:47:27 -04:00
2024-06-24 22:25:02 -07:00
2024-03-26 11:07:20 -07:00
2024-06-28 09:52:05 +02:00
2024-03-13 12:53:53 -07:00
2024-03-13 12:53:53 -07:00
2024-07-10 17:52:47 +02:00
2024-04-02 18:03:32 -07:00
2024-03-08 12:05:10 +01:00
2024-04-03 09:59:38 +01:00
2024-04-09 10:53:44 +02:00
2024-07-02 18:59:33 -07:00
2024-05-04 18:57:21 +02:00
2024-07-10 07:59:03 +02:00
2024-04-08 11:49:02 +01:00
2024-05-06 12:05:00 +02:00
2024-04-07 02:42:36 -04:00
2024-07-04 11:00:31 -04:00
2024-06-24 18:16:44 +01:00
2024-04-25 20:55:48 -07:00