Lines Matching refs:rq

7 static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq,
15 rq->errors |= ERROR_RESET;
28 rq->errors = ERROR_MAX;
31 rq->errors |= ERROR_RECAL;
35 if ((stat & ATA_DRQ) && rq_data_dir(rq) == READ &&
42 if (rq->errors >= ERROR_MAX || blk_noretry_request(rq)) {
43 ide_kill_rq(drive, rq);
48 rq->errors |= ERROR_RESET;
50 if ((rq->errors & ERROR_RESET) == ERROR_RESET) {
51 ++rq->errors;
55 if ((rq->errors & ERROR_RECAL) == ERROR_RECAL)
58 ++rq->errors;
63 static ide_startstop_t ide_atapi_error(ide_drive_t *drive, struct request *rq,
71 rq->errors |= ERROR_RESET;
80 if (rq->errors >= ERROR_MAX) {
81 ide_kill_rq(drive, rq);
83 if ((rq->errors & ERROR_RESET) == ERROR_RESET) {
84 ++rq->errors;
87 ++rq->errors;
93 static ide_startstop_t __ide_error(ide_drive_t *drive, struct request *rq,
97 return ide_ata_error(drive, rq, stat, err);
98 return ide_atapi_error(drive, rq, stat, err);
116 struct request *rq;
121 rq = drive->hwif->rq;
122 if (rq == NULL)
126 if (rq->cmd_type != REQ_TYPE_FS) {
127 if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) {
128 struct ide_cmd *cmd = rq->special;
132 } else if (blk_pm_request(rq)) {
133 rq->errors = 1;
134 ide_complete_pm_rq(drive, rq);
137 rq->errors = err;
138 ide_complete_rq(drive, err ? -EIO : 0, blk_rq_bytes(rq));
142 return __ide_error(drive, rq, stat, err);
148 struct request *rq = drive->hwif->rq;
150 if (rq && rq->cmd_type == REQ_TYPE_SPECIAL &&
151 rq->cmd[0] == REQ_DRIVE_RESET) {
152 if (err <= 0 && rq->errors == 0)
153 rq->errors = -EIO;
154 ide_complete_rq(drive, err ? err : 0, blk_rq_bytes(rq));