From: Damien Le Moal <dlemoal@kernel.org>
To: linux-ide@vger.kernel.org
Cc: linux-scsi@vger.kernel.org,
"Martin K . Petersen" <martin.petersen@oracle.com>,
John Garry <john.g.garry@oracle.com>,
Rodrigo Vivi <rodrigo.vivi@intel.com>,
Paul Ausbeck <paula@soe.ucsc.edu>,
Kai-Heng Feng <kai.heng.feng@canonical.com>,
Joe Breuer <linux-kernel@jmbreuer.net>
Subject: [PATCH 06/19] ata: libata-core: Do not register PM operations for SAS ports
Date: Mon, 11 Sep 2023 13:02:04 +0900 [thread overview]
Message-ID: <20230911040217.253905-7-dlemoal@kernel.org> (raw)
In-Reply-To: <20230911040217.253905-1-dlemoal@kernel.org>
libsas does its own domain based power management of ports. For such
ports, libata should not use a device type defining power management
operations as executing these operations for suspend/resume in addition
to libsas calls to ata_sas_port_suspend() and ata_sas_port_resume() is
not necessary (and likely dangerous to do, even though problems are not
seen currently).
Introduce the new ata_port_sas_type device_type for ports managed by
libsas. This new device type is used in ata_tport_add() and is defined
without power management operations.
Fixes: 2fcbdcb4c802 ("[SCSI] libata: export ata_port suspend/resume infrastructure for sas")
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
---
drivers/ata/libata-core.c | 2 +-
drivers/ata/libata-transport.c | 9 ++++++++-
drivers/ata/libata.h | 2 ++
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 0479493e54bd..18b2a0da9e54 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -5339,7 +5339,7 @@ EXPORT_SYMBOL_GPL(ata_host_resume);
#endif
const struct device_type ata_port_type = {
- .name = "ata_port",
+ .name = ATA_PORT_TYPE_NAME,
#ifdef CONFIG_PM
.pm = &ata_port_pm_ops,
#endif
diff --git a/drivers/ata/libata-transport.c b/drivers/ata/libata-transport.c
index e4fb9d1b9b39..3e49a877500e 100644
--- a/drivers/ata/libata-transport.c
+++ b/drivers/ata/libata-transport.c
@@ -266,6 +266,10 @@ void ata_tport_delete(struct ata_port *ap)
put_device(dev);
}
+static const struct device_type ata_port_sas_type = {
+ .name = ATA_PORT_TYPE_NAME,
+};
+
/** ata_tport_add - initialize a transport ATA port structure
*
* @parent: parent device
@@ -283,7 +287,10 @@ int ata_tport_add(struct device *parent,
struct device *dev = &ap->tdev;
device_initialize(dev);
- dev->type = &ata_port_type;
+ if (ap->flags & ATA_FLAG_SAS_HOST)
+ dev->type = &ata_port_sas_type;
+ else
+ dev->type = &ata_port_type;
dev->parent = parent;
ata_host_get(ap->host);
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
index a5ee06f0234a..c57e094c3af9 100644
--- a/drivers/ata/libata.h
+++ b/drivers/ata/libata.h
@@ -30,6 +30,8 @@ enum {
ATA_DNXFER_QUIET = (1 << 31),
};
+#define ATA_PORT_TYPE_NAME "ata_port"
+
extern atomic_t ata_print_id;
extern int atapi_passthru16;
extern int libata_fua;
--
2.41.0
next prev parent reply other threads:[~2023-09-11 4:02 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-11 4:01 [PATCH 00/19] Fix libata suspend/resume handling and code cleanup Damien Le Moal
2023-09-11 4:01 ` [PATCH 01/19] ata: libata-core: Fix ata_port_request_pm() locking Damien Le Moal
2023-09-11 6:34 ` Hannes Reinecke
2023-09-13 1:41 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 02/19] ata: libata-core: Fix port and device removal Damien Le Moal
2023-09-11 6:37 ` Hannes Reinecke
2023-09-11 6:44 ` Damien Le Moal
2023-09-11 7:07 ` Hannes Reinecke
2023-09-13 1:43 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 03/19] ata: libata-scsi: link ata port and scsi device Damien Le Moal
2023-09-11 6:41 ` Hannes Reinecke
2023-09-11 6:48 ` Damien Le Moal
2023-09-11 7:07 ` Hannes Reinecke
2023-09-11 10:38 ` John Garry
2023-09-11 11:48 ` Damien Le Moal
2023-09-11 15:15 ` John Garry
2023-09-12 6:13 ` Damien Le Moal
2023-09-12 8:49 ` John Garry
2023-09-12 9:00 ` Damien Le Moal
2023-09-12 9:19 ` John Garry
2023-09-13 1:43 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 04/19] ata: libata-scsi: Disable scsi device manage_start_stop Damien Le Moal
2023-09-11 6:46 ` Hannes Reinecke
2023-09-11 6:59 ` Damien Le Moal
2023-09-11 7:09 ` Hannes Reinecke
2023-09-14 16:37 ` Phillip Susi
2023-09-13 1:44 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 05/19] ata: libata-scsi: Fix delayed scsi_rescan_device() execution Damien Le Moal
2023-09-11 6:47 ` Hannes Reinecke
2023-09-13 1:44 ` Chia-Lin Kao (AceLan)
2023-09-14 17:25 ` Bart Van Assche
2023-09-14 22:05 ` Damien Le Moal
2023-09-11 4:02 ` Damien Le Moal [this message]
2023-09-11 6:50 ` [PATCH 06/19] ata: libata-core: Do not register PM operations for SAS ports Hannes Reinecke
2023-09-13 1:44 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 07/19] scsi: sd: Do not issue commands to suspended disks on remove Damien Le Moal
2023-09-11 6:51 ` Hannes Reinecke
2023-09-13 1:45 ` Chia-Lin Kao (AceLan)
2023-09-13 20:50 ` Bart Van Assche
2023-09-14 0:29 ` Damien Le Moal
2023-09-14 14:39 ` Bart Van Assche
2023-09-11 4:02 ` [PATCH 08/19] scsi: Remove scsi device no_start_on_resume flag Damien Le Moal
2023-09-11 6:52 ` Hannes Reinecke
2023-09-13 1:45 ` Chia-Lin Kao (AceLan)
2023-09-14 17:29 ` Bart Van Assche
2023-09-11 4:02 ` [PATCH 09/19] ata: libata-scsi: Cleanup ata_scsi_start_stop_xlat() Damien Le Moal
2023-09-11 6:57 ` Hannes Reinecke
2023-09-13 1:46 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 10/19] ata: libata-core: Synchronize ata_port_detach() with hotplug Damien Le Moal
2023-09-11 6:58 ` Hannes Reinecke
2023-09-13 1:46 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 11/19] ata: libata-core: Detach a port devices on shutdown Damien Le Moal
2023-09-11 6:59 ` Hannes Reinecke
2023-09-13 1:46 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 12/19] ata: libata-core: Remove ata_port_suspend_async() Damien Le Moal
2023-09-11 7:00 ` Hannes Reinecke
2023-09-13 1:47 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 13/19] ata: libata-core: Remove ata_port_resume_async() Damien Le Moal
2023-09-11 7:00 ` Hannes Reinecke
2023-09-13 1:47 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 14/19] ata: libata-core: skip poweroff for devices that are runtime suspended Damien Le Moal
2023-09-11 7:01 ` Hannes Reinecke
2023-09-13 1:48 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 15/19] ata: libata-core: Do not resume ports that have been " Damien Le Moal
2023-09-11 7:01 ` Hannes Reinecke
2023-09-13 1:48 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 16/19] ata: libata-sata: Improve ata_sas_slave_configure() Damien Le Moal
2023-09-11 7:02 ` Hannes Reinecke
2023-09-13 1:48 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 17/19] ata: libata-eh: Improve reset error messages Damien Le Moal
2023-09-11 7:03 ` Hannes Reinecke
2023-09-11 10:03 ` John Garry
2023-09-13 1:49 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 18/19] ata: libata-eh: Reduce "disable device" message verbosity Damien Le Moal
2023-09-11 7:05 ` Hannes Reinecke
2023-09-11 10:14 ` Sergei Shtylyov
2023-09-13 1:49 ` Chia-Lin Kao (AceLan)
2023-09-11 4:02 ` [PATCH 19/19] ata: libata: Cleanup inline DMA helper functions Damien Le Moal
2023-09-11 7:06 ` Hannes Reinecke
2023-09-13 1:49 ` Chia-Lin Kao (AceLan)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230911040217.253905-7-dlemoal@kernel.org \
--to=dlemoal@kernel.org \
--cc=john.g.garry@oracle.com \
--cc=kai.heng.feng@canonical.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@jmbreuer.net \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=paula@soe.ucsc.edu \
--cc=rodrigo.vivi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox