Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a9587fd8 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: remove BUG() from ide_complete_rq()



It is no longer needed so remove it, also while at it dequeue the request
only on blk_end_request() success and make ide_complete_rq() return an error
value.

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 89f78b32
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -141,15 +141,17 @@ void ide_complete_cmd(ide_drive_t *drive, struct ide_cmd *cmd, u8 stat, u8 err)
		kfree(cmd);
}

void ide_complete_rq(ide_drive_t *drive, int error)
int ide_complete_rq(ide_drive_t *drive, int error)
{
	ide_hwif_t *hwif = drive->hwif;
	struct request *rq = hwif->rq;
	int rc;

	rc = blk_end_request(rq, error, blk_rq_bytes(rq));
	if (rc == 0)
		hwif->rq = NULL;

	if (unlikely(blk_end_request(rq, error, blk_rq_bytes(rq))))
		BUG();
	return rc;
}
EXPORT_SYMBOL(ide_complete_rq);

+1 −1
Original line number Diff line number Diff line
@@ -1166,7 +1166,7 @@ extern int ide_devset_execute(ide_drive_t *drive,
			      const struct ide_devset *setting, int arg);

void ide_complete_cmd(ide_drive_t *, struct ide_cmd *, u8, u8);
void ide_complete_rq(ide_drive_t *, int);
int ide_complete_rq(ide_drive_t *, int);

void ide_tf_dump(const char *, struct ide_taskfile *);