libata-eh.c (8048b8358031ae742c1c8f16f196f6d8070bb09f) libata-eh.c (461ec040677127510d018c06e64d868e5e91be75)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * libata-eh.c - libata error handling
4 *
5 * Copyright 2006 Tejun Heo <htejun@gmail.com>
6 *
7 * libata documentation is available via 'make {ps|pdf}docs',
8 * as Documentation/driver-api/libata.rst

--- 1561 unchanged lines hidden (view full) ---

1570 if (stat & ATA_DF)
1571 stat &= ~ATA_SENSE;
1572 } else {
1573 return 0;
1574 }
1575
1576 switch (qc->dev->class) {
1577 case ATA_DEV_ZAC:
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * libata-eh.c - libata error handling
4 *
5 * Copyright 2006 Tejun Heo <htejun@gmail.com>
6 *
7 * libata documentation is available via 'make {ps|pdf}docs',
8 * as Documentation/driver-api/libata.rst

--- 1561 unchanged lines hidden (view full) ---

1570 if (stat & ATA_DF)
1571 stat &= ~ATA_SENSE;
1572 } else {
1573 return 0;
1574 }
1575
1576 switch (qc->dev->class) {
1577 case ATA_DEV_ZAC:
1578 if (stat & ATA_SENSE)
1578 /*
1579 * Fetch the sense data explicitly if:
1580 * -It was a non-NCQ command that failed, or
1581 * -It was a NCQ command that failed, but the sense data
1582 * was not included in the NCQ command error log
1583 * (i.e. NCQ autosense is not supported by the device).
1584 */
1585 if (!(qc->flags & ATA_QCFLAG_SENSE_VALID) && (stat & ATA_SENSE))
1579 ata_eh_request_sense(qc);
1580 fallthrough;
1581 case ATA_DEV_ATA:
1582 if (err & ATA_ICRC)
1583 qc->err_mask |= AC_ERR_ATA_BUS;
1584 if (err & (ATA_UNC | ATA_AMNF))
1585 qc->err_mask |= AC_ERR_MEDIA;
1586 if (err & ATA_IDNF)

--- 2406 unchanged lines hidden ---
1586 ata_eh_request_sense(qc);
1587 fallthrough;
1588 case ATA_DEV_ATA:
1589 if (err & ATA_ICRC)
1590 qc->err_mask |= AC_ERR_ATA_BUS;
1591 if (err & (ATA_UNC | ATA_AMNF))
1592 qc->err_mask |= AC_ERR_MEDIA;
1593 if (err & ATA_IDNF)

--- 2406 unchanged lines hidden ---