|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-changelog
[Xen-changelog] Reinitialize producer and consumer index to 0 if	indexes 
| # HG changeset patch
# User vhanquez@xxxxxxxxxxxxxxxxxxxxxxx
# Node ID 98a6f5ae7b1ffcd284e077f6d1439cb4e9adf2f2
# Parent  56ec142bdd91c6ecdc2395d7c21534efd893a14a
Reinitialize producer and consumer index to 0 if indexes corruption are detected
in XenBus.
Prevent a kernel infinite loop and add more recovering ability.
Signed-off-by: Vincent Hanquez <vincent@xxxxxxxxxxxxx>
diff -r 56ec142bdd91 -r 98a6f5ae7b1f 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c    Fri Mar 17 
09:52:05 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_comms.c    Fri Mar 17 
10:03:37 2006
@@ -106,8 +106,10 @@
                cons = intf->req_cons;
                prod = intf->req_prod;
                mb();
-               if (!check_indexes(cons, prod))
+               if (!check_indexes(cons, prod)) {
+                       intf->req_cons = intf->req_prod = 0;
                        return -EIO;
+               }
 
                dst = get_output_chunk(cons, prod, intf->req, &avail);
                if (avail == 0)
@@ -150,8 +152,10 @@
                cons = intf->rsp_cons;
                prod = intf->rsp_prod;
                mb();
-               if (!check_indexes(cons, prod))
+               if (!check_indexes(cons, prod)) {
+                       intf->rsp_cons = intf->rsp_prod = 0;
                        return -EIO;
+               }
 
                src = get_input_chunk(cons, prod, intf->rsp, &avail);
                if (avail == 0)
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 | 
 
| <Prev in Thread] | Current Thread | [Next in Thread> |  | 
[Xen-changelog] Reinitialize producer and consumer index to 0 if	indexes corruption are detected,
Xen patchbot -unstable <=
 |  |  | 
  
    |  |  |