tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: fe07bfda2fb9cdef8a4d4008a409bb02f35f1bd8 commit: bb00a452d6f77391441ef7df48f7115dd459cd2f drm/msm/dpu: Refactor resource manager config: arm64-randconfig-m031-20210301 (attached as .config) compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> Reported-by: Dan Carpenter <dan.carpen...@oracle.com> New smatch warnings: drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:106 dpu_rm_init() warn: passing zero to 'PTR_ERR' Old smatch warnings: drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:135 dpu_rm_init() warn: passing zero to 'PTR_ERR' drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:157 dpu_rm_init() warn: passing zero to 'PTR_ERR' drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:174 dpu_rm_init() warn: passing zero to 'PTR_ERR' vim +/PTR_ERR +106 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 74 int dpu_rm_init(struct dpu_rm *rm, 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 75 struct dpu_mdss_cfg *cat, 3763f1a5511005 Jeykumar Sankaran 2018-12-07 76 void __iomem *mmio) 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 77 { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 78 int rc, i; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 79 3763f1a5511005 Jeykumar Sankaran 2018-12-07 80 if (!rm || !cat || !mmio) { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 81 DPU_ERROR("invalid kms\n"); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 82 return -EINVAL; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 83 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 84 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 85 /* Clear, setup lists */ 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 86 memset(rm, 0, sizeof(*rm)); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 87 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 88 mutex_init(&rm->rm_lock); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 89 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 90 /* Interrogate HW catalog and create tracking items for hw blocks */ 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 91 for (i = 0; i < cat->mixer_count; i++) { bb00a452d6f773 Drew Davenport 2020-02-19 92 struct dpu_hw_mixer *hw; abda0d925f9c06 Stephen Boyd 2019-11-19 93 const struct dpu_lm_cfg *lm = &cat->mixer[i]; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 94 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 95 if (lm->pingpong == PINGPONG_MAX) { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 96 DPU_DEBUG("skip mixer %d without pingpong\n", lm->id); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 97 continue; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 98 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 99 bb00a452d6f773 Drew Davenport 2020-02-19 100 if (lm->id < LM_0 || lm->id >= LM_MAX) { bb00a452d6f773 Drew Davenport 2020-02-19 101 DPU_ERROR("skip mixer %d with invalid id\n", lm->id); bb00a452d6f773 Drew Davenport 2020-02-19 102 continue; bb00a452d6f773 Drew Davenport 2020-02-19 103 } bb00a452d6f773 Drew Davenport 2020-02-19 104 hw = dpu_hw_lm_init(lm->id, mmio, cat); bb00a452d6f773 Drew Davenport 2020-02-19 105 if (IS_ERR_OR_NULL(hw)) { bb00a452d6f773 Drew Davenport 2020-02-19 @106 rc = PTR_ERR(hw); The dpu_hw_lm_init() never returns NULL... bb00a452d6f773 Drew Davenport 2020-02-19 107 DPU_ERROR("failed lm object creation: err %d\n", rc); If it did, then the NULL returns are a special kind of success and they should not result in an error message. 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 108 goto fail; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 109 } bb00a452d6f773 Drew Davenport 2020-02-19 110 rm->mixer_blks[lm->id - LM_0] = &hw->base; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 111 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 112 if (!rm->lm_max_width) { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 113 rm->lm_max_width = lm->sblk->maxwidth; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 114 } else if (rm->lm_max_width != lm->sblk->maxwidth) { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 115 /* 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 116 * Don't expect to have hw where lm max widths differ. 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 117 * If found, take the min. 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 118 */ 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 119 DPU_ERROR("unsupported: lm maxwidth differs\n"); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 120 if (rm->lm_max_width > lm->sblk->maxwidth) 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 121 rm->lm_max_width = lm->sblk->maxwidth; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 122 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 123 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 124 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 125 for (i = 0; i < cat->pingpong_count; i++) { bb00a452d6f773 Drew Davenport 2020-02-19 126 struct dpu_hw_pingpong *hw; bb00a452d6f773 Drew Davenport 2020-02-19 127 const struct dpu_pingpong_cfg *pp = &cat->pingpong[i]; bb00a452d6f773 Drew Davenport 2020-02-19 128 bb00a452d6f773 Drew Davenport 2020-02-19 129 if (pp->id < PINGPONG_0 || pp->id >= PINGPONG_MAX) { bb00a452d6f773 Drew Davenport 2020-02-19 130 DPU_ERROR("skip pingpong %d with invalid id\n", pp->id); bb00a452d6f773 Drew Davenport 2020-02-19 131 continue; bb00a452d6f773 Drew Davenport 2020-02-19 132 } bb00a452d6f773 Drew Davenport 2020-02-19 133 hw = dpu_hw_pingpong_init(pp->id, mmio, cat); bb00a452d6f773 Drew Davenport 2020-02-19 134 if (IS_ERR_OR_NULL(hw)) { bb00a452d6f773 Drew Davenport 2020-02-19 135 rc = PTR_ERR(hw); bb00a452d6f773 Drew Davenport 2020-02-19 136 DPU_ERROR("failed pingpong object creation: err %d\n", bb00a452d6f773 Drew Davenport 2020-02-19 137 rc); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 138 goto fail; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 139 } bb00a452d6f773 Drew Davenport 2020-02-19 140 rm->pingpong_blks[pp->id - PINGPONG_0] = &hw->base; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 141 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 142 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 143 for (i = 0; i < cat->intf_count; i++) { bb00a452d6f773 Drew Davenport 2020-02-19 144 struct dpu_hw_intf *hw; bb00a452d6f773 Drew Davenport 2020-02-19 145 const struct dpu_intf_cfg *intf = &cat->intf[i]; bb00a452d6f773 Drew Davenport 2020-02-19 146 bb00a452d6f773 Drew Davenport 2020-02-19 147 if (intf->type == INTF_NONE) { 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 148 DPU_DEBUG("skip intf %d with type none\n", i); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 149 continue; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 150 } bb00a452d6f773 Drew Davenport 2020-02-19 151 if (intf->id < INTF_0 || intf->id >= INTF_MAX) { bb00a452d6f773 Drew Davenport 2020-02-19 152 DPU_ERROR("skip intf %d with invalid id\n", intf->id); bb00a452d6f773 Drew Davenport 2020-02-19 153 continue; bb00a452d6f773 Drew Davenport 2020-02-19 154 } bb00a452d6f773 Drew Davenport 2020-02-19 155 hw = dpu_hw_intf_init(intf->id, mmio, cat); bb00a452d6f773 Drew Davenport 2020-02-19 156 if (IS_ERR_OR_NULL(hw)) { bb00a452d6f773 Drew Davenport 2020-02-19 157 rc = PTR_ERR(hw); bb00a452d6f773 Drew Davenport 2020-02-19 158 DPU_ERROR("failed intf object creation: err %d\n", rc); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 159 goto fail; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 160 } bb00a452d6f773 Drew Davenport 2020-02-19 161 rm->intf_blks[intf->id - INTF_0] = &hw->base; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 162 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 163 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 164 for (i = 0; i < cat->ctl_count; i++) { bb00a452d6f773 Drew Davenport 2020-02-19 165 struct dpu_hw_ctl *hw; bb00a452d6f773 Drew Davenport 2020-02-19 166 const struct dpu_ctl_cfg *ctl = &cat->ctl[i]; bb00a452d6f773 Drew Davenport 2020-02-19 167 bb00a452d6f773 Drew Davenport 2020-02-19 168 if (ctl->id < CTL_0 || ctl->id >= CTL_MAX) { bb00a452d6f773 Drew Davenport 2020-02-19 169 DPU_ERROR("skip ctl %d with invalid id\n", ctl->id); bb00a452d6f773 Drew Davenport 2020-02-19 170 continue; bb00a452d6f773 Drew Davenport 2020-02-19 171 } bb00a452d6f773 Drew Davenport 2020-02-19 172 hw = dpu_hw_ctl_init(ctl->id, mmio, cat); bb00a452d6f773 Drew Davenport 2020-02-19 173 if (IS_ERR_OR_NULL(hw)) { bb00a452d6f773 Drew Davenport 2020-02-19 174 rc = PTR_ERR(hw); bb00a452d6f773 Drew Davenport 2020-02-19 175 DPU_ERROR("failed ctl object creation: err %d\n", rc); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 176 goto fail; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 177 } bb00a452d6f773 Drew Davenport 2020-02-19 178 rm->ctl_blks[ctl->id - CTL_0] = &hw->base; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 179 } 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 180 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 181 return 0; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 182 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 183 fail: 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 184 dpu_rm_destroy(rm); 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 185 bb00a452d6f773 Drew Davenport 2020-02-19 186 return rc ? rc : -EFAULT; 25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 187 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip