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

Reply via email to