Take the panel reference and put it back as required
using the helpers introduced in previous patch.
drm_panel_add() and drm_panel_remove()
add a panel to the global registry and removes a panel
respectively, use get() and put() helpers to keep up
with refcounting.
Signed-off-by: Anusha Srivatsa <asrivats@redhat.com>
---
drivers/gpu/drm/drm_panel.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c
index 079c3c666a2ddc99a0051d1a3c9ba65d986dd003..11a0415bc61f59190ef5eb378d1583c493265e6a 100644
--- a/drivers/gpu/drm/drm_panel.c
+++ b/drivers/gpu/drm/drm_panel.c
@@ -79,6 +79,7 @@ EXPORT_SYMBOL(drm_panel_init);
*/
void drm_panel_add(struct drm_panel *panel)
{
+ drm_panel_get(panel);
mutex_lock(&panel_lock);
list_add_tail(&panel->list, &panel_list);
mutex_unlock(&panel_lock);
@@ -96,6 +97,7 @@ void drm_panel_remove(struct drm_panel *panel)
mutex_lock(&panel_lock);
list_del_init(&panel->list);
mutex_unlock(&panel_lock);
+ drm_panel_put(panel);
}
EXPORT_SYMBOL(drm_panel_remove);
--
2.48.1
On Tue, Mar 25, 2025 at 01:24:10PM -0400, Anusha Srivatsa wrote: > Take the panel reference and put it back as required > using the helpers introduced in previous patch. > drm_panel_add() and drm_panel_remove() > add a panel to the global registry and removes a panel > respectively, use get() and put() helpers to keep up > with refcounting. > > Signed-off-by: Anusha Srivatsa <asrivats@redhat.com> We should defer merging that patch until we have converted all the panel drivers to the new allocation function. Maxime
On Tue, 25 Mar 2025 13:24:10 -0400 Anusha Srivatsa <asrivats@redhat.com> wrote: > Take the panel reference and put it back as required > using the helpers introduced in previous patch. > drm_panel_add() and drm_panel_remove() > add a panel to the global registry and removes a panel > respectively, use get() and put() helpers to keep up > with refcounting. > > Signed-off-by: Anusha Srivatsa <asrivats@redhat.com> This is OK but is should not be applied until all panel drivers are converted to the new devm_drm_panel_alloc() API. Otherwise for not-yet-converted panel drivers drm_panel_get/put() would operate on an uninitialized kref. See [0]. # Do not apply until all panel drivers are converted! Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> [0] https://lore.kernel.org/all/20250317155607.68cff522@booty/ -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
Hi Anusha, kernel test robot noticed the following build errors: [auto build test ERROR on c8ba07caaecc622a9922cda49f24790821af8a71] url: https://github.com/intel-lab-lkp/linux/commits/Anusha-Srivatsa/drm-panel-Add-new-helpers-for-refcounted-panel-allocatons/20250326-012651 base: c8ba07caaecc622a9922cda49f24790821af8a71 patch link: https://lore.kernel.org/r/20250325-b4-panel-refcounting-v1-3-4e2bf5d19c5d%40redhat.com patch subject: [PATCH 3/5] drm/panel: get/put panel reference in drm_panel_add/remove() config: hexagon-randconfig-002-20250326 (https://download.01.org/0day-ci/archive/20250326/202503261119.h0EEYLFA-lkp@intel.com/config) compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project c2692afc0a92cd5da140dfcdfff7818a5b8ce997) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250326/202503261119.h0EEYLFA-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202503261119.h0EEYLFA-lkp@intel.com/ All errors (new ones prefixed by >>): >> ld.lld: error: undefined symbol: drm_panel_get >>> referenced by drm_panel.c:82 (drivers/gpu/drm/drm_panel.c:82) >>> drivers/gpu/drm/drm_panel.o:(drm_panel_add) in archive vmlinux.a >>> referenced by drm_panel.c:82 (drivers/gpu/drm/drm_panel.c:82) >>> drivers/gpu/drm/drm_panel.o:(drm_panel_add) in archive vmlinux.a -- >> ld.lld: error: undefined symbol: drm_panel_put >>> referenced by drm_panel.c:100 (drivers/gpu/drm/drm_panel.c:100) >>> drivers/gpu/drm/drm_panel.o:(drm_panel_remove) in archive vmlinux.a >>> referenced by drm_panel.c:100 (drivers/gpu/drm/drm_panel.c:100) >>> drivers/gpu/drm/drm_panel.o:(drm_panel_remove) in archive vmlinux.a -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
Hi Anusha, kernel test robot noticed the following build errors: [auto build test ERROR on c8ba07caaecc622a9922cda49f24790821af8a71] url: https://github.com/intel-lab-lkp/linux/commits/Anusha-Srivatsa/drm-panel-Add-new-helpers-for-refcounted-panel-allocatons/20250326-012651 base: c8ba07caaecc622a9922cda49f24790821af8a71 patch link: https://lore.kernel.org/r/20250325-b4-panel-refcounting-v1-3-4e2bf5d19c5d%40redhat.com patch subject: [PATCH 3/5] drm/panel: get/put panel reference in drm_panel_add/remove() config: xtensa-randconfig-001-20250326 (https://download.01.org/0day-ci/archive/20250326/202503260710.gDo7vXVR-lkp@intel.com/config) compiler: xtensa-linux-gcc (GCC) 7.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250326/202503260710.gDo7vXVR-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202503260710.gDo7vXVR-lkp@intel.com/ All errors (new ones prefixed by >>, old ones prefixed by <<): WARNING: modpost: missing MODULE_DESCRIPTION() in arch/xtensa/platforms/iss/simdisk.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/slub_kunit.o >> ERROR: modpost: "drm_panel_put" [drivers/gpu/drm/drm.ko] undefined! >> ERROR: modpost: "drm_panel_get" [drivers/gpu/drm/drm.ko] undefined! -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
© 2016 - 2025 Red Hat, Inc.