aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/xen/pvcalls-front.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/xen/pvcalls-front.c b/drivers/xen/pvcalls-front.c
index 77224d8f3e6f..e5d95aab2cb8 100644
--- a/drivers/xen/pvcalls-front.c
+++ b/drivers/xen/pvcalls-front.c
@@ -560,15 +560,13 @@ static int __read_ring(struct pvcalls_data_intf *intf,
560 error = intf->in_error; 560 error = intf->in_error;
561 /* get pointers before reading from the ring */ 561 /* get pointers before reading from the ring */
562 virt_rmb(); 562 virt_rmb();
563 if (error < 0)
564 return error;
565 563
566 size = pvcalls_queued(prod, cons, array_size); 564 size = pvcalls_queued(prod, cons, array_size);
567 masked_prod = pvcalls_mask(prod, array_size); 565 masked_prod = pvcalls_mask(prod, array_size);
568 masked_cons = pvcalls_mask(cons, array_size); 566 masked_cons = pvcalls_mask(cons, array_size);
569 567
570 if (size == 0) 568 if (size == 0)
571 return 0; 569 return error ?: size;
572 570
573 if (len > size) 571 if (len > size)
574 len = size; 572 len = size;