Re: [PATCH v6 4/5] Input: cs40l50 - Add support for the CS40L50 haptic driver

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

 



Hi James,

kernel test robot noticed the following build warnings:

[auto build test WARNING on lee-mfd/for-mfd-next]
[also build test WARNING on lee-mfd/for-mfd-fixes broonie-sound/for-next linus/master v6.8-rc3 next-20240207]
[cannot apply to dtor-input/next dtor-input/for-linus]
[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/James-Ogletree/firmware-cs_dsp-Add-write-sequencer-interface/20240207-083734
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
patch link:    https://lore.kernel.org/r/20240207003612.4187370-5-jogletre%40opensource.cirrus.com
patch subject: [PATCH v6 4/5] Input: cs40l50 - Add support for the CS40L50 haptic driver
config: alpha-randconfig-r112-20240207 (https://download.01.org/0day-ci/archive/20240208/202402080502.5DJwrbZt-lkp@xxxxxxxxx/config)
compiler: alpha-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20240208/202402080502.5DJwrbZt-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/202402080502.5DJwrbZt-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/input/misc/cs40l50-vibra.c:245:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected void const * @@     got signed short [noderef] [usertype] __user *custom_data @@
   drivers/input/misc/cs40l50-vibra.c:245:53: sparse:     expected void const *
   drivers/input/misc/cs40l50-vibra.c:245:53: sparse:     got signed short [noderef] [usertype] __user *custom_data
>> drivers/input/misc/cs40l50-vibra.c:239:45: sparse: sparse: dereference of noderef expression
   drivers/input/misc/cs40l50-vibra.c: note: in included file (through include/linux/input.h):
   include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true

vim +245 drivers/input/misc/cs40l50-vibra.c

   216	
   217	static int vibra_upload_owt(struct vibra_work *work_data, struct vibra_effect *effect)
   218	{
   219		struct ff_periodic_effect add_effect = work_data->effect->u.periodic;
   220		u32 len = 2 * add_effect.custom_len, wt_offset, wt_size;
   221		struct vibra_info *info = work_data->info;
   222		struct owt_header header;
   223		u8 *out_data;
   224		int error;
   225	
   226		error = regmap_read(info->regmap, info->dsp.owt_size_reg, &wt_size);
   227		if (error)
   228			return error;
   229	
   230		if ((wt_size * sizeof(u32)) < sizeof(header) + len) {
   231			dev_err(info->dev, "No space in OWT bank for effect\n");
   232			return -ENOSPC;
   233		}
   234	
   235		out_data = kzalloc(sizeof(header) + len, GFP_KERNEL);
   236		if (!out_data)
   237			return -ENOMEM;
   238	
 > 239		header.type = add_effect.custom_data[0] == CS40L50_PCM_ID ? CS40L50_TYPE_PCM :
   240									    CS40L50_TYPE_PWLE;
   241		header.offset = sizeof(header) / sizeof(u32);
   242		header.data_words = len / sizeof(u32);
   243	
   244		memcpy(out_data, &header, sizeof(header));
 > 245		memcpy(out_data + sizeof(header), add_effect.custom_data, len);
   246	
   247		error = regmap_read(info->regmap, info->dsp.owt_offset_reg, &wt_offset);
   248		if (error)
   249			return error;
   250	
   251		error = regmap_bulk_write(info->regmap, info->dsp.owt_base_reg +
   252					  (wt_offset * sizeof(u32)), out_data,
   253					  sizeof(header) + len);
   254		if (error)
   255			goto err_free;
   256	
   257		error = info->dsp.write(info->dev, info->regmap, info->dsp.push_owt_cmd);
   258	err_free:
   259		kfree(out_data);
   260	
   261		return error;
   262	}
   263	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux