Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm: fix -Wformat-security warnings

Passing a variable string as a printf style format is potentially
dangerous that -Wformat-security can warn about if enabled. A new
instance just got added:

drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c: In function 'dpu_kms_mdp_snapshot':
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:1046:49: error: format not a string literal and no format arguments [-Werror=format-security]
1046 | vbif->name);
| ~~~~^~~~~~

Fix this one and the preexisting -Wformat-security warnings the in the
DRM code for snapdragon.

Fixes: 1a40bb31fcf1 ("drm/msm/dpu: Add VBIF to DPU snapshot") # and others
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/629126/
Link: https://lore.kernel.org/r/20241216083319.1838449-1-arnd@kernel.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

authored by

Arnd Bergmann and committed by
Dmitry Baryshkov
49c2e01b 3a7a4beb

+19 -11
+1 -1
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
··· 1265 1265 bo->virt = msm_gem_get_vaddr(bo->obj); 1266 1266 bo->size = size; 1267 1267 1268 - msm_gem_object_set_name(bo->obj, name); 1268 + msm_gem_object_set_name(bo->obj, "%s", name); 1269 1269 1270 1270 return 0; 1271 1271 }
+18 -10
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
··· 938 938 /* dump CTL sub-blocks HW regs info */ 939 939 for (i = 0; i < cat->ctl_count; i++) 940 940 msm_disp_snapshot_add_block(disp_state, cat->ctl[i].len, 941 - dpu_kms->mmio + cat->ctl[i].base, cat->ctl[i].name); 941 + dpu_kms->mmio + cat->ctl[i].base, "%s", 942 + cat->ctl[i].name); 942 943 943 944 /* dump DSPP sub-blocks HW regs info */ 944 945 for (i = 0; i < cat->dspp_count; i++) { 945 946 base = dpu_kms->mmio + cat->dspp[i].base; 946 - msm_disp_snapshot_add_block(disp_state, cat->dspp[i].len, base, cat->dspp[i].name); 947 + msm_disp_snapshot_add_block(disp_state, cat->dspp[i].len, base, 948 + "%s", cat->dspp[i].name); 947 949 948 950 if (cat->dspp[i].sblk && cat->dspp[i].sblk->pcc.len > 0) 949 951 msm_disp_snapshot_add_block(disp_state, cat->dspp[i].sblk->pcc.len, ··· 957 955 /* dump INTF sub-blocks HW regs info */ 958 956 for (i = 0; i < cat->intf_count; i++) 959 957 msm_disp_snapshot_add_block(disp_state, cat->intf[i].len, 960 - dpu_kms->mmio + cat->intf[i].base, cat->intf[i].name); 958 + dpu_kms->mmio + cat->intf[i].base, "%s", 959 + cat->intf[i].name); 961 960 962 961 /* dump PP sub-blocks HW regs info */ 963 962 for (i = 0; i < cat->pingpong_count; i++) { 964 963 base = dpu_kms->mmio + cat->pingpong[i].base; 965 964 msm_disp_snapshot_add_block(disp_state, cat->pingpong[i].len, base, 966 - cat->pingpong[i].name); 965 + "%s", cat->pingpong[i].name); 967 966 968 967 /* TE2 sub-block has length of 0, so will not print it */ 969 968 ··· 978 975 /* dump SSPP sub-blocks HW regs info */ 979 976 for (i = 0; i < cat->sspp_count; i++) { 980 977 base = dpu_kms->mmio + cat->sspp[i].base; 981 - msm_disp_snapshot_add_block(disp_state, cat->sspp[i].len, base, cat->sspp[i].name); 978 + msm_disp_snapshot_add_block(disp_state, cat->sspp[i].len, base, 979 + "%s", cat->sspp[i].name); 982 980 983 981 if (cat->sspp[i].sblk && cat->sspp[i].sblk->scaler_blk.len > 0) 984 982 msm_disp_snapshot_add_block(disp_state, cat->sspp[i].sblk->scaler_blk.len, ··· 997 993 /* dump LM sub-blocks HW regs info */ 998 994 for (i = 0; i < cat->mixer_count; i++) 999 995 msm_disp_snapshot_add_block(disp_state, cat->mixer[i].len, 1000 - dpu_kms->mmio + cat->mixer[i].base, cat->mixer[i].name); 996 + dpu_kms->mmio + cat->mixer[i].base, 997 + "%s", cat->mixer[i].name); 1001 998 1002 999 /* dump WB sub-blocks HW regs info */ 1003 1000 for (i = 0; i < cat->wb_count; i++) 1004 1001 msm_disp_snapshot_add_block(disp_state, cat->wb[i].len, 1005 - dpu_kms->mmio + cat->wb[i].base, cat->wb[i].name); 1002 + dpu_kms->mmio + cat->wb[i].base, "%s", 1003 + cat->wb[i].name); 1006 1004 1007 1005 if (cat->mdp[0].features & BIT(DPU_MDP_PERIPH_0_REMOVED)) { 1008 1006 msm_disp_snapshot_add_block(disp_state, MDP_PERIPH_TOP0, ··· 1019 1013 /* dump DSC sub-blocks HW regs info */ 1020 1014 for (i = 0; i < cat->dsc_count; i++) { 1021 1015 base = dpu_kms->mmio + cat->dsc[i].base; 1022 - msm_disp_snapshot_add_block(disp_state, cat->dsc[i].len, base, cat->dsc[i].name); 1016 + msm_disp_snapshot_add_block(disp_state, cat->dsc[i].len, base, 1017 + "%s", cat->dsc[i].name); 1023 1018 1024 1019 if (cat->dsc[i].features & BIT(DPU_DSC_HW_REV_1_2)) { 1025 1020 struct dpu_dsc_blk enc = cat->dsc[i].sblk->enc; ··· 1035 1028 1036 1029 if (cat->cdm) 1037 1030 msm_disp_snapshot_add_block(disp_state, cat->cdm->len, 1038 - dpu_kms->mmio + cat->cdm->base, cat->cdm->name); 1031 + dpu_kms->mmio + cat->cdm->base, 1032 + "%s", cat->cdm->name); 1039 1033 1040 1034 for (i = 0; i < dpu_kms->catalog->vbif_count; i++) { 1041 1035 const struct dpu_vbif_cfg *vbif = &dpu_kms->catalog->vbif[i]; 1042 1036 1043 1037 msm_disp_snapshot_add_block(disp_state, vbif->len, 1044 1038 dpu_kms->vbif[vbif->id] + vbif->base, 1045 - vbif->name); 1039 + "%s", vbif->name); 1046 1040 } 1047 1041 1048 1042 pm_runtime_put_sync(&dpu_kms->pdev->dev);