From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756014AbbDJMRH (ORCPT ); Fri, 10 Apr 2015 08:17:07 -0400 Received: from mail-ie0-f171.google.com ([209.85.223.171]:33301 "EHLO mail-ie0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754422AbbDJMRD (ORCPT ); Fri, 10 Apr 2015 08:17:03 -0400 Message-ID: <5527B863.6080901@acm.org> Date: Fri, 10 Apr 2015 06:47:47 -0500 From: Corey Minyard Reply-To: minyard@acm.org User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Alistair Popple , openipmi-developer@lists.sourceforge.net CC: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, jk@ozlabs.org Subject: Re: [Openipmi-developer] [PATCH] ipmi/powernv: Fix minor locking bug References: <1428651140-13665-1-git-send-email-alistair@popple.id.au> In-Reply-To: <1428651140-13665-1-git-send-email-alistair@popple.id.au> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I should have caught that one. Thanks. -corey On 04/10/2015 02:32 AM, Alistair Popple wrote: > If ipmi_powernv_recv(...) is called without a current message it > prints a warning and returns. However it fails to release the message > lock causing the system to dead lock during any subsequent IPMI > operations. > > This error path should never normally be taken unless there are bugs > elsewhere in the system. > > Signed-off-by: Alistair Popple > --- > drivers/char/ipmi/ipmi_powernv.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/char/ipmi/ipmi_powernv.c b/drivers/char/ipmi/ipmi_powernv.c > index b3a2224..9b409c0 100644 > --- a/drivers/char/ipmi/ipmi_powernv.c > +++ b/drivers/char/ipmi/ipmi_powernv.c > @@ -126,6 +126,7 @@ static int ipmi_powernv_recv(struct ipmi_smi_powernv *smi) > spin_lock_irqsave(&smi->msg_lock, flags); > > if (!smi->cur_msg) { > + spin_unlock_irqrestore(&smi->msg_lock, flags); > pr_warn("no current message?\n"); > return 0; > }