ACPICA: Fix a couple issues with the local printf module.
authorLv Zheng <lv.zheng@intel.com>
Mon, 13 Apr 2015 03:51:23 +0000 (11:51 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 14 Apr 2015 12:51:56 +0000 (14:51 +0200)
ACPICA commit 6853da4c0a99b49d62d6c58d22956cd6ff5759a9

The following commit has fixed local printf issue in width.prec:

  Commit: 3589b8b8af6bdc3aafe520d76a73b77d965006b6
  Subject: ACPICA: Utilities: Fix local printf issue.

But this commit only resets width/precision/quialifier to fix the reported
issue and doesn't fix other states issues. So now we still can see breakage
in format types and integer bases.

This patch resets format type/base states for local printf to fix this
issue. Lv Zheng.

Linux kernel is not affected by this patch as acpi_ut_vsnprintf() hasn't
been enabled in the kernel.

Link: https://github.com/acpica/acpica/commit/6853da4c
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/utprint.c

index 82ca914..2be6bd4 100644 (file)
@@ -357,11 +357,11 @@ int
 acpi_ut_vsnprintf(char *string,
                  acpi_size size, const char *format, va_list args)
 {
-       u8 base = 10;
-       u8 type = 0;
-       s32 width = -1;
-       s32 precision = -1;
-       char qualifier = 0;
+       u8 base;
+       u8 type;
+       s32 width;
+       s32 precision;
+       char qualifier;
        u64 number;
        char *pos;
        char *end;
@@ -380,6 +380,9 @@ acpi_ut_vsnprintf(char *string,
                        continue;
                }
 
+               type = 0;
+               base = 10;
+
                /* Process sign */
 
                do {