Hi Arnd. On Tue, Apr 28, 2020 at 11:53:54PM +0200, Arnd Bergmann wrote: > Some older versions of gcc badly optimize code that passes > an inline function argument into another function by reference, > causing huge stack usage: > > drivers/gpu/drm/bridge/tc358768.c: In function 'tc358768_bridge_pre_enable': > drivers/gpu/drm/bridge/tc358768.c:840:1: error: the frame size of 2256 bytes is larger than 2048 bytes [-Werror=frame-larger-than=] > > Use a temporary variable as a workaround and add a comment pointing > to the gcc bug. > > Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver") > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Thanks, pushed to drm-misc-next with Tomi's r-b. Sam > --- > drivers/gpu/drm/bridge/tc358768.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/bridge/tc358768.c b/drivers/gpu/drm/bridge/tc358768.c > index 1b39e8d37834..6650fe4cfc20 100644 > --- a/drivers/gpu/drm/bridge/tc358768.c > +++ b/drivers/gpu/drm/bridge/tc358768.c > @@ -178,6 +178,8 @@ static int tc358768_clear_error(struct tc358768_priv *priv) > > static void tc358768_write(struct tc358768_priv *priv, u32 reg, u32 val) > { > + /* work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 */ > + int tmpval = val; > size_t count = 2; > > if (priv->error) > @@ -187,7 +189,7 @@ static void tc358768_write(struct tc358768_priv *priv, u32 reg, u32 val) > if (reg < 0x100 || reg >= 0x600) > count = 1; > > - priv->error = regmap_bulk_write(priv->regmap, reg, &val, count); > + priv->error = regmap_bulk_write(priv->regmap, reg, &tmpval, count); > } > > static void tc358768_read(struct tc358768_priv *priv, u32 reg, u32 *val) > -- > 2.26.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel