[SCSI] be2iscsi: fix gfp use in alloc_pdu
authorMike Christie <michaelc@cs.wisc.edu>
Fri, 31 Dec 2010 08:22:19 +0000 (02:22 -0600)
committerJames Bottomley <James.Bottomley@suse.de>
Fri, 31 Dec 2010 15:52:22 +0000 (09:52 -0600)
The pdu allication callout is called from a spin lock
and in the IO path so we cannot use GFP_KERNEL. This
has the driver use GFP_ATOMIC.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/be2iscsi/be_main.c

index 75a85aa..be07ca0 100644 (file)
@@ -3785,7 +3785,7 @@ static int beiscsi_alloc_pdu(struct iscsi_task *task, uint8_t opcode)
        dma_addr_t paddr;
 
        io_task->cmd_bhs = pci_pool_alloc(beiscsi_sess->bhs_pool,
-                                         GFP_KERNEL, &paddr);
+                                         GFP_ATOMIC, &paddr);
        if (!io_task->cmd_bhs)
                return -ENOMEM;
        io_task->bhs_pa.u.a64.address = paddr;