Subject: Re: [PATCH 28 of 39] IB/ipath - Fixes a bug where our delay for EEPROM no longer works due to compiler reordering

From: Roland Dreier <[email-masked]>
Date: Fri, 30 Jun 2006 14:08:19 -0700

> >  static void i2c_wait_for_writes(struct ipath_devdata *dd)
 > >  {
 > > +	mb();
 > >  	(void)ipath_read_kreg32(dd, dd->ipath_kregs->kr_scratch);
 > >  }

 > That's a bit weird.  I wouldn't have expected the compiler to muck around
 > with a readl().

I never liked this patch.  The last time it came up there were
conflicting answers about whether it was a code generation bug or a
real issue talking to hardware or what.  At the least I think this
merits a big comment explain what's going on -- and even better would
be really understanding the bug that's being fixed so that we're
confident it is indeed a real fix.

 - R.