[PATCH] driver/FSL SATA:Fix wrong Device Error Register usage
Kushwaha Prabhakar-B32579
B32579 at freescale.com
Fri Feb 18 20:59:39 EST 2011
Thanks David for review comments!!
Please find my reply in-lined
> -----Original Message-----
> From: David Laight [mailto:David.Laight at ACULAB.COM]
> Sent: Friday, February 18, 2011 2:12 PM
> To: Kushwaha Prabhakar-B32579; linuxppc-dev at lists.ozlabs.org
> Cc: Kalra Ashish-B00888
> Subject: RE: [PATCH] driver/FSL SATA:Fix wrong Device Error Register
> usage
>
>
> > + if ((ffs(dereg)-1) < ap->nr_pmp_links) {
> > + /* array start from 0 */
> > + link = &ap->pmp_link[ffs(dereg)-1];
>
> I'd only call ffs() once - it could be a slow library function.
This function is called during error handling. So it won't matter.
Anyway, I will update the patch for singe usage of ffs().
> Any comment should note that ffs() returns 0 when no bits are set -
> rather than anything about array indexes.
>
sata_fsl_error_intr() is called during device error.
The mentioned scenario will never comes. It can be observed via code:-
if (cereg) { --> cereg is set on command error. Means there is at least 1 device present.
abort = 1;
---
---
---
/* find out the offending link and qc */
if (ap->nr_pmp_links) { --> if Port multiplier
---
---
if ((ffs(dereg)-1) < ap->nr_pmp_links) {
---
---
} else { --> Single device
dereg = ioread32(hcr_base + DE);
iowrite32(dereg, hcr_base + DE);
iowrite32(cereg, hcr_base + CE);
More information about the Linuxppc-dev
mailing list