Stéphane Marchesin
2014-Jun-27  20:17 UTC
[Nouveau] [PATCH] drm/nouveau/fb: Prevent inlining of ramfuc_reg
When gcc 4.8 inlines this function, it eats up 16 bytes on the stack
every time. Eventually we hit warnings because our stack grew too
much:
ramnve0.c:1383:1: error: the frame size of 1496 bytes is larger than
1024 bytes
We fix this by preventing inlining for this function.
Signed-off-by: St?phane Marchesin <marcheu at chromium.org>
---
 drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
b/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
index 0f57fcf..04e3849 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
+++ b/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h
@@ -26,7 +26,7 @@ ramfuc_reg2(u32 addr1, u32 addr2)
 	};
 }
 
-static inline struct ramfuc_reg
+static noinline struct ramfuc_reg
 ramfuc_reg(u32 addr)
 {
 	return ramfuc_reg2(addr, addr);
-- 
2.0.0.526.g5318336
Ben Skeggs
2014-Jun-28  13:04 UTC
[Nouveau] [PATCH] drm/nouveau/fb: Prevent inlining of ramfuc_reg
On Sat, Jun 28, 2014 at 6:17 AM, St?phane Marchesin <marcheu at chromium.org> wrote:> When gcc 4.8 inlines this function, it eats up 16 bytes on the stack > every time. Eventually we hit warnings because our stack grew too > much: > > ramnve0.c:1383:1: error: the frame size of 1496 bytes is larger than > 1024 bytes > > We fix this by preventing inlining for this function.Got it. Thanks!> > Signed-off-by: St?phane Marchesin <marcheu at chromium.org> > --- > drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h b/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h > index 0f57fcf..04e3849 100644 > --- a/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h > +++ b/drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h > @@ -26,7 +26,7 @@ ramfuc_reg2(u32 addr1, u32 addr2) > }; > } > > -static inline struct ramfuc_reg > +static noinline struct ramfuc_reg > ramfuc_reg(u32 addr) > { > return ramfuc_reg2(addr, addr); > -- > 2.0.0.526.g5318336 > > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/nouveau