Calling scb = kzalloc(i, GFP_DMA) is not the right idea. If this is what we really wanted it would be better to specify it explicitly as kzalloc(i, GFP_NOWAIT | GFP_DMA). But in this case it's OK to wait so I changed it to use GFP_KERNEL. Also I added a __GFP_NOWARN, since we expect the allocation to fail occasionaly (and we just try allocate a smaller amount on the next time through the loop). Signed-off-by: Dan Carpenter <error27@xxxxxxxxx> diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c index a771416..a4baa44 100644 --- a/drivers/scsi/initio.c +++ b/drivers/scsi/initio.c @@ -2885,7 +2885,8 @@ static int initio_probe_one(struct pci_dev *pdev, for (; num_scb >= MAX_TARGETS + 3; num_scb--) { i = num_scb * sizeof(struct scsi_ctrl_blk); - if ((scb = kzalloc(i, GFP_DMA)) != NULL) + scb = kzalloc(i, GFP_KERNEL | GFP_DMA | __GFP_NOWARN); + if (scb) break; } -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html