Merge tag 'for-linus-4.20a-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 10 Nov 2018 14:58:48 +0000 (08:58 -0600)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 10 Nov 2018 14:58:48 +0000 (08:58 -0600)
Pull xen fixes from Juergen Gross:
 "Several fixes, mostly for rather recent regressions when running under
  Xen"

* tag 'for-linus-4.20a-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen: remove size limit of privcmd-buf mapping interface
  xen: fix xen_qlock_wait()
  x86/xen: fix pv boot
  xen-blkfront: fix kernel panic with negotiate_mq error path
  xen/grant-table: Fix incorrect gnttab_dma_free_pages() pr_debug message
  CONFIG_XEN_PV breaks xen_create_contiguous_region on ARM

1  2 
arch/x86/xen/p2m.c
drivers/block/xen-blkfront.c
drivers/xen/grant-table.c

diff --combined arch/x86/xen/p2m.c
@@@ -67,7 -67,7 +67,7 @@@
  #include <linux/hash.h>
  #include <linux/sched.h>
  #include <linux/seq_file.h>
 -#include <linux/bootmem.h>
 +#include <linux/memblock.h>
  #include <linux/slab.h>
  #include <linux/vmalloc.h>
  
@@@ -182,7 -182,7 +182,7 @@@ static void p2m_init_identity(unsigned 
  static void * __ref alloc_p2m_page(void)
  {
        if (unlikely(!slab_is_available()))
 -              return alloc_bootmem_align(PAGE_SIZE, PAGE_SIZE);
 +              return memblock_alloc(PAGE_SIZE, PAGE_SIZE);
  
        return (void *)__get_free_page(GFP_KERNEL);
  }
  static void __ref free_p2m_page(void *p)
  {
        if (unlikely(!slab_is_available())) {
 -              free_bootmem((unsigned long)p, PAGE_SIZE);
 +              memblock_free((unsigned long)p, PAGE_SIZE);
                return;
        }
  
@@@ -656,8 -656,7 +656,7 @@@ bool __set_phys_to_machine(unsigned lon
  
        /*
         * The interface requires atomic updates on p2m elements.
-        * xen_safe_write_ulong() is using __put_user which does an atomic
-        * store via asm().
+        * xen_safe_write_ulong() is using an atomic store via asm().
         */
        if (likely(!xen_safe_write_ulong(xen_p2m_addr + pfn, mfn)))
                return true;
@@@ -1919,6 -1919,7 +1919,7 @@@ static int negotiate_mq(struct blkfront
                              GFP_KERNEL);
        if (!info->rinfo) {
                xenbus_dev_fatal(info->xbdev, -ENOMEM, "allocating ring_info structure");
+               info->nr_rings = 0;
                return -ENOMEM;
        }
  
@@@ -2493,9 -2494,6 +2494,9 @@@ static int blkfront_remove(struct xenbu
  
        dev_dbg(&xbdev->dev, "%s removed", xbdev->nodename);
  
 +      if (!info)
 +              return 0;
 +
        blkif_free(info, 0);
  
        mutex_lock(&info->mutex);
@@@ -33,7 -33,7 +33,7 @@@
  
  #define pr_fmt(fmt) "xen:" KBUILD_MODNAME ": " fmt
  
 -#include <linux/bootmem.h>
 +#include <linux/memblock.h>
  #include <linux/sched.h>
  #include <linux/mm.h>
  #include <linux/slab.h>
@@@ -914,7 -914,7 +914,7 @@@ int gnttab_dma_free_pages(struct gnttab
  
        ret = xenmem_reservation_increase(args->nr_pages, args->frames);
        if (ret != args->nr_pages) {
-               pr_debug("Failed to decrease reservation for DMA buffer\n");
+               pr_debug("Failed to increase reservation for DMA buffer\n");
                ret = -EFAULT;
        } else {
                ret = 0;