Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp513873yba; Mon, 1 Apr 2019 10:49:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqwiMrRGQ2ZFBFKbJqTopLeR50PrsfHssjIxeYARNp63FXhZ4RR5LKBalMl7wKkRCkCQ8kzu X-Received: by 2002:a17:902:f01:: with SMTP id 1mr64707803ply.41.1554140955020; Mon, 01 Apr 2019 10:49:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554140955; cv=none; d=google.com; s=arc-20160816; b=Sp6JKgykxfkHUDQ+A2z+zzMMpBMFXSvCRBqaroA3nEMpcszkitm8VITnKkIa8NaFG+ /3nenGl6iKr0gRhzqjJFMPk+LgAWFsSD99DfkuiHEo18E2CNv1BFwuNViO8Gty/h3RWo cH2qxDS4zeJr9vAf74QwBGyrJnnbpeY8pxe/BZq9LoqgjTHHN61k+d9XFAFxLrNrvzyf 9qeeL4lGncPRollC08PvP6X8WW5cdKqDPGj7+vbJh2DJJ5Mz63WQlBEyAbUcpd5HvZkB IIT0AB+yV+rWIJfgwaMcfJmZIopCRyTdxVY0UNJjINgdViq/rlAnXPaP1QnP0A7ETFN+ Z89w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7/lrO5/1FsBGauMrhno2nbHGITcySJx+irkNm/IYoYU=; b=PUWJrekX5sf/Q1maRlBtAv+ePeDTtXix+WYY8CFthV+tYKDaTSokQgUPLxGGoDQ2ev u6IgJeJeZJ6eMK/XSlBPyq/r2P/u3jAm3HI7Hzyievgvi/ugu4qpGhnE9/zsdmljx9xN bU6t2iFiggTmDJiLEDZED5QLNAoxxPCoPXq+0xAWTQnpAvHcfu6iNQJUFbfJs5hfQagR mHTSnFazybAyKRrX3tMsQty2t79kcWrt7JkKrItSe1Me9ery08/qW4S/bX44fntNQOKJ 4rdOUUvcB2tQqmkwDMuor6rHUv62VQh/ExRiV1kJJXCDiyKi4JTdXysdvpYX1Dvocvbo l1Mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="m/03qVxi"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w5si8813032pgs.268.2019.04.01.10.48.59; Mon, 01 Apr 2019 10:49:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="m/03qVxi"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387507AbfDARcf (ORCPT + 99 others); Mon, 1 Apr 2019 13:32:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:40778 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733232AbfDARcc (ORCPT ); Mon, 1 Apr 2019 13:32:32 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6EF4D2171F; Mon, 1 Apr 2019 17:32:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554139952; bh=75oQRojAWiCzcFUtpejatkvkUK7JvLdHttq6z+E6+Zo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m/03qVxiFAIEffuMuyGwxRE4Z6JWEvJmlL/Sb4NW64x4EhIo7+K5LwuSsqaCnvFVo XShdqDjjo8w7Y+uaX3AN3HxKyUSJ+FrMUClDPJ71+EHviZHhyae/MAYXiv6nz6EUCi h8Hem73IHO6cwJjxHEETVcmUJA2CkJO8tYAvPfD0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Laurent Fert , Alexander Shishkin , Sasha Levin Subject: [PATCH 4.4 062/131] stm class: Fix unlocking braino in the error path Date: Mon, 1 Apr 2019 19:02:12 +0200 Message-Id: <20190401170057.457540125@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190401170051.645954551@linuxfoundation.org> References: <20190401170051.645954551@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 1810f2c44817c74ca3d05d1e3981e3a2e2ceb6f5 ] If an illegal attempt is made to unlink stm source device from an stm device, the stm device's link spinlock mistakenly remains locked. While this really shouldn't happen (there's a warning in place), the locking should remain in order so that we can still recover from this situation if it indeed does happen. This patch unifies the unlocking in the exit path of __stm_source_link_drop() to fix this. Reported-by: Laurent Fert Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/hwtracing/stm/core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c index e4fa583b57a6..d4deac108578 100644 --- a/drivers/hwtracing/stm/core.c +++ b/drivers/hwtracing/stm/core.c @@ -817,10 +817,8 @@ static void __stm_source_link_drop(struct stm_source_device *src, spin_lock(&stm->link_lock); spin_lock(&src->link_lock); link = srcu_dereference_check(src->link, &stm_source_srcu, 1); - if (WARN_ON_ONCE(link != stm)) { - spin_unlock(&src->link_lock); - return; - } + if (WARN_ON_ONCE(link != stm)) + goto unlock; stm_output_free(link, &src->output); list_del_init(&src->link_entry); @@ -828,6 +826,7 @@ static void __stm_source_link_drop(struct stm_source_device *src, stm_put_device(link); rcu_assign_pointer(src->link, NULL); +unlock: spin_unlock(&src->link_lock); spin_unlock(&stm->link_lock); } -- 2.19.1