From: Matthew Garrett <mjg59@srcf.ucam.org>
To: Alex Hung <alex.hung@canonical.com>
Cc: platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH] WMI: fix the incorrect wmi device may be chosen from BIOS's notification if multiple wmi devices exist in a system.
Date: Sat, 28 Jul 2012 05:15:32 +0100 [thread overview]
Message-ID: <20120728041532.GB31064@srcf.ucam.org> (raw)
In-Reply-To: <1342662201-29878-1-git-send-email-alex.hung@canonical.com>
On Thu, Jul 19, 2012 at 09:43:21AM +0800, Alex Hung wrote:
> +static struct acpi_device *wmi_device;
If a machine exports multiple WMI interfaces then having a static
acpi_device doesn't make sense here. Instead we probably need the API to
take some sort of token (maybe just the wmi_device itself as an opaque
blob) back to the calling driver and then have it use that whenever it
makes a wmi call. There'd be some fixing up involved, but it should be
mostly mechanical.
> /*
> * GUID parsing functions
> */
> @@ -652,8 +654,9 @@ acpi_status wmi_get_event_data(u32 event, struct acpi_buffer *out)
>
> list_for_each(p, &wmi_block_list) {
> wblock = list_entry(p, struct wmi_block, list);
> + if (wmi_device != NULL && wmi_device->handle != wblock->handle)
> + continue;
> gblock = &wblock->gblock;
> -
> if ((gblock->flags & ACPI_WMI_EVENT) &&
> (gblock->notify_id == event))
> return acpi_evaluate_object(wblock->handle, "_WED",
> @@ -900,6 +903,10 @@ static void acpi_wmi_notify(struct acpi_device *device, u32 event)
> wblock = list_entry(p, struct wmi_block, list);
> block = &wblock->gblock;
>
> + if (device->handle != wblock->handle)
> + continue;
> + wmi_device = device;
> +
> if ((block->flags & ACPI_WMI_EVENT) &&
> (block->notify_id == event)) {
> if (wblock->handler)
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Matthew Garrett | mjg59@srcf.ucam.org
next prev parent reply other threads:[~2012-07-28 4:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-19 1:43 [PATCH] WMI: fix the incorrect wmi device may be chosen from BIOS's notification if multiple wmi devices exist in a system Alex Hung
2012-07-28 4:15 ` Matthew Garrett [this message]
2012-07-31 7:22 ` Alex Hung
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=20120728041532.GB31064@srcf.ucam.org \
--to=mjg59@srcf.ucam.org \
--cc=alex.hung@canonical.com \
--cc=platform-driver-x86@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.