Subject: Re: [PATCH] xen: netback: fix error printf format string.

From: Ian Campbell <[email-masked]>
Date: Mon, 1 Jun 2015 09:29:16 +0100

On Sun, 2015-05-31 at 21:26 -0700, David Miller wrote:
> From: Ian Campbell <[email-masked]>
> Date: Fri, 29 May 2015 17:22:04 +0100
> 
> > drivers/net/xen-netback/netback.c: In function ‘xenvif_tx_build_gops’:
> > drivers/net/xen-netback/netback.c:1253:8: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘int’ [-Wformat=]
> >         (txreq.offset&~PAGE_MASK) + txreq.size);
> >         ^
> > 
> > txreq.offset and .size are uint16_t fields.
> > 
> > Signed-off-by: Ian Campbell <[email-masked]>
> 
> This may get rid of the compiler warning on your machine, but it creates
> one on mine:
> 
> drivers/net/xen-netback/netback.c: In function ‘xenvif_tx_build_gops’:
> drivers/net/xen-netback/netback.c:1253:8: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 5 has type ‘long unsigned int’ [-Wformat=]
>         (txreq.offset&~PAGE_MASK) + txreq.size);
>         ^
> 
> There is a type involved in this calculation which is arch
> dependent, so you'll need to add a cast or something to
> make this warning go away in all cases.

Ah, I only considered the types txreq.{offset,size} and missed thinking
about PAGE_MASK.

I'll resend with a cast.

Ian.