Message ID | 1375149298-28206-1-git-send-email-tianyu.lan@intel.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
On Tuesday, July 30, 2013 09:54:58 AM tianyu.lan@intel.com wrote: > From: Lan Tianyu <tianyu.lan@intel.com> > > The _BIX method returns extended battery info as a package. According > ACPI spec 10.2.2.2, the first member should be "Revision". However, > current acpi battery driver treats the first member as "Power Unit" > which should be the second member. So the parsing operation is mismatch. > This patch is to fix it. > > Reported-and-tested-by: Jan Hoffmann <jan.christian.hoffmann@gmail.com> > Reference: http://bugzilla.kernel.org/show_bug.cgi?id=60519 > CC: stable@vger.kernel.org #v2.6.34+ > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Well, that's one of the most embarrassing bugs I've ever seen. :-) Queued up as a fix for 3.11. Thanks, Rafael > --- > drivers/acpi/battery.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c > index c760b61..2c9958c 100644 > --- a/drivers/acpi/battery.c > +++ b/drivers/acpi/battery.c > @@ -117,6 +117,7 @@ struct acpi_battery { > struct acpi_device *device; > struct notifier_block pm_nb; > unsigned long update_time; > + int revision; > int rate_now; > int capacity_now; > int voltage_now; > @@ -359,6 +360,7 @@ static struct acpi_offsets info_offsets[] = { > }; > > static struct acpi_offsets extended_info_offsets[] = { > + {offsetof(struct acpi_battery, revision), 0}, > {offsetof(struct acpi_battery, power_unit), 0}, > {offsetof(struct acpi_battery, design_capacity), 0}, > {offsetof(struct acpi_battery, full_charge_capacity), 0}, >
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index c760b61..2c9958c 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c @@ -117,6 +117,7 @@ struct acpi_battery { struct acpi_device *device; struct notifier_block pm_nb; unsigned long update_time; + int revision; int rate_now; int capacity_now; int voltage_now; @@ -359,6 +360,7 @@ static struct acpi_offsets info_offsets[] = { }; static struct acpi_offsets extended_info_offsets[] = { + {offsetof(struct acpi_battery, revision), 0}, {offsetof(struct acpi_battery, power_unit), 0}, {offsetof(struct acpi_battery, design_capacity), 0}, {offsetof(struct acpi_battery, full_charge_capacity), 0},