|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] mini-os: Fix stubdom build failures on gcc 4.8
commit 5fd5df08710fd1daac5d5faecd40cb2520ff52db
Author: Mike Neilsen <mneilsen@xxxxxxx>
AuthorDate: Wed Jan 22 11:41:11 2014 -0600
Commit: Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Tue Jan 28 11:11:00 2014 +0000
mini-os: Fix stubdom build failures on gcc 4.8
This is a fix for bug 35:
http://bugs.xenproject.org/xen/bug/35
This bug report describes several format string mismatches which prevent
building the stubdom target in Xen 4.3 and Xen 4.4-rc2 on gcc 4.8. This is
a
copy of Alex Sharp's original patch with the following modifications:
* Andrew Cooper's recommendation applied to extras/mini-os/xenbus/xenbus.c
to
avoid stack corruption
* Samuel Thibault's recommendation to make "fun" an unsigned int rather
than an
unsigned long in pcifront_physical_to_virtual and related functions
(extras/mini-os/include/pcifront.h and extras/mini-os/pcifront.c)
Tested on x86_64 gcc Ubuntu/Linaro 4.8.1-10ubuntu9.
Coverity-IDs: 1055807 1055808 1055809 1055810
Signed-off-by: Mike Neilsen <mneilsen@xxxxxxx>
Acked-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
extras/mini-os/fbfront.c | 4 ++--
extras/mini-os/include/pcifront.h | 12 ++++++------
extras/mini-os/pcifront.c | 14 +++++++-------
extras/mini-os/xenbus/xenbus.c | 5 +++--
4 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/extras/mini-os/fbfront.c b/extras/mini-os/fbfront.c
index 1e01513..9cc07b4 100644
--- a/extras/mini-os/fbfront.c
+++ b/extras/mini-os/fbfront.c
@@ -105,7 +105,7 @@ again:
free(err);
}
- err = xenbus_printf(xbt, nodename, "page-ref","%u", virt_to_mfn(s));
+ err = xenbus_printf(xbt, nodename, "page-ref","%lu", virt_to_mfn(s));
if (err) {
message = "writing page-ref";
goto abort_transaction;
@@ -468,7 +468,7 @@ again:
free(err);
}
- err = xenbus_printf(xbt, nodename, "page-ref","%u", virt_to_mfn(s));
+ err = xenbus_printf(xbt, nodename, "page-ref","%lu", virt_to_mfn(s));
if (err) {
message = "writing page-ref";
goto abort_transaction;
diff --git a/extras/mini-os/include/pcifront.h
b/extras/mini-os/include/pcifront.h
index 0a6be8e..1b05963 100644
--- a/extras/mini-os/include/pcifront.h
+++ b/extras/mini-os/include/pcifront.h
@@ -7,23 +7,23 @@ void pcifront_op(struct pcifront_dev *dev, struct xen_pci_op
*op);
void pcifront_scan(struct pcifront_dev *dev, void (*fun)(unsigned int domain,
unsigned int bus, unsigned slot, unsigned int fun));
int pcifront_conf_read(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long fun,
+ unsigned int bus, unsigned int slot, unsigned int fun,
unsigned int off, unsigned int size, unsigned int *val);
int pcifront_conf_write(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long fun,
+ unsigned int bus, unsigned int slot, unsigned int fun,
unsigned int off, unsigned int size, unsigned int val);
int pcifront_enable_msi(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long
fun);
+ unsigned int bus, unsigned int slot, unsigned int fun);
int pcifront_disable_msi(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long
fun);
+ unsigned int bus, unsigned int slot, unsigned int
fun);
int pcifront_enable_msix(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long
fun,
+ unsigned int bus, unsigned int slot, unsigned int fun,
struct xen_msix_entry *entries, int n);
int pcifront_disable_msix(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long
fun);
+ unsigned int bus, unsigned int slot, unsigned int
fun);
void shutdown_pcifront(struct pcifront_dev *dev);
diff --git a/extras/mini-os/pcifront.c b/extras/mini-os/pcifront.c
index 16a4b49..0fc5b30 100644
--- a/extras/mini-os/pcifront.c
+++ b/extras/mini-os/pcifront.c
@@ -384,7 +384,7 @@ int pcifront_physical_to_virtual (struct pcifront_dev *dev,
unsigned int *dom,
unsigned int *bus,
unsigned int *slot,
- unsigned long *fun)
+ unsigned int *fun)
{
/* FIXME: the buffer sizing is a little lazy here. 10 extra bytes
should be enough to hold the paths we need to construct, even
@@ -456,7 +456,7 @@ void pcifront_op(struct pcifront_dev *dev, struct
xen_pci_op *op)
int pcifront_conf_read(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long fun,
+ unsigned int bus, unsigned int slot, unsigned int fun,
unsigned int off, unsigned int size, unsigned int *val)
{
struct xen_pci_op op;
@@ -486,7 +486,7 @@ int pcifront_conf_read(struct pcifront_dev *dev,
int pcifront_conf_write(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long fun,
+ unsigned int bus, unsigned int slot, unsigned int fun,
unsigned int off, unsigned int size, unsigned int val)
{
struct xen_pci_op op;
@@ -513,7 +513,7 @@ int pcifront_conf_write(struct pcifront_dev *dev,
int pcifront_enable_msi(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long fun)
+ unsigned int bus, unsigned int slot, unsigned int fun)
{
struct xen_pci_op op;
@@ -538,7 +538,7 @@ int pcifront_enable_msi(struct pcifront_dev *dev,
int pcifront_disable_msi(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long
fun)
+ unsigned int bus, unsigned int slot, unsigned int fun)
{
struct xen_pci_op op;
@@ -560,7 +560,7 @@ int pcifront_disable_msi(struct pcifront_dev *dev,
int pcifront_enable_msix(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long
fun,
+ unsigned int bus, unsigned int slot, unsigned int fun,
struct xen_msix_entry *entries, int n)
{
struct xen_pci_op op;
@@ -595,7 +595,7 @@ int pcifront_enable_msix(struct pcifront_dev *dev,
int pcifront_disable_msix(struct pcifront_dev *dev,
unsigned int dom,
- unsigned int bus, unsigned int slot, unsigned long
fun)
+ unsigned int bus, unsigned int slot, unsigned int
fun)
{
struct xen_pci_op op;
diff --git a/extras/mini-os/xenbus/xenbus.c b/extras/mini-os/xenbus/xenbus.c
index ee1691b..c5d9b02 100644
--- a/extras/mini-os/xenbus/xenbus.c
+++ b/extras/mini-os/xenbus/xenbus.c
@@ -15,6 +15,7 @@
*
****************************************************************************
**/
+#include <inttypes.h>
#include <mini-os/os.h>
#include <mini-os/mm.h>
#include <mini-os/traps.h>
@@ -672,7 +673,7 @@ char *xenbus_transaction_start(xenbus_transaction_t *xbt)
err = errmsg(rep);
if (err)
return err;
- sscanf((char *)(rep + 1), "%u", xbt);
+ sscanf((char *)(rep + 1), "%lu", xbt);
free(rep);
return NULL;
}
@@ -769,7 +770,7 @@ domid_t xenbus_get_self_id(void)
domid_t ret;
BUG_ON(xenbus_read(XBT_NIL, "domid", &dom_id));
- sscanf(dom_id, "%d", &ret);
+ sscanf(dom_id, "%"SCNd16, &ret);
return ret;
}
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |