From patchwork Tue Jun 14 13:03:20 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shilimkar X-Patchwork-Id: 879022 X-Patchwork-Delegate: tony@atomide.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.4) with ESMTP id p5ED43fV009894 for ; Tue, 14 Jun 2011 13:04:03 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751768Ab1FNNDq (ORCPT ); Tue, 14 Jun 2011 09:03:46 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:52340 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751678Ab1FNNDp (ORCPT ); Tue, 14 Jun 2011 09:03:45 -0400 Received: from dbdp20.itg.ti.com ([172.24.170.38]) by devils.ext.ti.com (8.13.7/8.13.7) with ESMTP id p5ED3Twt012012 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 14 Jun 2011 08:03:31 -0500 Received: from dbde70.ent.ti.com (localhost [127.0.0.1]) by dbdp20.itg.ti.com (8.13.8/8.13.8) with ESMTP id p5ED3RRP005192; Tue, 14 Jun 2011 18:33:27 +0530 (IST) Received: from dbdp31.itg.ti.com (172.24.170.98) by DBDE70.ent.ti.com (172.24.170.148) with Microsoft SMTP Server id 8.3.106.1; Tue, 14 Jun 2011 18:33:26 +0530 Received: from linfarm476.india.ti.com (linfarm476.india.ti.com [10.24.132.205]) by dbdp31.itg.ti.com (8.13.8/8.13.8) with ESMTP id p5ED3LDT026811; Tue, 14 Jun 2011 18:33:22 +0530 (IST) Received: (from a0393909@localhost) by linfarm476.india.ti.com (8.12.11/8.13.8/Submit) id p5ED3KBd017639; Tue, 14 Jun 2011 18:33:20 +0530 From: Santosh Shilimkar To: CC: linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, Santosh Shilimkar , "Rafael J. Wysocki" , Nishanth Menon , Kevin Hilman Subject: [PATCH] power: opp: Fix rcu_dereference_check() without protection! Date: Tue, 14 Jun 2011 18:33:20 +0530 Message-ID: <1308056600-17601-1-git-send-email-santosh.shilimkar@ti.com> X-Mailer: git-send-email 1.5.6.6 MIME-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 14 Jun 2011 13:04:31 +0000 (UTC) With RCU debug options enabled, below warning is observed. =================================================== [ INFO: suspicious rcu_dereference_check() usage. ] --------------------------------------------------- drivers/base/power/opp.c:151 invoked rcu_dereference_check() without protection! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 1 no locks held by swapper/1. ... --------------------------------------------------- Fix the same by protecting it with rcu_read lock. Signed-off-by: Santosh Shilimkar Cc: Rafael J. Wysocki Cc: Nishanth Menon Cc: Kevin Hilman --- drivers/base/power/opp.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/base/power/opp.c b/drivers/base/power/opp.c index 56a6899..cbed5e1 100644 --- a/drivers/base/power/opp.c +++ b/drivers/base/power/opp.c @@ -148,7 +148,9 @@ unsigned long opp_get_voltage(struct opp *opp) struct opp *tmp_opp; unsigned long v = 0; + rcu_read_lock(); tmp_opp = rcu_dereference(opp); + rcu_read_unlock(); if (unlikely(IS_ERR_OR_NULL(tmp_opp)) || !tmp_opp->available) pr_err("%s: Invalid parameters\n", __func__); else