Messages in this thread | | | From | Jani Nikula <> | Subject | Re: mainline build failure due to f1e4c916f97f ("drm/edid: add EDID block count and size helpers") | Date | Mon, 30 May 2022 12:31:17 +0300 |
| |
On Sat, 28 May 2022, Linus Torvalds <torvalds@linux-foundation.org> wrote: > On Sat, May 28, 2022 at 11:59 AM Arnd Bergmann <arnd@arndb.de> wrote: >> >> It's CONFIG_ARM_AEABI, which is normally set everywhere. Without this >> option, you the kernel is built for the old 'OABI' that forces all non-packed >> struct members to be at least 16-bit aligned. > > Looks like forced word (32 bit) alignment to me. > > I wonder how many other structures that messes up, but I committed the > EDID fix for now.
Thanks for the fix, and the thorough commit message!
> This has presumably been broken for a long time, but maybe the > affected targets don't typically use EDID and kernel modesetting, and > only use some fixed display setup instead. > > Those structure definitions go back a _loong_ time (from a quick 'git > blame' I see November 2008). > > But despite that, I did not mark my fix 'cc:stable' because I don't > know if any of those machines affected by this bad arm ABI issue could > possibly care. > > At least my tree hopefully now builds on them, with the BUILD_BUG_ON() > that uncovered this.
Indeed the bug is ancient. I just threw in the BUILD_BUG_ON() on a whim as an extra sanity check when doing pointer arithmetics on struct edid *.
If there are affected machines, buffer overflows are the real danger due to edid->extensions indicating the number of extensions.
BR, Jani.
-- Jani Nikula, Intel Open Source Graphics Center
| |