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

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

ide: fix EXABYTENEST handling in probe_for_drive()



Fix EXABYTENEST handling in probe_for_drive() (so drive->present
is checked for "nested" device) and cleanup enable_nest().

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent efa402d5
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -542,11 +542,6 @@ static void enable_nest (ide_drive_t *drive)
		printk(KERN_CONT "failed (status = 0x%02x)\n", stat);
	else
		printk(KERN_CONT "success\n");

	/* if !(success||timed-out) */
	if (do_probe(drive, ATA_CMD_ID_ATA) >= 2)
		/* look for ATAPI device */
		(void)do_probe(drive, ATA_CMD_ID_ATAPI);
}

/**
@@ -586,18 +581,21 @@ static inline u8 probe_for_drive (ide_drive_t *drive)
	strcpy(m, "UNKNOWN");

	/* skip probing? */
	if (!drive->noprobe)
	{
	if (!drive->noprobe) {
retry:
		/* if !(success||timed-out) */
		if (do_probe(drive, ATA_CMD_ID_ATA) >= 2)
			/* look for ATAPI device */
			(void)do_probe(drive, ATA_CMD_ID_ATAPI);

		if (!drive->present)
			/* drive not found */
			return 0;

		if (strstr(m, "E X A B Y T E N E S T"))
		if (strstr(m, "E X A B Y T E N E S T")) {
			enable_nest(drive);
			goto retry;
		}

		/* identification failed? */
		if (!drive->id_read) {