]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ata: libata: Assign print_id at port allocation time
authorNiklas Cassel <cassel@kernel.org>
Wed, 3 Jul 2024 18:44:23 +0000 (20:44 +0200)
committerNiklas Cassel <cassel@kernel.org>
Thu, 4 Jul 2024 09:52:32 +0000 (11:52 +0200)
While the assignment of ap->print_id could have been moved to
ata_host_alloc(), let's simply move it to ata_port_alloc().

If you allocate a port, you want to give it a unique name that can be used
for printing.

By moving the ap->print_id assignment to ata_port_alloc(), means that we
can also remove the ap->print_id assignment from ata_sas_port_alloc().

This will allow a LLD to use the ata_port_*() print functions before
ata_host_register() has been called.

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20240703184418.723066-17-cassel@kernel.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
drivers/ata/libata-core.c
drivers/ata/libata-sata.c
drivers/ata/libata.h

index 68a75483822ea48be20fb2940929f8ec13347b84..da7c141b1f2eb084c20c5c56498ed3ee971f258e 100644 (file)
@@ -5470,7 +5470,7 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
 
        ap->pflags |= ATA_PFLAG_INITIALIZING | ATA_PFLAG_FROZEN;
        ap->lock = &host->lock;
-       ap->print_id = -1;
+       ap->print_id = atomic_inc_return(&ata_print_id);
        ap->host = host;
        ap->dev = host->dev;
 
@@ -5907,10 +5907,6 @@ int ata_host_register(struct ata_host *host, const struct scsi_host_template *sh
                return -EINVAL;
        }
 
-       /* give ports names and add SCSI hosts */
-       for (i = 0; i < host->n_ports; i++)
-               host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
-
        /* Create associated sysfs transport objects  */
        for (i = 0; i < host->n_ports; i++) {
                rc = ata_tport_add(host->dev,host->ports[i]);
index 1a36a5d1d7bc2424ec785ce700d52703dc4d77a1..b602247604dc56739b5b8d39e21377e82892bdcc 100644 (file)
@@ -1234,7 +1234,6 @@ struct ata_port *ata_sas_port_alloc(struct ata_host *host,
        ap->flags |= port_info->flags;
        ap->ops = port_info->port_ops;
        ap->cbl = ATA_CBL_SATA;
-       ap->print_id = atomic_inc_return(&ata_print_id);
 
        return ap;
 }
index 38ce13b5547449de6676a9e1b042d5710c411a95..5ea194ae8a8b51a953fef406ccf7954111389453 100644 (file)
@@ -32,7 +32,6 @@ enum {
 
 #define ATA_PORT_TYPE_NAME     "ata_port"
 
-extern atomic_t ata_print_id;
 extern int atapi_passthru16;
 extern int libata_fua;
 extern int libata_noacpi;