All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:OLK-5.10 24518/30000] drivers/ub/urma/uburma/uburma_dev_ops.c:32:6: warning: no previous prototype for 'uburma_release_file'
@ 2024-03-24 14:29 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-03-24 14:29 UTC (permalink / raw)
  To: kernel, fanyizhen1995; +Cc: oe-kbuild-all

Hi Yizhen,

FYI, the error/warning still remains.

tree:   https://gitee.com/openeuler/kernel.git OLK-5.10
head:   b670dd901cbbf97745380d373b1d2607b3235590
commit: cd637a6dded9c0dce5f8d79898bb25be2edb927a [24518/30000] ub: uburma support open/release file ops
config: arm64-randconfig-003-20240312 (https://download.01.org/0day-ci/archive/20240324/202403242235.dk8Ti59s-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240324/202403242235.dk8Ti59s-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403242235.dk8Ti59s-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/ub/urma/uburma/uburma_dev_ops.c:32:6: warning: no previous prototype for 'uburma_release_file' [-Wmissing-prototypes]
      32 | void uburma_release_file(struct kref *ref)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/ub/urma/uburma/uburma_dev_ops.c:49:5: warning: no previous prototype for 'uburma_open' [-Wmissing-prototypes]
      49 | int uburma_open(struct inode *inode, struct file *filp)
         |     ^~~~~~~~~~~
   drivers/ub/urma/uburma/uburma_dev_ops.c: In function 'uburma_open':
>> drivers/ub/urma/uburma/uburma_dev_ops.c:66:50: warning: the comparison will always evaluate as 'false' for the address of 'dev_name' will never be NULL [-Waddress]
      66 |         if (ubc_dev == NULL || ubc_dev->dev_name == NULL) {
         |                                                  ^~
   In file included from drivers/ub/urma/uburma/uburma_dev_ops.c:25:
   include/urma/ubcore_types.h:1589:14: note: 'dev_name' declared here
    1589 |         char dev_name[UBCORE_MAX_DEV_NAME];
         |              ^~~~~~~~
   drivers/ub/urma/uburma/uburma_dev_ops.c: At top level:
>> drivers/ub/urma/uburma/uburma_dev_ops.c:102:5: warning: no previous prototype for 'uburma_close' [-Wmissing-prototypes]
     102 | int uburma_close(struct inode *inode, struct file *filp)
         |     ^~~~~~~~~~~~


vim +/uburma_release_file +32 drivers/ub/urma/uburma/uburma_dev_ops.c

    31	
  > 32	void uburma_release_file(struct kref *ref)
    33	{
    34		struct uburma_file *file = container_of(ref, struct uburma_file, ref);
    35		int srcu_idx;
    36	
    37		srcu_idx = srcu_read_lock(&file->ubu_dev->ubc_dev_srcu);
    38		srcu_dereference(file->ubu_dev->ubc_dev, &file->ubu_dev->ubc_dev_srcu);
    39	
    40		srcu_read_unlock(&file->ubu_dev->ubc_dev_srcu, srcu_idx);
    41	
    42		if (atomic_dec_and_test(&file->ubu_dev->refcnt))
    43			complete(&file->ubu_dev->comp);
    44	
    45		kobject_put(&file->ubu_dev->kobj);
    46		kfree(file);
    47	}
    48	
  > 49	int uburma_open(struct inode *inode, struct file *filp)
    50	{
    51		struct uburma_device *ubu_dev;
    52		struct ubcore_device *ubc_dev;
    53		struct uburma_file *file;
    54		int srcu_idx;
    55		int ret;
    56	
    57		ubu_dev = container_of(inode->i_cdev, struct uburma_device, cdev);
    58		if (!atomic_inc_not_zero(&ubu_dev->refcnt)) {
    59			uburma_log_err("device was not ready.\n");
    60			return -ENXIO;
    61		}
    62	
    63		srcu_idx = srcu_read_lock(&ubu_dev->ubc_dev_srcu);
    64		mutex_lock(&ubu_dev->lists_mutex);
    65		ubc_dev = srcu_dereference(ubu_dev->ubc_dev, &ubu_dev->ubc_dev_srcu);
  > 66		if (ubc_dev == NULL || ubc_dev->dev_name == NULL) {
    67			uburma_log_err("can not find ubcore device.\n");
    68			ret = EIO;
    69			goto err;
    70		}
    71	
    72		file = kzalloc(sizeof(struct uburma_file), GFP_KERNEL);
    73		if (!file) {
    74			ret = -ENOMEM;
    75			uburma_log_err("can not alloc memory.\n");
    76			goto err;
    77		}
    78	
    79		file->ubu_dev = ubu_dev;
    80		file->ucontext = NULL;
    81		kref_init(&file->ref);
    82		mutex_init(&file->mutex);
    83		filp->private_data = file;
    84	
    85		list_add_tail(&file->list, &ubu_dev->uburma_file_list);
    86		kobject_get(&ubu_dev->kobj); // Increase reference count for file.
    87	
    88		mutex_unlock(&ubu_dev->lists_mutex);
    89		srcu_read_unlock(&ubu_dev->ubc_dev_srcu, srcu_idx);
    90	
    91		uburma_log_info("device: %s open succeed.\n", ubc_dev->dev_name);
    92		return nonseekable_open(inode, filp);
    93	
    94	err:
    95		mutex_unlock(&ubu_dev->lists_mutex);
    96		srcu_read_unlock(&ubu_dev->ubc_dev_srcu, srcu_idx);
    97		if (atomic_dec_and_test(&ubu_dev->refcnt))
    98			complete(&ubu_dev->comp);
    99		return ret;
   100	}
   101	
 > 102	int uburma_close(struct inode *inode, struct file *filp)

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-03-24 14:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-24 14:29 [openeuler:OLK-5.10 24518/30000] drivers/ub/urma/uburma/uburma_dev_ops.c:32:6: warning: no previous prototype for 'uburma_release_file' kernel test robot

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.