Re: [PATCH 53 of 53] ipath - add memory barrier when waiting for writes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>     ralphc> I don't have a lot to add to this other than I looked at
>     ralphc> the assembly code output for -Os and -O3 and both looked
>     ralphc> OK.  I put the mb() in to be sure the writes were complete
>     ralphc> and I found this to work by experimentation.  Without it,
>     ralphc> the driver fails to read the EEPROM correctly.
>
> Hmm, that doesn't give me a warm fuzzy feeling.  Basically on x86-64
> you're adding an unneeded mfence instruction to work around
> miscompilation?
>
> Is i2c_wait_for_writes miscompiled without the mb() with -Os?  What
> does the bad assembly look like?
>
>  - R.

We had a power failure here so I'm not able to reproduce the
assembly code at the moment.  What I remember from looking
at the code is that the code for ipath_read_kreg32() was
present in i2c_wait_for_writes() when compiled -Os so
it didn't look like a compiler bug.  I probably could put the
mb() at the end of i2c_gpio_set() if that makes you more
comfortable.  The mb() is definitely needed though.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux