All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:106 dpu_rm_init() warn: passing zero to 'PTR_ERR'
Date: Mon, 01 Mar 2021 10:04:38 +0300	[thread overview]
Message-ID: <20210301070437.GN2087@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 9928 bytes --]

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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@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-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32899 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:106 dpu_rm_init() warn: passing zero to 'PTR_ERR'
Date: Mon, 01 Mar 2021 10:04:38 +0300	[thread overview]
Message-ID: <20210301070437.GN2087@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 9928 bytes --]

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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@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-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32899 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Drew Davenport <ddavenport@chromium.org>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org, Rob Clark <robdclark@chromium.org>
Subject: drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:106 dpu_rm_init() warn: passing zero to 'PTR_ERR'
Date: Mon, 1 Mar 2021 10:04:38 +0300	[thread overview]
Message-ID: <20210301070437.GN2087@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 9781 bytes --]

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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@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-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 32899 bytes --]

             reply	other threads:[~2021-03-01  7:04 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-01  7:04 Dan Carpenter [this message]
2021-03-01  7:04 ` drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:106 dpu_rm_init() warn: passing zero to 'PTR_ERR' Dan Carpenter
2021-03-01  7:04 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2021-03-01  3:23 kernel test robot
2021-02-09  8:37 Dan Carpenter
2021-02-09  8:37 ` Dan Carpenter
2021-02-09  8:37 ` Dan Carpenter
2021-02-09  6:06 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210301070437.GN2087@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.