Messages in this thread | | | Date | Tue, 25 Oct 2022 10:11:51 -0700 | From | Yury Norov <> | Subject | Re: [PATCH 1/2] bitmap: add sanity check function for find_bit() |
| |
On Sun, Oct 23, 2022 at 03:19:24PM -0700, Linus Torvalds wrote: > On Wed, Oct 19, 2022 at 8:24 PM Yury Norov <yury.norov@gmail.com> wrote: > > > > 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
| |