mini-os: Properly release xenbus ids
PATCH 1/1 mini-os: Properly release xenbus ids
If more than NR_REQS xenbus requests have been made, xenbus locks up in an infinite loop. This simple patch fixes this, and also removes waiters from the xenbus wait queues.
Regards,
Jacob
extras/mini-os/xenbus/xenbus.c +2 -0
@@ -195,6 +195,7 @@ static void release_xenbus_id(int id) {BUG_ON (!req_info[id].in_use);spin_lock (&req_lock); + req_info[id].in_use =0 ; nr_live_reqs--;if (nr_live_reqs ==NR_REQS -1 )wake_up (&req_wq);
@@ -350,6 +351,7 @@ xenbus_msg_reply(int type,xb_write (type, id, trans, io, nr_reqs);schedule (); +remove_waiter (w);wake (current); rep = req_info[id].reply;
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel