EH is gonna record errors per-dev. Define per-dev ata_ering. Signed-off-by: Tejun Heo <htejun@xxxxxxxxx> --- drivers/scsi/libata-core.c | 1 + include/linux/libata.h | 4 ++++ 2 files changed, 5 insertions(+), 0 deletions(-) 17d6991533312fcce8cb213ddabd164af7e9f88e diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index a05be86..afb7796 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -4871,6 +4871,7 @@ static void ata_host_init(struct ata_por dev->pio_mask = UINT_MAX; dev->mwdma_mask = UINT_MAX; dev->udma_mask = UINT_MAX; + ata_ering_init(&dev->ering, ATA_DEV_ERING_SIZE); } #ifdef ATA_IRQ_TRAP diff --git a/include/linux/libata.h b/include/linux/libata.h index ad16d6b..1a4df14 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -135,6 +135,8 @@ enum { ATA_DEV_ATAPI_UNSUP = 4, /* ATAPI device (unsupported) */ ATA_DEV_NONE = 5, /* no device */ + ATA_DEV_ERING_SIZE = 32, /* record 32 recent errors */ + /* struct ata_port flags */ ATA_FLAG_SLAVE_POSS = (1 << 0), /* host supports slave dev */ /* (doesn't imply presence) */ @@ -417,6 +419,8 @@ struct ata_device { u16 cylinders; /* Number of cylinders */ u16 heads; /* Number of heads */ u16 sectors; /* Number of sectors per track */ + + DEFINE_ATA_ERING (ering, ATA_DEV_ERING_SIZE); }; struct ata_port { -- 1.2.4 - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html