netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: pmarzo <marzo.pedro@gmail.com>
To: David Miller <davem@davemloft.net>
Cc: ian.campbell@citrix.com, wei.liu2@citrix.com,
	xen-devel@lists.xenproject.org, netdev@vger.kernel.org
Subject: Re: [PATCH 1/1] xen-netback: remove compilation warning
Date: Fri, 27 Feb 2015 11:45:52 +0100	[thread overview]
Message-ID: <1425033952.3659.23.camel@CEM14014B> (raw)
In-Reply-To: <20150226.113046.199389136864969627.davem@davemloft.net>


On jue, 2015-02-26 at 11:30 -0500, David Miller wrote:
> From: pedro <marzo.pedro@gmail.com>
> Date: Thu, 26 Feb 2015 09:25:41 +0100
> 
> > From: pmarzo <marzo.pedro@gmail.com>
> > 
> > offset and size are of type uint16_t so the %lu gives a warning
> > A %u specifier, the same used in size makes gcc happy
> > Not sure if a %x would be more correct
> > 
> > Signed-off-by: Pedro Marzo Perez <marzo.pedro@gmail.com>
> 
> This patch actually adds a warning on my machine, and your analysis
> of the types is therefore probably incorrect:
> 
> drivers/net/xen-netback/netback.c: In function ‘xenvif_tx_build_gops’:
> drivers/net/xen-netback/netback.c:1259:8: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 5 has type ‘long unsigned int’ [-Wformat=]

You are right, this patch is completely wrong for i386, it gives me a
warning too. I should have checked that before, sorry. 

I should also have said I am using a cross compiler, which is the one
that gives the warning compiling the current code:
arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3


> 
> The issue is probably "~PAGE_MASK" and I think the type of that
> propagates into the type of the overall calculation.
That is what is probably happening, operations must be done to operands
of the same size, and the intel compiler is casting everything to
unsigned long (because I have a 64 bit machine??), but the arm compiler
is casting to unsigned int :-(

PAGE_MASK is defined as a number without any cast, so not sure which
compiler is right
	#define PAGE_SHIFT              12
	#define PAGE_MASK               (~((1 << PAGE_SHIFT) - 1))

This new patch fixes the warning for the arm gcc compiler and the i386
compiler, it just makes sure everything is cast to unsigned long
Could you please forget the previous one and give your opinion about
this one?

--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -1248,9 +1248,10 @@ static void xenvif_tx_build_gops(struct
xenvif_queue *queue,
                /* No crossing a page as the payload mustn't fragment.
*/
                if (unlikely((txreq.offset + txreq.size) > PAGE_SIZE)) {
                        netdev_err(queue->vif->dev,
-                                  "txreq.offset: %x, size: %u, end: %u
\n",
+                                  "txreq.offset: %x, size: %u, end: %lu
\n",
                                   txreq.offset, txreq.size,
-                                  (txreq.offset&~PAGE_MASK) +
txreq.size);
+                                  ((unsigned
long)txreq.offset&~PAGE_MASK)
+                                        + txreq.size);
                        xenvif_fatal_tx_err(queue->vif);
                        break;
                }
-- 
1.9.1




    

      reply	other threads:[~2015-02-27 10:45 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-26  8:25 [PATCH 1/1] xen-netback: remove compilation warning pedro
2015-02-26 10:13 ` Wei Liu
2015-02-26 16:30 ` David Miller
2015-02-27 10:45   ` pmarzo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1425033952.3659.23.camel@CEM14014B \
    --to=marzo.pedro@gmail.com \
    --cc=davem@davemloft.net \
    --cc=ian.campbell@citrix.com \
    --cc=netdev@vger.kernel.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).