Page MenuHomeFreeBSD

D6657.id17147.diff
No OneTemporary

D6657.id17147.diff

Index: sys/dev/xen/netfront/netfront.c
===================================================================
--- sys/dev/xen/netfront/netfront.c
+++ sys/dev/xen/netfront/netfront.c
@@ -976,7 +976,6 @@
break;
if (xn_connect(sc) != 0)
break;
- xenbus_set_state(dev, XenbusStateConnected);
break;
case XenbusStateClosing:
xenbus_set_state(dev, XenbusStateClosed);
@@ -1969,8 +1968,13 @@
* packets.
*/
netfront_carrier_on(np);
+
+ /* Switch to connected state before kicking the rings. */
+ xenbus_set_state(np->xbdev, XenbusStateConnected);
+
for (i = 0; i < np->num_queues; i++) {
txq = &np->txq[i];
+ rxq = &np->rxq[i];
xen_intr_signal(txq->xen_intr_handle);
XN_TX_LOCK(txq);
xn_txeof(txq);
@@ -1978,6 +1982,7 @@
XN_RX_LOCK(rxq);
xn_alloc_rx_buffers(rxq);
XN_RX_UNLOCK(rxq);
+ taskqueue_enqueue(txq->tq, &txq->defrtask);
}
return (0);

File Metadata

Mime Type
text/plain
Expires
Sat, Aug 8, 9:23 AM (17 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36221300
Default Alt Text
D6657.id17147.diff (891 B)

Event Timeline