media: staging: ipu3-imgu: Add a sanity check for the parameter struct size
authorSakari Ailus <sakari.ailus@linux.intel.com>
Thu, 16 Apr 2020 07:45:07 +0000 (09:45 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 5 May 2020 11:12:30 +0000 (13:12 +0200)
There have been cases where seemingly innocuous patches have broken the
uAPI by changing the memory layout of the parameter struct. Generally such
changes also introduce a change in the size of the entire struct. This
patch adds a sanity check to avoid such cases happening in the future.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: Tested-by: Bingbu Cao <bingbu.cao@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/ipu3/ipu3-css.c

index 4f04fe8..3c700ae 100644 (file)
@@ -1911,6 +1911,13 @@ int imgu_css_meta_fmt_set(struct v4l2_meta_format *fmt)
        switch (fmt->dataformat) {
        case V4L2_META_FMT_IPU3_PARAMS:
                fmt->buffersize = sizeof(struct ipu3_uapi_params);
+
+               /*
+                * Sanity check for the parameter struct size. This must
+                * not change!
+                */
+               BUILD_BUG_ON(sizeof(struct ipu3_uapi_params) != 39328);
+
                break;
        case V4L2_META_FMT_IPU3_STAT_3A:
                fmt->buffersize = sizeof(struct ipu3_uapi_stats_3a);