Thanks David for review comments!! Please find my reply in-lined
> -----Original Message----- > From: David Laight [mailto:david.lai...@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 > 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); _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev