Skip to content

Commit

Permalink
xen-netback: fix guest Rx stall detection (after guest Rx refactor)
Browse files Browse the repository at this point in the history
If a VIF has been ready for rx_stall_timeout (60s by default) and an
Rx ring is drained of all requests an Rx stall will be incorrectly
detected.  When this occurs and the guest Rx queue is empty, the Rx
ring's event index will not be set and the frontend will not raise an
event when new requests are placed on the ring, permanently stalling
the VIF.

This is a regression introduced by eb1723a (xen-netback:
refactor guest rx).

Fix this by reinstating the setting of queue->last_rx_time when
placing a packet onto the guest Rx ring.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Paul Durrant <paul.durrant@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
David Vrabel authored and David S. Miller committed Oct 13, 2016
1 parent 02a9079 commit d1ef006
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/net/xen-netback/rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,8 @@ void xenvif_rx_skb(struct xenvif_queue *queue)

xenvif_rx_next_skb(queue, &pkt);

queue->last_rx_time = jiffies;

do {
struct xen_netif_rx_request *req;
struct xen_netif_rx_response *rsp;
Expand Down

0 comments on commit d1ef006

Please sign in to comment.