From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932119AbdDEIKW (ORCPT ); Wed, 5 Apr 2017 04:10:22 -0400 Received: from mout.gmx.net ([212.227.17.20]:56066 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932095AbdDEIKV (ORCPT ); Wed, 5 Apr 2017 04:10:21 -0400 Message-ID: <1491379707.6538.2.camel@gmx.de> Subject: Re: [tip:locking/core] rtmutex: Deboost before waking up the top waiter From: Mike Galbraith To: linux-tip-commits@vger.kernel.org Cc: hpa@zytor.com, linux-kernel@vger.kernel.org, rostedt@goodmis.org, mingo@kernel.org, xlpang@redhat.com, tglx@linutronix.de, Peter Zijlstra Date: Wed, 05 Apr 2017 10:08:27 +0200 In-Reply-To: References: <20170323150216.110065320@infradead.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.5 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:3MOU3r5wlG1uo8XmddFCJA0P746SUwxteKbCSAwL+E9+eD/styg vbTpAPMjl+TacZOGDlfVY7XW7ctXUYvCu1h+Y5Z0q5lEtmSZeXvsnvKLB1kna4bptGjVy/o W8Wmzw/Zz+l9Q8c0tO882qGNhEbWoq3UDgevQ7OZM5VyvKLw/9JwvuNqiyTS9jlbWlvbuzK 1iTeoRVKpXLPrIJMI9VrA== X-UI-Out-Filterresults: notjunk:1;V01:K0:FivomtibVPQ=:IY6RUyrXuKNYT6qRhEYKy4 3xsH12vP3KXd+IZwBDYeZHty6zKfGIzxInDKue86Jh1cBsAEIl5EUwvySyB3SF1Wc8uRkLoPu PuNElejcDK/nlpT9MG1gNXeDpAsPvWFD0csD0AYG9goeFBYvZMkt6HpAcSxUjuk0+n0sVkchf hNbq19fPRUmiif4eRuCexTPW59//fWJgTQDZUX35ydbkF/K538p5T0aAT015z3GTviwZekAeK LhbOVgAD4Ik/M4CK0DEM4aGVS29WwhaXg3oCdrMXbum27pgG2d6AsRrtnxsthHunL0SH84y7X wRfM/eb1+Ieyj6bTqdeL5/m183wsWiLkTGHX+12lQmyU06jN7nHuoxtPvGMQSjtFnGN5S6Tqo TCaQSncH+wth+0n9s+C4PtXdPb9J48e9yRUHK2gotVFlFLJ2LRh8lcexIuGO9kzX1Vf77yYWc pZRHnA5Fb7xwZYlbqnR4F6a0Dw/y+wJZuDMSNjP6qYnsPXlt95cb0P4PuwN3hmm05E925+6SJ xYzR6ye+IF/peOJS/2nNyJEzi426FJfhDqUQt5Y7W1QD8MsL7k8bWjf+WbotGIzRzFCLshb+y fahAlyeZAXsgBQ6NLjrG8zMsJst8M9CLEMVTAclPGWjLNre0Q/FpK6TplPYbKr81uR1WGGT2R LaM9CybVzrbki+5SgOVVLvrfUF76lMu8nBX9RfIt+YRTrR+NkFBsGmAtFq+c1DXuNnjCSmhdL iURRpVl5e7mUqKtw9cQTWZqdyo1DeI3CrkYzvZzHuEPYuQgDGRBhbkevYb3lm9PBb9cmNqKmM 4Ki26XF Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org locking/rtmutex: Fix preempt leak in __rt_mutex_futex_unlock() mark_wakeup_next_waiter() already disables preemption, doing so again leaves us with an unpaired preempt_disable(). Signed-off-by: Mike Galbraith --- kernel/locking/rtmutex.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1581,13 +1581,13 @@ bool __sched __rt_mutex_futex_unlock(str return false; /* done */ } - mark_wakeup_next_waiter(wake_q, lock); /* - * We've already deboosted, retain preempt_disabled when dropping - * the wait_lock to avoid inversion until the wakeup. Matched - * by rt_mutex_postunlock(); + * We've already deboosted, mark_wakeup_next_waiter() will + * retain preempt_disabled when we drop the wait_lock, to + * avoid inversion prior to the wakeup. preempt_disable() + * therein pairs with rt_mutex_postunlock(). */ - preempt_disable(); + mark_wakeup_next_waiter(wake_q, lock); return true; /* call postunlock() */ }