aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-05-07 18:19:30 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-05-22 09:38:30 +0000
commit324fbdb27ab1dbf027cf250fd575739985bf5434 (patch)
treed27c7207a4a274f7ce1e5d759a85924f393d26a1
parentf3253c60b426ba7ce4c2da47a8ad04f688ced52c (diff)
vm_object_set_memattr(): handle all object types without listing them explicitly
(cherry picked from commit 3e7a11ca21f3a7948c50f27de5b2159f0bb56672)
-rw-r--r--sys/vm/vm_object.c22
1 files changed, 5 insertions, 17 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 735ab603a09b..1aa05093f93a 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -330,24 +330,12 @@ vm_object_set_memattr(vm_object_t object, vm_memattr_t memattr)
{
VM_OBJECT_ASSERT_WLOCKED(object);
- switch (object->type) {
- case OBJT_DEFAULT:
- case OBJT_DEVICE:
- case OBJT_MGTDEVICE:
- case OBJT_PHYS:
- case OBJT_SG:
- case OBJT_SWAP:
- case OBJT_SWAP_TMPFS:
- case OBJT_VNODE:
- if (!TAILQ_EMPTY(&object->memq))
- return (KERN_FAILURE);
- break;
- case OBJT_DEAD:
+
+ if (object->type == OBJT_DEAD)
return (KERN_INVALID_ARGUMENT);
- default:
- panic("vm_object_set_memattr: object %p is of undefined type",
- object);
- }
+ if (!TAILQ_EMPTY(&object->memq))
+ return (KERN_FAILURE);
+
object->memattr = memattr;
return (KERN_SUCCESS);
}