<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 5, 2023 at 5:51 AM Michael Ellerman <<a href="mailto:mpe@ellerman.id.au">mpe@ellerman.id.au</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Since commit 1ba3cbf3ec3b ("mm: kfence: improve the performance of<br>
__kfence_alloc() and __kfence_free()"), kfence reports failures in<br>
random places at boot on big endian machines.<br>
<br>
The problem is that the new KFENCE_CANARY_PATTERN_U64 encodes the<br>
address of each byte in its value, so it needs to be byte swapped on big<br>
endian machines.<br>
<br>
The compiler is smart enough to do the le64_to_cpu() at compile time, so<br>
there is no runtime overhead.<br>
<br>
Fixes: 1ba3cbf3ec3b ("mm: kfence: improve the performance of __kfence_alloc() and __kfence_free()")<br>
Signed-off-by: Michael Ellerman <<a href="mailto:mpe@ellerman.id.au" target="_blank">mpe@ellerman.id.au</a>><br></blockquote><div>Reviewed-by: Alexander Potapenko <<a href="mailto:glider@google.com">glider@google.com</a>></div></div></div>