All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [kvm:queue 40/54] arch/x86/kvm/../../../virt/kvm/eventfd.c:198:23: error: passing argument 1 of 'eventfd_ctx_do_read' from incompatible pointer type
Date: Sun, 15 Nov 2020 13:14:43 +0800	[thread overview]
Message-ID: <202011151341.2stsjDsg-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 4002 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: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # 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
        make W=1 ARCH=x86_64 

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/x86/kvm/../../../virt/kvm/eventfd.c: In function 'irqfd_wakeup':
>> arch/x86/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/x86/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/x86/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(a)lists.01.org

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

             reply	other threads:[~2020-11-15  5:14 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-15  5:14 kernel test robot [this message]
2020-11-15  8:50 ` [kvm:queue 40/54] arch/x86/kvm/../../../virt/kvm/eventfd.c:198:23: error: passing argument 1 of 'eventfd_ctx_do_read' from incompatible pointer type Woodhouse, David
2020-11-15  8:50   ` Woodhouse, David
2020-11-15 14:29   ` Paolo Bonzini
2020-11-15 14:29     ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202011151341.2stsjDsg-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.