ixgbe: use GFP_ATOMIC when allocating FCoE DDP context from the dma pool
authorYi Zou <yi.zou@intel.com>
Mon, 19 Jul 2010 14:00:24 +0000 (14:00 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Jul 2010 03:23:37 +0000 (20:23 -0700)
The FCoE protocol stack may hold a lock when this gets called.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ixgbe/ixgbe_fcoe.c

index 1737d2bddc19a54e89a9feb0dabd1fb3b43f2498..072327c5e41ab287e4ad9598145f6d3f60283f12 100644 (file)
@@ -190,7 +190,7 @@ int ixgbe_fcoe_ddp_get(struct net_device *netdev, u16 xid,
        }
 
        /* alloc the udl from our ddp pool */
-       ddp->udl = pci_pool_alloc(fcoe->pool, GFP_KERNEL, &ddp->udp);
+       ddp->udl = pci_pool_alloc(fcoe->pool, GFP_ATOMIC, &ddp->udp);
        if (!ddp->udl) {
                e_err(drv, "failed allocated ddp context\n");
                goto out_noddp_unmap;