On Wed, Oct 20, 2010 at 07:55:56AM +0900, Isaku Yamahata wrote: > On Wed, Oct 20, 2010 at 12:40:49AM +0200, Michael S. Tsirkin wrote: > > > I think I suggested once a good way to implement this: > > > > - always make the bits w1c > > - after config write: > > if MHR is enabled, and you see that error log is not empty and that bit > > is 0, > > this means that someone has written 1b. > > so pop the first error from the log, and set bit to 1 if it's not empty. > > > > This way we only touch w1c mask on setup, no tricky range checks. > > Anything wrong with this approach? > > Basically okay. > Without the range checks, we need to restore the old value to the register > if 1b isn't written to the bit of the first error. > Probably you prefer restoring it mostly always than the range check.
Well that would be consistent with how we handle config cycles in the rest of the code. We had a lot of tricky range checking code and we killed it all in favor of making operations idempotent so they are safe to redo on each config cycle. -- MST