aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2007-04-01 20:23:19 -0400
committerStefan Richter <stefanr@s5r6.in-berlin.de>2007-04-29 18:00:32 -0400
commit53f374e76c2b37835966382b27efb6bb3715f9d8 (patch)
treeed2016ea2c6dd65476e7c5266487945ed0613396
parent099398719bb53119734354bc079840bebf1c7386 (diff)
ieee1394: eth1394: hard_start_xmit is called in atomic context
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
-rw-r--r--drivers/ieee1394/eth1394.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
index a6c4a375125c..b5cd10786f7e 100644
--- a/drivers/ieee1394/eth1394.c
+++ b/drivers/ieee1394/eth1394.c
@@ -1521,7 +1521,6 @@ static void ether1394_complete_cb(void *__ptask)
1521/* Transmit a packet (called by kernel) */ 1521/* Transmit a packet (called by kernel) */
1522static int ether1394_tx(struct sk_buff *skb, struct net_device *dev) 1522static int ether1394_tx(struct sk_buff *skb, struct net_device *dev)
1523{ 1523{
1524 gfp_t kmflags = in_interrupt() ? GFP_ATOMIC : GFP_KERNEL;
1525 struct eth1394hdr *eth; 1524 struct eth1394hdr *eth;
1526 struct eth1394_priv *priv = netdev_priv(dev); 1525 struct eth1394_priv *priv = netdev_priv(dev);
1527 __be16 proto; 1526 __be16 proto;
@@ -1537,7 +1536,7 @@ static int ether1394_tx(struct sk_buff *skb, struct net_device *dev)
1537 struct eth1394_node_ref *node; 1536 struct eth1394_node_ref *node;
1538 struct eth1394_node_info *node_info = NULL; 1537 struct eth1394_node_info *node_info = NULL;
1539 1538
1540 ptask = kmem_cache_alloc(packet_task_cache, kmflags); 1539 ptask = kmem_cache_alloc(packet_task_cache, GFP_ATOMIC);
1541 if (ptask == NULL) { 1540 if (ptask == NULL) {
1542 ret = -ENOMEM; 1541 ret = -ENOMEM;
1543 goto fail; 1542 goto fail;
@@ -1553,7 +1552,7 @@ static int ether1394_tx(struct sk_buff *skb, struct net_device *dev)
1553 } 1552 }
1554#endif 1553#endif
1555 1554
1556 skb = skb_share_check(skb, kmflags); 1555 skb = skb_share_check(skb, GFP_ATOMIC);
1557 if (!skb) { 1556 if (!skb) {
1558 ret = -ENOMEM; 1557 ret = -ENOMEM;
1559 goto fail; 1558 goto fail;