Final set of drivers to use the new API - devm_drm_panel_alloc(). There are a lot of occurences of the panel allocation across the subsystem. Much thanks to Maxime for the semanic patch which actually gives a list of panels allocated unsafely.
virtual report @ find_add @ identifier add_f; identifier c; identifier b; expression d; position p; identifier r; type T; @@ add_f(...) { ... - T *c; + T *c; ... ( drm_panel_add(&c->b)@p; ) ... } @ find_allocation depends on find_add @ identifier alloc_f; type find_add.T; identifier cal; position p; @@ alloc_f(...) { ... - T *cal; + T *cal; ... ( cal = kzalloc(...)@p; | cal = devm_kzalloc(...)@p; ) ... } @ script:python depends on report && (find_add && find_allocation) @ add_f << find_add.add_f; alloc_f << find_allocation.alloc_f; add_p << find_add.p; alloc_p << find_allocation.p; @@ coccilib.report.print_report(alloc_p[0], "ERROR: Panel Driver is unsafely allocated in %s and added in %s" % (alloc_f, add_f)) The changes to the list of panels that this script gives is done manually. Very minor changes in this version - refactors, alignment fixes. With all drivers converted, next chunk of work is to add get() and put() to drm_panel_add() and drm_panel_remove(). First 2 parts already merged. Part 1 of the conversion : https://patchwork.freedesktop.org/series/147082/ Part 2 of the conversion : https://patchwork.freedesktop.org/series/147157/ Signed-off-by: Anusha Srivatsa <asriv...@redhat.com> --- Changes in v2: - simple refactors, if dev is already dereferenced use it (patch 8, 9, 21, 32) - fix alignment in 2 patches (patch 40 and 41) - Use the right connector in patch 23 - Link to v1: https://lore.kernel.org/r/20250403-b4-drm_panel_mass_driver_convert_part3-v1-0-965b15ad5...@redhat.com --- Anusha Srivatsa (46): panel/orisetech-otm8009a: Use refcounted allocation in place of devm_kzalloc() panel/raydium-rm67191: Use refcounted allocation in place of devm_kzalloc() panel/raydium-rm67200: Use refcounted allocation in place of devm_kzalloc() panel/raydium-rm68200: Use refcounted allocation in place of devm_kzalloc() panel/raydium-rm692e5: Use refcounted allocation in place of devm_kzalloc() panel/raydium-rm69380: Use refcounted allocation in place of devm_kzalloc() panel/ronbo-rb070d30: Use refcounted allocation in place of devm_kzalloc() panel/samsung-ams581vf01: Use refcounted allocation in place of devm_kzalloc() panel/samsung-ams639rq08: Use refcounted allocation in place of devm_kzalloc() panel/samsung-atna33xc20: Use refcounted allocation in place of devm_kzalloc() panel/samsung-db7430: Use refcounted allocation in place of devm_kzalloc() panel/samsung-ld9040: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6d16d0: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6d27a1: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6d7aa0: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6e3fa7: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6e3ha2: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6e3ha8: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6e63j0x03: Use refcounted allocation in place of devm_kzalloc() panel/s6e88a0-ams427ap24: Use refcounted allocation in place of devm_kzalloc() panel/samsung-s6e8aa0: Use refcounted allocation in place of devm_kzalloc() panel/samsung-sofef00: Use refcounted allocation in place of devm_kzalloc() panel/seiko-43wvf1g: Use refcounted allocation in place of devm_kzalloc() panel/sharp-ls037v7dw01: Use refcounted allocation in place of devm_kzalloc() panel/sharp-ls060t1sx01: Use refcounted allocation in place of devm_kzalloc() panel/sitronix-st7701: Use refcounted allocation in place of devm_kzalloc() panel/sitronix-st7703: Use refcounted allocation in place of devm_kzalloc() panel/sitronix-st7789v: Use refcounted allocation in place of devm_kzalloc() panel/sony-acx565akm: Use refcounted allocation in place of devm_kzalloc() panel/sony-td4353-jdi: Use refcounted allocation in place of devm_kzalloc() panel/truly-nt35521: Use refcounted allocation in place of devm_kzalloc() panel/panel-summit: Use refcounted allocation in place of devm_kzalloc() panel/synaptics-r63353: allocation in place of devm_kzalloc() panel/tpo-td028ttec1: Use refcounted allocation in place of devm_kzalloc() panel/tpo-td043mtea1: Use refcounted allocation in place of devm_kzalloc() panel/tpo-tpg110: Use refcounted allocation in place of devm_kzalloc() panel/visionox-r66451: Use refcounted allocation in place of devm_kzalloc() panel/visionox-rm69299: Use refcounted allocation in place of devm_kzalloc() panel/visionox-rm692e5.c: Use refcounted allocation in place of devm_kzalloc() panel/visionox-vtdr6130: Use refcounted allocation in place of devm_kzalloc() panel/widechips-ws2401: Use refcounted allocation in place of devm_kzalloc() panel/xinpeng-xpp055c272: Use refcounted allocation in place of devm_kzalloc() panel/s6e88a0-ams452ef01: Use refcounted allocation in place of devm_kzalloc() panel/nec-nl8048hl11: Use refcounted allocation in place of devm_kzalloc() panel/panel-lvds: Use refcounted allocation in place of devm_kzalloc() panel/lg-lb035q02: Use refcounted allocation in place of devm_kzalloc() drivers/gpu/drm/panel/panel-lg-lb035q02.c | 10 ++++------ drivers/gpu/drm/panel/panel-lvds.c | 12 +++++------- drivers/gpu/drm/panel/panel-nec-nl8048hl11.c | 10 ++++------ drivers/gpu/drm/panel/panel-orisetech-otm8009a.c | 11 +++++------ drivers/gpu/drm/panel/panel-raydium-rm67191.c | 10 +++++----- drivers/gpu/drm/panel/panel-raydium-rm67200.c | 11 +++++------ drivers/gpu/drm/panel/panel-raydium-rm68200.c | 11 +++++------ drivers/gpu/drm/panel/panel-raydium-rm692e5.c | 10 +++++----- drivers/gpu/drm/panel/panel-raydium-rm69380.c | 10 +++++----- drivers/gpu/drm/panel/panel-ronbo-rb070d30.c | 11 +++++------ drivers/gpu/drm/panel/panel-samsung-ams581vf01.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-ams639rq08.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 11 ++++++----- drivers/gpu/drm/panel/panel-samsung-db7430.c | 11 +++++------ drivers/gpu/drm/panel/panel-samsung-ld9040.c | 11 +++++------ drivers/gpu/drm/panel/panel-samsung-s6d16d0.c | 11 +++++------ drivers/gpu/drm/panel/panel-samsung-s6d27a1.c | 11 +++++------ drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-s6e3fa7.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams427ap24.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c | 11 +++++------ drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c | 10 +++++----- drivers/gpu/drm/panel/panel-samsung-sofef00.c | 11 +++++------ drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 11 +++++------ drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c | 10 ++++------ drivers/gpu/drm/panel/panel-sharp-ls060t1sx01.c | 11 +++++------ drivers/gpu/drm/panel/panel-sitronix-st7701.c | 8 ++++---- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 11 +++++------ drivers/gpu/drm/panel/panel-sitronix-st7789v.c | 10 ++++------ drivers/gpu/drm/panel/panel-sony-acx565akm.c | 10 ++++------ drivers/gpu/drm/panel/panel-sony-td4353-jdi.c | 11 +++++------ drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c | 11 +++++------ drivers/gpu/drm/panel/panel-summit.c | 10 +++++----- drivers/gpu/drm/panel/panel-synaptics-r63353.c | 11 +++++------ drivers/gpu/drm/panel/panel-tpo-td028ttec1.c | 11 +++++------ drivers/gpu/drm/panel/panel-tpo-td043mtea1.c | 10 ++++------ drivers/gpu/drm/panel/panel-tpo-tpg110.c | 11 +++++------ drivers/gpu/drm/panel/panel-visionox-r66451.c | 9 +++++---- drivers/gpu/drm/panel/panel-visionox-rm69299.c | 10 +++++----- drivers/gpu/drm/panel/panel-visionox-rm692e5.c | 10 +++++----- drivers/gpu/drm/panel/panel-visionox-vtdr6130.c | 11 +++++------ drivers/gpu/drm/panel/panel-widechips-ws2401.c | 11 +++++------ drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c | 10 ++++------ 46 files changed, 223 insertions(+), 257 deletions(-) --- base-commit: ef818481d9fbaf3483dde0d1faa565a016810de3 change-id: 20250402-b4-drm_panel_mass_driver_convert_part3-9b06bf9d3b22 Best regards, -- Anusha Srivatsa <asriv...@redhat.com>