All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 5493/10945] drivers/gpu/drm/msm/msm_drv.c:540:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
Date: Sat, 28 Aug 2021 05:11:11 +0800	[thread overview]
Message-ID: <202108280505.po4NCzi1-lkp@intel.com> (raw)

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

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Wei Li <liwei391@huawei.com>
CC: Rob Clark <robdclark@chromium.org>
CC: Abhinav Kumar <abhinavk@codeaurora.org>
CC: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   5e63226c72287bc6c6724d4fc7e157af0e3d7908
commit: bfddcfe155a2fe448fee0169c5cbc82c7fa73491 [5493/10945] drm/msm: Fix error return code in msm_drm_init()
:::::: branch date: 10 hours ago
:::::: commit date: 3 weeks ago
config: arm-randconfig-c002-20210826 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project ea08c4cd1c0869ec5024a8bb3f5cdf06ab03ae83)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=bfddcfe155a2fe448fee0169c5cbc82c7fa73491
        git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout bfddcfe155a2fe448fee0169c5cbc82c7fa73491
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   drivers/gpu/drm/meson/meson_venc.c:136:2: warning: Excessive padding in 'struct meson_hdmi_venc_mode::(unnamed at drivers/gpu/drm/meson/meson_venc.c:136:2)' (39 padding bytes, where 3 is optimal). 
   Optimal fields order: 
   dvi_settings, 
   video_mode, 
   video_mode_adv, 
   video_prog_mode, 
   video_sync_mode, 
   video_yc_dly, 
   video_rgb_ctrl, 
   video_filt_ctrl, 
   video_ofld_voav_ofst, 
   yfp1_htime, 
   yfp2_htime, 
   max_pxcnt, 
   hspuls_begin, 
   hspuls_end, 
   hspuls_switch, 
   vspuls_begin, 
   vspuls_end, 
   vspuls_bline, 
   vspuls_eline, 
   eqpuls_begin, 
   eqpuls_end, 
   eqpuls_bline, 
   eqpuls_eline, 
   havon_begin, 
   havon_end, 
   vavon_bline, 
   vavon_eline, 
   hso_begin, 
   hso_end, 
   vso_begin, 
   vso_end, 
   vso_bline, 
   vso_eline, 
   sy_val, 
   sy2_val, 
   max_lncnt, 
   video_prog_mode_present, 
   video_sync_mode_present, 
   video_yc_dly_present, 
   video_rgb_ctrl_present, 
   video_filt_ctrl_present, 
   video_ofld_voav_ofst_present, 
   eqpuls_begin_present, 
   eqpuls_end_present, 
   eqpuls_bline_present, 
   eqpuls_eline_present, 
   vso_eline_present, 
   sy_val_present, 
   sy2_val_present, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
           struct {
           ^~~~~~~~
   drivers/gpu/drm/meson/meson_venc.c:136:2: note: Excessive padding in 'struct meson_hdmi_venc_mode::(unnamed at drivers/gpu/drm/meson/meson_venc.c:136:2)' (39 padding bytes, where 3 is optimal). Optimal fields order: dvi_settings, video_mode, video_mode_adv, video_prog_mode, video_sync_mode, video_yc_dly, video_rgb_ctrl, video_filt_ctrl, video_ofld_voav_ofst, yfp1_htime, yfp2_htime, max_pxcnt, hspuls_begin, hspuls_end, hspuls_switch, vspuls_begin, vspuls_end, vspuls_bline, vspuls_eline, eqpuls_begin, eqpuls_end, eqpuls_bline, eqpuls_eline, havon_begin, havon_end, vavon_bline, vavon_eline, hso_begin, hso_end, vso_begin, vso_end, vso_bline, vso_eline, sy_val, sy2_val, max_lncnt, video_prog_mode_present, video_sync_mode_present, video_yc_dly_present, video_rgb_ctrl_present, video_filt_ctrl_present, video_ofld_voav_ofst_present, eqpuls_begin_present, eqpuls_end_present, eqpuls_bline_present, eqpuls_eline_present, vso_eline_present, sy_val_present, sy2_val_present, consider reordering the fields or adding explicit padding members
           struct {
           ^~~~~~~~
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   8 warnings generated.
   Suppressed 8 warnings (8 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   12 warnings generated.
>> drivers/gpu/drm/msm/msm_drv.c:540:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                           ret = PTR_ERR(priv->event_thread[i].worker);
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/msm_drv.c:540:4: note: Value stored to 'ret' is never read
                           ret = PTR_ERR(priv->event_thread[i].worker);
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/msm_drv.c:1267:8: warning: 1st function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
           ret = add_components_mdp(mdp_dev, matchptr);
                 ^
   drivers/gpu/drm/msm/msm_drv.c:1328:6: note: Assuming the condition is true
           if (get_mdp_ver(pdev)) {
               ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/msm_drv.c:1328:2: note: Taking true branch
           if (get_mdp_ver(pdev)) {
           ^
   drivers/gpu/drm/msm/msm_drv.c:1329:9: note: Calling 'add_display_components'
                   ret = add_display_components(pdev, &match);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/msm_drv.c:1229:2: note: 'mdp_dev' declared without an initial value
           struct device *mdp_dev;
           ^~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/msm_drv.c:1239:2: note: 'Default' branch taken. Execution continues on line 1267
           switch (get_mdp_ver(pdev)) {
           ^
   drivers/gpu/drm/msm/msm_drv.c:1267:8: note: 1st function call argument is an uninitialized value
           ret = add_components_mdp(mdp_dev, matchptr);
                 ^                  ~~~~~~~
   Suppressed 10 warnings (10 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c:355:27: warning: Value stored to 'mdp5_state' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct mdp5_plane_state *mdp5_state = to_mdp5_plane_state(new_plane_state);
                                    ^~~~~~~~~~
   drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c:355:27: note: Value stored to 'mdp5_state' during its initialization is never read
           struct mdp5_plane_state *mdp5_state = to_mdp5_plane_state(new_plane_state);
                                    ^~~~~~~~~~
   Suppressed 9 warnings (9 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   56 warnings generated.
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:158:16: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   blkcfg |= (n << (8 * i));
                              ~ ^
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:136:7: note: Assuming 'rev' is <= 0
           if ((rev > 0) && (format->chroma_sample > CHROMA_FULL)) {
                ^~~~~~~
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:136:16: note: Left side of '&&' is false
           if ((rev > 0) && (format->chroma_sample > CHROMA_FULL)) {
                         ^
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:146:14: note: Assuming 'i' is < 'nplanes'
           for (i = 0; i < nplanes; i++) {
                       ^~~~~~~~~~~
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:146:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < nplanes; i++) {
           ^
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:150:33: note: 'i' is 0
                   fetch_stride = width * cpp / (i ? hsub : 1);
                                                 ^
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:150:33: note: '?' condition is false
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:155:7: note: Assuming 'rev' is equal to 0
                   if (rev == 0)
                       ^~~~~~~~
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:155:3: note: Taking true branch
                   if (rev == 0)
                   ^
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:156:8: note: '?' condition is false
                           n = roundup_pow_of_two(n);
                               ^
   include/linux/log2.h:176:2: note: expanded from macro 'roundup_pow_of_two'
           __builtin_constant_p(n) ? (             \
           ^
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:156:8: note: Calling '__roundup_pow_of_two'
                           n = roundup_pow_of_two(n);
                               ^
   include/linux/log2.h:180:2: note: expanded from macro 'roundup_pow_of_two'
           __roundup_pow_of_two(n)                 \
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/log2.h:57:2: note: Returning the value 2147483648
           return 1UL << fls_long(n - 1);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:156:8: note: Returning from '__roundup_pow_of_two'

vim +/ret +540 drivers/gpu/drm/msm/msm_drv.c

5bf9c0b614542d Rob Clark                 2015-03-03  418  
70a59dd82959f8 Daniel Vetter             2020-11-04  419  static int msm_drm_init(struct device *dev, const struct drm_driver *drv)
5bf9c0b614542d Rob Clark                 2015-03-03  420  {
2b669875332fbd Archit Taneja             2016-05-02  421  	struct platform_device *pdev = to_platform_device(dev);
2b669875332fbd Archit Taneja             2016-05-02  422  	struct drm_device *ddev;
5bf9c0b614542d Rob Clark                 2015-03-03  423  	struct msm_drm_private *priv;
5bf9c0b614542d Rob Clark                 2015-03-03  424  	struct msm_kms *kms;
bc3220be22577e Rajesh Yadav              2018-06-21  425  	struct msm_mdss *mdss;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  426  	int ret, i;
5bf9c0b614542d Rob Clark                 2015-03-03  427  
2b669875332fbd Archit Taneja             2016-05-02  428  	ddev = drm_dev_alloc(drv, dev);
0f2886057be322 Tom Gundersen             2016-09-21  429  	if (IS_ERR(ddev)) {
6a41da17e87dee Mamta Shukla              2018-10-20  430  		DRM_DEV_ERROR(dev, "failed to allocate drm_device\n");
0f2886057be322 Tom Gundersen             2016-09-21  431  		return PTR_ERR(ddev);
2b669875332fbd Archit Taneja             2016-05-02  432  	}
2b669875332fbd Archit Taneja             2016-05-02  433  
2b669875332fbd Archit Taneja             2016-05-02  434  	platform_set_drvdata(pdev, ddev);
2b669875332fbd Archit Taneja             2016-05-02  435  
5bf9c0b614542d Rob Clark                 2015-03-03  436  	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
5bf9c0b614542d Rob Clark                 2015-03-03  437  	if (!priv) {
77050c3febb180 Jeykumar Sankaran         2018-06-27  438  		ret = -ENOMEM;
4d8dc2dfae2c48 Thomas Zimmermann         2018-09-26  439  		goto err_put_drm_dev;
5bf9c0b614542d Rob Clark                 2015-03-03  440  	}
5bf9c0b614542d Rob Clark                 2015-03-03  441  
2b669875332fbd Archit Taneja             2016-05-02  442  	ddev->dev_private = priv;
68209390f11603 Rob Clark                 2016-05-17  443  	priv->dev = ddev;
5bf9c0b614542d Rob Clark                 2015-03-03  444  
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  445  	switch (get_mdp_ver(pdev)) {
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  446  	case KMS_MDP5:
bc3220be22577e Rajesh Yadav              2018-06-21  447  		ret = mdp5_mdss_init(ddev);
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  448  		break;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  449  	case KMS_DPU:
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  450  		ret = dpu_mdss_init(ddev);
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  451  		break;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  452  	default:
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  453  		ret = 0;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  454  		break;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  455  	}
77050c3febb180 Jeykumar Sankaran         2018-06-27  456  	if (ret)
77050c3febb180 Jeykumar Sankaran         2018-06-27  457  		goto err_free_priv;
0a6030d224d3a4 Archit Taneja             2016-05-08  458  
bc3220be22577e Rajesh Yadav              2018-06-21  459  	mdss = priv->mdss;
bc3220be22577e Rajesh Yadav              2018-06-21  460  
5bf9c0b614542d Rob Clark                 2015-03-03  461  	priv->wq = alloc_ordered_workqueue("msm", 0);
1d2fa58e0dda33 Samuel Iglesias Gonsalvez 2021-06-07  462  	priv->hangcheck_period = DRM_MSM_HANGCHECK_DEFAULT_PERIOD;
5bf9c0b614542d Rob Clark                 2015-03-03  463  
6ed0897cd800c3 Rob Clark                 2021-03-31  464  	INIT_LIST_HEAD(&priv->objects);
6ed0897cd800c3 Rob Clark                 2021-03-31  465  	mutex_init(&priv->obj_lock);
6ed0897cd800c3 Rob Clark                 2021-03-31  466  
3edfa30f2340e6 Rob Clark                 2020-11-16  467  	INIT_LIST_HEAD(&priv->inactive_willneed);
3edfa30f2340e6 Rob Clark                 2020-11-16  468  	INIT_LIST_HEAD(&priv->inactive_dontneed);
64fcbde772c72a Rob Clark                 2021-04-05  469  	INIT_LIST_HEAD(&priv->inactive_unpinned);
d984457b31c4c5 Rob Clark                 2020-10-23  470  	mutex_init(&priv->mm_lock);
48e7f18392c66f Kristian H. Kristensen    2019-03-20  471  
d984457b31c4c5 Rob Clark                 2020-10-23  472  	/* Teach lockdep about lock ordering wrt. shrinker: */
d984457b31c4c5 Rob Clark                 2020-10-23  473  	fs_reclaim_acquire(GFP_KERNEL);
d984457b31c4c5 Rob Clark                 2020-10-23  474  	might_lock(&priv->mm_lock);
d984457b31c4c5 Rob Clark                 2020-10-23  475  	fs_reclaim_release(GFP_KERNEL);
5bf9c0b614542d Rob Clark                 2015-03-03  476  
2b669875332fbd Archit Taneja             2016-05-02  477  	drm_mode_config_init(ddev);
060530f1ea6740 Rob Clark                 2014-03-03  478  
d863f0c7b53628 Craig Tatlor              2020-12-30  479  	ret = msm_init_vram(ddev);
77050c3febb180 Jeykumar Sankaran         2018-06-27  480  	if (ret)
77050c3febb180 Jeykumar Sankaran         2018-06-27  481  		goto err_destroy_mdss;
060530f1ea6740 Rob Clark                 2014-03-03  482  
d863f0c7b53628 Craig Tatlor              2020-12-30  483  	/* Bind all our sub-components: */
d863f0c7b53628 Craig Tatlor              2020-12-30  484  	ret = component_bind_all(dev, ddev);
13f15565f7887a Rob Clark                 2015-05-07  485  	if (ret)
d863f0c7b53628 Craig Tatlor              2020-12-30  486  		goto err_destroy_mdss;
13f15565f7887a Rob Clark                 2015-05-07  487  
d5653a994a665c Robin Murphy              2020-09-03  488  	dma_set_max_seg_size(dev, UINT_MAX);
db735fc4036bbe Sean Paul                 2020-01-21  489  
68209390f11603 Rob Clark                 2016-05-17  490  	msm_gem_shrinker_init(ddev);
68209390f11603 Rob Clark                 2016-05-17  491  
06c0dd96bfbba8 Rob Clark                 2013-11-30  492  	switch (get_mdp_ver(pdev)) {
aaded2e3a1f6b7 Jeykumar Sankaran         2018-06-27  493  	case KMS_MDP4:
2b669875332fbd Archit Taneja             2016-05-02  494  		kms = mdp4_kms_init(ddev);
0a6030d224d3a4 Archit Taneja             2016-05-08  495  		priv->kms = kms;
06c0dd96bfbba8 Rob Clark                 2013-11-30  496  		break;
aaded2e3a1f6b7 Jeykumar Sankaran         2018-06-27  497  	case KMS_MDP5:
392ae6e0efa5e2 Archit Taneja             2016-06-14  498  		kms = mdp5_kms_init(ddev);
06c0dd96bfbba8 Rob Clark                 2013-11-30  499  		break;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  500  	case KMS_DPU:
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  501  		kms = dpu_kms_init(ddev);
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  502  		priv->kms = kms;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  503  		break;
06c0dd96bfbba8 Rob Clark                 2013-11-30  504  	default:
e6f6d63ed14c20 Jonathan Marek            2018-12-04  505  		/* valid only for the dummy headless case, where of_node=NULL */
e6f6d63ed14c20 Jonathan Marek            2018-12-04  506  		WARN_ON(dev->of_node);
e6f6d63ed14c20 Jonathan Marek            2018-12-04  507  		kms = NULL;
06c0dd96bfbba8 Rob Clark                 2013-11-30  508  		break;
06c0dd96bfbba8 Rob Clark                 2013-11-30  509  	}
06c0dd96bfbba8 Rob Clark                 2013-11-30  510  
c8afe684c95cd1 Rob Clark                 2013-06-26  511  	if (IS_ERR(kms)) {
6a41da17e87dee Mamta Shukla              2018-10-20  512  		DRM_DEV_ERROR(dev, "failed to load kms\n");
e4826a94c74446 Thomas Meyer              2013-09-16  513  		ret = PTR_ERR(kms);
b2ccfdf1dde588 Jonathan Marek            2018-11-21  514  		priv->kms = NULL;
77050c3febb180 Jeykumar Sankaran         2018-06-27  515  		goto err_msm_uninit;
c8afe684c95cd1 Rob Clark                 2013-06-26  516  	}
c8afe684c95cd1 Rob Clark                 2013-06-26  517  
bb676df12b5e81 Jeykumar Sankaran         2018-06-11  518  	/* Enable normalization of plane zpos */
bb676df12b5e81 Jeykumar Sankaran         2018-06-11  519  	ddev->mode_config.normalize_zpos = true;
bb676df12b5e81 Jeykumar Sankaran         2018-06-11  520  
c8afe684c95cd1 Rob Clark                 2013-06-26  521  	if (kms) {
2d99ced787e3d0 Rob Clark                 2019-08-29  522  		kms->dev = ddev;
c8afe684c95cd1 Rob Clark                 2013-06-26  523  		ret = kms->funcs->hw_init(kms);
c8afe684c95cd1 Rob Clark                 2013-06-26  524  		if (ret) {
6a41da17e87dee Mamta Shukla              2018-10-20  525  			DRM_DEV_ERROR(dev, "kms hw init failed: %d\n", ret);
77050c3febb180 Jeykumar Sankaran         2018-06-27  526  			goto err_msm_uninit;
c8afe684c95cd1 Rob Clark                 2013-06-26  527  		}
c8afe684c95cd1 Rob Clark                 2013-06-26  528  	}
c8afe684c95cd1 Rob Clark                 2013-06-26  529  
2b669875332fbd Archit Taneja             2016-05-02  530  	ddev->mode_config.funcs = &mode_config_funcs;
d14659f5de7d28 Sean Paul                 2018-02-28  531  	ddev->mode_config.helper_private = &mode_config_helper_funcs;
c8afe684c95cd1 Rob Clark                 2013-06-26  532  
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  533  	for (i = 0; i < priv->num_crtcs; i++) {
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  534  		/* initialize event thread */
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  535  		priv->event_thread[i].crtc_id = priv->crtcs[i]->base.id;
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  536  		priv->event_thread[i].dev = ddev;
1041dee2178ffd Bernard                   2020-07-21  537  		priv->event_thread[i].worker = kthread_create_worker(0,
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  538  			"crtc_event:%d", priv->event_thread[i].crtc_id);
1041dee2178ffd Bernard                   2020-07-21  539  		if (IS_ERR(priv->event_thread[i].worker)) {
a1c9b1e3bdd6d8 Zhen Lei                  2021-05-08 @540  			ret = PTR_ERR(priv->event_thread[i].worker);
4971f090aa7f6c Linus Torvalds            2018-12-25  541  			DRM_DEV_ERROR(dev, "failed to create crtc_event kthread\n");
bfddcfe155a2fe Wei Li                    2021-07-05  542  			ret = PTR_ERR(priv->event_thread[i].worker);
7f9743abaa79d3 Jeykumar Sankaran         2018-10-10  543  			goto err_msm_uninit;
7f9743abaa79d3 Jeykumar Sankaran         2018-10-10  544  		}
7f9743abaa79d3 Jeykumar Sankaran         2018-10-10  545  
6d2b84a4e5b954 Linus Torvalds            2020-08-06  546  		sched_set_fifo(priv->event_thread[i].worker->task);
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  547  	}
25fdd5933e4c0f Jeykumar Sankaran         2018-06-27  548  
2b669875332fbd Archit Taneja             2016-05-02  549  	ret = drm_vblank_init(ddev, priv->num_crtcs);
c8afe684c95cd1 Rob Clark                 2013-06-26  550  	if (ret < 0) {
6a41da17e87dee Mamta Shukla              2018-10-20  551  		DRM_DEV_ERROR(dev, "failed to initialize vblank\n");
77050c3febb180 Jeykumar Sankaran         2018-06-27  552  		goto err_msm_uninit;
c8afe684c95cd1 Rob Clark                 2013-06-26  553  	}
c8afe684c95cd1 Rob Clark                 2013-06-26  554  
a2b3a5571f386e Archit Taneja             2016-05-18  555  	if (kms) {
2b669875332fbd Archit Taneja             2016-05-02  556  		pm_runtime_get_sync(dev);
a2b3a5571f386e Archit Taneja             2016-05-18  557  		ret = drm_irq_install(ddev, kms->irq);
2b669875332fbd Archit Taneja             2016-05-02  558  		pm_runtime_put_sync(dev);
c8afe684c95cd1 Rob Clark                 2013-06-26  559  		if (ret < 0) {
6a41da17e87dee Mamta Shukla              2018-10-20  560  			DRM_DEV_ERROR(dev, "failed to install IRQ handler\n");
77050c3febb180 Jeykumar Sankaran         2018-06-27  561  			goto err_msm_uninit;
c8afe684c95cd1 Rob Clark                 2013-06-26  562  		}
a2b3a5571f386e Archit Taneja             2016-05-18  563  	}
c8afe684c95cd1 Rob Clark                 2013-06-26  564  
2b669875332fbd Archit Taneja             2016-05-02  565  	ret = drm_dev_register(ddev, 0);
2b669875332fbd Archit Taneja             2016-05-02  566  	if (ret)
77050c3febb180 Jeykumar Sankaran         2018-06-27  567  		goto err_msm_uninit;
2b669875332fbd Archit Taneja             2016-05-02  568  
98659487b845c0 Abhinav Kumar             2021-04-16  569  	ret = msm_disp_snapshot_init(ddev);
98659487b845c0 Abhinav Kumar             2021-04-16  570  	if (ret)
98659487b845c0 Abhinav Kumar             2021-04-16  571  		DRM_DEV_ERROR(dev, "msm_disp_snapshot_init failed ret = %d\n", ret);
98659487b845c0 Abhinav Kumar             2021-04-16  572  
2b669875332fbd Archit Taneja             2016-05-02  573  	drm_mode_config_reset(ddev);
cf3a7e4ce08e68 Rob Clark                 2014-11-08  574  

:::::: The code@line 540 was first introduced by commit
:::::: a1c9b1e3bdd6d8dc43c18699772fb6cf4497d45a drm/msm: Fix error return code in msm_drm_init()

:::::: TO: Zhen Lei <thunder.leizhen@huawei.com>
:::::: CC: Rob Clark <robdclark@chromium.org>

---
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: 31442 bytes --]

                 reply	other threads:[~2021-08-27 21:11 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202108280505.po4NCzi1-lkp@intel.com \
    --to=lkp@intel.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.