USB: uas: Use GFP_NOIO instead of GFP_KERNEL in I/O submission path
authorMatthew Wilcox <matthew@wil.cx>
Wed, 15 Dec 2010 20:44:06 +0000 (15:44 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 15 Dec 2010 23:26:44 +0000 (15:26 -0800)
If swap is on a UAS device, we could recurse into the driver by using
GFP_KERNEL.  Using GFP_NOIO ensures we won't.

Reported-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/storage/uas.c

index 52e5ec1b2e8aa96a0a8b25c35fff2367ac8edbe7..8d58c6316111008d375e27d4c74ce806bf368093 100644 (file)
@@ -141,7 +141,7 @@ static void uas_do_work(struct work_struct *work)
                struct scsi_pointer *scp = (void *)cmdinfo;
                struct scsi_cmnd *cmnd = container_of(scp,
                                                        struct scsi_cmnd, SCp);
-               uas_submit_urbs(cmnd, cmnd->device->hostdata, GFP_KERNEL);
+               uas_submit_urbs(cmnd, cmnd->device->hostdata, GFP_NOIO);
        }
 }