All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8
@ 2014-01-22 17:41 xenmail43267
  2014-01-22 17:57 ` Samuel Thibault
  2014-01-23 11:06 ` Ian Campbell
  0 siblings, 2 replies; 6+ messages in thread
From: xenmail43267 @ 2014-01-22 17:41 UTC (permalink / raw)
  To: xen-devel
  Cc: Ian.Campbell, andrew.cooper3, Mike Neilsen, stefano.stabellini,
	samuel.thibault, alex.sharp

From: Mike Neilsen <mneilsen@acm.org>

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.

Signed-off-by: Mike Neilsen <mneilsen@acm.org>

---
Changed since v1:
* Change "fun" arguments into unsigned ints
---
 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;
 }
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8
  2014-01-22 17:41 [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8 xenmail43267
@ 2014-01-22 17:57 ` Samuel Thibault
  2014-01-22 18:47   ` Andrew Cooper
  2014-01-23 11:06 ` Ian Campbell
  1 sibling, 1 reply; 6+ messages in thread
From: Samuel Thibault @ 2014-01-22 17:57 UTC (permalink / raw)
  To: xenmail43267
  Cc: Ian.Campbell, andrew.cooper3, xen-devel, Mike Neilsen,
	stefano.stabellini, alex.sharp

xenmail43267@gmail.com, le Wed 22 Jan 2014 11:41:11 -0600, a écrit :
> From: Mike Neilsen <mneilsen@acm.org>
> 
> 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.
> 
> Signed-off-by: Mike Neilsen <mneilsen@acm.org>

Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

> ---
> Changed since v1:
> * Change "fun" arguments into unsigned ints
> ---
>  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;
>  }
> -- 
> 1.8.3.2
> 

-- 
Samuel
Client: "This program has been successfully installed."
Vendeur (surpris): "Et où voyez-vous une erreur ?"
Client: "C'est << HAS BEEN >> !"

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8
  2014-01-22 17:57 ` Samuel Thibault
@ 2014-01-22 18:47   ` Andrew Cooper
  0 siblings, 0 replies; 6+ messages in thread
From: Andrew Cooper @ 2014-01-22 18:47 UTC (permalink / raw)
  To: Samuel Thibault, xenmail43267, xen-devel, alex.sharp,
	Ian.Campbell, stefano.stabellini, Mike Neilsen
  Cc: George Dunlap

On 22/01/14 17:57, Samuel Thibault wrote:
> xenmail43267@gmail.com, le Wed 22 Jan 2014 11:41:11 -0600, a écrit :
>> From: Mike Neilsen <mneilsen@acm.org>
>>
>> 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.
>>
>> Signed-off-by: Mike Neilsen <mneilsen@acm.org>
> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

And after peeking at the Coverity database,

Coverity-IDs: 1055807 1055808 10558091055810

As this relates to build issues, it should probably be considered for
inclusion in 4.4

~Andrew

>
>> ---
>> Changed since v1:
>> * Change "fun" arguments into unsigned ints
>> ---
>>  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;
>>  }
>> -- 
>> 1.8.3.2
>>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8
  2014-01-22 17:41 [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8 xenmail43267
  2014-01-22 17:57 ` Samuel Thibault
@ 2014-01-23 11:06 ` Ian Campbell
  2014-01-23 11:23   ` George Dunlap
  1 sibling, 1 reply; 6+ messages in thread
From: Ian Campbell @ 2014-01-23 11:06 UTC (permalink / raw)
  To: xenmail43267
  Cc: George Dunlap, andrew.cooper3, xen-devel, Mike Neilsen,
	stefano.stabellini, samuel.thibault, alex.sharp

On Wed, 2014-01-22 at 11:41 -0600, xenmail43267@gmail.com wrote:
> From: Mike Neilsen <mneilsen@acm.org>
> 
> 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.
> 
> Signed-off-by: Mike Neilsen <mneilsen@acm.org>
> 
> ---
> Changed since v1:
> * Change "fun" arguments into unsigned ints

Thanks for shaving that yakk! Since you've done it I obviously rescind
my previous comments ;-) (I should have read all my mail first).

Acked-by: Ian Campbell <ian,campbell@citrix.com>

George -- as a build fix for a compiler which is now in the wild I think
this should go in for 4.4.

> ---
>  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;
>  }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8
  2014-01-23 11:06 ` Ian Campbell
@ 2014-01-23 11:23   ` George Dunlap
  2014-01-28 11:50     ` Ian Campbell
  0 siblings, 1 reply; 6+ messages in thread
From: George Dunlap @ 2014-01-23 11:23 UTC (permalink / raw)
  To: Ian Campbell, xenmail43267
  Cc: andrew.cooper3, xen-devel, Mike Neilsen, stefano.stabellini,
	samuel.thibault, alex.sharp

On 01/23/2014 11:06 AM, Ian Campbell wrote:
> On Wed, 2014-01-22 at 11:41 -0600, xenmail43267@gmail.com wrote:
>> From: Mike Neilsen <mneilsen@acm.org>
>>
>> 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.
>>
>> Signed-off-by: Mike Neilsen <mneilsen@acm.org>
>>
>> ---
>> Changed since v1:
>> * Change "fun" arguments into unsigned ints
>
> Thanks for shaving that yakk! Since you've done it I obviously rescind
> my previous comments ;-) (I should have read all my mail first).
>
> Acked-by: Ian Campbell <ian,campbell@citrix.com>
>
> George -- as a build fix for a compiler which is now in the wild I think
> this should go in for 4.4.

I agree.

Release-acked-by: George Dunlap <george.dunlap@eu.citrix.com>

>
>> ---
>>   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;
>>   }
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8
  2014-01-23 11:23   ` George Dunlap
@ 2014-01-28 11:50     ` Ian Campbell
  0 siblings, 0 replies; 6+ messages in thread
From: Ian Campbell @ 2014-01-28 11:50 UTC (permalink / raw)
  To: George Dunlap
  Cc: andrew.cooper3, xen-devel, Mike Neilsen, stefano.stabellini,
	samuel.thibault, alex.sharp, xenmail43267

On Thu, 2014-01-23 at 11:23 +0000, George Dunlap wrote:
> On 01/23/2014 11:06 AM, Ian Campbell wrote:
> > On Wed, 2014-01-22 at 11:41 -0600, xenmail43267@gmail.com wrote:
> >> From: Mike Neilsen <mneilsen@acm.org>
> >>
> >> 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.
> >>
> >> Signed-off-by: Mike Neilsen <mneilsen@acm.org>
> >>
> >> ---
> >> Changed since v1:
> >> * Change "fun" arguments into unsigned ints
> >
> > Thanks for shaving that yakk! Since you've done it I obviously rescind
> > my previous comments ;-) (I should have read all my mail first).
> >
> > Acked-by: Ian Campbell <ian,campbell@citrix.com>
> >
> > George -- as a build fix for a compiler which is now in the wild I think
> > this should go in for 4.4.
> 
> I agree.
> 
> Release-acked-by: George Dunlap <george.dunlap@eu.citrix.com>

Applied, thanks everyone.

Ian.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-01-28 11:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-22 17:41 [PATCH v2] mini-os: Fix stubdom build failures on gcc 4.8 xenmail43267
2014-01-22 17:57 ` Samuel Thibault
2014-01-22 18:47   ` Andrew Cooper
2014-01-23 11:06 ` Ian Campbell
2014-01-23 11:23   ` George Dunlap
2014-01-28 11:50     ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.