[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] xen/printk: Avoid the use of L as a length modifier



Coverity complains about it being invalid.  It turns out that it is a GCC-ism
to treat ll and L equivalently.  C99 only permits L to mean long double.

Convert all uses of L in to alternatives, either l, ll or PRI.64 depending on
the operand type.  This in turn removes some unnecessary casts which look to
predate us having correct PRI* constants.

No functional change.

Coverity-IDs: 1464224, 1464228, 1464248, 1464261, 1464272, 1464281, 1464287, 
1464290, 1494437

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CC: Julien Grall <julien@xxxxxxx>

I'm disappointed at having to use %ll for __fix_to_virt() in apic.c and
io_apic.c.  The expression ends up ULL because of the GB(64) in VMAP_VIRT_END,
but can't really be changed without breaking 32bit builds of Xen.

One option might be to turn __fix_to_virt() into a proper function, but
there's a lot of that infrastructure which should be dedup'd and not left to
each arch to copy.
---
 xen/arch/x86/apic.c            | 2 +-
 xen/arch/x86/cpu/intel.c       | 2 +-
 xen/arch/x86/cpu/mcheck/mce.c  | 9 ++++-----
 xen/arch/x86/cpu/mcheck/vmce.c | 2 +-
 xen/arch/x86/e820.c            | 6 +++---
 xen/arch/x86/hvm/vmx/vmcs.c    | 4 ++--
 xen/arch/x86/io_apic.c         | 2 +-
 xen/common/page_alloc.c        | 4 ++--
 xen/common/perfc.c             | 8 ++++----
 9 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index 6567af685a1b..406ecbaab53e 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -938,7 +938,7 @@ void __init init_apic_mappings(void)
         apic_phys = mp_lapic_addr;
 
     set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
-    apic_printk(APIC_VERBOSE, "mapped APIC to %08Lx (%08lx)\n", APIC_BASE,
+    apic_printk(APIC_VERBOSE, "mapped APIC to %08llx (%08lx)\n", APIC_BASE,
                 apic_phys);
 
 __next:
diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c
index af56e57bd8ab..29690843fa4a 100644
--- a/xen/arch/x86/cpu/intel.c
+++ b/xen/arch/x86/cpu/intel.c
@@ -441,7 +441,7 @@ static void intel_log_freq(const struct cpuinfo_x86 *c)
             unsigned long long val = ecx;
 
             val *= ebx;
-            printk("CPU%u: TSC: %u Hz * %u / %u = %Lu Hz\n",
+            printk("CPU%u: TSC: %u Hz * %u / %u = %llu Hz\n",
                    smp_processor_id(), ecx, ebx, eax, val / eax);
         }
         else if ( ecx | eax | ebx )
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
index 32c1b2756b90..c2b5199f8bcc 100644
--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1183,8 +1183,8 @@ static bool x86_mc_msrinject_verify(struct 
xen_mc_msrinject *mci)
 
         if ( reason != NULL )
         {
-            printk("HV MSR INJECT ERROR: MSR %#Lx %s\n",
-                   (unsigned long long)mci->mcinj_msr[i].reg, reason);
+            printk("HV MSR INJECT ERROR: MSR %#"PRIx64" %s\n",
+                   mci->mcinj_msr[i].reg, reason);
             errs++;
         }
     }
@@ -1228,11 +1228,10 @@ static void cf_check x86_mc_msrinject(void *data)
 
     for ( i = 0, msr = &mci->mcinj_msr[0]; i < mci->mcinj_count; i++, msr++ )
     {
-        printk("HV MSR INJECT (%s) target %u actual %u MSR %#Lx <-- %#Lx\n",
+        printk("HV MSR INJECT (%s) target %u actual %u MSR %#"PRIx64" <-- 
%#"PRIx64"\n",
                intpose ? "interpose" : "hardware",
                mci->mcinj_cpunr, smp_processor_id(),
-               (unsigned long long)msr->reg,
-               (unsigned long long)msr->value);
+               msr->reg, msr->value);
 
         if ( intpose )
             intpose_add(mci->mcinj_cpunr, msr->reg, msr->value);
diff --git a/xen/arch/x86/cpu/mcheck/vmce.c b/xen/arch/x86/cpu/mcheck/vmce.c
index 5abdf4cb5fd5..dce67a3e1b2c 100644
--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -71,7 +71,7 @@ int vmce_restore_vcpu(struct vcpu *v, const struct 
hvm_vmce_vcpu *ctxt)
     if ( ctxt->caps & ~guest_mcg_cap & ~MCG_CAP_COUNT & ~MCG_CTL_P )
     {
         printk(XENLOG_G_ERR
-               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv 
(supported: %#Lx)\n",
+               "%s restore: unsupported MCA capabilities %#"PRIx64" for %pv 
(supported: %#llx)\n",
                 is_hvm_vcpu(v) ? "HVM" : "PV", ctxt->caps,
                 v, guest_mcg_cap & ~MCG_CAP_COUNT);
         return -EINVAL;
diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c
index 6a3ce7e0a07f..bfe373e03427 100644
--- a/xen/arch/x86/e820.c
+++ b/xen/arch/x86/e820.c
@@ -94,9 +94,9 @@ void __init print_e820_memory_map(const struct e820entry *map,
     unsigned int i;
 
     for (i = 0; i < entries; i++) {
-        printk(" [%016Lx, %016Lx] ",
-               (unsigned long long)(map[i].addr),
-               (unsigned long long)(map[i].addr + map[i].size) - 1);
+        printk(" [%016"PRIx64", %016"PRIx64"] ",
+               map[i].addr,
+               map[i].addr + map[i].size - 1);
         switch (map[i].type) {
         case E820_RAM:
             printk("(usable)\n");
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 9b6dc51f36ab..28d91c3857d5 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -517,7 +517,7 @@ static int vmx_init_vmcs_config(bool bsp)
         if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) >
              PAGE_SIZE )
         {
-            printk("VMX: CPU%d VMCS size is too big (%Lu bytes)\n",
+            printk("VMX: CPU%d VMCS size is too big (%llu bytes)\n",
                    smp_processor_id(),
                    vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
             return -EINVAL;
@@ -564,7 +564,7 @@ static int vmx_init_vmcs_config(bool bsp)
         if ( (vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32)) !=
              ((vmx_basic_msr & VMX_BASIC_VMCS_SIZE_MASK) >> 32) )
         {
-            printk("VMX: CPU%d unexpected VMCS size %Lu\n",
+            printk("VMX: CPU%d unexpected VMCS size %llu\n",
                    smp_processor_id(),
                    vmx_basic_msr_high & (VMX_BASIC_VMCS_SIZE_MASK >> 32));
             mismatch = 1;
diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
index d2a313c4ac72..ef076bfaf3f5 100644
--- a/xen/arch/x86/io_apic.c
+++ b/xen/arch/x86/io_apic.c
@@ -2597,7 +2597,7 @@ static void __init ioapic_init_mappings(void)
         }
 
         set_fixmap_nocache(idx, ioapic_phys);
-        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08Lx (%08lx)\n",
+        apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08llx (%08lx)\n",
                     __fix_to_virt(idx), ioapic_phys);
 
         if ( bad_ioapic_register(i) )
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 33c8c917d984..3ea5c1b38b4a 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -2395,7 +2395,7 @@ int assign_pages(
 
         if ( unlikely(nr > d->max_pages - tot_pages) )
         {
-            gprintk(XENLOG_INFO, "Over-allocation for %pd: %Lu > %u\n",
+            gprintk(XENLOG_INFO, "Over-allocation for %pd: %llu > %u\n",
                     d, tot_pages + 0ULL + nr, d->max_pages);
             rc = -E2BIG;
             goto out;
@@ -2407,7 +2407,7 @@ int assign_pages(
         if ( unlikely(d->tot_pages + nr < nr) )
         {
             gprintk(XENLOG_INFO,
-                    "Excess allocation for %pd: %Lu (%u extra)\n",
+                    "Excess allocation for %pd: %llu (%u extra)\n",
                     d, d->tot_pages + 0ULL + nr, d->extra_pages);
             if ( pg[0].count_info & PGC_extra )
                 d->extra_pages -= nr;
diff --git a/xen/common/perfc.c b/xen/common/perfc.c
index 80480aa7766d..3efb3a4262ef 100644
--- a/xen/common/perfc.c
+++ b/xen/common/perfc.c
@@ -49,7 +49,7 @@ void cf_check perfc_printall(unsigned char key)
                 sum += per_cpu(perfcounters, cpu)[j];
             if ( perfc_info[i].type == TYPE_S_SINGLE ) 
                 sum = (perfc_t) sum;
-            printk("TOTAL[%12Lu]", sum);
+            printk("TOTAL[%12llu]", sum);
             if ( sum )
             {
                 k = 0;
@@ -74,7 +74,7 @@ void cf_check perfc_printall(unsigned char key)
             }
             if ( perfc_info[i].type == TYPE_S_ARRAY ) 
                 sum = (perfc_t) sum;
-            printk("TOTAL[%12Lu]", sum);
+            printk("TOTAL[%12llu]", sum);
             if (sum)
             {
 #ifdef CONFIG_PERF_ARRAYS
@@ -87,7 +87,7 @@ void cf_check perfc_printall(unsigned char key)
                         sum = (perfc_t) sum;
                     if ( (k % 4) == 0 )
                         printk("\n%16s", "");
-                    printk("  ARR%02u[%10Lu]", k, sum);
+                    printk("  ARR%02u[%10llu]", k, sum);
                 }
 #else
                 k = 0;
@@ -103,7 +103,7 @@ void cf_check perfc_printall(unsigned char key)
                         sum = (perfc_t) sum;
                     if ( k > 0 && (k % 4) == 0 )
                         printk("\n%53s", "");
-                    printk("  CPU%02u[%10Lu]", cpu, sum);
+                    printk("  CPU%02u[%10llu]", cpu, sum);
                     ++k;
                 }
 #endif
-- 
2.39.2




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.