https://git.reactos.org/?p=reactos.git;a=commitdiff;h=81860b482a745b86572fb4804aa28c3481117fac

commit 81860b482a745b86572fb4804aa28c3481117fac
Author:     Hervé Poussineau <hpous...@reactos.org>
AuthorDate: Tue Nov 12 20:39:48 2024 +0100
Commit:     Hervé Poussineau <hpous...@reactos.org>
CommitDate: Tue Nov 12 21:26:42 2024 +0100

    [CMBATT] Fix battery Tag
    
    0 (ie BATTERY_TAG_INVALID) is not a valid battery tag.
    First battery must have a tag of 1.
---
 drivers/bus/acpi/cmbatt/cmbatt.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/bus/acpi/cmbatt/cmbatt.c b/drivers/bus/acpi/cmbatt/cmbatt.c
index 09d9c81d837..3935a9c8150 100644
--- a/drivers/bus/acpi/cmbatt/cmbatt.c
+++ b/drivers/bus/acpi/cmbatt/cmbatt.c
@@ -568,7 +568,6 @@ CmBattQueryTag(IN PCMBATT_DEVICE_EXTENSION DeviceExtension,
 {
     PDEVICE_OBJECT PdoDevice;
     ULONG StaData;
-    ULONG NewTag;
     NTSTATUS Status;
     PAGED_CODE();
     if (CmBattDebug & (CMBATT_ACPI_WARNING | CMBATT_GENERIC_INFO))
@@ -587,12 +586,12 @@ CmBattQueryTag(IN PCMBATT_DEVICE_EXTENSION 
DeviceExtension,
         if (StaData & ACPI_STA_BATTERY_PRESENT)
         {
             /* Do we not have a tag yet? */
-            if (!DeviceExtension->Tag)
+            if (DeviceExtension->Tag == BATTERY_TAG_INVALID)
             {
                 /* Set the new tag value, reset tags if we reached the maximum 
*/
-                NewTag = DeviceExtension->TagData;
-                if (DeviceExtension->TagData++ == 0xFFFFFFFF) NewTag = 1;
-                DeviceExtension->Tag = NewTag;
+                if (++DeviceExtension->TagData == BATTERY_TAG_INVALID)
+                    DeviceExtension->TagData = 1;
+                DeviceExtension->Tag = DeviceExtension->TagData;
                 if (CmBattDebug & CMBATT_GENERIC_INFO)
                     DbgPrint("CmBattQueryTag - New Tag: (%d)\n", 
DeviceExtension->Tag);
 
@@ -608,7 +607,7 @@ CmBattQueryTag(IN PCMBATT_DEVICE_EXTENSION DeviceExtension,
         else
         {
             /* No battery, so no tag */
-            DeviceExtension->Tag = 0;
+            DeviceExtension->Tag = BATTERY_TAG_INVALID;
             Status = STATUS_NO_SUCH_DEVICE;
         }
     }

Reply via email to