]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ata: libata: Move sector_buf from struct ata_port to struct ata_device
authorDamien Le Moal <dlemoal@kernel.org>
Wed, 28 Aug 2024 02:07:43 +0000 (11:07 +0900)
committerDamien Le Moal <dlemoal@kernel.org>
Sat, 7 Sep 2024 01:16:55 +0000 (10:16 +0900)
commitda65bbdd3bc1e8d2193e01167a413d90d9988c04
treed58d7f9fc4ae8a26018022135aa7e26ac9f4a7c4
parent10e807637f288f9963340a30ae8da9bb06beca3c
ata: libata: Move sector_buf from struct ata_port to struct ata_device

The 512B buffer sector_buf field of struct ata_port is used for scanning
devices as well as during error recovery with ata EH. This buffer is
thus useless if a port does not have a device connected to it.
And also given that commands using this buffer are issued to devices,
and not to ports, move this buffer definition from struct ata_port to
struct ata_device.

This change slightly increases system memory usage for systems using a
port-multiplier as in that case we do not need a per-device buffer for
scanning devices (PMP does not allow parallel scanning) nor for EH (as
when entering EH we are guaranteed that all commands to all devices
connected to the PMP have completed or have been aborted). However,
this change reduces memory usage on systems that have many ports with
only few devices rives connected, which is a much more common use case
than the PMP use case.

Suggested-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
drivers/ata/libata-core.c
drivers/ata/libata-eh.c
drivers/ata/libata-pmp.c
drivers/ata/libata-sata.c
drivers/ata/libata-zpodd.c
include/linux/libata.h