stubdom: fix using minios frontends directly when libc is actived
PATCH 1/1 stubdom: fix using minios frontends directly when libc is actived
stubdom: fix using minios frontends directly when libc is actived
Signed-off-by Samuel Thibault <[email protected]>
extras/mini-os/blkfront.c +9 -3
@@ -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;
extras/mini-os/fbfront.c +20 -8
@@ -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);
extras/mini-os/netfront.c +6 -2
@@ -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