ipmi_ssif: unlock on allocation failure
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 5 May 2017 05:33:24 +0000 (08:33 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Apr 2018 17:47:52 +0000 (19:47 +0200)
[ Upstream commit cf9806f32ef63b745f2486e0dbb2ac21f4ca44f0 ]

We should unlock and re-enable IRQs if this allocation fails.

Fixes: 259307074bfc ("ipmi: Add SMBus interface driver (SSIF) ")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/ipmi/ipmi_ssif.c

index 510fc104bcdc25992323774f1fbd26ef94d9c79e..f11c1c7e84c6e595d311973f0eb82dad71f7fde6 100644 (file)
@@ -409,6 +409,7 @@ static void start_event_fetch(struct ssif_info *ssif_info, unsigned long *flags)
        msg = ipmi_alloc_smi_msg();
        if (!msg) {
                ssif_info->ssif_state = SSIF_NORMAL;
+               ipmi_ssif_unlock_cond(ssif_info, flags);
                return;
        }
 
@@ -431,6 +432,7 @@ static void start_recv_msg_fetch(struct ssif_info *ssif_info,
        msg = ipmi_alloc_smi_msg();
        if (!msg) {
                ssif_info->ssif_state = SSIF_NORMAL;
+               ipmi_ssif_unlock_cond(ssif_info, flags);
                return;
        }