Move vmap back to kernel_map/uvm_km_valloc as it's allowed to fail.
authorjsg <jsg@openbsd.org>
Wed, 8 Apr 2015 15:01:33 +0000 (15:01 +0000)
committerjsg <jsg@openbsd.org>
Wed, 8 Apr 2015 15:01:33 +0000 (15:01 +0000)
This should help dlg's dell 2950 that gets stuck during boot with vmap
in the trace.

ok kettenis@

sys/dev/pci/drm/drm_linux.c

index 7939c70..97aaa90 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: drm_linux.c,v 1.3 2015/04/08 02:28:13 jsg Exp $       */
+/*     $OpenBSD: drm_linux.c,v 1.4 2015/04/08 15:01:33 jsg Exp $       */
 /*
  * Copyright (c) 2013 Jonathan Gray <jsg@openbsd.org>
  *
@@ -155,7 +155,7 @@ vmap(struct vm_page **pages, unsigned int npages, unsigned long flags,
        paddr_t pa;
        int i;
 
-       va = uvm_km_valloc_wait(phys_map, PAGE_SIZE * npages);
+       va = uvm_km_valloc(kernel_map, PAGE_SIZE * npages);
        if (va == 0)
                return NULL;
        for (i = 0; i < npages; i++) {
@@ -176,6 +176,6 @@ vunmap(void *addr, size_t size)
 
        pmap_remove(pmap_kernel(), va, va + size);
        pmap_update(pmap_kernel());
-       uvm_km_free(phys_map, va, size);
+       uvm_km_free(kernel_map, va, size);
 }