Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp5146797pxb; Mon, 15 Feb 2021 10:42:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJzZVrFWCf+2pPXEmB2bO4cyp4upqLLOH/b9k5/sMZ88j/SRKdJrgZZdTe8sf4oZtOdX5kaB X-Received: by 2002:a50:e84b:: with SMTP id k11mr5656014edn.225.1613414546956; Mon, 15 Feb 2021 10:42:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613414546; cv=none; d=google.com; s=arc-20160816; b=EL0QqqorNTQ/yoN93Q3svQqH4qYZDdFnPJY5qATNegO844MW+p1Zf6oTP7DajsCzHr Pv5EHoap2EyGVp7KoTlHYP/PWMLMm/anq98ktZ6z+7vNlCmVWt/mXKEBGFLst2y8Akfw zmxqKd5FiEcByeixoYH+kuGGoFQcGFl+szyT+sgOjFVTXUoqYZ0BvMiOFyFonqPVz6oX DOlIeYWCBDe285izu61/S+LvpHBKtTtUhVqDYLU4r2gSrGV+sGHFTWCbzh2DlrmDg2TA QNlQvO9+uPoO/NkF09KYjF6yLAG4y/6MhZyMRF9PLOTF30dPZSRIpmMiv5pR4yyGRUb1 L7IQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=dlG7WSBTmTt0VpZB7OCV0qVL7K8LEJDd0nI5vTKhQZg=; b=OKc8GkANqCXubjzl0yCKUVW7gDGuxkmM8XB4nDPYC3USdemPrkr8rmoOHfS1xRmreE XBPvQVNijfGJ/kpE8Ja2Ptsqd3COKxryVpDFsLynXDbtw1uB+bpiR0mElOiv4b0m8LXK Rnb6Pshe/i+DFpHIGzosl8Tm2dREdhj8Xu2zq0il4gZRbcGIq+JjcHKgCC+OULHJdGPK VVVf+iHulKiRN0l3jI2fT2lPD4LR1uP8cFNMpv9JC2EVICsLstf7/RO6oO8HI/vNUFVC JLtZsr+1b6hRFHOnvFGRbqH+nb96VYwUCPRy5RZc+57ctuXqdgmwoI2Wq4wF06wSQ0Uu 1Smw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=btS7zOsd; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id kf3si12811200ejc.393.2021.02.15.10.42.02; Mon, 15 Feb 2021 10:42:26 -0800 (PST) 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=@google.com header.s=20161025 header.b=btS7zOsd; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231363AbhBOSlX (ORCPT + 99 others); Mon, 15 Feb 2021 13:41:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230507AbhBOSia (ORCPT ); Mon, 15 Feb 2021 13:38:30 -0500 Received: from mail-yb1-xb31.google.com (mail-yb1-xb31.google.com [IPv6:2607:f8b0:4864:20::b31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C53B1C061756 for ; Mon, 15 Feb 2021 10:37:48 -0800 (PST) Received: by mail-yb1-xb31.google.com with SMTP id 133so8087790ybd.5 for ; Mon, 15 Feb 2021 10:37:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dlG7WSBTmTt0VpZB7OCV0qVL7K8LEJDd0nI5vTKhQZg=; b=btS7zOsd8wzWdOEdLz2gpNybzWGD/BAdcRlSgW6lyo+d1eTDlo6Apq86ia5o0yvLol ppNdfSG9Ew07RangzW5JjgXQTYWEJEMBS1EC/xzXNmeZuU/GmzelkZsTTN/ls7pnKGv7 M2JilzX+pX7HcaEPfsdGyWLo/ganbfaiisPmzPwHMH6NonEsOA9X85PVMfhfmbz43akz AEe8aueXHiFPpdSsaeQJmX0UTql6yGPgx7lgFMbam7wNCucfYyvpJd8dsY8/OdXZmlHv bkPDYvdNutZddnwMgv58clq+g3ZJkXrKxn3cjKmbDL47DQSeD8hoPaovvo/StdVOscKo HgJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dlG7WSBTmTt0VpZB7OCV0qVL7K8LEJDd0nI5vTKhQZg=; b=I81qUwBwCW9iaaFkv3gkTHh5bxr8z+4jG1SVvzXIK3IelDrkMdvZiut31rxEQF+e+Z 7ElBWQNp2n68s74n4kbcjz7SummEw7QDDno2Js16omkJp7shMEZwfVfZrsG1FwHYt4AG et7twkDmXHWA/Sw7MYtQDQGqcgbwpjER40ToeHUw+PLiokwNy/6xHHfErg6AczncugpV rEepuG+fJ+9Cqdg1mWa3i7Zo9D5a+/Q+6WU0/C+Q46IcO11XrQvK2xoPxnDw3k+zCd0a KgRIKA169FsAN7Xw0FjN6V6WPOq3UYakSNLCeUko6vNATCSZujfXFn7Te2BQQun2+fa+ aYlw== X-Gm-Message-State: AOAM531TuegOtTCbTt61ssNdPUuv8K2ujWIptYqPAYvgen46QMDA2sD8 2Lw4t+AxLmU1dMP4wUrrVaRA0aiBryPqMX8dNTQ3uA== X-Received: by 2002:a25:8b8b:: with SMTP id j11mr22476525ybl.310.1613414267730; Mon, 15 Feb 2021 10:37:47 -0800 (PST) MIME-Version: 1.0 References: <20210215151405.2551143-1-geert+renesas@glider.be> In-Reply-To: <20210215151405.2551143-1-geert+renesas@glider.be> From: Saravana Kannan Date: Mon, 15 Feb 2021 10:37:11 -0800 Message-ID: Subject: Re: [PATCH] staging: board: Fix uninitialized spinlock when attaching genpd To: Geert Uytterhoeven Cc: Greg Kroah-Hartman , Bartosz Golaszewski , "Rafael J . Wysocki" , Kevin Hilman , Ulf Hansson , Magnus Damm , Linux-Renesas , Linux PM , LKML Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Feb 15, 2021 at 7:14 AM Geert Uytterhoeven wrote: > > On Armadillo-800-EVA with CONFIG_DEBUG_SPINLOCK=y: > > BUG: spinlock bad magic on CPU#0, swapper/1 > lock: lcdc0_device+0x10c/0x308, .magic: 00000000, .owner: /-1, .owner_cpu: 0 > CPU: 0 PID: 1 Comm: swapper Not tainted 5.11.0-rc5-armadillo-00036-gbbca04be7a80-dirty #287 > Hardware name: Generic R8A7740 (Flattened Device Tree) > [] (unwind_backtrace) from [] (show_stack+0x10/0x14) > [] (show_stack) from [] (do_raw_spin_lock+0x20/0x94) > [] (do_raw_spin_lock) from [] (dev_pm_get_subsys_data+0x8c/0x11c) > [] (dev_pm_get_subsys_data) from [] (genpd_add_device+0x78/0x2b8) > [] (genpd_add_device) from [] (of_genpd_add_device+0x34/0x4c) > [] (of_genpd_add_device) from [] (board_staging_register_device+0x11c/0x148) > [] (board_staging_register_device) from [] (board_staging_register_devices+0x24/0x28) > > of_genpd_add_device() is called before platform_device_register(), as it > needs to attach the genpd before the device is probed. But the spinlock > is only initialized when the device is registered. > > Fix this by open-coding the spinlock initialization, cfr. > device_pm_init_common() in the internal drivers/base code, and in the > SuperH early platform code. > > Signed-off-by: Geert Uytterhoeven > --- > Exposed by fw_devlinks changing probe order. > Masked before due to an unrelated wait context check failure, which > disabled any further spinlock checks. > https://lore.kernel.org/linux-acpi/CAMuHMdVL-1RKJ5u-HDVA4F4w_+8yGvQQuJQBcZMsdV4yXzzfcw@mail.gmail.com > --- > drivers/staging/board/board.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/staging/board/board.c b/drivers/staging/board/board.c > index cb6feb34dd401ae3..604612937f038e92 100644 > --- a/drivers/staging/board/board.c > +++ b/drivers/staging/board/board.c > @@ -136,6 +136,7 @@ int __init board_staging_register_clock(const struct board_staging_clk *bsc) > static int board_staging_add_dev_domain(struct platform_device *pdev, > const char *domain) > { > + struct device *dev = &pdev->dev; > struct of_phandle_args pd_args; > struct device_node *np; > > @@ -148,7 +149,11 @@ static int board_staging_add_dev_domain(struct platform_device *pdev, > pd_args.np = np; > pd_args.args_count = 0; > > - return of_genpd_add_device(&pd_args, &pdev->dev); > + /* Cfr. device_pm_init_common() */ What's Cfr? > + spin_lock_init(&dev->power.lock); > + dev->power.early_init = true; Also, I tried looking up, but it's not exactly what this flag represents other than the fact the spinlock has been initialized? Which is weird to me. So maybe Rafael can double check this? -Saravana > + > + return of_genpd_add_device(&pd_args, dev); > } > #else > static inline int board_staging_add_dev_domain(struct platform_device *pdev, > -- > 2.25.1 >