Index: sys/compat/lindebugfs/lindebugfs.c =================================================================== --- sys/compat/lindebugfs/lindebugfs.c +++ sys/compat/lindebugfs/lindebugfs.c @@ -130,8 +130,13 @@ if ((rc = linux_set_current_flags(curthread, M_NOWAIT))) return (rc); vn.v_data = d->dm_data; - buf = uio->uio_iov[0].iov_base; - len = min(uio->uio_iov[0].iov_len, uio->uio_resid); + if (uio->uio_rw == UIO_READ) { + buf = uio->uio_iov[0].iov_base; + len = min(uio->uio_iov[0].iov_len, uio->uio_resid); + } else { + buf = sbuf_data(sb); + len = sbuf_len(sb); + } off = 0; lf.private_data = NULL; rc = d->dm_fops->open(&vn, &lf);