]> git.baikalelectronics.ru Git - kernel.git/commit
media: staging: media: atomisp: fix stack overflow in init_pipe_defaults()
authorArnd Bergmann <arnd@arndb.de>
Fri, 29 May 2020 20:00:27 +0000 (22:00 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 11 Jun 2020 17:03:03 +0000 (19:03 +0200)
commit1ee9f79d6930e6f45cfa543ce4a31fa6f910c43f
tree8c042b9fa89e3e72e510ec5608d652881e8892e4
parent9cc51645b222e40d4bc747bef9276feeb07cfc8b
media: staging: media: atomisp: fix stack overflow in init_pipe_defaults()

When building with clang, multiple copies of the structures to be
initialized are passed around on the stack and copied locally, using an
insane amount of stack space:

drivers/staging/media/atomisp/pci/sh_css.c:2371:1: error: stack frame size of 26864 bytes in function 'create_pipe' [-Werror,-Wframe-larger-than=]

Use constantly-allocated variables plus an explicit memcpy()
to avoid that.

Co-authored-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Fixes: 2615bb5fd62d ("media: atomisp: convert default struct values to use compound-literals with designated initializers")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/pci/ia_css_frame_public.h
drivers/staging/media/atomisp/pci/ia_css_pipe.h
drivers/staging/media/atomisp/pci/ia_css_pipe_public.h
drivers/staging/media/atomisp/pci/ia_css_types.h
drivers/staging/media/atomisp/pci/isp/kernels/sdis/common/ia_css_sdis_common_types.h
drivers/staging/media/atomisp/pci/runtime/binary/interface/ia_css_binary.h
drivers/staging/media/atomisp/pci/runtime/pipeline/interface/ia_css_pipeline.h
drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c
drivers/staging/media/atomisp/pci/sh_css.c