All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC PATCH] KVM: Add module for platform IRQ forwarding
Date: Sat, 22 Feb 2020 10:24:28 +0800	[thread overview]
Message-ID: <202002221028.jCb4ixb7%lkp@intel.com> (raw)
In-Reply-To: <20200220184736.112830-1-mortonm@chromium.org>

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

Hi Micah,

[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on kvm/linux-next]
[also build test ERROR on vhost/linux-next char-misc/char-misc-testing linus/master v5.6-rc2 next-20200221]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Micah-Morton/KVM-Add-module-for-platform-IRQ-forwarding/20200222-074100
base:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: c6x-allyesconfig (attached as .config)
compiler: c6x-elf-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=c6x 

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

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

   In file included from include/linux/linkage.h:7:0,
                    from arch/c6x/include/asm/string.h:12,
                    from include/linux/string.h:20,
                    from include/linux/scatterlist.h:5,
                    from include/linux/iommu.h:10,
                    from include/linux/vfio.h:12,
                    from virt/lib/plat_irqfd.c:2:
>> virt/lib/plat_irqfd.c:146:19: error: 'plat_irq_forward_plat_irqfd_enable' undeclared here (not in a function); did you mean 'plat_irq_forward_irqfd_enable'?
    EXPORT_SYMBOL_GPL(plat_irq_forward_plat_irqfd_enable);
                      ^
   include/linux/export.h:98:16: note: in definition of macro '___EXPORT_SYMBOL'
     extern typeof(sym) sym;       \
                   ^~~
   include/linux/export.h:155:34: note: in expansion of macro '__EXPORT_SYMBOL'
    #define _EXPORT_SYMBOL(sym, sec) __EXPORT_SYMBOL(sym, sec, "")
                                     ^~~~~~~~~~~~~~~
   include/linux/export.h:159:33: note: in expansion of macro '_EXPORT_SYMBOL'
    #define EXPORT_SYMBOL_GPL(sym)  _EXPORT_SYMBOL(sym, "_gpl")
                                    ^~~~~~~~~~~~~~
>> virt/lib/plat_irqfd.c:146:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
    EXPORT_SYMBOL_GPL(plat_irq_forward_plat_irqfd_enable);
    ^~~~~~~~~~~~~~~~~

vim +146 virt/lib/plat_irqfd.c

    68	
    69	int plat_irq_forward_irqfd_enable(int (*handler)(void *, void *), void *data, struct plat_irq_forward_irqfd **pirqfd, int fd)
    70	{
    71	        struct fd irqfd;
    72	        struct eventfd_ctx *ctx;
    73	        struct plat_irq_forward_irqfd *plat_irqfd;
    74	        int ret = 0;
    75	        unsigned int events;
    76	
    77	        plat_irqfd = kzalloc(sizeof(*plat_irqfd), GFP_KERNEL);
    78	        if (!plat_irqfd)
    79	                return -ENOMEM;
    80	
    81	        plat_irqfd->pirqfd = pirqfd;
    82	        plat_irqfd->handler = handler;
    83	        plat_irqfd->data = data;
    84	
    85	        // shutdown causes crash
    86	        INIT_WORK(&plat_irqfd->shutdown, plat_irqfd_shutdown);
    87	
    88	        irqfd = fdget(fd);
    89	        if (!irqfd.file) {
    90	                ret = -EBADF;
    91	                goto err_fd;
    92	        }
    93	
    94	        ctx = eventfd_ctx_fileget(irqfd.file);
    95	        if (IS_ERR(ctx)) {
    96	                ret = PTR_ERR(ctx);
    97	                goto err_ctx;
    98	        }
    99	
   100	        plat_irqfd->eventfd = ctx;
   101	
   102	         // plat_irqfds can be released by closing the eventfd or directly
   103	         // through ioctl.  These are both done through a workqueue, so
   104	         // we update the pointer to the plat_irqfd under lock to avoid
   105	         // pushing multiple jobs to release the same plat_irqfd.
   106	        spin_lock_irq(&plat_irqfd_lock);
   107	
   108	        if (*pirqfd) {
   109	                printk(KERN_EMERG "pirqfd should be NULL. BUG!\n");
   110	                spin_unlock_irq(&plat_irqfd_lock);
   111	                ret = -EBUSY;
   112	                goto err_busy;
   113	        }
   114	        *pirqfd = plat_irqfd;
   115	
   116	        spin_unlock_irq(&plat_irqfd_lock);
   117	
   118	         // Install our own custom wake-up handling so we are notified via
   119	         // a callback whenever someone signals the underlying eventfd.
   120	        init_waitqueue_func_entry(&plat_irqfd->wait, plat_irqfd_wakeup);
   121	        init_poll_funcptr(&plat_irqfd->pt, plat_irqfd_ptable_queue_proc);
   122	
   123	        events = irqfd.file->f_op->poll(irqfd.file, &plat_irqfd->pt);
   124	
   125	         // Check if there was an event already pending on the eventfd
   126	         // before we registered and trigger it as if we didn't miss it.
   127	        if (events & POLLIN) {
   128	                if (!handler || handler(NULL, data))
   129	                        printk(KERN_EMERG "handler failed\n");
   130	        }
   131	
   132	         // Do not drop the file until the irqfd is fully initialized,
   133	         // otherwise we might race against the POLLHUP.
   134	        fdput(irqfd);
   135	
   136	        return 0;
   137	err_busy:
   138	        eventfd_ctx_put(ctx);
   139	err_ctx:
   140	        fdput(irqfd);
   141	err_fd:
   142	        kfree(plat_irqfd);
   143	
   144	        return ret;
   145	}
 > 146	EXPORT_SYMBOL_GPL(plat_irq_forward_plat_irqfd_enable);

---
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: 51600 bytes --]

      reply	other threads:[~2020-02-22  2:24 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-20 18:47 [RFC PATCH] KVM: Add module for platform IRQ forwarding Micah Morton
2020-02-22  2:24 ` kbuild test robot [this message]

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=202002221028.jCb4ixb7%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.