[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] minios: Various small fixes.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Date 1174296882 0 # Node ID f40079acf646a14bf891e126dc3ac2e798c3d4bb # Parent b795b90e4ff6ad9ce0c9fc47d921f91a4fb12cc5 minios: Various small fixes. - Fixed type of variables in hypervisor.c. - Fixed not removing a waiter from watch_queue. - Make wait_for_watch() global accessible. Signed-off-by: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx> --- extras/mini-os/hypervisor.c | 4 ++-- extras/mini-os/include/wait.h | 7 +++++++ extras/mini-os/include/xenbus.h | 1 + extras/mini-os/xenbus/xenbus.c | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) diff -r b795b90e4ff6 -r f40079acf646 extras/mini-os/hypervisor.c --- a/extras/mini-os/hypervisor.c Mon Mar 19 09:32:52 2007 +0000 +++ b/extras/mini-os/hypervisor.c Mon Mar 19 09:34:42 2007 +0000 @@ -35,8 +35,8 @@ void do_hypervisor_callback(struct pt_regs *regs) { - u32 l1, l2; - unsigned int l1i, l2i, port; + unsigned long l1, l2, l1i, l2i; + unsigned int port; int cpu = 0; shared_info_t *s = HYPERVISOR_shared_info; vcpu_info_t *vcpu_info = &s->vcpu_info[cpu]; diff -r b795b90e4ff6 -r f40079acf646 extras/mini-os/include/wait.h --- a/extras/mini-os/include/wait.h Mon Mar 19 09:32:52 2007 +0000 +++ b/extras/mini-os/include/wait.h Mon Mar 19 09:34:42 2007 +0000 @@ -74,6 +74,13 @@ static inline void wake_up(struct wait_q local_irq_restore(flags); \ } while (0) +#define remove_waiter(w) do { \ + unsigned long flags; \ + local_irq_save(flags); \ + remove_wait_queue(&w); \ + local_irq_restore(flags); \ +} while (0) + #define wait_event(wq, condition) do{ \ unsigned long flags; \ if(condition) \ diff -r b795b90e4ff6 -r f40079acf646 extras/mini-os/include/xenbus.h --- a/extras/mini-os/include/xenbus.h Mon Mar 19 09:32:52 2007 +0000 +++ b/extras/mini-os/include/xenbus.h Mon Mar 19 09:34:42 2007 +0000 @@ -13,6 +13,7 @@ char *xenbus_read(xenbus_transaction_t x char *xenbus_read(xenbus_transaction_t xbt, const char *path, char **value); char *xenbus_watch_path(xenbus_transaction_t xbt, const char *path); +void wait_for_watch(void); char* xenbus_wait_for_value(const char*,const char*); /* Associates a value with a path. Returns a malloc'd error string on diff -r b795b90e4ff6 -r f40079acf646 extras/mini-os/xenbus/xenbus.c --- a/extras/mini-os/xenbus/xenbus.c Mon Mar 19 09:32:52 2007 +0000 +++ b/extras/mini-os/xenbus/xenbus.c Mon Mar 19 09:34:42 2007 +0000 @@ -72,11 +72,12 @@ static void memcpy_from_ring(const void memcpy(dest + c1, ring, c2); } -static inline void wait_for_watch(void) +void wait_for_watch(void) { DEFINE_WAIT(w); add_waiter(w,watch_queue); schedule(); + remove_waiter(w); wake(current); } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |