From: Guenter Roeck <linux@roeck-us.net>
To: "Moore, Robert" <robert.moore@intel.com>
Cc: "Zheng, Lv" <lv.zheng@intel.com>,
"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
Len Brown <lenb@kernel.org>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"devel@acpica.org" <devel@acpica.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ACPICA: Export mutex functions
Date: Wed, 12 Apr 2017 17:55:15 -0700 [thread overview]
Message-ID: <20170413005515.GA7063@roeck-us.net> (raw)
In-Reply-To: <94F2FBAB4432B54E8AACC7DFDE6C92E37E592822@ORSMSX110.amr.corp.intel.com>
On Wed, Apr 12, 2017 at 09:56:37PM +0000, Moore, Robert wrote:
>
>
> > -----Original Message-----
> > From: Guenter Roeck [mailto:linux@roeck-us.net]
> > Sent: Wednesday, April 12, 2017 2:23 PM
> > To: Moore, Robert <robert.moore@intel.com>
> > Cc: Zheng, Lv <lv.zheng@intel.com>; Wysocki, Rafael J
> > <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>; linux-
> > acpi@vger.kernel.org; devel@acpica.org; linux-kernel@vger.kernel.org
> > 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() ?
> >
> [Moore, Robert]
>
> OK, I understand now. Yes, these mutex interfaces are in fact intended for the purpose you mention:
>
> * FUNCTION: AcpiAcquireMutex
> *
> * PARAMETERS: Handle - Mutex or prefix handle (optional)
> * Pathname - Mutex pathname (optional)
> * Timeout - Max time to wait for the lock (millisec)
> *
> * RETURN: Status
> *
> * DESCRIPTION: Acquire an AML mutex. This is a device driver interface to
> * AML mutex objects, and allows for transaction locking between
> * drivers and AML code. The mutex node is pointed to by
> * Handle:Pathname. Either Handle or Pathname can be NULL, but
> * not both.
>
>
> And yes, both the acquire and release interfaces should be exported.
>
Puh, I am relieved ...
Thanks,
Guenter
>
> > 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;
> > }
> > ...
> >
> > when used in conjunction with
> >
> > ...
> > Mutex (MUT0, 0x00)
> > Method (ENFG, 1, NotSerialized)
> > {
> > Acquire (MUT0, 0x0FFF)
> > ...
> > }
> >
> > doesn't really provide exclusive access to the resource(s) protected by
> > MUT0, even if acpi_acquire_mutex() returns ACPI_SUCCESS ?
> >
> > Outch. Really ?
> >
> > Thanks,
> > Guenter
> >
> > >
> > > > -----Original Message-----
> > > > From: Guenter Roeck [mailto:linux@roeck-us.net]
> > > > Sent: Wednesday, April 12, 2017 8:13 AM
> > > > To: Moore, Robert <robert.moore@intel.com>; Zheng, Lv
> > > > <lv.zheng@intel.com>; Wysocki, Rafael J
> > > > <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>
> > > > Cc: linux-acpi@vger.kernel.org; devel@acpica.org; linux-
> > > > kernel@vger.kernel.org; Guenter Roeck <linux@roeck-us.net>
> > > > Subject: [PATCH] ACPICA: Export mutex functions
> > > >
> > > > Mutex functions may be needed by drivers. Examples are accesses to
> > > > Super-IO SIO registers (0x2e/0x2f or 0x4e/0x4f) or Super-IO
> > > > environmental monitor registers, both which may also be accessed
> > > > through DSDT.
> > > >
> > > > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> > > > ---
> > > > drivers/acpi/acpica/utxfmutex.c | 2 ++
> > > > 1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/drivers/acpi/acpica/utxfmutex.c
> > > > b/drivers/acpi/acpica/utxfmutex.c index c016211c35ae..5d20581f4b2f
> > > > 100644
> > > > --- a/drivers/acpi/acpica/utxfmutex.c
> > > > +++ b/drivers/acpi/acpica/utxfmutex.c
> > > > @@ -150,6 +150,7 @@ acpi_acquire_mutex(acpi_handle handle,
> > > > acpi_string pathname, u16 timeout)
> > > > status = acpi_os_acquire_mutex(mutex_obj->mutex.os_mutex, timeout);
> > > > return (status);
> > > > }
> > > > +ACPI_EXPORT_SYMBOL(acpi_acquire_mutex)
> > > >
> > > >
> > > > /*******************************************************************
> > > > ****
> > > > ********
> > > > *
> > > > @@ -185,3 +186,4 @@ acpi_status acpi_release_mutex(acpi_handle
> > > > handle, acpi_string pathname)
> > > > acpi_os_release_mutex(mutex_obj->mutex.os_mutex);
> > > > return (AE_OK);
> > > > }
> > > > +ACPI_EXPORT_SYMBOL(acpi_release_mutex)
> > > > --
> > > > 2.7.4
> > >
next prev parent reply other threads:[~2017-04-13 0:55 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-12 15:13 [PATCH] ACPICA: Export mutex functions Guenter Roeck
2017-04-12 15:29 ` Moore, Robert
2017-04-12 21:22 ` Guenter Roeck
2017-04-12 21:56 ` Moore, Robert
2017-04-13 0:55 ` Guenter Roeck [this message]
2017-04-14 22:30 ` Rafael J. Wysocki
2017-04-14 23:32 ` Moore, Robert
2017-04-17 9:39 ` Zheng, Lv
2017-04-17 9:48 ` Zheng, Lv
2017-04-17 14:05 ` Guenter Roeck
2017-04-17 23:35 ` Zheng, Lv
2017-04-17 15:56 ` Guenter Roeck
2017-04-17 17:12 ` Moore, Robert
2017-04-17 19:27 ` Moore, Robert
2017-04-17 19:45 ` Guenter Roeck
2017-04-17 20:40 ` Moore, Robert
2017-04-17 21:03 ` Guenter Roeck
2017-04-17 21:29 ` Rafael J. Wysocki
2017-04-17 22:32 ` Guenter Roeck
2017-04-17 22:56 ` Rafael J. Wysocki
2017-04-17 23:53 ` Zheng, Lv
2017-04-18 4:35 ` Guenter Roeck
2017-04-18 7:06 ` Zheng, Lv
2017-04-18 7:14 ` Zheng, Lv
2017-04-18 13:50 ` Guenter Roeck
2017-04-18 14:15 ` Rafael J. Wysocki
2017-04-18 16:07 ` Moore, Robert
2017-04-19 1:26 ` Zheng, Lv
2017-04-19 1:35 ` Zheng, Lv
2017-04-17 23:46 ` Zheng, Lv
2017-04-17 23:43 ` Zheng, Lv
2017-04-17 19:35 ` Moore, Robert
2017-04-17 23:37 ` Zheng, Lv
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170413005515.GA7063@roeck-us.net \
--to=linux@roeck-us.net \
--cc=devel@acpica.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lv.zheng@intel.com \
--cc=rafael.j.wysocki@intel.com \
--cc=robert.moore@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox