Messages in this thread | | | Subject | Re: [PATCH] mm: fix overly aggressive shmdt() when calls span multiple segments | From | Davidlohr Bueso <> | Date | Fri, 14 Nov 2014 00:20:38 -0800 |
| |
On Mon, 2014-11-03 at 16:06 -0800, Dave Hansen wrote: > From: Dave Hansen <dave.hansen@linux.intel.com> > > This is a highly-contrived scenario. But, a single shmdt() call > can be induced in to unmapping memory from mulitple shm segments. > Example code is here: > > http://www.sr71.net/~dave/intel/shmfun.c > > The fix is pretty simple: Record the 'struct file' for the first > VMA we encounter and then stick to it. Decline to unmap anything > not from the same file and thus the same segment. > > I found this by inspection and the odds of anyone hitting this in > practice are pretty darn small. > > Lightly tested, but it's a pretty small patch.
Passed shmdt ltp tests, fwiw.
> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
| |