CC: [email protected]
CC: [email protected]
TO: Maxime Ripard <[email protected]>
CC: Laurent Pinchart <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   79e06c4c4950be2abd8ca5d2428a8c915aa62c24
commit: dec92020671c48da231189eb06a5f755f492f87f drm: Use the state pointer 
directly in planes atomic_check
date:   11 months ago
:::::: branch date: 9 hours ago
:::::: commit date: 11 months ago
config: arm-randconfig-m031-20220116 
(https://download.01.org/0day-ci/archive/20220117/[email protected]/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.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

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

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to