diff options
Diffstat (limited to 'drivers/block/mtip32xx/mtip32xx.c')
-rw-r--r-- | drivers/block/mtip32xx/mtip32xx.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c index b74eab70c3d0..8eb81c96608f 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c | |||
@@ -2068,8 +2068,6 @@ static int mtip_hw_ioctl(struct driver_data *dd, unsigned int cmd, | |||
2068 | * when the read completes. | 2068 | * when the read completes. |
2069 | * @data Callback data passed to the callback function | 2069 | * @data Callback data passed to the callback function |
2070 | * when the read completes. | 2070 | * when the read completes. |
2071 | * @barrier If non-zero, this command must be completed before | ||
2072 | * issuing any other commands. | ||
2073 | * @dir Direction (read or write) | 2071 | * @dir Direction (read or write) |
2074 | * | 2072 | * |
2075 | * return value | 2073 | * return value |
@@ -2077,7 +2075,7 @@ static int mtip_hw_ioctl(struct driver_data *dd, unsigned int cmd, | |||
2077 | */ | 2075 | */ |
2078 | static void mtip_hw_submit_io(struct driver_data *dd, sector_t start, | 2076 | static void mtip_hw_submit_io(struct driver_data *dd, sector_t start, |
2079 | int nsect, int nents, int tag, void *callback, | 2077 | int nsect, int nents, int tag, void *callback, |
2080 | void *data, int barrier, int dir) | 2078 | void *data, int dir) |
2081 | { | 2079 | { |
2082 | struct host_to_dev_fis *fis; | 2080 | struct host_to_dev_fis *fis; |
2083 | struct mtip_port *port = dd->port; | 2081 | struct mtip_port *port = dd->port; |
@@ -2108,8 +2106,6 @@ static void mtip_hw_submit_io(struct driver_data *dd, sector_t start, | |||
2108 | *((unsigned int *) &fis->lba_low) = (start & 0xFFFFFF); | 2106 | *((unsigned int *) &fis->lba_low) = (start & 0xFFFFFF); |
2109 | *((unsigned int *) &fis->lba_low_ex) = ((start >> 24) & 0xFFFFFF); | 2107 | *((unsigned int *) &fis->lba_low_ex) = ((start >> 24) & 0xFFFFFF); |
2110 | fis->device = 1 << 6; | 2108 | fis->device = 1 << 6; |
2111 | if (barrier) | ||
2112 | fis->device |= FUA_BIT; | ||
2113 | fis->features = nsect & 0xFF; | 2109 | fis->features = nsect & 0xFF; |
2114 | fis->features_ex = (nsect >> 8) & 0xFF; | 2110 | fis->features_ex = (nsect >> 8) & 0xFF; |
2115 | fis->sect_count = ((tag << 3) | (tag >> 5)); | 2111 | fis->sect_count = ((tag << 3) | (tag >> 5)); |
@@ -3087,7 +3083,6 @@ static void mtip_make_request(struct request_queue *queue, struct bio *bio) | |||
3087 | tag, | 3083 | tag, |
3088 | bio_endio, | 3084 | bio_endio, |
3089 | bio, | 3085 | bio, |
3090 | bio->bi_rw & REQ_FUA, | ||
3091 | bio_data_dir(bio)); | 3086 | bio_data_dir(bio)); |
3092 | } else | 3087 | } else |
3093 | bio_io_error(bio); | 3088 | bio_io_error(bio); |
@@ -3187,6 +3182,10 @@ skip_create_disk: | |||
3187 | blk_queue_max_segments(dd->queue, MTIP_MAX_SG); | 3182 | blk_queue_max_segments(dd->queue, MTIP_MAX_SG); |
3188 | blk_queue_physical_block_size(dd->queue, 4096); | 3183 | blk_queue_physical_block_size(dd->queue, 4096); |
3189 | blk_queue_io_min(dd->queue, 4096); | 3184 | blk_queue_io_min(dd->queue, 4096); |
3185 | /* | ||
3186 | * write back cache is not supported in the device. FUA depends on | ||
3187 | * write back cache support, hence setting flush support to zero. | ||
3188 | */ | ||
3190 | blk_queue_flush(dd->queue, 0); | 3189 | blk_queue_flush(dd->queue, 0); |
3191 | 3190 | ||
3192 | /* Set the capacity of the device in 512 byte sectors. */ | 3191 | /* Set the capacity of the device in 512 byte sectors. */ |