On Tue, 2011-05-17 at 00:01 +0200, Jiri Slaby wrote: > On 05/16/2011 11:19 PM, John Stultz wrote: > > diff --git a/include/linux/init_task.h b/include/linux/init_task.h > > index caa151f..b69d94b 100644 > > --- a/include/linux/init_task.h > > +++ b/include/linux/init_task.h > > @@ -161,6 +161,7 @@ extern struct cred init_cred; > > .group_leader = &tsk, \ > > RCU_INIT_POINTER(.real_cred, &init_cred), \ > > RCU_INIT_POINTER(.cred, &init_cred), \ > > + .comm_lock = __SPIN_LOCK_UNLOCKED(tsk.comm_lock), \ > > Hmm, you should also init the spinlock somewhere in copy_process. > Otherwise when a process is forked in the middle of [gs]et_task_comm > called on it on another cpu, you have two locked locks and only the > parent's will be unlocked, right? Ah, yep. Fixed for the next version. thanks! -john -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>