Re: [PATCH 1/2] bitmap: add sanity check function for find_bit()
From: Yury Norov <yury.norov@gmail.com>
Date: 2022-10-25 17:14:09
Also in:
lkml
On Sun, Oct 23, 2022 at 03:19:24PM -0700, Linus Torvalds wrote:
On Wed, Oct 19, 2022 at 8:24 PM Yury Norov [off-list ref] wrote:quoted
This patch adds runtime check for the pointers to be aligned.No. Don't add pointless things like this. It only adds code, with no advantage.
Sure. Patch #1 is mostly for Russell to address his concern about unaligned bitmaps on ARM32. And it looks like it found nothing.
The bitmap ops all operate on 'unsigned long', and if a bitmap isn't aligned, we'll take a fault on the architectures that don't do unaligned accesses natively.
ARMv6 may or may not support unaligned access depending on SCTLR.U bit. This is what Russell was concerned about in the other email. As far as I understand, linux enables that feature. ARMv7 deprecates that bit and supports unaligned dereference unconditionally, with few exceptions like exclusive access. https://developer.arm.com/documentation/ddi0406/b/Appendices/ARMv6-Differences/Application-level-memory-support/Alignment?lang=en Thanks, Yury
And the find-bit functions simply aren't special enough to have this
kind of random testing, when the *basic* bitmap functions like
"set_bit()" and friends all do the accesses without any alignment
checks.
The fact that filesystem code often uses bitmap functions with a cast
from 'char *' is immaterial. Those things are already aligned
(typically they are a whole disk block). They just weren't an array of
'unsigned long'.
Linus_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel