<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">2023년 12월 15일 (금) 오전 12:59, Marek Szyprowski <<a href="mailto:m.szyprowski@samsung.com">m.szyprowski@samsung.com</a>>님이 작성:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 14.12.2023 13:32, Arnd Bergmann wrote:<br>
> From: Arnd Bergmann <<a href="mailto:arnd@arndb.de" target="_blank" rel="noreferrer">arnd@arndb.de</a>><br>
><br>
> gcc rightfully complains about excessive stack usage in the fimd_win_set_pixfmt()<br>
> function:<br>
><br>
> drivers/gpu/drm/exynos/exynos_drm_fimd.c: In function 'fimd_win_set_pixfmt':<br>
> drivers/gpu/drm/exynos/exynos_drm_fimd.c:750:1: error: the frame size of 1032 bytes is larger than 1024 byte<br>
> drivers/gpu/drm/exynos/exynos5433_drm_decon.c: In function 'decon_win_set_pixfmt':<br>
> drivers/gpu/drm/exynos/exynos5433_drm_decon.c:381:1: error: the frame size of 1032 bytes is larger than 1024 bytes<br>
><br>
> There is really no reason to copy the large exynos_drm_plane<br>
> structure to the stack before using one of its members, so just<br>
> use a pointer instead.<br>
><br>
> Fixes: 6f8ee5c21722 ("drm/exynos: fimd: Make plane alpha configurable")<br>
> Signed-off-by: Arnd Bergmann <<a href="mailto:arnd@arndb.de" target="_blank" rel="noreferrer">arnd@arndb.de</a>><br>
<br>
<br>
Reviewed-by: Marek Szyprowski <<a href="mailto:m.szyprowski@samsung.com" target="_blank" rel="noreferrer">m.szyprowski@samsung.com</a>><br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto">Inki Dae</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> ---<br>
>   drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 ++--<br>
>   drivers/gpu/drm/exynos/exynos_drm_fimd.c      | 4 ++--<br>
>   2 files changed, 4 insertions(+), 4 deletions(-)<br>
><br>
> diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c<br>
> index 4d986077738b..bce027552474 100644<br>
> --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c<br>
> +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c<br>
> @@ -319,9 +319,9 @@ static void decon_win_set_bldmod(struct decon_context *ctx, unsigned int win,<br>
>   static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,<br>
>                                struct drm_framebuffer *fb)<br>
>   {<br>
> -     struct exynos_drm_plane plane = ctx->planes[win];<br>
> +     struct exynos_drm_plane *plane = &ctx->planes[win];<br>
>       struct exynos_drm_plane_state *state =<br>
> -             to_exynos_plane_state(plane.base.state);<br>
> +             to_exynos_plane_state(plane->base.state);<br>
>       unsigned int alpha = state->base.alpha;<br>
>       unsigned int pixel_alpha;<br>
>       unsigned long val;<br>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c<br>
> index 8dde7b1e9b35..5bdc246f5fad 100644<br>
> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c<br>
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c<br>
> @@ -661,9 +661,9 @@ static void fimd_win_set_bldmod(struct fimd_context *ctx, unsigned int win,<br>
>   static void fimd_win_set_pixfmt(struct fimd_context *ctx, unsigned int win,<br>
>                               struct drm_framebuffer *fb, int width)<br>
>   {<br>
> -     struct exynos_drm_plane plane = ctx->planes[win];<br>
> +     struct exynos_drm_plane *plane = &ctx->planes[win];<br>
>       struct exynos_drm_plane_state *state =<br>
> -             to_exynos_plane_state(plane.base.state);<br>
> +             to_exynos_plane_state(plane->base.state);<br>
>       uint32_t pixel_format = fb->format->format;<br>
>       unsigned int alpha = state->base.alpha;<br>
>       u32 val = WINCONx_ENWIN;<br>
<br>
Best regards<br>
-- <br>
Marek Szyprowski, PhD<br>
Samsung R&D Institute Poland<br>
<br>
</blockquote></div></div></div>