diff options
author | Arnd Bergmann <arnd@arndb.de> | 2021-02-26 17:05:02 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2021-03-23 18:55:52 +0300 |
commit | 97b34809ec240d82c82af97626c2071a4062e0e6 (patch) | |
tree | 454f9c902e7a3ac12a0cc14dba4179af4c7fd0b6 /drivers/staging/media/atomisp/pci/atomisp_ioctl.c | |
parent | 21ad53f206a95eda09a7b3780fb2f0b30ded314a (diff) | |
download | linux-97b34809ec240d82c82af97626c2071a4062e0e6.tar.xz |
media: staging: atomisp: reduce kernel stack usage
The atomisp_set_fmt() function has multiple copies of the large
v4l2_format structure on its stack, resulting in a warning about
excessive stack usage in some rare randconfig builds.
drivers/staging/media/atomisp/pci/atomisp_cmd.c:5600:5: error: stack frame size of 1084 bytes in function 'atomisp_set_fmt' [-Werror,-Wframe-larger-than=]
Of this structure, only three members in the 'fmt.pix' member are
used, so simplify it by using the smaller v4l2_pix_format structure
directly. This reduces the stack usage to 612 bytes, and it could
be reduced further by only storing the three members that are used.
Link: https://lore.kernel.org/linux-media/20210226140524.3478346-1-arnd@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/staging/media/atomisp/pci/atomisp_ioctl.c')
-rw-r--r-- | drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c index 548d82028bb0..6f5fe5092154 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_ioctl.c +++ b/drivers/staging/media/atomisp/pci/atomisp_ioctl.c @@ -843,7 +843,7 @@ static int atomisp_try_fmt_cap(struct file *file, void *fh, int ret; rt_mutex_lock(&isp->mutex); - ret = atomisp_try_fmt(vdev, f, NULL); + ret = atomisp_try_fmt(vdev, &f->fmt.pix, NULL); rt_mutex_unlock(&isp->mutex); return ret; } |