diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-04-01 20:23:19 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-04-29 18:00:32 -0400 |
commit | 53f374e76c2b37835966382b27efb6bb3715f9d8 (patch) | |
tree | ed2016ea2c6dd65476e7c5266487945ed0613396 | |
parent | 099398719bb53119734354bc079840bebf1c7386 (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.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c index a6c4a375125..b5cd10786f7 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) */ |
1522 | static int ether1394_tx(struct sk_buff *skb, struct net_device *dev) | 1522 | static 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; |