]> git.baikalelectronics.ru Git - kernel.git/commit
RISC-V: Assorted memory model fixes
authorPalmer Dabbelt <palmer@sifive.com>
Tue, 3 Apr 2018 03:36:33 +0000 (20:36 -0700)
committerPalmer Dabbelt <palmer@sifive.com>
Tue, 3 Apr 2018 03:36:33 +0000 (20:36 -0700)
commit5c7dbeccacd9005c395ec875e8b1cdce9e9517df
tree332fc7da3e0d432b5de5113030007f3ef8ae3318
parent4cef49e3bfeb95f112578bd5e3afdda1a95816de
parentf1e095522c695b74160647dcee1b9b02682dfdd9
RISC-V: Assorted memory model fixes

These fixes fall into three categories

* The definiton of __smp_{store_release,load_acquire}, which allow us to
  emit a full fence when unnecessary.
* Fixes to avoid relying on the behavior of "*.aqrl" atomics, as those
  are specified in the currently released RISC-V memory model draft in
  a way that makes them useless for Linux.  This might change in the
  future, but now the code matches the memory model spec as it's written
  so at least we're getting closer to something sane.  The actual fix is
  to delete the RISC-V specific atomics and drop back to generic
  versions that use the new fences from above.
* Cleanups to our atomic macros, which are mostly non-functional
  changes.

Unfortunately I haven't given these as thorough of a testing as I
probably should have, but I've poked through the code and they seem
generally OK.