]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: Change SCSI device boolean fields to single bit flags
authorDamien Le Moal <dlemoal@kernel.org>
Mon, 20 Nov 2023 22:56:30 +0000 (07:56 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Dec 2023 07:51:14 +0000 (08:51 +0100)
commit 6371be7aeb986905bb60ec73d002fc02343393b4 upstream.

Commit 3cc2ffe5c16d ("scsi: sd: Differentiate system and runtime start/stop
management") changed the single bit manage_start_stop flag into 2 boolean
fields of the SCSI device structure. Commit 24eca2dce0f8 ("scsi: sd:
Introduce manage_shutdown device flag") introduced the manage_shutdown
boolean field for the same structure. Together, these 2 commits increase
the size of struct scsi_device by 8 bytes by using booleans instead of
defining the manage_xxx fields as single bit flags, similarly to other
flags of this structure.

Avoid this unnecessary structure size increase and be consistent with the
definition of other flags by reverting the definitions of the manage_xxx
fields as single bit flags.

Fixes: 3cc2ffe5c16d ("scsi: sd: Differentiate system and runtime start/stop management")
Fixes: 24eca2dce0f8 ("scsi: sd: Introduce manage_shutdown device flag")
Cc: <stable@vger.kernel.org>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20231120225631.37938-2-dlemoal@kernel.org
Reviewed-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/ata/libata-scsi.c
drivers/firewire/sbp2.c
include/scsi/scsi_device.h

index e614eb3355d396f7fb8e1b08a73f5d807b914c51..3482c2252ce9cad26575e86cae68ebefa7f28e49 100644 (file)
@@ -1087,8 +1087,8 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
                 * and resume and shutdown only. For system level suspend/resume,
                 * devices power state is handled directly by libata EH.
                 */
-               sdev->manage_runtime_start_stop = true;
-               sdev->manage_shutdown = true;
+               sdev->manage_runtime_start_stop = 1;
+               sdev->manage_shutdown = 1;
        }
 
        /*
index 7ad2e03afd4e581515a413507dc72d45fb252bc9..234cd17fdee13ab28a95e76ef4bf49fa84cf9a19 100644 (file)
@@ -1519,9 +1519,9 @@ static int sbp2_scsi_slave_configure(struct scsi_device *sdev)
        sdev->use_10_for_rw = 1;
 
        if (sbp2_param_exclusive_login) {
-               sdev->manage_system_start_stop = true;
-               sdev->manage_runtime_start_stop = true;
-               sdev->manage_shutdown = true;
+               sdev->manage_system_start_stop = 1;
+               sdev->manage_runtime_start_stop = 1;
+               sdev->manage_shutdown = 1;
        }
 
        if (sdev->type == TYPE_ROM)
index 5aabc36fb249b67ff9103afaa5d74a12d1c6be79..a698f80791ce4cfe82fe5e94186040e3ceb19d86 100644 (file)
@@ -167,19 +167,19 @@ struct scsi_device {
         * power state for system suspend/resume (suspend to RAM and
         * hibernation) operations.
         */
-       bool manage_system_start_stop;
+       unsigned manage_system_start_stop:1;
 
        /*
         * If true, let the high-level device driver (sd) manage the device
         * power state for runtime device suspand and resume operations.
         */
-       bool manage_runtime_start_stop;
+       unsigned manage_runtime_start_stop:1;
 
        /*
         * If true, let the high-level device driver (sd) manage the device
         * power state for system shutdown (power off) operations.
         */
-       bool manage_shutdown;
+       unsigned manage_shutdown:1;
 
        unsigned removable:1;
        unsigned changed:1;     /* Data invalid due to media change */