Re: [PATCH] uacce: Add uacce_ctrl misc device

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

 



Hi Zhou,

I love your patch! Yet something to improve:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on soc/for-next linux/master linus/master v5.11-rc4 next-20210121]
[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]

url:    https://github.com/0day-ci/linux/commits/Zhou-Wang/uacce-Add-uacce_ctrl-misc-device/20210121-172139
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git f6f1f8e6e3eea25f539105d48166e91f0ab46dd1
config: alpha-randconfig-p002-20210121 (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
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
        # https://github.com/0day-ci/linux/commit/4dc40d891a7e60ed79e6b9460a38a142d3d1a965
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Zhou-Wang/uacce-Add-uacce_ctrl-misc-device/20210121-172139
        git checkout 4dc40d891a7e60ed79e6b9460a38a142d3d1a965
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha 

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

All error/warnings (new ones prefixed by >>):

   drivers/misc/uacce/uacce.c:511:5: warning: no previous prototype for 'uacce_ctrl_open' [-Wmissing-prototypes]
     511 | int uacce_ctrl_open(struct inode *inode, struct file *file)
         |     ^~~~~~~~~~~~~~~
   drivers/misc/uacce/uacce.c:525:5: warning: no previous prototype for 'uacce_ctrl_release' [-Wmissing-prototypes]
     525 | int uacce_ctrl_release(struct inode *inode, struct file *file)
         |     ^~~~~~~~~~~~~~~~~~
   drivers/misc/uacce/uacce.c: In function 'uacce_ctrl_release':
>> drivers/misc/uacce/uacce.c:534:3: error: implicit declaration of function 'vfree'; did you mean 'kfree'? [-Werror=implicit-function-declaration]
     534 |   vfree(p->pages);
         |   ^~~~~
         |   kfree
   drivers/misc/uacce/uacce.c: In function 'uacce_pin_page':
>> drivers/misc/uacce/uacce.c:557:10: error: implicit declaration of function 'vmalloc'; did you mean 'kmalloc'? [-Werror=implicit-function-declaration]
     557 |  pages = vmalloc(nr_pages * sizeof(struct page *));
         |          ^~~~~~~
         |          kmalloc
>> drivers/misc/uacce/uacce.c:557:8: warning: assignment to 'struct page **' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     557 |  pages = vmalloc(nr_pages * sizeof(struct page *));
         |        ^
   drivers/misc/uacce/uacce.c: In function 'uacce_ctrl_unl_ioctl':
   drivers/misc/uacce/uacce.c:626:6: warning: unused variable 'ret' [-Wunused-variable]
     626 |  int ret;
         |      ^~~
   cc1: some warnings being treated as errors


vim +534 drivers/misc/uacce/uacce.c

   524	
   525	int uacce_ctrl_release(struct inode *inode, struct file *file)
   526	{
   527		struct uacce_pin_container *priv = file->private_data;
   528		struct pin_pages *p;
   529		unsigned long idx;
   530	
   531		xa_for_each(&priv->array, idx, p) {
   532			unpin_user_pages(p->pages, p->nr_pages);
   533			xa_erase(&priv->array, p->first);
 > 534			vfree(p->pages);
   535			kfree(p);
   536		}
   537	
   538		xa_destroy(&priv->array);
   539		kfree(priv);
   540	
   541		return 0;
   542	}
   543	
   544	static int uacce_pin_page(struct uacce_pin_container *priv,
   545				  struct uacce_pin_address *addr)
   546	{
   547		unsigned int flags = FOLL_FORCE | FOLL_WRITE;
   548		unsigned long first, last, nr_pages;
   549		struct page **pages;
   550		struct pin_pages *p;
   551		int ret;
   552	
   553		first = (addr->addr & PAGE_MASK) >> PAGE_SHIFT;
   554		last = ((addr->addr + addr->size - 1) & PAGE_MASK) >> PAGE_SHIFT;
   555		nr_pages = last - first + 1;
   556	
 > 557		pages = vmalloc(nr_pages * sizeof(struct page *));
   558		if (!pages)
   559			return -ENOMEM;
   560	
   561		p = kzalloc(sizeof(*p), GFP_KERNEL);
   562		if (!p) {
   563			ret = -ENOMEM;
   564			goto free;
   565		}
   566	
   567		ret = pin_user_pages_fast(addr->addr & PAGE_MASK, nr_pages,
   568					  flags | FOLL_LONGTERM, pages);
   569		if (ret != nr_pages) {
   570			pr_err("uacce: Failed to pin page\n");
   571			goto free_p;
   572		}
   573		p->first = first;
   574		p->nr_pages = nr_pages;
   575		p->pages = pages;
   576	
   577		ret = xa_err(xa_store(&priv->array, p->first, p, GFP_KERNEL));
   578		if (ret)
   579			goto unpin_pages;
   580	
   581		return 0;
   582	
   583	unpin_pages:
   584		unpin_user_pages(pages, nr_pages);
   585	free_p:
   586		kfree(p);
   587	free:
   588		vfree(pages);
   589		return ret;
   590	}
   591	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux