Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757093AbdDQRNL convert rfc822-to-8bit (ORCPT ); Mon, 17 Apr 2017 13:13:11 -0400 Received: from mga11.intel.com ([192.55.52.93]:57409 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754243AbdDQRNF (ORCPT ); Mon, 17 Apr 2017 13:13:05 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,215,1488873600"; d="scan'208";a="88505548" From: "Moore, Robert" To: Guenter Roeck , "Zheng, Lv" CC: "Wysocki, Rafael J" , Len Brown , "linux-acpi@vger.kernel.org" , "devel@acpica.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH] ACPICA: Export mutex functions Thread-Topic: [PATCH] ACPICA: Export mutex functions Thread-Index: AQHSs5+M5vQiVFw7h0mrGWRyQXwytKHB28gwgADYJ4CABxc2gIAAaWIA//+fbPA= Date: Mon, 17 Apr 2017 17:12:57 +0000 Message-ID: <94F2FBAB4432B54E8AACC7DFDE6C92E37E59332C@ORSMSX110.amr.corp.intel.com> References: <1492009990-3539-1-git-send-email-linux@roeck-us.net> <94F2FBAB4432B54E8AACC7DFDE6C92E37E5924DB@ORSMSX110.amr.corp.intel.com> <20170412212241.GA12384@roeck-us.net> <1AE640813FDE7649BE1B193DEA596E886CE92A85@SHSMSX101.ccr.corp.intel.com> <20170417155646.GA8730@roeck-us.net> In-Reply-To: <20170417155646.GA8730@roeck-us.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2EzZWEwMWYtYzg1OC00MTNkLWFhOTYtNjcwOWMzYmVmYTQzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImxLVzlmVGl0MU92MlwvYU1oQnIrUGgzUGp3V2N4SFNicWJwdFFRSjJmRENZPSJ9 x-ctpclassification: CTP_IC x-originating-ip: [10.22.254.139] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2572 Lines: 64 There is a model for the drivers to directly acquire an AML mutex object. That is why the acquire/release public interfaces were added to ACPICA. I forget all of the details, but the model was developed with MS and others during the ACPI 6.0 timeframe. > -----Original Message----- > From: Guenter Roeck [mailto:linux@roeck-us.net] > Sent: Monday, April 17, 2017 8:57 AM > To: Zheng, Lv > Cc: Moore, Robert; Wysocki, Rafael J; Len Brown; linux- > acpi@vger.kernel.org; devel@acpica.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH] ACPICA: Export mutex functions > > Hi, > > On Mon, Apr 17, 2017 at 09:39:35AM +0000, Zheng, Lv wrote: > > Hi, > > > > > From: Guenter Roeck [mailto:linux@roeck-us.net] > > > Subject: Re: [PATCH] ACPICA: Export mutex functions > > > > > > On Wed, Apr 12, 2017 at 03:29:55PM +0000, Moore, Robert wrote: > > > > The ACPICA mutex functions are based on the host OS functions, so > they don't really buy you anything. > > > You should just use the native Linux functions. > > > > > > > > > > You mean they don't really acquire the requested ACPI mutex, and the > > > underlying DSDT which declares and uses the mutex just ignores if > > > the mutex was acquired by acpi_acquire_mutex() ? > > > > > > To clarify: You are saying that code such as > > > > > > acpi_status status; > > > > > > status = acpi_acquire_mutex(NULL, "\\_SB.PCI0.SBRG.SIO1.MUT0", > 0x10); > > > if (ACPI_FAILURE(status)) { > > > pr_err("Failed to acquire ACPI mutex\n"); > > > return -EBUSY; > > > } > > > > Why do you need to access \_SB.PCI0.SBRG.SIO1.MUT0? > > OSPM should only invoke entry methods predefined by ACPI spec or > whatever specs. > > There shouldn't be any needs that a driver acquires an arbitrary AML > mutex. > > You do not seem to have justified the usage model, IMO. > > > > I am sorry, I have no idea how to do that. I can see that the resource in > question (IO address 0x2e/0x2f) is accessed from the DSDT, that the > resource is mutex protected, and that accesses to the same IO address from > the Linux kernel are unreliable unless I acquire the mutex in question. At > the same time, I can see that request_muxed_region() succeeds, so > presumably ACPI does not reserve the region for its exclusive use. > > It may well be that the "official" response to this problem is "you must > not instantiate a watchdog, environmental monitor, or gpio driver (or > anything else provided by the Super-IO chip that requires access to those > ports) on this platform in Linux". Is that what you are suggesting ? > > Thanks, > Guenter