The iskmemdev function checks for minor number 14 in addition to 0 and 1 on the following archs:
amd64, arm64, i386, and riscv64 Device 2, 14 was traditionally /dev/io, which we don't support and so opening it will always return ENXIO from mmopen anyway. We only use iskmemdev in one place in the tree, to return EPERM when trying to access /dev/kmem or /dev/mem when securelevel >= 1. This patch removes the check for minor(dev) == 14 on the four above mentioned architectures. --- sys/arch/amd64/amd64/conf.c.dist Mon Feb 20 18:17:44 2023 +++ sys/arch/amd64/amd64/conf.c Mon Feb 20 18:29:28 2023 @@ -313,7 +313,7 @@ iskmemdev(dev_t dev) { - return (major(dev) == mem_no && (minor(dev) < 2 || minor(dev) == 14)); + return (major(dev) == mem_no && minor(dev) < 2); } /* --- sys/arch/arm64/arm64/conf.c.dist Mon Feb 20 18:18:20 2023 +++ sys/arch/arm64/arm64/conf.c Mon Feb 20 18:29:14 2023 @@ -255,7 +255,7 @@ iskmemdev(dev_t dev) { - return (major(dev) == CMAJ_MM && (minor(dev) < 2 || minor(dev) == 14)); + return (major(dev) == CMAJ_MM && minor(dev) < 2); } /* --- sys/arch/i386/i386/conf.c.dist Mon Feb 20 18:18:35 2023 +++ sys/arch/i386/i386/conf.c Mon Feb 20 18:28:51 2023 @@ -309,7 +309,7 @@ int iskmemdev(dev_t dev) { - return (major(dev) == mem_no && (minor(dev) < 2 || minor(dev) == 14)); + return (major(dev) == mem_no && minor(dev) < 2); } /* --- sys/arch/riscv64/riscv64/conf.c.dist Mon Feb 20 18:18:48 2023 +++ sys/arch/riscv64/riscv64/conf.c Mon Feb 20 18:28:35 2023 @@ -253,7 +253,7 @@ iskmemdev(dev_t dev) { - return (major(dev) == mem_no && (minor(dev) < 2 || minor(dev) == 14)); + return (major(dev) == mem_no && minor(dev) < 2); } /*