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

[Xen-changelog] [xen-unstable] flask: Fix 32-bit compilation of label-pci tool



# HG changeset patch
# User Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
# Date 1323113525 0
# Node ID 60ea36c0512b779f291bb6c007e1f05c16054ec2
# Parent  af099b66c109d9c1efdb85cd4eee52647abaaea1
flask: Fix 32-bit compilation of label-pci tool

The 32-bit tools need to support 64-bit addresses, so use the correct
printf/scanf formats. Also, some systems declare fscanf with attribute
warn_unused_result, so check the result instead of relying on the
value of start being unmodified across a failed call.

Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
Committed-by: Keir Fraser <keir@xxxxxxx>
---


diff -r af099b66c109 -r 60ea36c0512b tools/flask/utils/label-pci.c
--- a/tools/flask/utils/label-pci.c     Mon Dec 05 13:45:38 2011 +0000
+++ b/tools/flask/utils/label-pci.c     Mon Dec 05 19:32:05 2011 +0000
@@ -15,6 +15,7 @@
 #include <sys/stat.h>
 #include <string.h>
 #include <unistd.h>
+#include <inttypes.h>
 #include <libflask.h>
 
 /* Pulled from linux/include/linux/ioport.h */
@@ -76,22 +77,22 @@
                goto done;
        }
 
-       while (fscanf(f, "0x%lx 0x%lx 0x%lx\n", &start, &end, &flags) == 3) {
+       while (fscanf(f, "0x%"SCNx64" 0x%"SCNx64" 0x%"SCNx64"\n", &start, &end, 
&flags) == 3) {
                if (flags & IORESOURCE_IO) {
-                       // printf("Port %lx-%lx\n", start, end);
+                       // printf("Port %"PRIx64"-%"PRIx64"\n", start, end);
                        ret = flask_add_ioport(xch, start, end, argv[2]);
                        if (ret) {
-                               fprintf(stderr, "flask_add_ioport %lx-%lx 
failed: %d\n",
+                               fprintf(stderr, "flask_add_ioport 
%"PRIx64"-%"PRIx64" failed: %d\n",
                                                start, end, ret);
                                err = 2;
                        }
                } else if (flags & IORESOURCE_MEM) {
                        start >>= 12;
                        end >>= 12;
-                       // printf("IOMEM %lx-%lx\n", start, end);
+                       // printf("IOMEM %"PRIx64"-%"PRIx64"\n", start, end);
                        ret = flask_add_iomem(xch, start, end, argv[2]);
                        if (ret) {
-                               fprintf(stderr, "flask_add_iomem %lx-%lx 
failed: %d\n",
+                               fprintf(stderr, "flask_add_iomem 
%"PRIx64"-%"PRIx64" failed: %d\n",
                                                start, end, ret);
                                err = 2;
                        }
@@ -104,12 +105,12 @@
        f = fopen(buf, "r");
        if (!f)
                goto done;
-       start = 0;
-       fscanf(f, "%ld", &start);
+       if (fscanf(f, "%" SCNu64, &start) != 1)
+               start = 0;
        if (start) {
                ret = flask_add_pirq(xch, start, argv[2]);
                if (ret) {
-                       fprintf(stderr, "flask_add_pirq %ld failed: %d\n",
+                       fprintf(stderr, "flask_add_pirq %"PRIu64" failed: %d\n",
                                        start, ret);
                        err = 2;
                }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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