Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1676860ybt; Thu, 2 Jul 2020 11:01:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyi3DB/AodpsHPWQf7kEADhSQ1ovmcGnkefFeeVv91YxTusauma3Y6knK6M8XI7ANG78Rgz X-Received: by 2002:a17:906:5909:: with SMTP id h9mr25959545ejq.501.1593712895885; Thu, 02 Jul 2020 11:01:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593712895; cv=none; d=google.com; s=arc-20160816; b=uAFBIHZFhsJ4epCoLtsfh+6rs3LZzO5pBY53cjg7UeDA4fkTCsy+mymlPkry02lxzQ ToQYno1RP1ajQrXlociagmwgITtAJ8R+QpbPEEvb1VIg8NVxg3oFodeBrSyKSSSg/cKT VzCkcAu/k2aInoil0NAzRwnFX9mgT5HNRx/p2t6+wfUfjiq1LknOBXskHVgt6fogooDo d+bZvVyWxmCphJOKamTU3J6I28itPvgj+87/9ezxma/vn7R3H8Quf0j9ZWkrGRlnotiF pdMRSL6ffxRpp4SFEgH5wAvGsDBWMhdMTlcRP7HB8ZSOBetqfKcDbGAdJ5dD2uZSkHd1 IYYg== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=KVA7MrVhpmMXCpDVx4rR2az6AzBpgSyFeYfBTQT81zQ=; b=jom3o8A/wa0mwCKCW5sj2HmT4LFktT8ppUoVwgdKGvhRSzy9kW+mX23/mYBEe3ODFd Uzw2PeNFLO7cxHmAvkjZWTvb3x5016vke2lu2XDU0eNNN2F2wYhqLCLEfBW97zOG/qGB yoEK6kQwUL2Gy3XDjPOL2pAWA1j72cF7paW4V7AzfXdniLvMX3LnkP3Lyzky6okM4UQJ OaS7EVqliJ9ihGbkkQo3ZqgzESRqPBELWuqS6wxe9Zujn+JQR6Axxia6Zn5GTqM3whb/ FlwOCpNOKzQ4jqA0N+o9ffCQuK6X27laHNOYdTSrx04ZYM0GJ0eGMioong0ETWbJTnO0 7/GQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=FiUwjzZf; 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=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h23si6192424ejd.485.2020.07.02.11.01.13; Thu, 02 Jul 2020 11:01:35 -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=@ti.com header.s=ti-com-17Q1 header.b=FiUwjzZf; 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=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728015AbgGBSAi (ORCPT + 99 others); Thu, 2 Jul 2020 14:00:38 -0400 Received: from fllv0015.ext.ti.com ([198.47.19.141]:49494 "EHLO fllv0015.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727936AbgGBSAh (ORCPT ); Thu, 2 Jul 2020 14:00:37 -0400 Received: from fllv0034.itg.ti.com ([10.64.40.246]) by fllv0015.ext.ti.com (8.15.2/8.15.2) with ESMTP id 062I0VdR040880; Thu, 2 Jul 2020 13:00:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1593712831; bh=KVA7MrVhpmMXCpDVx4rR2az6AzBpgSyFeYfBTQT81zQ=; h=Subject:To:CC:References:From:Date:In-Reply-To; b=FiUwjzZf7VIuXWa+kQW3jqt4+eDzaYkfulpF4BMmyEYoteqeH6CijEKebmVDzw/TA +sSImz4aAUR9puwd/3kIFyHJBZIHoa6ofjYMjbK4x7KRZwTRVho3Uzq0nhtVd1/01w bzNgUsrtDd7yp2YsSp8c5h68gFNCjSTVCnHGUMtw= Received: from DLEE115.ent.ti.com (dlee115.ent.ti.com [157.170.170.26]) by fllv0034.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 062I0VEw107430 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 2 Jul 2020 13:00:31 -0500 Received: from DLEE109.ent.ti.com (157.170.170.41) by DLEE115.ent.ti.com (157.170.170.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1979.3; Thu, 2 Jul 2020 13:00:30 -0500 Received: from fllv0040.itg.ti.com (10.64.41.20) by DLEE109.ent.ti.com (157.170.170.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1979.3 via Frontend Transport; Thu, 2 Jul 2020 13:00:30 -0500 Received: from [10.250.48.148] (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id 062I0Ujt078494; Thu, 2 Jul 2020 13:00:30 -0500 Subject: Re: [PATCH 1/2] bus: ti-sysc: Fix wakeirq sleeping function called from invalid context To: Tony Lindgren , CC: "Andrew F . Davis" , Dave Gerlach , Faiz Abbas , Greg Kroah-Hartman , Grygorii Strashko , Keerthy , Nishanth Menon , Peter Ujfalusi , Roger Quadros , Tero Kristo , , References: <20200702174929.26506-1-tony@atomide.com> From: Suman Anna Message-ID: <434eff2e-bc7f-84ee-0980-769915cefffb@ti.com> Date: Thu, 2 Jul 2020 13:00:25 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200702174929.26506-1-tony@atomide.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Tony, On 7/2/20 12:49 PM, Tony Lindgren wrote: > With CONFIG_DEBUG_ATOMIC_SLEEP enabled we can see the following with > wakeirqs and serial console idled: Which devices are these? I have one patch from Tero fixing similar errors in OMAP IOMMU driver. Will post that either today or tomorrow. regards Suman > > BUG: sleeping function called from invalid context at drivers/bus/ti-sysc.c:242 > ... > (sysc_wait_softreset) from [] (sysc_enable_module+0x48/0x274) > (sysc_enable_module) from [] (sysc_runtime_resume+0x19c/0x1d8) > (sysc_runtime_resume) from [] (sysc_child_runtime_resume+0x58/0x84) > (sysc_child_runtime_resume) from [] (__rpm_callback+0x30/0x12c) > (__rpm_callback) from [] (rpm_callback+0x20/0x80) > (rpm_callback) from [] (rpm_resume+0x638/0x7fc) > (rpm_resume) from [] (__pm_runtime_resume+0x60/0x9c) > (__pm_runtime_resume) from [] (handle_threaded_wake_irq+0x24/0x60) > (handle_threaded_wake_irq) from [] (irq_thread_fn+0x1c/0x78) > (irq_thread_fn) from [] (irq_thread+0x140/0x26c) > > We have __pm_runtime_resume() call the sysc_runtime_resume() with spinlock > held and interrupts disabled. > > Fixes: d46f9fbec719 ("bus: ti-sysc: Use optional clocks on for enable and wait for softreset bit") > Signed-off-by: Tony Lindgren > --- > drivers/bus/ti-sysc.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c > --- a/drivers/bus/ti-sysc.c > +++ b/drivers/bus/ti-sysc.c > @@ -236,15 +236,14 @@ static int sysc_wait_softreset(struct sysc *ddata) > syss_done = ddata->cfg.syss_mask; > > if (syss_offset >= 0) { > - error = readx_poll_timeout(sysc_read_sysstatus, ddata, rstval, > - (rstval & ddata->cfg.syss_mask) == > - syss_done, > - 100, MAX_MODULE_SOFTRESET_WAIT); > + error = readx_poll_timeout_atomic(sysc_read_sysstatus, ddata, > + rstval, (rstval & ddata->cfg.syss_mask) == > + syss_done, 100, MAX_MODULE_SOFTRESET_WAIT); > > } else if (ddata->cfg.quirks & SYSC_QUIRK_RESET_STATUS) { > - error = readx_poll_timeout(sysc_read_sysconfig, ddata, rstval, > - !(rstval & sysc_mask), > - 100, MAX_MODULE_SOFTRESET_WAIT); > + error = readx_poll_timeout_atomic(sysc_read_sysconfig, ddata, > + rstval, !(rstval & sysc_mask), > + 100, MAX_MODULE_SOFTRESET_WAIT); > } > > return error; >