summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/drm/include/linux
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2021-01-13 01:04:49 +0000
committerjsg <jsg@openbsd.org>2021-01-13 01:04:49 +0000
commit1673f09a40940493856db8f67271437f4f6e82d2 (patch)
tree7aaf380d87696a68c3dfd132be2834668ea51fb6 /sys/dev/pci/drm/include/linux
parentAdd pflog(4) tests for IPv6. (diff)
downloadwireguard-openbsd-1673f09a40940493856db8f67271437f4f6e82d2.tar.xz
wireguard-openbsd-1673f09a40940493856db8f67271437f4f6e82d2.zip
revert drm vmalloc changes
It is suspected they were to blame for a machine with inteldrm running X (xterms and chromium) running out of resources after a few days. ok kettenis@
Diffstat (limited to 'sys/dev/pci/drm/include/linux')
-rw-r--r--sys/dev/pci/drm/include/linux/mm.h29
-rw-r--r--sys/dev/pci/drm/include/linux/vmalloc.h25
2 files changed, 38 insertions, 16 deletions
diff --git a/sys/dev/pci/drm/include/linux/mm.h b/sys/dev/pci/drm/include/linux/mm.h
index 6c3a0c640d5..f7d84207793 100644
--- a/sys/dev/pci/drm/include/linux/mm.h
+++ b/sys/dev/pci/drm/include/linux/mm.h
@@ -30,31 +30,38 @@
#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
#define PFN_PHYS(x) ((x) << PAGE_SHIFT)
-bool is_vmalloc_addr(const void *);
+#define is_vmalloc_addr(ptr) true
-void *kvmalloc(size_t, gfp_t);
-void kvfree(const void *);
+static inline void *
+kvmalloc(size_t size, gfp_t flags)
+{
+ return malloc(size, M_DRM, flags);
+}
static inline void *
-kvmalloc_array(size_t n, size_t size, gfp_t flags)
+kvmalloc_array(size_t n, size_t size, int flags)
{
if (n != 0 && SIZE_MAX / n < size)
return NULL;
- return kvmalloc(n * size, flags);
+ return malloc(n * size, M_DRM, flags);
}
static inline void *
-kvcalloc(size_t n, size_t size, gfp_t flags)
+kvcalloc(size_t n, size_t size, int flags)
{
- if (n != 0 && SIZE_MAX / n < size)
- return NULL;
- return kvmalloc(n * size, flags | M_ZERO);
+ return kvmalloc_array(n, size, flags | M_ZERO);
}
static inline void *
-kvzalloc(size_t size, gfp_t flags)
+kvzalloc(size_t size, int flags)
+{
+ return malloc(size, M_DRM, flags | M_ZERO);
+}
+
+static inline void
+kvfree(const void *objp)
{
- return kvmalloc(size, flags | M_ZERO);
+ free((void *)objp, M_DRM, 0);
}
static inline long
diff --git a/sys/dev/pci/drm/include/linux/vmalloc.h b/sys/dev/pci/drm/include/linux/vmalloc.h
index fd6cc54b7db..53ba42e2d18 100644
--- a/sys/dev/pci/drm/include/linux/vmalloc.h
+++ b/sys/dev/pci/drm/include/linux/vmalloc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: vmalloc.h,v 1.2 2021/01/08 23:02:09 kettenis Exp $ */
+/* $OpenBSD: vmalloc.h,v 1.3 2021/01/13 01:04:49 jsg Exp $ */
/*
* Copyright (c) 2013, 2014, 2015 Mark Kettenis
*
@@ -25,10 +25,25 @@
#include <linux/overflow.h>
void *vmap(struct vm_page **, unsigned int, unsigned long, pgprot_t);
-void vunmap(void *, size_t);
+void vunmap(void *, size_t);
+
+static inline void *
+vmalloc(unsigned long size)
+{
+ return malloc(size, M_DRM, M_WAITOK | M_CANFAIL);
+}
+
+static inline void *
+vzalloc(unsigned long size)
+{
+ return malloc(size, M_DRM, M_WAITOK | M_CANFAIL | M_ZERO);
+}
+
+static inline void
+vfree(void *objp)
+{
+ free(objp, M_DRM, 0);
+}
-void *vmalloc(unsigned long);
-void *vzalloc(unsigned long);
-void vfree(const void *);
#endif