Date: Thu, 20 Mar 2014 10:05:29 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-current@freebsd.org Cc: Maksim Yevmenkin <emax@freebsd.org> Subject: Re: [rfc] /dev/devstat permissions patch Message-ID: <201403201005.29278.jhb@freebsd.org> In-Reply-To: <CAFPOs6pAfrmN8U0jWn%2BoTLDWg%2B-U%2BhjLr5fuq-Fw1Q_jrmqc0Q@mail.gmail.com> References: <CAFPOs6pAfrmN8U0jWn%2BoTLDWg%2B-U%2BhjLr5fuq-Fw1Q_jrmqc0Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, March 18, 2014 3:29:32 pm Maksim Yevmenkin wrote: > hello, > > would anyone object to the following patch? I think this is fine. While you are at it, can you test this patch to remove D_NEEDGIANT? Index: subr_devstat.c =================================================================== --- subr_devstat.c (revision 263302) +++ subr_devstat.c (working copy) @@ -460,7 +460,6 @@ static d_mmap_t devstat_mmap; static struct cdevsw devstat_cdevsw = { .d_version = D_VERSION, - .d_flags = D_NEEDGIANT, .d_mmap = devstat_mmap, .d_name = "devstat", }; @@ -482,13 +481,16 @@ devstat_mmap(struct cdev *dev, vm_ooffset_t offset if (nprot != VM_PROT_READ) return (-1); + mtx_lock(&devstat_mutex); TAILQ_FOREACH(spp, &pagelist, list) { if (offset == 0) { *paddr = vtophys(spp->stat); + mtx_unlock(&devstat_mutex); return (0); } offset -= PAGE_SIZE; } + mtx_unlock(&devstat_mutex); return (-1); } -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403201005.29278.jhb>