Message ID | 20210222125352.110124-1-nixiaoming@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | futex: fix dead code in attach_to_pi_owner() | expand |
On Mon, Feb 22, 2021 at 08:53:52PM +0800, Xiaoming Ni wrote: > From: Thomas Gleixner <tglx@linutronix.de> > > The handle_exit_race() function is defined in commit c158b461306df82 > ("futex: Cure exit race"), which never returns -EBUSY. This results > in a small piece of dead code in the attach_to_pi_owner() function: > > int ret = handle_exit_race(uaddr, uval, p); /* Never return -EBUSY */ > ... > if (ret == -EBUSY) > *exiting = p; /* dead code */ > > The return value -EBUSY is added to handle_exit_race() in upsteam > commit ac31c7ff8624409 ("futex: Provide distinct return value when > owner is exiting"). This commit was incorporated into v4.9.255, before > the function handle_exit_race() was introduced, whitout Modify > handle_exit_race(). > > To fix dead code, extract the change of handle_exit_race() from > commit ac31c7ff8624409 ("futex: Provide distinct return value when owner > is exiting"), re-incorporated. > > Fixes: c158b461306df82 ("futex: Cure exit race") > Cc: stable@vger.kernel.org # 4.9.258-rc1 > Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com> > --- > kernel/futex.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) What is the git commit id of this patch in Linus's tree? Also, what kernel tree(s) is this supposed to go to? thanks, greg k-h
On 2021/2/25 16:25, Greg KH wrote: > On Mon, Feb 22, 2021 at 08:53:52PM +0800, Xiaoming Ni wrote: >> From: Thomas Gleixner <tglx@linutronix.de> >> >> The handle_exit_race() function is defined in commit c158b461306df82 >> ("futex: Cure exit race"), which never returns -EBUSY. This results >> in a small piece of dead code in the attach_to_pi_owner() function: >> >> int ret = handle_exit_race(uaddr, uval, p); /* Never return -EBUSY */ >> ... >> if (ret == -EBUSY) >> *exiting = p; /* dead code */ >> >> The return value -EBUSY is added to handle_exit_race() in upsteam >> commit ac31c7ff8624409 ("futex: Provide distinct return value when >> owner is exiting"). This commit was incorporated into v4.9.255, before >> the function handle_exit_race() was introduced, whitout Modify >> handle_exit_race(). >> >> To fix dead code, extract the change of handle_exit_race() from >> commit ac31c7ff8624409 ("futex: Provide distinct return value when owner >> is exiting"), re-incorporated. mainline: ac31c7ff8624 futex: Provide distinct return value when owner is exiting >> >> Fixes: c158b461306df82 ("futex: Cure exit race") stable linux-4.9.y 9c3f39860367 futex: Cure exit race c27f392040e2 futex: Provide distinct return value when owner is exiting >> Cc: stable@vger.kernel.org # 4.9.258-rc1 >> Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com> >> --- >> kernel/futex.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) > > What is the git commit id of this patch in Linus's tree? > > Also, what kernel tree(s) is this supposed to go to? > > thanks, > > greg k-h > . > Sorry, the commit id c158b461306df82 in the patch does not exist in the linux-stable repository. The commit ID is from linux-stable-rc. I corrected the commit id in a subsequent email, and added a branch label. https://lore.kernel.org/lkml/20210224100923.51315-1-nixiaoming@huawei.com/ Sorry, I forgot to use "--in-reply-to=" when I sent the update patch. This issue occurs only in the linux-4.9.y branch v4.9.258 Thanks xiaoming Ni
On Thu, 25 Feb 2021, Xiaoming Ni wrote: > On 2021/2/25 16:25, Greg KH wrote: > > On Mon, Feb 22, 2021 at 08:53:52PM +0800, Xiaoming Ni wrote: > > > From: Thomas Gleixner <tglx@linutronix.de> > > > > > > The handle_exit_race() function is defined in commit c158b461306df82 > > > ("futex: Cure exit race"), which never returns -EBUSY. This results > > > in a small piece of dead code in the attach_to_pi_owner() function: > > > > > > int ret = handle_exit_race(uaddr, uval, p); /* Never return -EBUSY */ > > > ... > > > if (ret == -EBUSY) > > > *exiting = p; /* dead code */ > > > > > > The return value -EBUSY is added to handle_exit_race() in upsteam > > > commit ac31c7ff8624409 ("futex: Provide distinct return value when > > > owner is exiting"). This commit was incorporated into v4.9.255, before > > > the function handle_exit_race() was introduced, whitout Modify > > > handle_exit_race(). > > > > > > To fix dead code, extract the change of handle_exit_race() from > > > commit ac31c7ff8624409 ("futex: Provide distinct return value when owner > > > is exiting"), re-incorporated. > mainline: > ac31c7ff8624 futex: Provide distinct return value when owner is exiting > > > > > > > Fixes: c158b461306df82 ("futex: Cure exit race") > > stable linux-4.9.y > 9c3f39860367 futex: Cure exit race > c27f392040e2 futex: Provide distinct return value when owner is exiting > > > > Cc: stable@vger.kernel.org # 4.9.258-rc1 > > > Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com> > > > --- > > > kernel/futex.c | 6 +++--- > > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > What is the git commit id of this patch in Linus's tree? > > > > Also, what kernel tree(s) is this supposed to go to? > > > > thanks, > > > > greg k-h > > . > > > Sorry, the commit id c158b461306df82 in the patch does not exist in the > linux-stable repository. > The commit ID is from linux-stable-rc. > > I corrected the commit id in a subsequent email, and added a branch label. > https://lore.kernel.org/lkml/20210224100923.51315-1-nixiaoming@huawei.com/ Replied to the follow-up. > Sorry, I forgot to use "--in-reply-to=" when I sent the update patch. > > This issue occurs only in the linux-4.9.y branch v4.9.258 -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog
diff --git a/kernel/futex.c b/kernel/futex.c index b65dbb5d60bb..0fd785410150 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -1207,11 +1207,11 @@ static int handle_exit_race(u32 __user *uaddr, u32 uval, u32 uval2; /* - * If the futex exit state is not yet FUTEX_STATE_DEAD, wait - * for it to finish. + * If the futex exit state is not yet FUTEX_STATE_DEAD, tell the + * caller that the alleged owner is busy. */ if (tsk && tsk->futex_state != FUTEX_STATE_DEAD) - return -EAGAIN; + return -EBUSY; /* * Reread the user space value to handle the following situation: