Hi Sam, I love your patch! Yet something to improve: [auto build test ERROR on 2e337a8d14bd4b04913d52ccf076be29d846acd7] url: https://github.com/intel-lab-lkp/linux/commits/Sam-Ravnborg-via-B4-Submission-Endpoint/drm-komeda-Direct-include-headers-from-drm_print/20230122-041306 base: 2e337a8d14bd4b04913d52ccf076be29d846acd7 patch link: https://lore.kernel.org/r/20230113-drm-include-v1-v1-16-c5cf72d8a5a2%40ravnborg.org patch subject: [PATCH 16/86] drm/drm_print: Minimize include footprint config: i386-randconfig-a004 (https://download.01.org/0day-ci/archive/20230122/202301220750.HzZm1ZHu-lkp@xxxxxxxxx/config) compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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 # https://github.com/intel-lab-lkp/linux/commit/530d852970d1a75527031a4f23689f89f0a85804 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Sam-Ravnborg-via-B4-Submission-Endpoint/drm-komeda-Direct-include-headers-from-drm_print/20230122-041306 git checkout 530d852970d1a75527031a4f23689f89f0a85804 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/gpu/drm/drm_mode_object.c:195:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, kref_read(&obj->refcount)); ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_mode_object.c:212:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, kref_read(&obj->refcount)); ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ 2 errors generated. -- >> drivers/gpu/drm/drm_plane.c:278:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("out of memory when allocating plane\n"); ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:305:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("out of memory when allocating plane\n"); ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:789:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("Invalid crtc for plane\n"); ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:797:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("Invalid pixel format %p4cc, modifier 0x%llx\n", ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:807:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("Invalid CRTC coordinates %ux%u+%d+%d\n", ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:985:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("Unknown plane ID %d\n", ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:993:4: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("Unknown framebuffer ID %d\n", ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:1001:4: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("Unknown crtc ID %d\n", ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:1051:5: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("failed to wrap cursor buffer in drm framebuffer\n"); ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:1122:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG_KMS("Unknown CRTC ID %d\n", req->crtc_id); ^ include/drm/drm_print.h:573:2: note: expanded from macro 'DRM_DEBUG_KMS' __drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:1263:5: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("Invalid absolute flip target %u, " ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_plane.c:1272:5: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("Invalid relative flip target %u, " -- >> drivers/gpu/drm/drm_syncobj.c:301:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("You are adding an unorder point to timeline!\n"); ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ 1 error generated. -- >> drivers/gpu/drm/drm_vblank.c:318:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_vbl(dev, "crtc %u: Calculating number of vblanks." ^ include/drm/drm_print.h:499:2: note: expanded from macro 'drm_dbg_vbl' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:342:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_vbl(dev, ^ include/drm/drm_print.h:499:2: note: expanded from macro 'drm_dbg_vbl' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:348:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_vbl(dev, "updating vblank count on crtc %u:" ^ include/drm/drm_print.h:499:2: note: expanded from macro 'drm_dbg_vbl' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:494:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, "disabling vblank on crtc %u\n", pipe); ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:649:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:726:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, "crtc %u: Noop due to uninitialized mode.\n", ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:751:4: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:767:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:793:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_vbl(dev, ^ include/drm/drm_print.h:499:2: note: expanded from macro 'drm_dbg_vbl' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:1140:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, "enabling vblank on crtc %u, ret: %d\n", ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:1319:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_vbl(dev, "crtc %d, vblank enabled %d, inmodeset %d\n", ^ include/drm/drm_print.h:499:2: note: expanded from macro 'drm_dbg_vbl' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_VBL, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_vblank.c:1452:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_vbl(dev, "crtc %d, vblank enabled %d, inmodeset %d\n", -- >> drivers/gpu/drm/drm_vblank_work.c:141:3: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ 1 error generated. -- >> drivers/gpu/drm/drm_ioctl.c:443:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, "\n"); ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ drivers/gpu/drm/drm_ioctl.c:859:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] drm_dbg_core(dev, "comm=\"%s\" pid=%d, dev=0x%lx, auth=%d, %s\n", ^ include/drm/drm_print.h:489:2: note: expanded from macro 'drm_dbg_core' drm_dev_dbg((drm) ? (drm)->dev : NULL, DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:412:2: note: expanded from macro 'drm_dev_dbg' _dynamic_func_call_cls(cat, fmt, __drm_dev_dbg, \ ^ 2 errors generated. -- >> drivers/gpu/drm/drm_bufs.c:174:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("offset = 0x%08llx, size = 0x%08lx, type = %d\n", ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_bufs.c:911:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("count=%d, size=%d (%d), order=%d\n", ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_bufs.c:1139:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("count: %d\n", count); ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_bufs.c:1343:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("count = %d\n", count); ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_bufs.c:1420:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("%d, %d, %d\n", ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_bufs.c:1468:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("%d\n", request->count); ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ drivers/gpu/drm/drm_bufs.c:1568:2: error: implicit declaration of function '_dynamic_func_call_cls' is invalid in C99 [-Werror,-Wimplicit-function-declaration] DRM_DEBUG("%d buffers, retcode = %d\n", *p, retcode); ^ include/drm/drm_print.h:565:2: note: expanded from macro 'DRM_DEBUG' __drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) ^ include/drm/drm_print.h:526:2: note: expanded from macro '__drm_dbg' _dynamic_func_call_cls(cat, fmt, ___drm_dbg, \ ^ 7 errors generated. .. vim +/_dynamic_func_call_cls +195 drivers/gpu/drm/drm_mode_object.c 949619f32eee37 Daniel Vetter 2016-08-29 183 949619f32eee37 Daniel Vetter 2016-08-29 184 /** 020a218f95bd3c Thierry Reding 2017-02-28 185 * drm_mode_object_put - release a mode object reference 020a218f95bd3c Thierry Reding 2017-02-28 186 * @obj: DRM mode object 949619f32eee37 Daniel Vetter 2016-08-29 187 * a2511a557eb868 Daniel Vetter 2016-08-29 188 * This function decrements the object's refcount if it is a refcounted modeset 949619f32eee37 Daniel Vetter 2016-08-29 189 * object. It is a no-op on any other object. This is used to drop references 020a218f95bd3c Thierry Reding 2017-02-28 190 * acquired with drm_mode_object_get(). 949619f32eee37 Daniel Vetter 2016-08-29 191 */ 020a218f95bd3c Thierry Reding 2017-02-28 192 void drm_mode_object_put(struct drm_mode_object *obj) 949619f32eee37 Daniel Vetter 2016-08-29 193 { 949619f32eee37 Daniel Vetter 2016-08-29 194 if (obj->free_cb) { 2c935bc57221cc Peter Zijlstra 2016-11-14 @195 DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, kref_read(&obj->refcount)); 949619f32eee37 Daniel Vetter 2016-08-29 196 kref_put(&obj->refcount, obj->free_cb); 949619f32eee37 Daniel Vetter 2016-08-29 197 } 949619f32eee37 Daniel Vetter 2016-08-29 198 } 020a218f95bd3c Thierry Reding 2017-02-28 199 EXPORT_SYMBOL(drm_mode_object_put); 949619f32eee37 Daniel Vetter 2016-08-29 200 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests