aboutsummaryrefslogtreecommitdiff
path: root/include/linux/swait_api.h
diff options
context:
space:
mode:
authorDamien Le Moal2023-08-25 15:41:14 +0900
committerGreg Kroah-Hartman2023-10-06 14:57:01 +0200
commit476fd029e7008722da9e2326af30f69cd187417a (patch)
tree6cd5929761bada7a61672dc289a07041077b80a4 /include/linux/swait_api.h
parent490f3b805ee3639e8b69c91d63e1ea76189950ae (diff)
ata: libata-scsi: link ata port and scsi device
commit fb99ef17865035a6657786d4b2af11a27ba23f9b upstream. There is no direct device ancestry defined between an ata_device and its scsi device which prevents the power management code from correctly ordering suspend and resume operations. Create such ancestry with the ata device as the parent to ensure that the scsi device (child) is suspended before the ata device and that resume handles the ata device before the scsi device. The parent-child (supplier-consumer) relationship is established between the ata_port (parent) and the scsi device (child) with the function device_add_link(). The parent used is not the ata_device as the PM operations are defined per port and the status of all devices connected through that port is controlled from the port operations. The device link is established with the new function ata_scsi_slave_alloc(), and this function is used to define the ->slave_alloc callback of the scsi host template of all ata drivers. Fixes: a19a93e4c6a9 ("scsi: core: pm: Rely on the device driver core for async power management") Cc: stable@vger.kernel.org Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Niklas Cassel <niklas.cassel@wdc.com> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: John Garry <john.g.garry@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/swait_api.h')
0 files changed, 0 insertions, 0 deletions