* [intel-lts:5.10/yocto 10621/20393] drivers/media/v4l2-core/v4l2-subdev.c:908:5: warning: stack frame size (1392) exceeds limit (1024) in 'v4l2_subdev_link_validate'
@ 2022-02-10 13:26 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-10 13:26 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 17312 bytes --]
Hi Wanhui,
FYI, the error/warning still remains.
tree: https://github.com/intel/linux-intel-lts.git 5.10/yocto
head: 2dafc777a64181d42982628c7f5907a03da5f070
commit: f13978177f8c57c155d53df5f2df60f519e82e4a [10621/20393] v4l: subdev: Add support for sub-streams
config: arm-imx_v4_v5_defconfig (https://download.01.org/0day-ci/archive/20220210/202202102146.b4WAHQie-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project aa845d7a245d85c441d0bd44fc7b6c3be8f3de8d)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/intel/linux-intel-lts/commit/f13978177f8c57c155d53df5f2df60f519e82e4a
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 5.10/yocto
git checkout f13978177f8c57c155d53df5f2df60f519e82e4a
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/media/v4l2-core/ drivers/video/fbdev/core/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from drivers/media/v4l2-core/v4l2-subdev.c:16:
In file included from include/linux/videodev2.h:61:
include/uapi/linux/videodev2.h:1757:2: warning: field within 'struct v4l2_ext_control' is less aligned than 'union v4l2_ext_control::(anonymous at include/uapi/linux/videodev2.h:1757:2)' and is usually due to 'struct v4l2_ext_control' being packed, which can lead to unaligned accesses [-Wunaligned-access]
union {
^
>> drivers/media/v4l2-core/v4l2-subdev.c:908:5: warning: stack frame size (1392) exceeds limit (1024) in 'v4l2_subdev_link_validate' [-Wframe-larger-than]
int v4l2_subdev_link_validate(struct media_link *link)
^
2 warnings generated.
vim +/v4l2_subdev_link_validate +908 drivers/media/v4l2-core/v4l2-subdev.c
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 907
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 @908 int v4l2_subdev_link_validate(struct media_link *link)
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 909 {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 910 struct v4l2_subdev *sink;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 911 struct v4l2_subdev_route sink_routes[LINK_VALIDATE_ROUTES];
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 912 struct v4l2_subdev_routing sink_routing = {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 913 .routes = sink_routes,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 914 .num_routes = ARRAY_SIZE(sink_routes),
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 915 };
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 916 struct v4l2_subdev_route src_routes[LINK_VALIDATE_ROUTES];
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 917 struct v4l2_subdev_routing src_routing = {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 918 .routes = src_routes,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 919 .num_routes = ARRAY_SIZE(src_routes),
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 920 };
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 921 unsigned int i, j;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 922 int rval;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 923
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 924 sink = media_entity_to_v4l2_subdev(link->sink->entity);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 925 if (!sink)
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 926 return -EINVAL;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 927
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 928 if (!(link->sink->flags & MEDIA_PAD_FL_MULTIPLEX &&
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 929 link->source->flags & MEDIA_PAD_FL_MULTIPLEX))
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 930 return v4l2_subdev_link_validate_one(link, link->source, 0,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 931 link->sink, 0);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 932 /*
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 933 * multiplex link cannot proceed without route information.
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 934 */
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 935 rval = v4l2_subdev_call(sink, pad, get_routing, &sink_routing);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 936 if (rval) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 937 dev_err(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 938 "error %d in get_routing() on %s, sink pad %u\n", rval,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 939 sink->entity.name, link->sink->index);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 940
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 941 return rval;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 942 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 943
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 944 rval = v4l2_subdev_call(media_entity_to_v4l2_subdev(
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 945 link->source->entity),
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 946 pad, get_routing, &src_routing);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 947 if (rval) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 948 dev_dbg(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 949 "error %d in get_routing() on %s, source pad %u\n",
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 950 rval, sink->entity.name, link->source->index);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 951
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 952 return rval;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 953 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 954
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 955 dev_dbg(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 956 "validating multiplexed link \"%s\":%u -> \"%s\":%u; %u/%u routes\n",
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 957 link->source->entity->name, link->source->index,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 958 sink->entity.name, link->sink->index,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 959 src_routing.num_routes, sink_routing.num_routes);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 960
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 961 for (i = 0; i < sink_routing.num_routes; i++) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 962 /* Get the first active route for the sink pad. */
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 963 if (sink_routes[i].sink_pad != link->sink->index ||
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 964 !(sink_routes[i].flags & V4L2_SUBDEV_ROUTE_FL_ACTIVE)) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 965 dev_dbg(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 966 "skipping sink route %u/%u -> %u/%u[%u]\n",
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 967 sink_routes[i].sink_pad,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 968 sink_routes[i].sink_stream,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 969 sink_routes[i].source_pad,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 970 sink_routes[i].source_stream,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 971 (bool)(sink_routes[i].flags
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 972 & V4L2_SUBDEV_ROUTE_FL_ACTIVE));
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 973 continue;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 974 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 975
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 976 /*
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 977 * Get the corresponding route for the source pad.
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 978 * It's ok for the source pad to have routes active
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 979 * where the sink pad does not, but the routes that
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 980 * are active on the source pad have to be active on
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 981 * the sink pad as well.
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 982 */
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 983
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 984 for (j = 0; j < src_routing.num_routes; j++) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 985 if (src_routes[j].source_pad == link->source->index &&
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 986 src_routes[j].source_stream
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 987 == sink_routes[i].sink_stream)
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 988 break;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 989 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 990
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 991 if (j == src_routing.num_routes) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 992 dev_err(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 993 "no corresponding source found.\n");
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 994 return -EINVAL;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 995 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 996
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 997 /* The source route must be active. */
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 998 if (!(src_routes[j].flags & V4L2_SUBDEV_ROUTE_FL_ACTIVE)) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 999 dev_dbg(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1000 "source route not active\n");
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1001 return -EINVAL;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1002 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1003
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1004 dev_dbg(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1005 "validating link \"%s\": %u/%u => \"%s\" %u/%u\n",
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1006 link->source->entity->name, src_routes[j].source_pad,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1007 src_routes[j].source_stream, sink->entity.name,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1008 sink_routes[i].sink_pad, sink_routes[i].sink_stream);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1009
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1010 rval = v4l2_subdev_link_validate_one(
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1011 link, link->source, src_routes[j].source_stream,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1012 link->sink, sink_routes[i].sink_stream);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1013 if (rval) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1014 dev_dbg(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1015 "error %d in link validation\n", rval);
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1016 return rval;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1017 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1018 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1019
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1020 if (i < sink_routing.num_routes) {
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1021 dev_dbg(sink->entity.graph_obj.mdev->dev,
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1022 "not all sink routes verified; out of source routes\n");
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1023 return -EINVAL;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1024 }
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1025
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1026 return 0;
e822d33e27dd00 drivers/media/v4l2-core/v4l2-subdev.c wu xia 2016-06-13 1027 }
8227c92b696884 drivers/media/video/v4l2-subdev.c Sakari Ailus 2011-10-10 1028 EXPORT_SYMBOL_GPL(v4l2_subdev_link_validate);
9b02cbb3ede89b drivers/media/v4l2-core/v4l2-subdev.c Laurent Pinchart 2015-04-24 1029
:::::: The code at line 908 was first introduced by commit
:::::: e822d33e27dd00bb200f0e9db1811231554ce03c v4l: Take routing info into account in link validation
:::::: TO: wu xia <xia.wu@intel.com>
:::::: CC: Pan, Kris <kris.pan@intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-02-10 13:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-10 13:26 [intel-lts:5.10/yocto 10621/20393] drivers/media/v4l2-core/v4l2-subdev.c:908:5: warning: stack frame size (1392) exceeds limit (1024) in 'v4l2_subdev_link_validate' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.