Thread (4 messages) 4 messages, 3 authors, 2011-02-18

RE: [PATCH] driver/FSL SATA:Fix wrong Device Error Register usage

flat view

From: Kushwaha Prabhakar-B32579 <hidden>
Date: 2011-02-18 10:17:38

Thanks David for review comments!!

Please find my reply in-lined
-----Original Message-----
From: David Laight [mailto:David.Laight@ACULAB.COM]
Sent: Friday, February 18, 2011 2:12 PM
To: Kushwaha Prabhakar-B32579; linuxppc-dev@lists.ozlabs.org
Cc: Kalra Ashish-B00888
Subject: RE: [PATCH] driver/FSL SATA:Fix wrong Device Error Register=20
usage
=20
=20
quoted
+			if ((ffs(dereg)-1) < ap->nr_pmp_links) {
+				/* array start from 0 */
+				link =3D &ap->pmp_link[ffs(dereg)-1];
=20
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.=20
Anyway, I will update the patch for singe usage of ffs().=20
Any comment should note that ffs() returns 0 when no bits are set -=20
rather than anything about array indexes.
=20
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 =3D 1;
		---
		---
		---
		/* find out the offending link and qc */
		if (ap->nr_pmp_links) {  --> if Port multiplier=20
			---
			---
			if ((ffs(dereg)-1) < ap->nr_pmp_links) {
		---
		---
		} else {  -->  Single device
			dereg =3D ioread32(hcr_base + DE);
			iowrite32(dereg, hcr_base + DE);
			iowrite32(cereg, hcr_base + CE);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help