summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2007-03-05 21:56:28 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-06-18 00:27:06 +0200
commitd15aead4e0287de40a4ead3510804f5ac2d34268 (patch)
treeb558617baabde9df7988298e8621ccf3b6db9b32 /linux
parent6275df35e4b574f089e8266e4dccec4d5e22c403 (diff)
Only net_packet needs splimp.
Diffstat (limited to 'linux')
-rw-r--r--linux/dev/glue/net.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/linux/dev/glue/net.c b/linux/dev/glue/net.c
index 0022f57..3ba0e0a 100644
--- a/linux/dev/glue/net.c
+++ b/linux/dev/glue/net.c
@@ -488,6 +488,7 @@ device_write (void *d, ipc_port_t reply_port,
__skb_queue_tail (&dev->buffs[0], skb);
mark_bh (NET_BH);
}
+ splx (s);
/* Send packet to filters. */
{
@@ -512,11 +513,12 @@ device_write (void *d, ipc_port_t reply_port,
+ sizeof (struct packet_header);
packet->type = header->ether_type;
net_kmsg (kmsg)->sent = TRUE; /* Mark packet as sent. */
+ s = splimp ();
net_packet (&dev->net_data->ifnet, kmsg, packet->length,
ethernet_priority (kmsg));
+ splx (s);
}
}
- splx (s);
return MIG_NO_REPLY;
}