Messages in this thread | | | Date | Wed, 18 May 2011 09:28:36 +0900 | From | KOSAKI Motohiro <> | Subject | Re: [PATCH 1/3] comm: Introduce comm_lock seqlock to protect task->comm access |
| |
(2011/05/17 6:19), John Stultz wrote: > The implicit rules for current->comm access being safe without locking > are no longer true. Accessing current->comm without holding the task > lock may result in null or incomplete strings (however, access won't > run off the end of the string). > > In order to properly fix this, I've introduced a comm_lock spinlock > which will protect comm access and modified get_task_comm() and > set_task_comm() to use it. > > Since there are a number of cases where comm access is open-coded > safely grabbing the task_lock(), we preserve the task locking in > set_task_comm, so those users are also safe. > > With this patch, users that access current->comm without a lock > are still prone to null/incomplete comm strings, but it should > be no worse then it is now. > > The next step is to go through and convert all comm accesses to > use get_task_comm(). This is substantial, but can be done bit by > bit, reducing the race windows with each patch. > > CC: Ted Ts'o<tytso@mit.edu> > CC: KOSAKI Motohiro<kosaki.motohiro@jp.fujitsu.com> > CC: David Rientjes<rientjes@google.com> > CC: Dave Hansen<dave@linux.vnet.ibm.com> > CC: Andrew Morton<akpm@linux-foundation.org> > CC: linux-mm@kvack.org > Acked-by: David Rientjes<rientjes@google.com> > Signed-off-by: John Stultz<john.stultz@linaro.org>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
| |