Received: by 2002:ac0:aa62:0:0:0:0:0 with SMTP id w31-v6csp1440864ima; Sun, 21 Oct 2018 11:48:37 -0700 (PDT) X-Google-Smtp-Source: ACcGV63PkNp6Ae4v9dYEf/5WoHXl2D2HadM0UhaxmyJ3rnQ9Q6Ii6h5nCGYRm4PNI0TBn93FXxDm X-Received: by 2002:a63:9b09:: with SMTP id r9-v6mr40215359pgd.307.1540147717497; Sun, 21 Oct 2018 11:48:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540147717; cv=none; d=google.com; s=arc-20160816; b=gYzmGGPyD+nHjMHuWD40AyL8TCoJV3m5KId1GzvPfRY7WAkRho3jSBtOBJBB3NtkiO VZGsypP8mMpr72NpU/Sh/sJhaTr7ytnmLeXV2aptTY7LnIoIeSSAb6IGkvdCt9xZj+mR 791tjBE9aWmRgpLdsFTw3+VSoVImLPiiMolZwzSYIl/RnXrFRlLHhmOD+OO834t//xNq 5edy2klYQ5JBwLrP8KKrXe3KVfAmIz3MKROqdkIaDJj89Zl2N/zyC8l/2yay2QUy13BS a5zHKztXkBopJ/+Fa7yIFP84cTNczH/rKJvcUIgSGDic/0kDb8117rf7sZ/nxkxoAKgc hjQw== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=9aBB85u5iUC5sECQ+ikjOvp2WMdGw+TjqTuRNqBclXE=; b=fFbD4xoSl91YpcFw6dhqvkb0WtX2YjJNn96OhFq4vvHrzH5n1XXVf0ALHFrrupee35 F/wJxhMVU3z7zwbjWOcTGQLyNyth24kBFswbgZNltMzAo4r1R6cHfhkrfhODkZmCvsQR +R0XFTWCw5OfGIg4/hk/9j4E8bUZkeNe783BMAkevyFkCws4DsHhGx5/m3hhOHxmGKT9 dz7aKynuJdmRlHuN3o08c8wXRhE2rjKrrO3NYHNd/1cTBCQ1Io3hErEhvWm7LAp2rTm1 t0CEckE/U/5TsCmqE/2VaFPJlNvTJ7xJdDU46q4xzf79ZomFYkNKXuLA1OnJM2y5U5Lv yKAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Cx6GKzAP; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 138-v6si30113019pgc.218.2018.10.21.11.48.22; Sun, 21 Oct 2018 11:48:37 -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=@gmail.com header.s=20161025 header.b=Cx6GKzAP; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727832AbeJVC7a (ORCPT + 99 others); Sun, 21 Oct 2018 22:59:30 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:35604 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727827AbeJVC7a (ORCPT ); Sun, 21 Oct 2018 22:59:30 -0400 Received: by mail-pg1-f196.google.com with SMTP id 32-v6so6787562pgu.2; Sun, 21 Oct 2018 11:44:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=9aBB85u5iUC5sECQ+ikjOvp2WMdGw+TjqTuRNqBclXE=; b=Cx6GKzAPimCP1TPzN2JGCBgP0hZP8MxV0+reEyN92+P1t1oUNBwSeY6ezEg+z3nw6L IpwdpJnGTKjSEOotQAe36r0/jqw2mpNHeAIV0uPvsqvt3DDSQ/E9E5K+WGkVMS9+lH6M Ay0glgzErw2yvYtJyUpim8hCAam9nyTy1ui6EyvicYpxUDpG2UpQG4n4S0foks5+ECJE M1fnSy65g9WdPS8QsteUFz24JzY6GCoGZqtgnrPBDQJXUI7gO/rnXfc6nW+6tvZobYDj yE8EBlmJkFq/hA70wunD//hudKrpaRHsxVdsI9DL/KGHDxYSL/1fRTZ/iIrEGPs1KED0 Ig9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=9aBB85u5iUC5sECQ+ikjOvp2WMdGw+TjqTuRNqBclXE=; b=Nb1AGjEDyL2cK7SSY03AULFRhD1bN/mRrNK98a4P7wbWVRwq8sLgpaZlR//HLGN6fv wE7xf2utgMQfGEyj+Xc88Oam5Ubu5xt6uu7LhRb7+pE63P5T6CfITlTseZ4KLM2C6ETH uhQD2Y+OdJuFoRWcuEDk7EFMdq9WOUa5yaQ2yTgfbLzSWZNBppD98UbBOnXwTuLax9/9 AMJgeMWM3y8u+gwL5KVng5ILPloHwioFmc4MQV6SP2ucXeMggpt0rh/SN0DaOCFpBj92 rkuDXaz45AKVNvPZZN03urQE29L0dm+H/WA/ck7zuhswuYKvX6i5Hc/5nb1EB3oc5GX8 4ZcQ== X-Gm-Message-State: ABuFfojU3SAL3Rl9ahuTktexaqgcxBTpgGUQhfophDbrgC9iJzPnB/c2 9zSjLq3Bg3Pc88XN2/qC28M= X-Received: by 2002:a63:d00b:: with SMTP id z11-v6mr40834293pgf.317.1540147036887; Sun, 21 Oct 2018 11:37:16 -0700 (PDT) Received: from localhost.localdomain ([109.252.91.118]) by smtp.gmail.com with ESMTPSA id g88-v6sm41737275pfd.181.2018.10.21.11.37.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Oct 2018 11:37:16 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding , Jonathan Hunter Cc: linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1] soc/tegra: pmc: Drop locking from tegra_powergate_is_powered() Date: Sun, 21 Oct 2018 21:36:14 +0300 Message-Id: <20181021183614.454-1-digetx@gmail.com> X-Mailer: git-send-email 2.19.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This fixes splats like the one below if CONFIG_DEBUG_ATOMIC_SLEEP=y and machine (Tegra30) booted with SMP=n or all secondary CPU's are put offline. Locking isn't needed because it protects atomic operation. # echo 0 | tee /sys/devices/system/cpu/cpu[1-3]/online BUG: sleeping function called from invalid context at kernel/locking/mutex.c:254 in_atomic(): 1, irqs_disabled(): 128, pid: 0, name: swapper/0 CPU: 0 PID: 0 Comm: swapper/0 Tainted: G C 4.18.0-next-20180821-00180-gc3ebb6544e44-dirty #823 Hardware name: NVIDIA Tegra SoC (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x20/0x24) [] (show_stack) from [] (dump_stack+0x94/0xa8) [] (dump_stack) from [] (___might_sleep+0x13c/0x174) [] (___might_sleep) from [] (__might_sleep+0x70/0xa8) [] (__might_sleep) from [] (mutex_lock+0x2c/0x70) [] (mutex_lock) from [] (tegra_powergate_is_powered+0x44/0xa8) [] (tegra_powergate_is_powered) from [] (tegra30_cpu_rail_off_ready+0x30/0x74) [] (tegra30_cpu_rail_off_ready) from [] (tegra30_idle_lp2+0xa0/0x108) [] (tegra30_idle_lp2) from [] (cpuidle_enter_state+0x140/0x540) [] (cpuidle_enter_state) from [] (cpuidle_enter+0x40/0x4c) [] (cpuidle_enter) from [] (call_cpuidle+0x30/0x48) [] (call_cpuidle) from [] (do_idle+0x238/0x28c) [] (do_idle) from [] (cpu_startup_entry+0x28/0x2c) [] (cpu_startup_entry) from [] (rest_init+0xd8/0xdc) [] (rest_init) from [] (start_kernel+0x41c/0x430) Signed-off-by: Dmitry Osipenko --- drivers/soc/tegra/pmc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c index 1fa840e3d930..1714cd818d69 100644 --- a/drivers/soc/tegra/pmc.c +++ b/drivers/soc/tegra/pmc.c @@ -543,9 +543,7 @@ int tegra_powergate_is_powered(unsigned int id) if (!tegra_powergate_is_valid(id)) return -EINVAL; - mutex_lock(&pmc->powergates_lock); status = tegra_powergate_state(id); - mutex_unlock(&pmc->powergates_lock); return status; } -- 2.19.0