[PATCH] SCSI GFP fixes
Al Viro [Sun, 24 Apr 2005 19:28:34 +0000 (12:28 -0700)]
Somebody forgot that | has higher priority than ?:.  As the result,
allocation is done with bogus flags - instead of GFP_ATOMIC + possibly
GFP_DMA we always get GFP_DMA and no GFP_ATOMIC.

Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

drivers/scsi/scsi_error.c
drivers/scsi/scsi_scan.c

index 1a135f3..2bf1ee2 100644 (file)
@@ -584,7 +584,7 @@ static int scsi_request_sense(struct scsi_cmnd *scmd)
 
        memcpy(scmd->cmnd, generic_sense, sizeof(generic_sense));
 
-       scsi_result = kmalloc(252, GFP_ATOMIC | (scmd->device->host->hostt->unchecked_isa_dma) ? __GFP_DMA : 0);
+       scsi_result = kmalloc(252, GFP_ATOMIC | ((scmd->device->host->hostt->unchecked_isa_dma) ? __GFP_DMA : 0));
 
 
        if (unlikely(!scsi_result)) {
index 287d197..cca7726 100644 (file)
@@ -801,7 +801,7 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
        if (!sreq)
                goto out_free_sdev;
        result = kmalloc(256, GFP_ATOMIC |
-                       (shost->unchecked_isa_dma) ? __GFP_DMA : 0);
+                       ((shost->unchecked_isa_dma) ? __GFP_DMA : 0));
        if (!result)
                goto out_free_sreq;