Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp2980908ybk; Mon, 18 May 2020 12:43:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyjduTKAF5AxdK1I+kINog3B/h2JWFglNeA8Ks/24jhy/QPj3u4vgL13NZL0Slm4KbGHukW X-Received: by 2002:a05:6402:cb4:: with SMTP id cn20mr15867550edb.150.1589831004717; Mon, 18 May 2020 12:43:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589831004; cv=none; d=google.com; s=arc-20160816; b=SuKFzXTiWC96N+976gs+y4TWlqtR8qiaNia6PeHuAbAgWTR+qzpJ0rYt+yvuXWQppn jFfyCgedgAwuXEe74qS+M1x7PqzFQpoksAEpwESJ6BzQx3vRmA24ztUkNA5SepTH3onk TayF483uI1C7OJ0ouVR4J36gXu/b09+7O+mdn27r2/+0LpPr7uCo+i7zFnakkpY5UD4F CWvAHQolfaxOQMJEkLV4zIGPfTOGR/DZEHuhSFg2ZJ4epJmbT33OoxrNmylKAJ2Z0sBW HGXafhAuotjz2dFtFnJ4r4h++0UKRYOBBTv8XEOGvlOqDxd1SKmwYeJe1XdzTeKrC4Q5 I/oQ== 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=UTvpPFamBhctY11JhZEf1xPny1vC4BtrpKcjlQ28wEM=; b=s+9mRBLGLUl0WIqRVmeAwZNAqJLTh4PzMp5ERbidwqyIT8KQ53CLIO7UL1d1CHBoNJ RfS0fv9ZmljgEzOc69DDfifkliiJHvY3/PspwmPuAzWz5wVxIlUdAPYOLome+EX+tYpB AT7WDhPAlK2622Xfw8XZNfJzuJ0OGlxITY/TM5ojr/RS+Hxrx7biZbddkdKxp4ISWwiR 0hOA2U3ADPyjiZ5L5kMH+dwV9jeeaMzHcGUsIDPQmWh74vSpNsDLZ0ztuQxdH7WRYV9+ hjqMvgBtMFPXEbGrPv4QWax+WvfQPhTIBM4f1mDQf/Z5LwnUqOoOB81ENG93ZGWVjeVt AuCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="At/QbhYq"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id pw24si6998157ejb.145.2020.05.18.12.43.00; Mon, 18 May 2020 12:43:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="At/QbhYq"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731845AbgERSGy (ORCPT + 99 others); Mon, 18 May 2020 14:06:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:55074 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733213AbgERSGo (ORCPT ); Mon, 18 May 2020 14:06:44 -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 14F7420671; Mon, 18 May 2020 18:06:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589825204; bh=0nWpkoZTFnZDxmQRiTmW17jXBn2XQVwmaW26jKfT8Fg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=At/QbhYqvXAuv5kplCt66WatnzLVUkk8x5SelSJAsF+boCwaDEY/N7QhtvpzJKHXD 6a/t5HanlfXVvI8Ml4HJJbHpoNABwmtUkMaTnEHYZl+fGg7tet8nb3ighkNKiF0Esh KF9WqFLdvWJ1iH4ALYRQ50VeQqqyTM205MElihso= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Marc Zyngier , Guenter Roeck , Stephen Boyd , Michael Turquette Subject: [PATCH 5.6 172/194] clk: Unlink clock if failed to prepare or enable Date: Mon, 18 May 2020 19:37:42 +0200 Message-Id: <20200518173546.018721426@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200518173531.455604187@linuxfoundation.org> References: <20200518173531.455604187@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Marc Zyngier commit 018d4671b9bbd4a5c55cf6eab3e1dbc70a50b66e upstream. On failing to prepare or enable a clock, remove the core structure from the list it has been inserted as it is about to be freed. This otherwise leads to random crashes when subsequent clocks get registered, during which parsing of the clock tree becomes adventurous. Observed with QEMU's RPi-3 emulation. Fixes: 12ead77432f2 ("clk: Don't try to enable critical clocks if prepare failed") Signed-off-by: Marc Zyngier Cc: Guenter Roeck Cc: Stephen Boyd Cc: Michael Turquette Link: https://lkml.kernel.org/r/20200505140953.409430-1-maz@kernel.org Signed-off-by: Stephen Boyd Signed-off-by: Greg Kroah-Hartman --- drivers/clk/clk.c | 3 +++ 1 file changed, 3 insertions(+) --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -3512,6 +3512,9 @@ static int __clk_core_init(struct clk_co out: clk_pm_runtime_put(core); unlock: + if (ret) + hlist_del_init(&core->child_node); + clk_prepare_unlock(); if (!ret)