Re: Status of the review of the backport

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 27, 2014 at 10:23:33AM +0530, Preeti U Murthy wrote:
> Hi,
> 
> I had sent out a request for the backport on 2014-03-17 16:17:32 GMT
> titled "sched/autogroup: Fix race with task_groups list". I did not
> however hear back about the status of the review of this backport.
> Can you please let me know about the same? The below patch is known
> to have fixed several boot time kernel oops on some of our local
> machines and would be good to have it in the 3.10 stable kernel.

I have no record of your email, sorry.

> 
> Thanks
> 
> Regards
> Preeti U Murthy
> 
> 
> From: Gerald Schaefer <gerald.schaefer <at> de.ibm.com>
> 
> commit 41261b6a832ea0e788627f6a8707854423f9ff49 upstream
> 
> In autogroup_create(), a tg is allocated and added to the task_groups
> list. If CONFIG_RT_GROUP_SCHED is set, this tg is then modified while on
> the list, without locking. This can race with someone walking the list,
> like __enable_runtime() during CPU unplug, and result in a use-after-free
> bug.
> 
> To fix this, move sched_online_group(), which adds the tg to the list,
> to the end of the autogroup_create() function after the modification.
> 
> Please backport this fix to stable/3.10.y. There were many reports
> of kernel oops on 3.10 due to the absence of this fix.
> 
> Signed-off-by: Gerald Schaefer <gerald.schaefer <at> de.ibm.com>
> Signed-off-by: Peter Zijlstra <peterz <at> infradead.org>
> Link: http://lkml.kernel.org/r/1369411669-46971-2-git-send-email-gerald.schaefer <at> de.ibm.com
> Signed-off-by: Ingo Molnar <mingo <at> kernel.org>
> Signed-off-by: Preeti U Murthy <preeti <at> linux.vnet.ibm.com>
> ---
> 
>  kernel/sched/auto_group.c |    3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c
> index 64de5f8..4a07353 100644
> --- a/kernel/sched/auto_group.c
> +++ b/kernel/sched/auto_group.c
>  <at>  <at>  -77,8 +77,6  <at>  <at>  static inline struct autogroup *autogroup_create(void)
>  	if (IS_ERR(tg))
>  		goto out_free;
> 
> -	sched_online_group(tg, &root_task_group);
> -
>  	kref_init(&ag->kref);
>  	init_rwsem(&ag->lock);
>  	ag->id = atomic_inc_return(&autogroup_seq_nr);
>  <at>  <at>  -98,6 +96,7  <at>  <at>  static inline struct autogroup *autogroup_create(void)
>  #endif
>  	tg->autogroup = ag;
> 
> +	sched_online_group(tg, &root_task_group);
>  	return ag;
> 
>  out_free:

That is not in any form that could be applied :(

Please fix your email client and try again.

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]