[PATCH 07/28] ata: optimize struct ata_force_param size

From: Bartlomiej Zolnierkiewicz
Date: Tue Jan 28 2020 - 08:35:43 EST


Optimize struct ata_force_param size by:
- using u8 for cbl and spd_limit fields
- using u16 for lflags field

Code size savings on m68k arch using atari_defconfig:

text data bss dec hex filename
before:
41064 573 40 41677 a2cd drivers/ata/libata-core.o
after:
40654 573 40 41267 a133 drivers/ata/libata-core.o

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
---
drivers/ata/libata-core.c | 6 +++---
include/linux/libata.h | 1 +
2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 9b824788d04f..47703c8ba0e6 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -90,12 +90,12 @@ atomic_t ata_print_id = ATOMIC_INIT(0);

struct ata_force_param {
const char *name;
- unsigned int cbl;
- int spd_limit;
+ u8 cbl;
+ u8 spd_limit;
unsigned long xfer_mask;
unsigned int horkage_on;
unsigned int horkage_off;
- unsigned int lflags;
+ u16 lflags;
};

struct ata_force_ent {
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 2a9d50b0e219..dc162cca63a4 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -176,6 +176,7 @@ enum {
ATA_DEV_NONE = 11, /* no device */

/* struct ata_link flags */
+ /* NOTE: struct ata_force_param currently stores lflags in u16 */
ATA_LFLAG_NO_HRST = (1 << 1), /* avoid hardreset */
ATA_LFLAG_NO_SRST = (1 << 2), /* avoid softreset */
ATA_LFLAG_ASSUME_ATA = (1 << 3), /* assume ATA class */
--
2.24.1