Re: [PATCH 6/6] drm: zynqmp_dp: Add debugfs interface for compliance testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sean,

On Mon, Mar 18, 2024 at 03:05:57PM -0400, Sean Anderson wrote:
> On 3/18/24 13:50, Laurent Pinchart wrote:
> > On Mon, Mar 18, 2024 at 11:06:40AM -0400, Sean Anderson wrote:
> >> On 3/16/24 06:14, kernel test robot wrote:
> >> > Hi Sean,
> >> > 
> >> > kernel test robot noticed the following build warnings:
> >> > 
> >> > [auto build test WARNING on v6.8]
> >> > [cannot apply to drm-misc/drm-misc-next linus/master next-20240315]
> >> > [If your patch is applied to the wrong git tree, kindly drop us a note.
> >> > And when submitting patch, we suggest to use '--base' as documented in
> >> > https://git-scm.com/docs/git-format-patch#_base_tree_information]
> >> > 
> >> > url:    https://github.com/intel-lab-lkp/linux/commits/Sean-Anderson/drm-zynqmp_dp-Downgrade-log-level-for-aux-retries-message/20240316-071208
> >> > base:   v6.8
> >> > patch link:    https://lore.kernel.org/r/20240315230916.1759060-7-sean.anderson%40linux.dev
> >> > patch subject: [PATCH 6/6] drm: zynqmp_dp: Add debugfs interface for compliance testing
> >> > config: microblaze-allmodconfig (https://download.01.org/0day-ci/archive/20240316/202403161704.ACHJdSJG-lkp@xxxxxxxxx/config)
> >> > compiler: microblaze-linux-gcc (GCC) 13.2.0
> >> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240316/202403161704.ACHJdSJG-lkp@xxxxxxxxx/reproduce)

[...]

> >> > 
> >> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> >> > the same patch/commit), kindly add following tags
> >> > | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >> > | Closes: https://lore.kernel.org/oe-kbuild-all/202403161704.ACHJdSJG-lkp@xxxxxxxxx/
> >> > 
> >> > All warnings (new ones prefixed by >>):
> >> > 
> >> >    drivers/gpu/drm/xlnx/zynqmp_dp.c: In function 'zynqmp_dp_bridge_debugfs_init':
> >> >>> drivers/gpu/drm/xlnx/zynqmp_dp.c:2168:31: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=]
> >> >     2168 |                 sprintf(name, fmt, i);
> >> >          |                               ^~~
> >> >    drivers/gpu/drm/xlnx/zynqmp_dp.c:2168:17: note: 'sprintf' output between 18 and 20 bytes into a destination of size 19
> >> >     2168 |                 sprintf(name, fmt, i);
> >> >          |                 ^~~~~~~~~~~~~~~~~~~~~
> >> 
> >> Not a bug, as i will be at most 4, which uses 1 digit.
> > 
> > The compiler can't know that. Please fix this, there's a zero warning
> > policy.
> 
> I cannot reproduce this with GCC 13.2.0. So given that this is not a bug and I can't reproduce
> it, I don't see how I can verify any fix.

There is a "reproduce" link in the bot's report. We followed the steps
in that link and found that the warning could be reproduced. Please
notice that this is a "W=1" warning. BTW, we also tested the v2 patch
and the warning has been fixed there. Just for your information.

$ cd linux
$ git checkout v6.8
HEAD is now at e8f897f4afef0 Linux 6.8
$ b4 am https://lore.kernel.org/r/20240315230916.1759060-7-sean.anderson@xxxxxxxxx
$ git am ./20240315_sean_anderson_drm_zynqmp_dp_misc_patches_and_debugfs_support.mbx
Applying: drm: zynqmp_dp: Downgrade log level for aux retries message
Applying: drm: zynqmp_dp: Adjust training values per-lane
Applying: drm: zynqmp_dp: Add locking
Applying: drm: zynqmp_dp: Split off several helper functions
Applying: drm: zynqmp_dp: Optionally ignore DPCD errors
Applying: drm: zynqmp_dp: Add debugfs interface for compliance testing

$ wget https://download.01.org/0day-ci/archive/20240316/202403161704.ACHJdSJG-lkp@xxxxxxxxx/config
$ mkdir build_dir
$ cp config build_dir/.config
$ git clone https://github.com/intel/lkp-tests.git ~/lkp-tests
$ COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-13.2.0 ~/lkp-tests/kbuild/make.cross W=1 O=build_dir ARCH=microblaze olddefconfig
$ COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-13.2.0 ~/lkp-tests/kbuild/make.cross W=1 O=build_dir ARCH=microblaze drivers/gpu/drm/xlnx/zynqmp_dp.o
...
  CC [M]  drivers/gpu/drm/xlnx/zynqmp_dp.o
../drivers/gpu/drm/xlnx/zynqmp_dp.c: In function 'zynqmp_dp_bridge_debugfs_init':
../drivers/gpu/drm/xlnx/zynqmp_dp.c:2168:31: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=]
 2168 |                 sprintf(name, fmt, i);
      |                               ^~~
../drivers/gpu/drm/xlnx/zynqmp_dp.c:2168:17: note: 'sprintf' output between 18 and 20 bytes into a destination of size 19
 2168 |                 sprintf(name, fmt, i);
      |                 ^~~~~~~~~~~~~~~~~~~~~

Best Regards,
Yujie

> 
> --Sean
> 
> >> > vim +/sprintf +2168 drivers/gpu/drm/xlnx/zynqmp_dp.c
> >> > 
> >> >   2136	
> >> >   2137	DEFINE_DEBUGFS_ATTRIBUTE(fops_zynqmp_dp_rate, zynqmp_dp_rate_get,
> >> >   2138				 zynqmp_dp_rate_set, "%llu\n");
> >> >   2139	
> >> >   2140	static void zynqmp_dp_bridge_debugfs_init(struct drm_bridge *bridge,
> >> >   2141						  struct dentry *root)
> >> >   2142	{
> >> >   2143		struct zynqmp_dp *dp = bridge_to_dp(bridge);
> >> >   2144		struct dentry *test;
> >> >   2145		int i;
> >> >   2146	
> >> >   2147		dp->test.bw_code = DP_LINK_BW_5_4;
> >> >   2148		dp->test.link_cnt = dp->num_lanes;
> >> >   2149	
> >> >   2150		test = debugfs_create_dir("test", root);
> >> >   2151	#define CREATE_FILE(name) \
> >> >   2152		debugfs_create_file(#name, 0600, test, dp, &fops_zynqmp_dp_##name)
> >> >   2153		CREATE_FILE(pattern);
> >> >   2154		CREATE_FILE(enhanced);
> >> >   2155		CREATE_FILE(downspread);
> >> >   2156		CREATE_FILE(active);
> >> >   2157		CREATE_FILE(custom);
> >> >   2158		CREATE_FILE(rate);
> >> >   2159		CREATE_FILE(lanes);
> >> >   2160	
> >> >   2161		for (i = 0; i < dp->num_lanes; i++) {
> >> >   2162			static const char fmt[] = "lane%d_preemphasis";
> >> >   2163			char name[sizeof(fmt)];
> >> >   2164	
> >> >   2165			dp->debugfs_train_set[i].dp = dp;
> >> >   2166			dp->debugfs_train_set[i].lane = i;
> >> >   2167	
> >> >> 2168			sprintf(name, fmt, i);
> >> >   2169			debugfs_create_file(name, 0600, test,
> >> >   2170					    &dp->debugfs_train_set[i],
> >> >   2171					    &fops_zynqmp_dp_preemphasis);
> >> >   2172	
> >> >   2173			sprintf(name, "lane%d_swing", i);
> >> >   2174			debugfs_create_file(name, 0600, test,
> >> >   2175					    &dp->debugfs_train_set[i],
> >> >   2176					    &fops_zynqmp_dp_swing);
> >> >   2177		}
> >> >   2178	}
> >> >   2179	
> > 
> 
> 



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux