Re: [PATCH] sata_inic162x: fix a few glitches in hardreset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Aaarrgghh, So sorry.  I meant to reply to this subject, not the other
one.  It's the sata_inic162x driver that I'm getting random results
and timeouts from.

Bob


--- Tejun Heo <htejun@xxxxxxxxx> wrote:

> * Hardreset must not exit without actually performing reset regardless
>   of link status.  We're resetting the link after all.
> 
> * Minor message update.
> 
> * 150ms delay is meaningful iff link is online after reset is
>   complete.
> 
> Signed-off-by: Tejun Heo <htejun@xxxxxxxxx>
> ---
>  drivers/ata/sata_inic162x.c |   12 ++++--------
>  1 files changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
> index b2a6f77..fad2bd3 100644
> --- a/drivers/ata/sata_inic162x.c
> +++ b/drivers/ata/sata_inic162x.c
> @@ -429,11 +429,6 @@ static int inic_hardreset(struct ata_port *ap, unsigned
> int *class)
>  	/* hammer it into sane state */
>  	inic_reset_port(port_base);
>  
> -	if (ata_port_offline(ap)) {
> -		*class = ATA_DEV_NONE;
> -		return 0;
> -	}
> -
>  	val = readw(idma_ctl);
>  	writew(val | IDMA_CTL_RST_ATA, idma_ctl);
>  	readw(idma_ctl);	/* flush */
> @@ -443,16 +438,17 @@ static int inic_hardreset(struct ata_port *ap, unsigned
> int *class)
>  	rc = sata_phy_resume(ap, timing);
>  	if (rc) {
>  		ata_port_printk(ap, KERN_WARNING, "failed to resume "
> -				"link for reset (errno=%d)\n", rc);
> +				"link after reset (errno=%d)\n", rc);
>  		return rc;
>  	}
>  
> -	msleep(150);
> -
>  	*class = ATA_DEV_NONE;
>  	if (ata_port_online(ap)) {
>  		struct ata_taskfile tf;
>  
> +		/* wait a while before checking status */
> +		msleep(150);
> +
>  		if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) {
>  			ata_port_printk(ap, KERN_WARNING,
>  					"device busy after hardreset\n");
> -- 
> 1.4.4.4
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux