Hi Helen, I love your patch! Perhaps something to improve: [auto build test WARNING on linuxtv-media/master] [also build test WARNING on v5.6 next-20200404] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Helen-Koike/media-add-v4l2_pipeline_stream_-enable-disable-helpers/20200405-050004 base: git://linuxtv.org/media_tree.git master config: x86_64-randconfig-g003-20200405 (attached as .config) compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): drivers/media/v4l2-core/v4l2-common.c: In function 'v4l2_pipeline_subdevs_get': drivers/media/v4l2-core/v4l2-common.c:463:37: error: 'struct video_device' has no member named 'entity' struct media_entity *entity = &vdev->entity; ^~ In file included from include/linux/export.h:43:0, from include/linux/linkage.h:7, from include/linux/kernel.h:8, from include/linux/list.h:9, from include/linux/module.h:12, from drivers/media/v4l2-core/v4l2-common.c:37: include/linux/kernel.h:987:51: error: 'struct v4l2_subdev' has no member named 'entity' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/compiler.h:330:9: note: in definition of macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ include/linux/compiler.h:350:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:987:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:987:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ include/media/v4l2-subdev.h:888:3: note: in expansion of macro 'container_of' container_of(__me_sd_ent, struct v4l2_subdev, entity) : \ ^~~~~~~~~~~~ drivers/media/v4l2-core/v4l2-common.c:491:20: note: in expansion of macro 'media_entity_to_v4l2_subdev' subdevs[idx++] = media_entity_to_v4l2_subdev(entity); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from <command-line>:0:0: include/linux/compiler_types.h:129:35: error: 'struct v4l2_subdev' has no member named 'entity' #define __compiler_offsetof(a, b) __builtin_offsetof(a, b) ^ include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof' #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) ^~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:990:21: note: in expansion of macro 'offsetof' ((type *)(__mptr - offsetof(type, member))); }) ^~~~~~~~ include/media/v4l2-subdev.h:888:3: note: in expansion of macro 'container_of' container_of(__me_sd_ent, struct v4l2_subdev, entity) : \ ^~~~~~~~~~~~ drivers/media/v4l2-core/v4l2-common.c:491:20: note: in expansion of macro 'media_entity_to_v4l2_subdev' subdevs[idx++] = media_entity_to_v4l2_subdev(entity); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/v4l2-core/v4l2-common.c: In function 'v4l2_pipeline_stream_enable': drivers/media/v4l2-core/v4l2-common.c:499:34: error: 'struct video_device' has no member named 'entity' struct media_device *mdev = vdev->entity.graph_obj.mdev; ^~ In file included from include/linux/printk.h:331:0, from include/linux/kernel.h:15, from include/linux/list.h:9, from include/linux/module.h:12, from drivers/media/v4l2-core/v4l2-common.c:37: drivers/media/v4l2-core/v4l2-common.c:514:36: error: 'struct v4l2_subdev' has no member named 'entity' "enabling stream for '%s'\n", sd->entity.name); ^ include/linux/dynamic_debug.h:125:15: note: in definition of macro '__dynamic_func_call' func(&id, ##__VA_ARGS__); \ ^~~~~~~~~~~ include/linux/dynamic_debug.h:157:2: note: in expansion of macro '_dynamic_func_call' _dynamic_func_call(fmt,__dynamic_dev_dbg, \ ^~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:114:2: note: in expansion of macro 'dynamic_dev_dbg' dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~ >> drivers/media/v4l2-core/v4l2-common.c:513:3: note: in expansion of macro 'dev_dbg' dev_dbg(mdev->dev, ^~~~~~~ drivers/media/v4l2-core/v4l2-common.c:529:37: error: 'struct v4l2_subdev' has no member named 'entity' "disabling stream for '%s'\n", sd->entity.name); ^ include/linux/dynamic_debug.h:125:15: note: in definition of macro '__dynamic_func_call' func(&id, ##__VA_ARGS__); \ ^~~~~~~~~~~ include/linux/dynamic_debug.h:157:2: note: in expansion of macro '_dynamic_func_call' _dynamic_func_call(fmt,__dynamic_dev_dbg, \ ^~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:114:2: note: in expansion of macro 'dynamic_dev_dbg' dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~ drivers/media/v4l2-core/v4l2-common.c:528:3: note: in expansion of macro 'dev_dbg' dev_dbg(mdev->dev, ^~~~~~~ drivers/media/v4l2-core/v4l2-common.c: In function 'v4l2_pipeline_stream_disable': drivers/media/v4l2-core/v4l2-common.c:540:34: error: 'struct video_device' has no member named 'entity' struct media_device *mdev = vdev->entity.graph_obj.mdev; ^~ In file included from include/linux/printk.h:331:0, from include/linux/kernel.h:15, from include/linux/list.h:9, from include/linux/module.h:12, from drivers/media/v4l2-core/v4l2-common.c:37: drivers/media/v4l2-core/v4l2-common.c:554:37: error: 'struct v4l2_subdev' has no member named 'entity' "disabling stream for '%s'\n", sd->entity.name); ^ include/linux/dynamic_debug.h:125:15: note: in definition of macro '__dynamic_func_call' func(&id, ##__VA_ARGS__); \ ^~~~~~~~~~~ include/linux/dynamic_debug.h:157:2: note: in expansion of macro '_dynamic_func_call' _dynamic_func_call(fmt,__dynamic_dev_dbg, \ ^~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:114:2: note: in expansion of macro 'dynamic_dev_dbg' dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~ drivers/media/v4l2-core/v4l2-common.c:553:3: note: in expansion of macro 'dev_dbg' dev_dbg(mdev->dev, ^~~~~~~ vim +/dev_dbg +513 drivers/media/v4l2-core/v4l2-common.c 496 497 __must_check int v4l2_pipeline_stream_enable(struct video_device *vdev) 498 { 499 struct media_device *mdev = vdev->entity.graph_obj.mdev; 500 struct v4l2_subdev *subdevs[MEDIA_ENTITY_ENUM_MAX_DEPTH]; 501 struct v4l2_subdev *sd; 502 unsigned int i, size; 503 int ret; 504 505 mutex_lock(&mdev->graph_mutex); 506 507 size = v4l2_pipeline_subdevs_get(vdev, subdevs, ARRAY_SIZE(subdevs)); 508 509 for (i = 0; i < size; i++) { 510 sd = subdevs[i]; 511 if (sd->stream_count++) 512 continue; > 513 dev_dbg(mdev->dev, 514 "enabling stream for '%s'\n", sd->entity.name); 515 ret = v4l2_subdev_call(sd, video, s_stream, true); 516 if (ret && ret != -ENOIOCTLCMD) 517 goto err_stream_disable; 518 } 519 520 mutex_unlock(&mdev->graph_mutex); 521 return 0; 522 523 err_stream_disable: 524 do { 525 sd = subdevs[i]; 526 if (--sd->stream_count) 527 continue; 528 dev_dbg(mdev->dev, 529 "disabling stream for '%s'\n", sd->entity.name); 530 v4l2_subdev_call(sd, video, s_stream, false); 531 } while (i--); 532 533 mutex_unlock(&mdev->graph_mutex); 534 return ret; 535 } 536 EXPORT_SYMBOL_GPL(v4l2_pipeline_stream_enable); 537 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip