[PATCH] drm/i915: use static const array for PICK macro

Arnd Bergmann arnd at arndb.de
Tue Mar 21 08:44:07 UTC 2017


On Tue, Mar 21, 2017 at 9:26 AM, Jani Nikula
<jani.nikula at linux.intel.com> wrote:
> On Mon, 20 Mar 2017, Arnd Bergmann <arnd at arndb.de> wrote:
>> The varargs macro trick in _PIPE3/_PHY3/_PORT3 was meant as an optimization
>> to shrink the i915 kernel module by around 1000 bytes.
>
> Really, I didn't care one bit about the size shrink, I only cared about
> making it easier and less error prone to increase the number of args in
> a number of places. Maintainability and correctness were the goals. Just
> for the record. ;)

Ok. My only interest here is the warning about possible stack overflow,
though the fact that KASAN considers the array code to be fragile is
an indication that it is perhaps actually dangerous: if we ever run into
a bug that causes the array index to overflow, we might in theory
have a security bug that lets users access arbitrary kernel pointers.

While the risk for that actually happening is very low, the original code
was safer in that regard. My patch on top of yours merely turns a
hypothetical arbitrary stack access into an arbitrary .data access,
and I don't even know which one would be worse.

     Arnd


More information about the dri-devel mailing list