The PATA transfer mode masks (direct and packed) in libata are sometimes declared as *unsigned int* and sometimes as *unsigned long* (which is a 64-bit type on 64-bit architectures), while the packed mask really only uses 20 bits and the PIO/MWDMA/UDMA masks use up to 8 bits. Switching to the uniform 32-bit masks saves siginificant amount of the object code... Sergey Shtylyov (3): ata: make packed transfer mode masks *unsigned int* ata: make ata_device::{pio|mwdma|udma}_mask *unsigned int* ata: make ata_port_info::{pio|mwdma|udma}_mask *unsigned int* drivers/ata/libata-acpi.c | 8 +++--- drivers/ata/libata-core.c | 38 +++++++++++++------------- drivers/ata/pata_acpi.c | 2 +- drivers/ata/pata_ali.c | 2 +- drivers/ata/pata_amd.c | 14 +++++----- drivers/ata/pata_hpt366.c | 2 +- drivers/ata/pata_hpt37x.c | 6 ++--- drivers/ata/pata_hpt3x2n.c | 2 +- drivers/ata/pata_pdc2027x.c | 4 +-- drivers/ata/pata_serverworks.c | 4 +-- drivers/ata/pata_sis.c | 2 +- drivers/ata/pata_via.c | 2 +- include/linux/libata.h | 49 +++++++++++++++++----------------- 13 files changed, 67 insertions(+), 68 deletions(-) -- 2.26.3