All of lore.kernel.org
 help / color / mirror / Atom feed
* [zen-kernel-zen-kernel:5.11/zen-sauce 1/1] drivers/scsi/vhba/vhba.c:145:6: error: no previous prototype for 'devnum_to_bus_and_id'
@ 2021-04-22  1:16 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-22  1:16 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 17287 bytes --]

tree:   https://github.com/zen-kernel/zen-kernel 5.11/zen-sauce
head:   72f34162f1f91a869b132ff133b0a4c5cac0e19f
commit: 72f34162f1f91a869b132ff133b0a4c5cac0e19f [1/1] ZEN: vhba: Update to 20210418
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-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/zen-kernel/zen-kernel/commit/72f34162f1f91a869b132ff133b0a4c5cac0e19f
        git remote add zen-kernel-zen-kernel https://github.com/zen-kernel/zen-kernel
        git fetch --no-tags zen-kernel-zen-kernel 5.11/zen-sauce
        git checkout 72f34162f1f91a869b132ff133b0a4c5cac0e19f
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=arc 

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

All errors (new ones prefixed by >>):

>> drivers/scsi/vhba/vhba.c:145:6: error: no previous prototype for 'devnum_to_bus_and_id' [-Werror=missing-prototypes]
     145 | void devnum_to_bus_and_id(unsigned int devnum, unsigned int *bus, unsigned int *id)
         |      ^~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:151:14: error: no previous prototype for 'bus_and_id_to_devnum' [-Werror=missing-prototypes]
     151 | unsigned int bus_and_id_to_devnum(unsigned int bus, unsigned int id)
         |              ^~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:156:21: error: no previous prototype for 'vhba_device_alloc' [-Werror=missing-prototypes]
     156 | struct vhba_device *vhba_device_alloc (void)
         |                     ^~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:176:6: error: no previous prototype for 'vhba_device_put' [-Werror=missing-prototypes]
     176 | void vhba_device_put (struct vhba_device *vdev)
         |      ^~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:183:21: error: no previous prototype for 'vhba_device_get' [-Werror=missing-prototypes]
     183 | struct vhba_device *vhba_device_get (struct vhba_device *vdev)
         |                     ^~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:190:5: error: no previous prototype for 'vhba_device_queue' [-Werror=missing-prototypes]
     190 | int vhba_device_queue (struct vhba_device *vdev, struct scsi_cmnd *cmd)
         |     ^~~~~~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c: In function 'vhba_device_queue':
>> drivers/scsi/vhba/vhba.c:192:23: error: variable 'vhost' set but not used [-Werror=unused-but-set-variable]
     192 |     struct vhba_host *vhost;
         |                       ^~~~~
   drivers/scsi/vhba/vhba.c: At top level:
>> drivers/scsi/vhba/vhba.c:215:5: error: no previous prototype for 'vhba_device_dequeue' [-Werror=missing-prototypes]
     215 | int vhba_device_dequeue (struct vhba_device *vdev, struct scsi_cmnd *cmd)
         |     ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:270:6: error: no previous prototype for 'vhba_scan_devices_add' [-Werror=missing-prototypes]
     270 | void vhba_scan_devices_add (struct vhba_host *vhost, int bus, int id)
         |      ^~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:283:6: error: no previous prototype for 'vhba_scan_devices_remove' [-Werror=missing-prototypes]
     283 | void vhba_scan_devices_remove (struct vhba_host *vhost, int bus, int id)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:296:6: error: no previous prototype for 'vhba_scan_devices' [-Werror=missing-prototypes]
     296 | void vhba_scan_devices (struct work_struct *work)
         |      ^~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:344:5: error: no previous prototype for 'vhba_add_device' [-Werror=missing-prototypes]
     344 | int vhba_add_device (struct vhba_device *vdev)
         |     ^~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:378:5: error: no previous prototype for 'vhba_remove_device' [-Werror=missing-prototypes]
     378 | int vhba_remove_device (struct vhba_device *vdev)
         |     ^~~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:399:21: error: no previous prototype for 'vhba_lookup_device' [-Werror=missing-prototypes]
     399 | struct vhba_device *vhba_lookup_device (int devnum)
         |                     ^~~~~~~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:470:5: error: no previous prototype for 'vhba_queuecommand' [-Werror=missing-prototypes]
     470 | int vhba_queuecommand (struct Scsi_Host *shost, struct scsi_cmnd *cmd)
         |     ^~~~~~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:496:5: error: no previous prototype for 'vhba_abort' [-Werror=missing-prototypes]
     496 | int vhba_abort (struct scsi_cmnd *cmd)
         |     ^~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:539:9: error: no previous prototype for 'do_request' [-Werror=missing-prototypes]
     539 | ssize_t do_request (struct vhba_device *vdev, unsigned long metatag, struct scsi_cmnd *cmd, char __user *buf, size_t buf_len)
         |         ^~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:605:9: error: no previous prototype for 'do_response' [-Werror=missing-prototypes]
     605 | ssize_t do_response (struct vhba_device *vdev, unsigned long metatag, struct scsi_cmnd *cmd, const char __user *buf, size_t buf_len, struct vhba_response *res)
         |         ^~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:681:22: error: no previous prototype for 'next_command' [-Werror=missing-prototypes]
     681 | struct vhba_command *next_command (struct vhba_device *vdev)
         |                      ^~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:698:22: error: no previous prototype for 'match_command' [-Werror=missing-prototypes]
     698 | struct vhba_command *match_command (struct vhba_device *vdev, __u32 metatag)
         |                      ^~~~~~~~~~~~~
>> drivers/scsi/vhba/vhba.c:715:22: error: no previous prototype for 'wait_command' [-Werror=missing-prototypes]
     715 | struct vhba_command *wait_command (struct vhba_device *vdev, unsigned long flags)
         |                      ^~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:742:9: error: no previous prototype for 'vhba_ctl_read' [-Werror=missing-prototypes]
     742 | ssize_t vhba_ctl_read (struct file *file, char __user *buf, size_t buf_len, loff_t *offset)
         |         ^~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:787:9: error: no previous prototype for 'vhba_ctl_write' [-Werror=missing-prototypes]
     787 | ssize_t vhba_ctl_write (struct file *file, const char __user *buf, size_t buf_len, loff_t *offset)
         |         ^~~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:836:6: error: no previous prototype for 'vhba_ctl_ioctl' [-Werror=missing-prototypes]
     836 | long vhba_ctl_ioctl (struct file *file, unsigned int cmd, unsigned long arg)
         |      ^~~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:877:14: error: no previous prototype for 'vhba_ctl_poll' [-Werror=missing-prototypes]
     877 | unsigned int vhba_ctl_poll (struct file *file, poll_table *wait)
         |              ^~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:894:5: error: no previous prototype for 'vhba_ctl_open' [-Werror=missing-prototypes]
     894 | int vhba_ctl_open (struct inode *inode, struct file *file)
         |     ^~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:926:5: error: no previous prototype for 'vhba_ctl_release' [-Werror=missing-prototypes]
     926 | int vhba_ctl_release (struct inode *inode, struct file *file)
         |     ^~~~~~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:979:5: error: no previous prototype for 'vhba_probe' [-Werror=missing-prototypes]
     979 | int vhba_probe (struct platform_device *pdev)
         |     ^~~~~~~~~~
   drivers/scsi/vhba/vhba.c:1033:5: error: no previous prototype for 'vhba_remove' [-Werror=missing-prototypes]
    1033 | int vhba_remove (struct platform_device *pdev)
         |     ^~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:1049:6: error: no previous prototype for 'vhba_release' [-Werror=missing-prototypes]
    1049 | void vhba_release (struct device * dev)
         |      ^~~~~~~~~~~~
   drivers/scsi/vhba/vhba.c:1071:12: error: no previous prototype for 'vhba_init' [-Werror=missing-prototypes]
    1071 | int __init vhba_init (void)
         |            ^~~~~~~~~
   drivers/scsi/vhba/vhba.c:1096:13: error: no previous prototype for 'vhba_exit' [-Werror=missing-prototypes]
    1096 | void __exit vhba_exit(void)
         |             ^~~~~~~~~
   cc1: all warnings being treated as errors


vim +/devnum_to_bus_and_id +145 drivers/scsi/vhba/vhba.c

   140	
   141	
   142	
   143	/* These functions define a symmetric 1:1 mapping between device numbers and
   144	   the bus and id. We have reserved the last id per bus for the host itself. */
 > 145	void devnum_to_bus_and_id(unsigned int devnum, unsigned int *bus, unsigned int *id)
   146	{
   147	    *bus = devnum / (VHBA_MAX_ID-1);
   148	    *id  = devnum % (VHBA_MAX_ID-1);
   149	}
   150	
 > 151	unsigned int bus_and_id_to_devnum(unsigned int bus, unsigned int id)
   152	{
   153	    return (bus * (VHBA_MAX_ID-1)) + id;
   154	}
   155	
 > 156	struct vhba_device *vhba_device_alloc (void)
   157	{
   158	    struct vhba_device *vdev;
   159	
   160	    vdev = kzalloc(sizeof(struct vhba_device), GFP_KERNEL);
   161	    if (!vdev) {
   162	        return NULL;
   163	    }
   164	
   165	    spin_lock_init(&vdev->cmd_lock);
   166	    INIT_LIST_HEAD(&vdev->cmd_list);
   167	    init_waitqueue_head(&vdev->cmd_wq);
   168	    atomic_set(&vdev->refcnt, 1);
   169	
   170	    vdev->kbuf = NULL;
   171	    vdev->kbuf_size = 0;
   172	
   173	    return vdev;
   174	}
   175	
 > 176	void vhba_device_put (struct vhba_device *vdev)
   177	{
   178	    if (atomic_dec_and_test(&vdev->refcnt)) {
   179	        kfree(vdev);
   180	    }
   181	}
   182	
 > 183	struct vhba_device *vhba_device_get (struct vhba_device *vdev)
   184	{
   185	    atomic_inc(&vdev->refcnt);
   186	
   187	    return vdev;
   188	}
   189	
 > 190	int vhba_device_queue (struct vhba_device *vdev, struct scsi_cmnd *cmd)
   191	{
 > 192	    struct vhba_host *vhost;
   193	    struct vhba_command *vcmd;
   194	    unsigned long flags;
   195	
   196	    vhost = platform_get_drvdata(&vhba_platform_device);
   197	
   198	    vcmd = vhba_alloc_command();
   199	    if (!vcmd) {
   200	        return SCSI_MLQUEUE_HOST_BUSY;
   201	    }
   202	
   203	    vcmd->cmd = cmd;
   204	
   205	    spin_lock_irqsave(&vdev->cmd_lock, flags);
   206	    vcmd->metatag = vcmd->cmd->request->tag;
   207	    list_add_tail(&vcmd->entry, &vdev->cmd_list);
   208	    spin_unlock_irqrestore(&vdev->cmd_lock, flags);
   209	
   210	    wake_up_interruptible(&vdev->cmd_wq);
   211	
   212	    return 0;
   213	}
   214	
 > 215	int vhba_device_dequeue (struct vhba_device *vdev, struct scsi_cmnd *cmd)
   216	{
   217	    struct vhba_command *vcmd;
   218	    int retval;
   219	    unsigned long flags;
   220	
   221	    spin_lock_irqsave(&vdev->cmd_lock, flags);
   222	    list_for_each_entry(vcmd, &vdev->cmd_list, entry) {
   223	        if (vcmd->cmd == cmd) {
   224	            list_del_init(&vcmd->entry);
   225	            break;
   226	        }
   227	    }
   228	
   229	    /* command not found */
   230	    if (&vcmd->entry == &vdev->cmd_list) {
   231	        spin_unlock_irqrestore(&vdev->cmd_lock, flags);
   232	        return SUCCESS;
   233	    }
   234	
   235	    while (vcmd->status == VHBA_REQ_READING || vcmd->status == VHBA_REQ_WRITING) {
   236	        spin_unlock_irqrestore(&vdev->cmd_lock, flags);
   237	        scmd_dbg(cmd, "wait for I/O before aborting\n");
   238	        schedule_timeout(1);
   239	        spin_lock_irqsave(&vdev->cmd_lock, flags);
   240	    }
   241	
   242	    retval = (vcmd->status == VHBA_REQ_SENT) ? FAILED : SUCCESS;
   243	
   244	    vhba_free_command(vcmd);
   245	
   246	    spin_unlock_irqrestore(&vdev->cmd_lock, flags);
   247	
   248	    return retval;
   249	}
   250	
   251	#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
   252	int vhba_slave_alloc(struct scsi_device *sdev)
   253	{
   254	    struct Scsi_Host *shost = sdev->host;
   255	
   256	    sdev_dbg(sdev, "enabling tagging (queue depth: %i).\n", sdev->queue_depth);
   257	#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
   258	    if (!shost_use_blk_mq(shost) && shost->bqt) {
   259	#else
   260	    if (shost->bqt) {
   261	#endif
   262	        blk_queue_init_tags(sdev->request_queue, sdev->queue_depth, shost->bqt);
   263	    }
   264	    scsi_adjust_queue_depth(sdev, 0, sdev->queue_depth);
   265	
   266	    return 0;
   267	}
   268	#endif
   269	
 > 270	void vhba_scan_devices_add (struct vhba_host *vhost, int bus, int id)
   271	{
   272	    struct scsi_device *sdev;
   273	
   274	    sdev = scsi_device_lookup(vhost->shost, bus, id, 0);
   275	    if (!sdev) {
   276	        scsi_add_device(vhost->shost, bus, id, 0);
   277	    } else {
   278	        dev_warn(&vhost->shost->shost_gendev, "tried to add an already-existing device %d:%d:0!\n", bus, id);
   279	        scsi_device_put(sdev);
   280	    }
   281	}
   282	
 > 283	void vhba_scan_devices_remove (struct vhba_host *vhost, int bus, int id)
   284	{
   285	    struct scsi_device *sdev;
   286	
   287	    sdev = scsi_device_lookup(vhost->shost, bus, id, 0);
   288	    if (sdev) {
   289	        scsi_remove_device(sdev);
   290	        scsi_device_put(sdev);
   291	    } else {
   292	        dev_warn(&vhost->shost->shost_gendev, "tried to remove non-existing device %d:%d:0!\n", bus, id);
   293	    }
   294	}
   295	
 > 296	void vhba_scan_devices (struct work_struct *work)
   297	{
   298	    struct vhba_host *vhost = container_of(work, struct vhba_host, scan_devices);
   299	    unsigned long flags;
   300	    int change, exists;
   301	    unsigned int devnum;
   302	    unsigned int bus, id;
   303	
   304	    for (;;) {
   305	        spin_lock_irqsave(&vhost->dev_lock, flags);
   306	
   307	        devnum = find_first_bit(vhost->chgmap, VHBA_MAX_DEVICES);
   308	        if (devnum >= VHBA_MAX_DEVICES) {
   309	            spin_unlock_irqrestore(&vhost->dev_lock, flags);
   310	            break;
   311	        }
   312	        change = vhost->chgtype[devnum];
   313	        exists = vhost->devices[devnum] != NULL;
   314	
   315	        vhost->chgtype[devnum] = 0;
   316	        clear_bit(devnum, vhost->chgmap);
   317	
   318	        spin_unlock_irqrestore(&vhost->dev_lock, flags);
   319	
   320	        devnum_to_bus_and_id(devnum, &bus, &id);
   321	
   322	        if (change < 0) {
   323	            dev_dbg(&vhost->shost->shost_gendev, "trying to remove target %d:%d:0\n", bus, id);
   324	            vhba_scan_devices_remove(vhost, bus, id);
   325	        } else if (change > 0) {
   326	            dev_dbg(&vhost->shost->shost_gendev, "trying to add target %d:%d:0\n", bus, id);
   327	            vhba_scan_devices_add(vhost, bus, id);
   328	        } else {
   329	            /* quick sequence of add/remove or remove/add; we determine
   330	               which one it was by checking if device structure exists */
   331	            if (exists) {
   332	                /* remove followed by add: remove and (re)add */
   333	                dev_dbg(&vhost->shost->shost_gendev, "trying to (re)add target %d:%d:0\n", bus, id);
   334	                vhba_scan_devices_remove(vhost, bus, id);
   335	                vhba_scan_devices_add(vhost, bus, id);
   336	            } else {
   337	                /* add followed by remove: no-op */
   338	                dev_dbg(&vhost->shost->shost_gendev, "no-op for target %d:%d:0\n", bus, id);
   339	            }
   340	        }
   341	    }
   342	}
   343	
 > 344	int vhba_add_device (struct vhba_device *vdev)
   345	{
   346	    struct vhba_host *vhost;
   347	    unsigned int devnum;
   348	    unsigned long flags;
   349	
   350	    vhost = platform_get_drvdata(&vhba_platform_device);
   351	
   352	    vhba_device_get(vdev);
   353	
   354	    spin_lock_irqsave(&vhost->dev_lock, flags);
   355	    if (vhost->num_devices >= VHBA_MAX_DEVICES) {
   356	        spin_unlock_irqrestore(&vhost->dev_lock, flags);
   357	        vhba_device_put(vdev);
   358	        return -EBUSY;
   359	    }
   360	
   361	    for (devnum = 0; devnum < VHBA_MAX_DEVICES; devnum++) {
   362	        if (vhost->devices[devnum] == NULL) {
   363	            vdev->num = devnum;
   364	            vhost->devices[devnum] = vdev;
   365	            vhost->num_devices++;
   366	            set_bit(devnum, vhost->chgmap);
   367	            vhost->chgtype[devnum]++;
   368	            break;
   369	        }
   370	    }
   371	    spin_unlock_irqrestore(&vhost->dev_lock, flags);
   372	
   373	    schedule_work(&vhost->scan_devices);
   374	
   375	    return 0;
   376	}
   377	

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 67335 bytes --]

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

only message in thread, other threads:[~2021-04-22  1:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-22  1:16 [zen-kernel-zen-kernel:5.11/zen-sauce 1/1] drivers/scsi/vhba/vhba.c:145:6: error: no previous prototype for 'devnum_to_bus_and_id' 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.