mirror of https://gitee.com/openkylin/linux.git
libata-eh: Use switch() instead of sparse array for protocol strings
Replace the sparse 256-pointer array for looking up protocol strings by a switch() statement to reduce kernel size. According to bloat-o-meter, this saves 910 bytes on m68k (32-bit), and 1892 bytes on arm64 (64-bit). Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
368e5fbdfc
commit
fb1b8b1175
|
@ -2606,21 +2606,39 @@ static void ata_eh_link_report(struct ata_link *link)
|
|||
[DMA_TO_DEVICE] = "out",
|
||||
[DMA_FROM_DEVICE] = "in",
|
||||
};
|
||||
static const char *prot_str[] = {
|
||||
[ATA_PROT_UNKNOWN] = "unknown",
|
||||
[ATA_PROT_NODATA] = "nodata",
|
||||
[ATA_PROT_PIO] = "pio",
|
||||
[ATA_PROT_DMA] = "dma",
|
||||
[ATA_PROT_NCQ] = "ncq dma",
|
||||
[ATA_PROT_NCQ_NODATA] = "ncq nodata",
|
||||
[ATAPI_PROT_NODATA] = "nodata",
|
||||
[ATAPI_PROT_PIO] = "pio",
|
||||
[ATAPI_PROT_DMA] = "dma",
|
||||
};
|
||||
const char *prot_str = NULL;
|
||||
|
||||
switch (qc->tf.protocol) {
|
||||
case ATA_PROT_UNKNOWN:
|
||||
prot_str = "unknown";
|
||||
break;
|
||||
case ATA_PROT_NODATA:
|
||||
prot_str = "nodata";
|
||||
break;
|
||||
case ATA_PROT_PIO:
|
||||
prot_str = "pio";
|
||||
break;
|
||||
case ATA_PROT_DMA:
|
||||
prot_str = "dma";
|
||||
break;
|
||||
case ATA_PROT_NCQ:
|
||||
prot_str = "ncq dma";
|
||||
break;
|
||||
case ATA_PROT_NCQ_NODATA:
|
||||
prot_str = "ncq nodata";
|
||||
break;
|
||||
case ATAPI_PROT_NODATA:
|
||||
prot_str = "nodata";
|
||||
break;
|
||||
case ATAPI_PROT_PIO:
|
||||
prot_str = "pio";
|
||||
break;
|
||||
case ATAPI_PROT_DMA:
|
||||
prot_str = "dma";
|
||||
break;
|
||||
}
|
||||
snprintf(data_buf, sizeof(data_buf), " %s %u %s",
|
||||
prot_str[qc->tf.protocol], qc->nbytes,
|
||||
dma_str[qc->dma_dir]);
|
||||
prot_str, qc->nbytes, dma_str[qc->dma_dir]);
|
||||
}
|
||||
|
||||
if (ata_is_atapi(qc->tf.protocol)) {
|
||||
|
|
Loading…
Reference in New Issue