CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Maxime Ripard <[email protected]>
CC: Laurent Pinchart <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   e99d8a8495175df8cb8b739f8cf9b0fc9d0cd3b5
commit: dec92020671c48da231189eb06a5f755f492f87f [615/11648] drm: Use the state 
pointer directly in planes atomic_check
:::::: branch date: 11 hours ago
:::::: commit date: 6 weeks ago
config: arm-randconfig-m031-20210409 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/gpu/drm/armada/armada_plane.c:124 armada_drm_plane_atomic_check() warn: 
variable dereferenced before check 'state' (see line 111)

vim +/state +124 drivers/gpu/drm/armada/armada_plane.c

d40af7b1ae23da7 Russell King  2018-07-30  107  
d40af7b1ae23da7 Russell King  2018-07-30  108  int 
armada_drm_plane_atomic_check(struct drm_plane *plane,
7c11b99a8e58c08 Maxime Ripard 2021-02-19  109   struct drm_atomic_state *state)
d40af7b1ae23da7 Russell King  2018-07-30  110  {
7c11b99a8e58c08 Maxime Ripard 2021-02-19 @111   struct drm_plane_state 
*new_plane_state = drm_atomic_get_new_plane_state(state,
7c11b99a8e58c08 Maxime Ripard 2021-02-19  112                                   
                                         plane);
ba5c1649465d40a Maxime Ripard 2021-02-19  113   struct armada_plane_state *st = 
to_armada_plane_state(new_plane_state);
ba5c1649465d40a Maxime Ripard 2021-02-19  114   struct drm_crtc *crtc = 
new_plane_state->crtc;
d40af7b1ae23da7 Russell King  2018-07-30  115   struct drm_crtc_state 
*crtc_state;
1d1547ec12bc7d4 Russell King  2019-01-25  116   bool interlace;
1d1547ec12bc7d4 Russell King  2019-01-25  117   int ret;
1d1547ec12bc7d4 Russell King  2019-01-25  118  
ba5c1649465d40a Maxime Ripard 2021-02-19  119   if (!new_plane_state->fb || 
WARN_ON(!new_plane_state->crtc)) {
ba5c1649465d40a Maxime Ripard 2021-02-19  120           
new_plane_state->visible = false;
1d1547ec12bc7d4 Russell King  2019-01-25  121           return 0;
1d1547ec12bc7d4 Russell King  2019-01-25  122   }
d40af7b1ae23da7 Russell King  2018-07-30  123  
dec92020671c48d Maxime Ripard 2021-02-19 @124   if (state)
dec92020671c48d Maxime Ripard 2021-02-19  125           crtc_state = 
drm_atomic_get_existing_crtc_state(state,
ba5c1649465d40a Maxime Ripard 2021-02-19  126                                   
                        crtc);
d40af7b1ae23da7 Russell King  2018-07-30  127   else
d40af7b1ae23da7 Russell King  2018-07-30  128           crtc_state = 
crtc->state;
1d1547ec12bc7d4 Russell King  2019-01-25  129  
ba5c1649465d40a Maxime Ripard 2021-02-19  130   ret = 
drm_atomic_helper_check_plane_state(new_plane_state, crtc_state,
ba5c1649465d40a Maxime Ripard 2021-02-19  131                                   
          0,
1d1547ec12bc7d4 Russell King  2019-01-25  132                                   
          INT_MAX, true, false);
1d1547ec12bc7d4 Russell King  2019-01-25  133   if (ret)
1d1547ec12bc7d4 Russell King  2019-01-25  134           return ret;
1d1547ec12bc7d4 Russell King  2019-01-25  135  
1d1547ec12bc7d4 Russell King  2019-01-25  136   interlace = 
crtc_state->adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE;
1d1547ec12bc7d4 Russell King  2019-01-25  137   if (interlace) {
ba5c1649465d40a Maxime Ripard 2021-02-19  138           if 
((new_plane_state->dst.y1 | new_plane_state->dst.y2) & 1)
1d1547ec12bc7d4 Russell King  2019-01-25  139                   return -EINVAL;
ba5c1649465d40a Maxime Ripard 2021-02-19  140           st->src_hw = 
drm_rect_height(&new_plane_state->src) >> 17;
ba5c1649465d40a Maxime Ripard 2021-02-19  141           st->dst_yx = 
new_plane_state->dst.y1 >> 1;
ba5c1649465d40a Maxime Ripard 2021-02-19  142           st->dst_hw = 
drm_rect_height(&new_plane_state->dst) >> 1;
d40af7b1ae23da7 Russell King  2018-07-30  143   } else {
ba5c1649465d40a Maxime Ripard 2021-02-19  144           st->src_hw = 
drm_rect_height(&new_plane_state->src) >> 16;
ba5c1649465d40a Maxime Ripard 2021-02-19  145           st->dst_yx = 
new_plane_state->dst.y1;
ba5c1649465d40a Maxime Ripard 2021-02-19  146           st->dst_hw = 
drm_rect_height(&new_plane_state->dst);
d40af7b1ae23da7 Russell King  2018-07-30  147   }
1d1547ec12bc7d4 Russell King  2019-01-25  148  
1d1547ec12bc7d4 Russell King  2019-01-25  149   st->src_hw <<= 16;
ba5c1649465d40a Maxime Ripard 2021-02-19  150   st->src_hw |= 
drm_rect_width(&new_plane_state->src) >> 16;
1d1547ec12bc7d4 Russell King  2019-01-25  151   st->dst_yx <<= 16;
ba5c1649465d40a Maxime Ripard 2021-02-19  152   st->dst_yx |= 
new_plane_state->dst.x1 & 0x0000ffff;
1d1547ec12bc7d4 Russell King  2019-01-25  153   st->dst_hw <<= 16;
ba5c1649465d40a Maxime Ripard 2021-02-19  154   st->dst_hw |= 
drm_rect_width(&new_plane_state->dst) & 0x0000ffff;
1d1547ec12bc7d4 Russell King  2019-01-25  155  
ba5c1649465d40a Maxime Ripard 2021-02-19  156   
armada_drm_plane_calc(new_plane_state, st->addrs, st->pitches,
ba5c1649465d40a Maxime Ripard 2021-02-19  157                         
interlace);
7d62237da6ec072 Russell King  2019-01-25  158   st->interlace = interlace;
7d62237da6ec072 Russell King  2019-01-25  159  
d40af7b1ae23da7 Russell King  2018-07-30  160   return 0;
d40af7b1ae23da7 Russell King  2018-07-30  161  }
d40af7b1ae23da7 Russell King  2018-07-30  162  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to