[14/15] common/cnxk: add memory clobber to steor and ldeor
Checks
Commit Message
To avoid compiler reordering stores to LMT line and ldeor,
add clobber attribute to ldeor, steor etc.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
drivers/common/cnxk/roc_io.h | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
@@ -130,7 +130,8 @@ roc_lmt_submit_ldeor(plt_iova_t io_address)
asm volatile(PLT_CPU_FEATURE_PREAMBLE "ldeor xzr, %x[rf], [%[rs]]"
: [rf] "=r"(result)
- : [rs] "r"(io_address));
+ : [rs] "r"(io_address)
+ : "memory");
return result;
}
@@ -141,7 +142,8 @@ roc_lmt_submit_ldeorl(plt_iova_t io_address)
asm volatile(PLT_CPU_FEATURE_PREAMBLE "ldeorl xzr,%x[rf],[%[rs]]"
: [rf] "=r"(result)
- : [rs] "r"(io_address));
+ : [rs] "r"(io_address)
+ : "memory");
return result;
}
@@ -150,7 +152,8 @@ roc_lmt_submit_steor(uint64_t data, plt_iova_t io_address)
{
asm volatile(PLT_CPU_FEATURE_PREAMBLE
"steor %x[d], [%[rs]]" ::[d] "r"(data),
- [rs] "r"(io_address));
+ [rs] "r"(io_address)
+ : "memory");
}
static __plt_always_inline void
@@ -158,7 +161,8 @@ roc_lmt_submit_steorl(uint64_t data, plt_iova_t io_address)
{
asm volatile(PLT_CPU_FEATURE_PREAMBLE
"steorl %x[d], [%[rs]]" ::[d] "r"(data),
- [rs] "r"(io_address));
+ [rs] "r"(io_address)
+ : "memory");
}
static __plt_always_inline void