[vhost:vhost 1/1] drivers/virtio/virtio_balloon.c:164:3: error: implicit declaration of function 'balloon_page_push'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost
head:   823b45b4f154384941d57e124ed726847e293b36
commit: 823b45b4f154384941d57e124ed726847e293b36 [1/1] virtio_balloon: fix deadlock on OOM
config: i386-randconfig-x001-201745 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout 823b45b4f154384941d57e124ed726847e293b36
        # save the attached .config to linux build tree
        make ARCH=i386 

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

   drivers/virtio/virtio_balloon.c: In function 'fill_balloon':
>> drivers/virtio/virtio_balloon.c:164:3: error: implicit declaration of function 'balloon_page_push' [-Werror=implicit-function-declaration]
      balloon_page_push(&pages, page);
      ^~~~~~~~~~~~~~~~~
>> drivers/virtio/virtio_balloon.c:174:17: error: implicit declaration of function 'balloon_page_pop' [-Werror=implicit-function-declaration]
     while ((page = balloon_page_pop(&pages))) {
                    ^~~~~~~~~~~~~~~~
>> drivers/virtio/virtio_balloon.c:174:15: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     while ((page = balloon_page_pop(&pages))) {
                  ^
   cc1: some warnings being treated as errors

vim +/balloon_page_push +164 drivers/virtio/virtio_balloon.c

   143	
   144	static unsigned fill_balloon(struct virtio_balloon *vb, size_t num)
   145	{
   146		unsigned num_allocated_pages;
   147		unsigned num_pfns;
   148		struct page *page;
   149		LIST_HEAD(pages);
   150	
   151		for (num_pfns = 0; num_pfns < num;
   152		     num_pfns += VIRTIO_BALLOON_PAGES_PER_PAGE) {
   153			struct page *page = balloon_page_alloc();
   154	
   155			if (!page) {
   156				dev_info_ratelimited(&vb->vdev->dev,
   157						     "Out of puff! Can't get %u pages\n",
   158						     VIRTIO_BALLOON_PAGES_PER_PAGE);
   159				/* Sleep for at least 1/5 of a second before retry. */
   160				msleep(200);
   161				break;
   162			}
   163	
 > 164			balloon_page_push(&pages, page);
   165		}
   166	
   167		/* We can only do one array worth at a time. */
   168		num = min(num, ARRAY_SIZE(vb->pfns));
   169	
   170		mutex_lock(&vb->balloon_lock);
   171	
   172		vb->num_pfns = 0;
   173	
 > 174		while ((page = balloon_page_pop(&pages))) {
   175			balloon_page_enqueue(&vb->vb_dev_info, page);
   176	
   177			vb->num_pfns += VIRTIO_BALLOON_PAGES_PER_PAGE;
   178	
   179			set_page_pfns(vb, vb->pfns + vb->num_pfns, page);
   180			vb->num_pages += VIRTIO_BALLOON_PAGES_PER_PAGE;
   181			if (!virtio_has_feature(vb->vdev,
   182						VIRTIO_BALLOON_F_DEFLATE_ON_OOM))
   183				adjust_managed_page_count(page, -1);
   184		}
   185	
   186		num_allocated_pages = vb->num_pfns;
   187		/* Did we get any? */
   188		if (vb->num_pfns != 0)
   189			tell_host(vb, vb->inflate_vq);
   190		mutex_unlock(&vb->balloon_lock);
   191	
   192		return num_allocated_pages;
   193	}
   194	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux