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

Commit 4dc7c76c authored by Arjun Sreedharan's avatar Arjun Sreedharan Committed by Tejun Heo
Browse files

pata_scc: propagate return value of scc_wait_after_reset



scc_bus_softreset not necessarily should return zero.
Propagate the error code.

Signed-off-by: default avatarArjun Sreedharan <arjun024@gmail.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org
parent 0e574077
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -585,7 +585,7 @@ static int scc_wait_after_reset(struct ata_link *link, unsigned int devmask,
 *	Note: Original code is ata_bus_softreset().
 */

static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
static int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
                                      unsigned long deadline)
{
	struct ata_ioports *ioaddr = &ap->ioaddr;
@@ -599,9 +599,7 @@ static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
	udelay(20);
	out_be32(ioaddr->ctl_addr, ap->ctl);

	scc_wait_after_reset(&ap->link, devmask, deadline);

	return 0;
	return scc_wait_after_reset(&ap->link, devmask, deadline);
}

/**
@@ -618,7 +616,8 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes,
{
	struct ata_port *ap = link->ap;
	unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
	unsigned int devmask = 0, err_mask;
	unsigned int devmask = 0;
	int rc;
	u8 err;

	DPRINTK("ENTER\n");
@@ -634,9 +633,9 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes,

	/* issue bus reset */
	DPRINTK("about to softreset, devmask=%x\n", devmask);
	err_mask = scc_bus_softreset(ap, devmask, deadline);
	if (err_mask) {
		ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", err_mask);
	rc = scc_bus_softreset(ap, devmask, deadline);
	if (rc) {
		ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", rc);
		return -EIO;
	}