mtip32xx: fix user_buffer check in exec_drive_command
authorDavid Milburn <dmilburn@redhat.com>
Wed, 12 Sep 2012 19:06:12 +0000 (14:06 -0500)
committerJens Axboe <axboe@kernel.dk>
Wed, 12 Sep 2012 20:21:13 +0000 (22:21 +0200)
Current user_buffer check is incorrect and causes hdparm to fail

# hdparm -I /dev/rssda
 HDIO_DRIVE_CMD(identify) failed: Input/output error

/dev/rssda:

Patching linux-3.6-rc5 hdparm works as expected

# hdparm -I /dev/rssda
/dev/rssda:

ATA device, with non-removable media
Model Number:       DELL_P320h-MTFDGAL350SAH
Serial Number:      00000000121302025F01
Firmware Revision:  B1442808
<snip>

Reported-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: David Milburn <dmilburn@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/mtip32xx/mtip32xx.c

index e6519e2..f946d31 100644 (file)
@@ -1904,7 +1904,7 @@ static int exec_drive_command(struct mtip_port *port, u8 *command,
        int rv = 0, xfer_sz = command[3];
 
        if (xfer_sz) {
-               if (user_buffer)
+               if (!user_buffer)
                        return -EFAULT;
 
                buf = dmam_alloc_coherent(&port->dd->pdev->dev,