CC: [email protected] CC: [email protected] BCC: [email protected] CC: Linux Memory Management List <[email protected]> TO: Vinod Koul <[email protected]> CC: Dmitry Baryshkov <[email protected]> CC: Abhinav Kumar <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 18ecd30af1a8402c162cca1bd58771c0e5be7815 commit: 58dca9810749480737869d02bef4704756372194 [5634/13468] drm/msm/disp/dpu1: Add support for DSC in encoder :::::: branch date: 24 hours ago :::::: commit date: 4 weeks ago config: arm-randconfig-c002-20220519 (https://download.01.org/0day-ci/archive/20220521/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project e00cbbec06c08dc616a0d52a20f678b8fbd4e304) 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=58dca9810749480737869d02bef4704756372194 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 58dca9810749480737869d02bef4704756372194 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^~~~~~~~ drivers/gpu/drm/imx/imx-ldb.c:421:2: note: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 snprintf(clkname, sizeof(clkname), "di%d", chno); ^~~~~~~~ drivers/gpu/drm/imx/imx-ldb.c:426:2: warning: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] snprintf(clkname, sizeof(clkname), "di%d_pll", chno); ^~~~~~~~ drivers/gpu/drm/imx/imx-ldb.c:426:2: note: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 snprintf(clkname, sizeof(clkname), "di%d_pll", chno); ^~~~~~~~ drivers/gpu/drm/imx/imx-ldb.c:658:3: warning: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] sprintf(clkname, "di%d_sel", i); ^~~~~~~ drivers/gpu/drm/imx/imx-ldb.c:658:3: note: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 sprintf(clkname, "di%d_sel", i); ^~~~~~~ Suppressed 53 warnings (53 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. 42 warnings generated. Suppressed 42 warnings (42 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. 46 warnings generated. drivers/spi/spi-omap2-mcspi.c:610:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memset(&cfg, 0, sizeof(cfg)); ^~~~~~ drivers/spi/spi-omap2-mcspi.c:610:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 memset(&cfg, 0, sizeof(cfg)); ^~~~~~ drivers/spi/spi-omap2-mcspi.c:1232:3: warning: Value stored to 'par_override' is never read [clang-analyzer-deadcode.DeadStores] par_override = 0; ^ ~ drivers/spi/spi-omap2-mcspi.c:1232:3: note: Value stored to 'par_override' is never read par_override = 0; ^ ~ drivers/spi/spi-omap2-mcspi.c:1501:3: warning: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] sprintf(mcspi->dma_channels[i].dma_rx_ch_name, "rx%d", i); ^~~~~~~ drivers/spi/spi-omap2-mcspi.c:1501:3: note: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 sprintf(mcspi->dma_channels[i].dma_rx_ch_name, "rx%d", i); ^~~~~~~ drivers/spi/spi-omap2-mcspi.c:1502:3: warning: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] sprintf(mcspi->dma_channels[i].dma_tx_ch_name, "tx%d", i); ^~~~~~~ drivers/spi/spi-omap2-mcspi.c:1502:3: note: Call to function 'sprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'sprintf_s' in case of C11 sprintf(mcspi->dma_channels[i].dma_tx_ch_name, "tx%d", i); ^~~~~~~ Suppressed 42 warnings (42 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. 41 warnings generated. Suppressed 41 warnings (41 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. 41 warnings generated. Suppressed 41 warnings (41 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. 11 warnings generated. drivers/w1/slaves/w1_ds250x.c:161:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(buf, &data->eprom[off], count); ^~~~~~ drivers/w1/slaves/w1_ds250x.c:161:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(buf, &data->eprom[off], count); ^~~~~~ drivers/w1/slaves/w1_ds250x.c:201:3: warning: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] snprintf(data->nvmem_name, sizeof(data->nvmem_name), ^~~~~~~~ drivers/w1/slaves/w1_ds250x.c:201:3: note: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 snprintf(data->nvmem_name, sizeof(data->nvmem_name), ^~~~~~~~ drivers/w1/slaves/w1_ds250x.c:206:3: warning: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] snprintf(data->nvmem_name, sizeof(data->nvmem_name), ^~~~~~~~ drivers/w1/slaves/w1_ds250x.c:206:3: note: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 snprintf(data->nvmem_name, sizeof(data->nvmem_name), ^~~~~~~~ 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. 12 warnings generated. drivers/w1/slaves/w1_ds28e04.c:137:3: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(buf, &data->memory[off], count); ^~~~~~ drivers/w1/slaves/w1_ds28e04.c:137:3: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(buf, &data->memory[off], count); ^~~~~~ Suppressed 11 warnings (11 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. 63 warnings generated. drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:257:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&dither_cfg.matrix, dither_matrix, ^~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:257:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&dither_cfg.matrix, dither_matrix, ^~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:592:2: warning: Value stored to 'mode' is never read [clang-analyzer-deadcode.DeadStores] mode = &crtc_state->mode; ^ ~~~~~~~~~~~~~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:592:2: note: Value stored to 'mode' is never read mode = &crtc_state->mode; ^ ~~~~~~~~~~~~~~~~~ >> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1782:2: warning: Value stored to >> 'dsc_common_mode' is never read [clang-analyzer-deadcode.DeadStores] dsc_common_mode = 0; ^ ~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1782:2: note: Value stored to 'dsc_common_mode' is never read dsc_common_mode = 0; ^ ~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1945:2: warning: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] snprintf(name, DPU_NAME_SIZE, "encoder%u", drm_enc->base.id); ^~~~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1945:2: note: Call to function 'snprintf' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'snprintf_s' in case of C11 snprintf(name, DPU_NAME_SIZE, "encoder%u", drm_enc->base.id); ^~~~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2058:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memset(&phys_params, 0, sizeof(phys_params)); ^~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2058:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 memset(&phys_params, 0, sizeof(phys_params)); ^~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2205:2: warning: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] kthread_init_work(&dpu_enc->vsync_event_work, ^ include/linux/kthread.h:173:3: note: expanded from macro 'kthread_init_work' memset((work), 0, sizeof(struct kthread_work)); \ ^~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2205:2: note: Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memset_s' in case of C11 kthread_init_work(&dpu_enc->vsync_event_work, ^ include/linux/kthread.h:173:3: note: expanded from macro 'kthread_init_work' memset((work), 0, sizeof(struct kthread_work)); \ ^~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2208:2: warning: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 [clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling] memcpy(&dpu_enc->disp_info, disp_info, sizeof(*disp_info)); ^~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:2208:2: note: Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard. Replace with analogous functions that support length arguments or provides boundary checks such as 'memcpy_s' in case of C11 memcpy(&dpu_enc->disp_info, disp_info, sizeof(*disp_info)); ^~~~~~ Suppressed 56 warnings (55 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 7 warnings generated. Suppressed 7 warnings (7 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. 37 warnings generated. drivers/hwmon/lm75.h:30:29: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult] return (u16)((ntemp / 500) << 7); ^ drivers/hwmon/w83627hf.c:777:2: note: Assuming 'err' is 0 if (err) ^ include/linux/compiler.h:56:45: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/hwmon/w83627hf.c:777:2: note: '?' condition is false if (err) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/hwmon/w83627hf.c:777:6: note: 'err' is 0 if (err) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ drivers/hwmon/w83627hf.c:777:2: note: '?' condition is false if (err) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/hwmon/w83627hf.c:777:2: note: Taking false branch if (err) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/hwmon/w83627hf.c:780:8: note: Assuming 'nr' is not equal to 0 tmp = (nr) ? LM75_TEMP_TO_REG(val) : TEMP_TO_REG(val); ^~~~ drivers/hwmon/w83627hf.c:780:8: note: '?' condition is true drivers/hwmon/w83627hf.c:780:15: note: Calling 'LM75_TEMP_TO_REG' tmp = (nr) ? LM75_TEMP_TO_REG(val) : TEMP_TO_REG(val); ^~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/lm75.h:27:14: note: Assuming '__UNIQUE_ID___x169' is <= '__UNIQUE_ID___y170' vim +/dsc_common_mode +1782 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c 58dca981074948 Vinod Koul 2022-04-06 1757 58dca981074948 Vinod Koul 2022-04-06 1758 static void dpu_encoder_prep_dsc(struct dpu_encoder_virt *dpu_enc, 58dca981074948 Vinod Koul 2022-04-06 1759 struct msm_display_dsc_config *dsc) 58dca981074948 Vinod Koul 2022-04-06 1760 { 58dca981074948 Vinod Koul 2022-04-06 1761 /* coding only for 2LM, 2enc, 1 dsc config */ 58dca981074948 Vinod Koul 2022-04-06 1762 struct dpu_encoder_phys *enc_master = dpu_enc->cur_master; 58dca981074948 Vinod Koul 2022-04-06 1763 struct dpu_hw_dsc *hw_dsc[MAX_CHANNELS_PER_ENC]; 58dca981074948 Vinod Koul 2022-04-06 1764 struct dpu_hw_pingpong *hw_pp[MAX_CHANNELS_PER_ENC]; 58dca981074948 Vinod Koul 2022-04-06 1765 int this_frame_slices; 58dca981074948 Vinod Koul 2022-04-06 1766 int intf_ip_w, enc_ip_w; 58dca981074948 Vinod Koul 2022-04-06 1767 int dsc_common_mode; 58dca981074948 Vinod Koul 2022-04-06 1768 int pic_width; 58dca981074948 Vinod Koul 2022-04-06 1769 u32 initial_lines; 58dca981074948 Vinod Koul 2022-04-06 1770 int i; 58dca981074948 Vinod Koul 2022-04-06 1771 58dca981074948 Vinod Koul 2022-04-06 1772 for (i = 0; i < MAX_CHANNELS_PER_ENC; i++) { 58dca981074948 Vinod Koul 2022-04-06 1773 hw_pp[i] = dpu_enc->hw_pp[i]; 58dca981074948 Vinod Koul 2022-04-06 1774 hw_dsc[i] = dpu_enc->hw_dsc[i]; 58dca981074948 Vinod Koul 2022-04-06 1775 58dca981074948 Vinod Koul 2022-04-06 1776 if (!hw_pp[i] || !hw_dsc[i]) { 58dca981074948 Vinod Koul 2022-04-06 1777 DPU_ERROR_ENC(dpu_enc, "invalid params for DSC\n"); 58dca981074948 Vinod Koul 2022-04-06 1778 return; 58dca981074948 Vinod Koul 2022-04-06 1779 } 58dca981074948 Vinod Koul 2022-04-06 1780 } 58dca981074948 Vinod Koul 2022-04-06 1781 58dca981074948 Vinod Koul 2022-04-06 @1782 dsc_common_mode = 0; 58dca981074948 Vinod Koul 2022-04-06 1783 pic_width = dsc->drm->pic_width; 58dca981074948 Vinod Koul 2022-04-06 1784 58dca981074948 Vinod Koul 2022-04-06 1785 dsc_common_mode = DSC_MODE_MULTIPLEX | DSC_MODE_SPLIT_PANEL; 58dca981074948 Vinod Koul 2022-04-06 1786 if (enc_master->intf_mode == INTF_MODE_VIDEO) 58dca981074948 Vinod Koul 2022-04-06 1787 dsc_common_mode |= DSC_MODE_VIDEO; 58dca981074948 Vinod Koul 2022-04-06 1788 58dca981074948 Vinod Koul 2022-04-06 1789 this_frame_slices = pic_width / dsc->drm->slice_width; 58dca981074948 Vinod Koul 2022-04-06 1790 intf_ip_w = this_frame_slices * dsc->drm->slice_width; 58dca981074948 Vinod Koul 2022-04-06 1791 58dca981074948 Vinod Koul 2022-04-06 1792 /* 58dca981074948 Vinod Koul 2022-04-06 1793 * dsc merge case: when using 2 encoders for the same stream, 58dca981074948 Vinod Koul 2022-04-06 1794 * no. of slices need to be same on both the encoders. 58dca981074948 Vinod Koul 2022-04-06 1795 */ 58dca981074948 Vinod Koul 2022-04-06 1796 enc_ip_w = intf_ip_w / 2; 58dca981074948 Vinod Koul 2022-04-06 1797 initial_lines = dpu_encoder_dsc_initial_line_calc(dsc, enc_ip_w); 58dca981074948 Vinod Koul 2022-04-06 1798 58dca981074948 Vinod Koul 2022-04-06 1799 for (i = 0; i < MAX_CHANNELS_PER_ENC; i++) 58dca981074948 Vinod Koul 2022-04-06 1800 dpu_encoder_dsc_pipe_cfg(hw_dsc[i], hw_pp[i], dsc, dsc_common_mode, initial_lines); 58dca981074948 Vinod Koul 2022-04-06 1801 } 58dca981074948 Vinod Koul 2022-04-06 1802 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
