summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-08-26 11:08:47 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2015-08-26 11:08:47 -0700
commitf9ed72dde34e3d5253e206e4bc3edbc6373015d6 (patch)
tree9bd87176acfb029e19468505bd189096da16eb07 /drivers
parentf5db4b31b31504a1058339bc00488bf56ad1f0aa (diff)
parent74c9c9134bf8d8a6d5c5683f60262eed3d6fb5ac (diff)
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block fixes from Jens Axboe: "Two fixes in this pull request: - The writeback regression fix from Tejun, which has been weeks in the making. This fixes a case where we would sometimes not issue writeback when we should have. - An older fix for a memory corruption issue in mtip32xx. It was deferred since we wanted a better fix for this (driver should not have to handle that case), but given the timing, it's better to put the simple fix in for 4.2 release" * 'for-linus' of git://git.kernel.dk/linux-block: mtip32x: fix regression introduced by blk-mq per-hctx flush writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and always call wait_sb_inodes()
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/mtip32xx/mtip32xx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c
index 4a2ef09e6704..f504232c1ee7 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -3756,6 +3756,14 @@ static int mtip_init_cmd(void *data, struct request *rq, unsigned int hctx_idx,
struct mtip_cmd *cmd = blk_mq_rq_to_pdu(rq);
u32 host_cap_64 = readl(dd->mmio + HOST_CAP) & HOST_CAP_64;
+ /*
+ * For flush requests, request_idx starts at the end of the
+ * tag space. Since we don't support FLUSH/FUA, simply return
+ * 0 as there's nothing to be done.
+ */
+ if (request_idx >= MTIP_MAX_COMMAND_SLOTS)
+ return 0;
+
cmd->command = dmam_alloc_coherent(&dd->pdev->dev, CMD_DMA_ALLOC_SZ,
&cmd->command_dma, GFP_KERNEL);
if (!cmd->command)