kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [kvm:queue 40/54] arch/s390/kvm/../../../virt/kvm/eventfd.c:198:23: error: passing argument 1 of 'eventfd_ctx_do_read' from incompatible pointer type
@ 2020-11-09 15:49 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-11-09 15:49 UTC (permalink / raw)
  To: David Woodhouse
  Cc: kbuild-all, kvm, Robert Hu, Farrah Chen, Danmei Wei, Paolo Bonzini

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

tree:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
head:   3539292abae0518a1d5bee996174d88014865134
commit: 43814676588fa6f849e6ad0ddb4195c8b9fc6030 [40/54] kvm/eventfd: Drain events from eventfd in irqfd_wakeup()
config: s390-randconfig-r035-20201109 (attached as .config)
compiler: s390-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://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=43814676588fa6f849e6ad0ddb4195c8b9fc6030
        git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
        git fetch --no-tags kvm queue
        git checkout 43814676588fa6f849e6ad0ddb4195c8b9fc6030
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390 

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 >>):

   arch/s390/kvm/../../../virt/kvm/eventfd.c: In function 'irqfd_wakeup':
>> arch/s390/kvm/../../../virt/kvm/eventfd.c:198:23: error: passing argument 1 of 'eventfd_ctx_do_read' from incompatible pointer type [-Werror=incompatible-pointer-types]
     198 |   eventfd_ctx_do_read(&irqfd->eventfd, &cnt);
         |                       ^~~~~~~~~~~~~~~
         |                       |
         |                       struct eventfd_ctx **
   In file included from arch/s390/kvm/../../../virt/kvm/eventfd.c:21:
   include/linux/eventfd.h:44:46: note: expected 'struct eventfd_ctx *' but argument is of type 'struct eventfd_ctx **'
      44 | void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt);
         |                          ~~~~~~~~~~~~~~~~~~~~^~~
   cc1: some warnings being treated as errors

vim +/eventfd_ctx_do_read +198 arch/s390/kvm/../../../virt/kvm/eventfd.c

   180	
   181	/*
   182	 * Called with wqh->lock held and interrupts disabled
   183	 */
   184	static int
   185	irqfd_wakeup(wait_queue_entry_t *wait, unsigned mode, int sync, void *key)
   186	{
   187		struct kvm_kernel_irqfd *irqfd =
   188			container_of(wait, struct kvm_kernel_irqfd, wait);
   189		__poll_t flags = key_to_poll(key);
   190		struct kvm_kernel_irq_routing_entry irq;
   191		struct kvm *kvm = irqfd->kvm;
   192		unsigned seq;
   193		int idx;
   194		int ret = 0;
   195	
   196		if (flags & EPOLLIN) {
   197			u64 cnt;
 > 198			eventfd_ctx_do_read(&irqfd->eventfd, &cnt);
   199	
   200			idx = srcu_read_lock(&kvm->irq_srcu);
   201			do {
   202				seq = read_seqcount_begin(&irqfd->irq_entry_sc);
   203				irq = irqfd->irq_entry;
   204			} while (read_seqcount_retry(&irqfd->irq_entry_sc, seq));
   205			/* An event has been signaled, inject an interrupt */
   206			if (kvm_arch_set_irq_inatomic(&irq, kvm,
   207						      KVM_USERSPACE_IRQ_SOURCE_ID, 1,
   208						      false) == -EWOULDBLOCK)
   209				schedule_work(&irqfd->inject);
   210			srcu_read_unlock(&kvm->irq_srcu, idx);
   211			ret = 1;
   212		}
   213	
   214		if (flags & EPOLLHUP) {
   215			/* The eventfd is closing, detach from KVM */
   216			unsigned long iflags;
   217	
   218			spin_lock_irqsave(&kvm->irqfds.lock, iflags);
   219	
   220			/*
   221			 * We must check if someone deactivated the irqfd before
   222			 * we could acquire the irqfds.lock since the item is
   223			 * deactivated from the KVM side before it is unhooked from
   224			 * the wait-queue.  If it is already deactivated, we can
   225			 * simply return knowing the other side will cleanup for us.
   226			 * We cannot race against the irqfd going away since the
   227			 * other side is required to acquire wqh->lock, which we hold
   228			 */
   229			if (irqfd_is_active(irqfd))
   230				irqfd_deactivate(irqfd);
   231	
   232			spin_unlock_irqrestore(&kvm->irqfds.lock, iflags);
   233		}
   234	
   235		return ret;
   236	}
   237	

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

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

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

only message in thread, other threads:[~2020-11-09 15:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-09 15:49 [kvm:queue 40/54] arch/s390/kvm/../../../virt/kvm/eventfd.c:198:23: error: passing argument 1 of 'eventfd_ctx_do_read' from incompatible pointer type kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).