|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] evtchn_do_upcall: Fix logic to start correctly at "l
# HG changeset patch
# User kaushik
# Date 1264742860 21600
# Node ID de3e05e5eec28aa332ae1aa35a2edf97ded769f5
# Parent 91224343eeee460c9aafdaadc1bdedab54e92256
Fix the logic to start correctly at "last processed port + 1" in
evtchn_do_upcall.
Signed-off-by: Kaushik Kumar Ram <kaushik@xxxxxxxx>
diff -r 91224343eeee -r de3e05e5eec2 drivers/xen/core/evtchn.c
--- a/drivers/xen/core/evtchn.c Thu Jan 21 15:05:02 2010 +0000
+++ b/drivers/xen/core/evtchn.c Thu Jan 28 23:27:40 2010 -0600
@@ -264,6 +264,9 @@ asmlinkage void evtchn_do_upcall(struct
l1i = per_cpu(last_processed_l1i, cpu);
l2i = per_cpu(last_processed_l2i, cpu);
+ if(l2i == BITS_PER_LONG - 1)
+ l1i = (l1i + 1) % BITS_PER_LONG;
+
while (l1 != 0) {
l1i = (l1i + 1) % BITS_PER_LONG;
@@ -297,7 +300,7 @@ asmlinkage void evtchn_do_upcall(struct
evtchn_device_upcall(port);
/* if this is the final port processed, we'll
pick up here+1 next time */
- per_cpu(last_processed_l1i, cpu) = l1i;
+ per_cpu(last_processed_l1i, cpu) = l1i - 1;
per_cpu(last_processed_l2i, cpu) = l2i;
} while (l2i != BITS_PER_LONG - 1);
-Kaushik
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH] evtchn_do_upcall: Fix logic to start correctly at "last processed port + 1",
Kaushik Kumar Ram <=
|
|
|
|
|