> -----Original Message----- > From: Xen-devel [mailto:xen-devel-boun...@lists.xen.org] On Behalf Of > Mart van Santen > Sent: 10 February 2017 12:02 > To: Wei Liu <wei.l...@citrix.com>; Paul Durrant <paul.durr...@citrix.com>; > xen-de...@lists.xenproject.org; netdev@vger.kernel.org > Cc: Mart van Santen <m...@greenhost.nl> > Subject: [Xen-devel] [PATCH] xen-netback: vif counters from int/long to u64 > > This patch fixes an issue where the type of counters in the queue(s) > and interface are not in sync (queue counters are int, interface > counters are long), causing incorrect reporting of tx/rx values > of the vif interface and unclear counter overflows. > This patch sets both counters to the u64 type. > > Signed-off-by: Mart van Santen <m...@greenhost.nl>
Looks sensible to me. Reviewed-by: Paul Durrant <paul.durr...@citrix.com> > --- > drivers/net/xen-netback/common.h | 8 ++++---- > drivers/net/xen-netback/interface.c | 8 ++++---- > 2 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen- > netback/common.h > index 3ce1f7d..530586b 100644 > --- a/drivers/net/xen-netback/common.h > +++ b/drivers/net/xen-netback/common.h > @@ -113,10 +113,10 @@ struct xenvif_stats { > * A subset of struct net_device_stats that contains only the > * fields that are updated in netback.c for each queue. > */ > - unsigned int rx_bytes; > - unsigned int rx_packets; > - unsigned int tx_bytes; > - unsigned int tx_packets; > + u64 rx_bytes; > + u64 rx_packets; > + u64 tx_bytes; > + u64 tx_packets; > > /* Additional stats used by xenvif */ > unsigned long rx_gso_checksum_fixup; > diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen- > netback/interface.c > index 5795213..50fa169 100644 > --- a/drivers/net/xen-netback/interface.c > +++ b/drivers/net/xen-netback/interface.c > @@ -221,10 +221,10 @@ static struct net_device_stats > *xenvif_get_stats(struct net_device *dev) > { > struct xenvif *vif = netdev_priv(dev); > struct xenvif_queue *queue = NULL; > - unsigned long rx_bytes = 0; > - unsigned long rx_packets = 0; > - unsigned long tx_bytes = 0; > - unsigned long tx_packets = 0; > + u64 rx_bytes = 0; > + u64 rx_packets = 0; > + u64 tx_bytes = 0; > + u64 tx_packets = 0; > unsigned int index; > > spin_lock(&vif->lock); > -- > 2.1.4 > > > _______________________________________________ > Xen-devel mailing list > xen-de...@lists.xen.org > https://lists.xen.org/xen-devel