drivers/gpu/drm/omapdrm/dss/dsi.c:1126:1: warning: the frame size of 1060 bytes is larger than 1024 bytes

Arnd Bergmann arnd at arndb.de
Thu Sep 15 18:49:48 UTC 2022


On Thu, Sep 15, 2022, at 8:17 PM, kernel test robot wrote:
> Hi Arnd,
> tree:   
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   3245cb65fd91cd514801bf91f5a3066d562f0ac4
> commit: 3d427228f7370894680580fcd0381c0349624fa1 ARM: ixp4xx: enable 
> multiplatform support

This did not cause the problem, the bisection just landed on a
commit that enabled additional configuraitons.

>    drivers/gpu/drm/omapdrm/dss/dsi.c: In function 'dsi_dump_dsi_irqs':
>>> drivers/gpu/drm/omapdrm/dss/dsi.c:1126:1: warning: the frame size of 1060 bytes is larger than 1024 bytes [-Wframe-larger-than=]
>     1126 | }

I think hte problem is that struct dsi_irq_stats is just too
large, at 776 bytes. The interrupts are disabled during a copy
from 'dsi->irq_stats' into 'stats'. A trivial workaround would
avoid the local copy and keep interrupts disabled through
the entire function so it can operate directly on the source
data, but that would introduce a longer time with irqs disabled,
which might be bad as well.

Since this is only called from a debugfs file, and reading that
file is probably not performance critical itself, maybe
using kmalloc on the large structure would be best.

       Arnd


More information about the dri-devel mailing list