diff --git a/sys/dev/ksyms/ksyms.c b/sys/dev/ksyms/ksyms.c index 0e7bf6a1216..1c1fd8426e2 100644 --- a/sys/dev/ksyms/ksyms.c +++ b/sys/dev/ksyms/ksyms.c @@ -404,6 +404,7 @@ ksyms_open(struct cdev *dev, int flags, int fmt __unused, struct thread *td) { struct tsizes ts; struct ksyms_softc *sc; + vm_object_t object; vm_size_t elfsz; int error, try; @@ -441,8 +442,10 @@ ksyms_open(struct cdev *dev, int flags, int fmt __unused, struct thread *td) ksyms_size_calc(&ts); elfsz = sizeof(struct ksyms_hdr) + ts.ts_symsz + ts.ts_strsz; - sc->sc_obj = vm_object_allocate(OBJT_DEFAULT, + object = vm_object_allocate(OBJT_DEFAULT, OFF_TO_IDX(round_page(elfsz))); + vm_object_set_flag(object, OBJ_NOSPLIT); + sc->sc_obj = object; sc->sc_objsz = elfsz; error = ksyms_snapshot(sc, &ts);