diff mbox

bug in acer-wmi.c, wmid3_set_device_status(), initialization of params.

Message ID 4DE4FF2B020000230002D493@novprvlin0050.provo.novell.com (mailing list archive)
State New, archived
Headers show

Commit Message

Joey Lee May 31, 2011, 4:46 a.m. UTC
Hi Joern, 

? ??2011-05-30 ? 21:39 -0600?Joey Lee ???
> Hi Joern, 
> 
> ? ??2011-05-31 ? 15:03 +1200?Joern Heissler ???
> > Hello,
> > 
> > I think I have found a bug in acer-wmi.c,
> > commit 987dfbaa65b2c3568b85e29d2598da08a011ee09:
> > 
> > The function wmid3_set_device_status contains:
> > 
> >     struct wmid3_gds_input_param params = {
> >         .function_num = 0x1,
> >         .hotkey_number = 0x01,
> >         .devices = ACER_WMID3_GDS_WIRELESS &
> >                 ACER_WMID3_GDS_THREEG &
> >                 ACER_WMID3_GDS_WIMAX &
> >                 ACER_WMID3_GDS_BLUETOOTH,
> >     };
> > 
> > (1<<0) & (1<<6) & (1<<7) & (1<<11) is zero. Meant bitwise or?
> > 
> 
> OK, it's my mistake, must be OR but not AND.
> I will generate a fix patch, I will test it again, please kindly help
> test it later.
> 

Please kindly help to review this patch for bitwise bug:


>From 57756e3f0c727b07314485833e4b9b557bf158ce Mon Sep 17 00:00:00 2001
From: Lee, Chun-Yi <jlee@novell.com>
Date: Tue, 31 May 2011 12:36:09 +0800
Subject: [PATCH] acer-wmi: fix bitwise bug when set device state

Fix a bitwise bug that was found by Joern Heissler, it must be OR
but not AND when we query current device state.

Cc: Joern Heissler <linux-acpi@joern.heissler.de>
Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
---
 drivers/platform/x86/acer-wmi.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index 005417b..7d4675a 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -1156,9 +1156,9 @@  static acpi_status wmid3_set_device_status(u32 value, u16 device)
 	struct wmid3_gds_input_param params = {
 		.function_num = 0x1,
 		.hotkey_number = 0x01,
-		.devices = ACER_WMID3_GDS_WIRELESS &
-				ACER_WMID3_GDS_THREEG &
-				ACER_WMID3_GDS_WIMAX &
+		.devices = ACER_WMID3_GDS_WIRELESS |
+				ACER_WMID3_GDS_THREEG |
+				ACER_WMID3_GDS_WIMAX |
 				ACER_WMID3_GDS_BLUETOOTH,
 	};
 	struct acpi_buffer input = {