* [PATCH] stubdom: fix using minios frontends directly when libc is actived
@ 2008-06-17 10:31 Samuel Thibault
0 siblings, 0 replies; only message in thread
From: Samuel Thibault @ 2008-06-17 10:31 UTC (permalink / raw)
To: xen-devel
stubdom: fix using minios frontends directly when libc is actived
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
diff -r 4f7f01de4239 extras/mini-os/blkfront.c
--- a/extras/mini-os/blkfront.c Tue Jun 17 10:18:15 2008 +0100
+++ b/extras/mini-os/blkfront.c Tue Jun 17 11:32:05 2008 +0100
@@ -63,7 +63,8 @@
struct blkfront_dev *dev = data;
int fd = dev->fd;
- files[fd].read = 1;
+ if (fd != -1)
+ files[fd].read = 1;
#endif
wake_up(&blkfront_queue);
}
@@ -105,6 +106,9 @@
dev = malloc(sizeof(*dev));
memset(dev, 0, sizeof(*dev));
dev->nodename = strdup(nodename);
+#ifdef HAVE_LIBC
+ dev->fd = -1;
+#endif
snprintf(path, sizeof(path), "%s/backend-id", nodename);
dev->dom = xenbus_read_integer(path);
@@ -424,8 +428,10 @@
moretodo:
#ifdef HAVE_LIBC
- files[dev->fd].read = 0;
- mb(); /* Make sure to let the handler set read to 1 before we start looking at the ring */
+ if (dev->fd != -1) {
+ files[dev->fd].read = 0;
+ mb(); /* Make sure to let the handler set read to 1 before we start looking at the ring */
+ }
#endif
rp = dev->ring.sring->rsp_prod;
diff -r 4f7f01de4239 extras/mini-os/fbfront.c
--- a/extras/mini-os/fbfront.c Tue Jun 17 10:18:15 2008 +0100
+++ b/extras/mini-os/fbfront.c Tue Jun 17 11:32:05 2008 +0100
@@ -44,7 +44,8 @@
struct kbdfront_dev *dev = data;
int fd = dev->fd;
- files[fd].read = 1;
+ if (fd != -1)
+ files[fd].read = 1;
#endif
wake_up(&kbdfront_queue);
}
@@ -83,6 +84,9 @@
dev = malloc(sizeof(*dev));
dev->nodename = strdup(nodename);
+#ifdef HAVE_LIBC
+ dev->fd = -1;
+#endif
snprintf(path, sizeof(path), "%s/backend-id", nodename);
dev->dom = xenbus_read_integer(path);
@@ -179,8 +183,10 @@
int i;
#ifdef HAVE_LIBC
- files[dev->fd].read = 0;
- mb(); /* Make sure to let the handler set read to 1 before we start looking at the ring */
+ if (dev->fd != -1) {
+ files[dev->fd].read = 0;
+ mb(); /* Make sure to let the handler set read to 1 before we start looking at the ring */
+ }
#endif
prod = page->in_prod;
@@ -198,7 +204,7 @@
notify_remote_via_evtchn(dev->evtchn);
#ifdef HAVE_LIBC
- if (cons != prod)
+ if (cons != prod && dev->fd != -1)
/* still some events to read */
files[dev->fd].read = 1;
#endif
@@ -290,7 +296,8 @@
struct fbfront_dev *dev = data;
int fd = dev->fd;
- files[fd].read = 1;
+ if (fd != -1)
+ files[fd].read = 1;
#endif
wake_up(&fbfront_queue);
}
@@ -316,8 +323,10 @@
int i;
#ifdef HAVE_LIBC
- files[dev->fd].read = 0;
- mb(); /* Make sure to let the handler set read to 1 before we start looking at the ring */
+ if (dev->fd != -1) {
+ files[dev->fd].read = 0;
+ mb(); /* Make sure to let the handler set read to 1 before we start looking at the ring */
+ }
#endif
prod = page->in_prod;
@@ -335,7 +344,7 @@
notify_remote_via_evtchn(dev->evtchn);
#ifdef HAVE_LIBC
- if (cons != prod)
+ if (cons != prod && dev->fd != -1)
/* still some events to read */
files[dev->fd].read = 1;
#endif
@@ -363,6 +372,9 @@
dev = malloc(sizeof(*dev));
dev->nodename = strdup(nodename);
+#ifdef HAVE_LIBC
+ dev->fd = -1;
+#endif
snprintf(path, sizeof(path), "%s/backend-id", nodename);
dev->dom = xenbus_read_integer(path);
diff -r 4f7f01de4239 extras/mini-os/netfront.c
--- a/extras/mini-os/netfront.c Tue Jun 17 10:18:15 2008 +0100
+++ b/extras/mini-os/netfront.c Tue Jun 17 11:32:05 2008 +0100
@@ -259,7 +259,8 @@
network_tx_buf_gc(dev);
local_irq_restore(flags);
- files[fd].read = 1;
+ if (fd != -1)
+ files[fd].read = 1;
wake_up(&netfront_queue);
}
#endif
@@ -323,6 +324,9 @@
dev = malloc(sizeof(*dev));
memset(dev, 0, sizeof(*dev));
dev->nodename = strdup(nodename);
+#ifdef HAVE_LIBC
+ dev->fd = -1;
+#endif
printk("net TX ring size %d\n", NET_TX_RING_SIZE);
printk("net RX ring size %d\n", NET_RX_RING_SIZE);
@@ -610,7 +614,7 @@
local_irq_save(flags);
network_rx(dev);
- if (!dev->rlen)
+ if (!dev->rlen && fd != -1)
/* No data for us, make select stop returning */
files[fd].read = 0;
/* Before re-enabling the interrupts, in case a packet just arrived in the
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-06-17 10:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-17 10:31 [PATCH] stubdom: fix using minios frontends directly when libc is actived Samuel Thibault
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.