On Wed, May 04, 2011 at 01:28:21PM -0400, Valdis.Kletnieks@xxxxxx wrote: > On Wed, 04 May 2011 07:52:12 CDT, scameron@xxxxxxxxxxxxxxxxxx said: > > On Wed, May 04, 2011 at 01:15:50PM +0200, Tomas Henzl wrote: > > > On 05/03/2011 09:58 PM, Stephen M. Cameron wrote: > > > > From: Stephen M. Cameron <scameron@xxxxxxxxxxxxxxxxxx> > > > > > dev_dbg(&h->pdev->dev, "Sending %x, tag = %x\n", c->busaddr, > > > > c->Header.Tag.lower); > > > > writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); > > > > + (void) readl(h->vaddr + SA5_REQUEST_PORT_OFFSET); > > > I just put it there to make it clear that it ignoring the return of readl is > > done intentionally, not accidentally. If this goes against some coding convention, > > whatever, I'm not super attached to the (void), but I did put it there on purpose, > > and would have done it in cciss as well, had I thought of it at the time. > > This probably needs a comment like > /* don't care - dummy read just to force write posting to chipset */ > or similar. I'm assuming it's just functioning as a barrier-type flush of some sort? It's a PCI write flush. It's not clear to me why it's needed here, though. The write will eventually get to the device; why we need to make the CPU wait around for it to actually get there doesn't make sense. -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html