NVMe target only accepts single-page sg list, either file or block device backed target code follows this assumption.
However, loop target is one exception, given the sg list is from the host queue directly.
This patch sets loop queue's segment boundary mask as PAGE_SIZE - 1 for following NVMe target assumption.
Reported-by: Yi Zhang yi.zhang@redhat.com Fixes: 3a85a5de29ea ("nvme-loop: add a NVMe loopback host driver") Cc: Yi Zhang yi.zhang@redhat.com Cc: Sagi Grimberg sagi@grimberg.me Cc: Chaitanya Kulkarni chaitanya.kulkarni@wdc.com Cc: stable@vger.kernel.org Signed-off-by: Ming Lei ming.lei@redhat.com --- drivers/nvme/target/loop.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c index b9f623ab01f3..7194f86b9dac 100644 --- a/drivers/nvme/target/loop.c +++ b/drivers/nvme/target/loop.c @@ -549,6 +549,9 @@ static int nvme_loop_create_io_queues(struct nvme_loop_ctrl *ctrl) if (ret) goto out_cleanup_connect_q;
+ /* target only accepts single-page sg list */ + blk_queue_segment_boundary(ctrl->ctrl.connect_q, PAGE_SIZE - 1); + return 0;
out_cleanup_connect_q:
On Wed, Mar 27, 2019 at 05:02:30PM +0800, Ming Lei wrote:
NVMe target only accepts single-page sg list, either file or block device backed target code follows this assumption.
However, loop target is one exception, given the sg list is from the host queue directly.
This patch sets loop queue's segment boundary mask as PAGE_SIZE - 1 for following NVMe target assumption.
Reported-by: Yi Zhang yi.zhang@redhat.com Fixes: 3a85a5de29ea ("nvme-loop: add a NVMe loopback host driver") Cc: Yi Zhang yi.zhang@redhat.com Cc: Sagi Grimberg sagi@grimberg.me Cc: Chaitanya Kulkarni chaitanya.kulkarni@wdc.com Cc: stable@vger.kernel.org Signed-off-by: Ming Lei ming.lei@redhat.com
Could you provide some background as to why this is -stable only in the commit message?
-- Thanks, Sasha
On Wed, Mar 27, 2019 at 12:16:58PM -0400, Sasha Levin wrote:
On Wed, Mar 27, 2019 at 05:02:30PM +0800, Ming Lei wrote:
NVMe target only accepts single-page sg list, either file or block device backed target code follows this assumption.
However, loop target is one exception, given the sg list is from the host queue directly.
This patch sets loop queue's segment boundary mask as PAGE_SIZE - 1 for following NVMe target assumption.
Reported-by: Yi Zhang yi.zhang@redhat.com Fixes: 3a85a5de29ea ("nvme-loop: add a NVMe loopback host driver") Cc: Yi Zhang yi.zhang@redhat.com Cc: Sagi Grimberg sagi@grimberg.me Cc: Chaitanya Kulkarni chaitanya.kulkarni@wdc.com Cc: stable@vger.kernel.org Signed-off-by: Ming Lei ming.lei@redhat.com
Could you provide some background as to why this is -stable only in the commit message?
Multi-page bvec has been merged to linus tree already, so the following patch simply can fix the current issue without needing to limit the segment size for nvme-loop:
http://lists.infradead.org/pipermail/linux-nvme/2019-March/023105.html
Thanks, Ming
On Thu, Mar 28, 2019 at 08:55:06AM +0800, Ming Lei wrote:
On Wed, Mar 27, 2019 at 12:16:58PM -0400, Sasha Levin wrote:
On Wed, Mar 27, 2019 at 05:02:30PM +0800, Ming Lei wrote:
NVMe target only accepts single-page sg list, either file or block device backed target code follows this assumption.
However, loop target is one exception, given the sg list is from the host queue directly.
This patch sets loop queue's segment boundary mask as PAGE_SIZE - 1 for following NVMe target assumption.
Reported-by: Yi Zhang yi.zhang@redhat.com Fixes: 3a85a5de29ea ("nvme-loop: add a NVMe loopback host driver") Cc: Yi Zhang yi.zhang@redhat.com Cc: Sagi Grimberg sagi@grimberg.me Cc: Chaitanya Kulkarni chaitanya.kulkarni@wdc.com Cc: stable@vger.kernel.org Signed-off-by: Ming Lei ming.lei@redhat.com
Could you provide some background as to why this is -stable only in the commit message?
Multi-page bvec has been merged to linus tree already, so the following patch simply can fix the current issue without needing to limit the segment size for nvme-loop:
http://lists.infradead.org/pipermail/linux-nvme/2019-March/023105.html
Can you resend the patch with this needed information in it? Also, I don't understand what you are referring to with that url, why can't we just use that patch?
thanks,
greg k-h
On Mon, Apr 01, 2019 at 03:55:09PM +0200, Greg KH wrote:
On Thu, Mar 28, 2019 at 08:55:06AM +0800, Ming Lei wrote:
On Wed, Mar 27, 2019 at 12:16:58PM -0400, Sasha Levin wrote:
On Wed, Mar 27, 2019 at 05:02:30PM +0800, Ming Lei wrote:
NVMe target only accepts single-page sg list, either file or block device backed target code follows this assumption.
However, loop target is one exception, given the sg list is from the host queue directly.
This patch sets loop queue's segment boundary mask as PAGE_SIZE - 1 for following NVMe target assumption.
Reported-by: Yi Zhang yi.zhang@redhat.com Fixes: 3a85a5de29ea ("nvme-loop: add a NVMe loopback host driver") Cc: Yi Zhang yi.zhang@redhat.com Cc: Sagi Grimberg sagi@grimberg.me Cc: Chaitanya Kulkarni chaitanya.kulkarni@wdc.com Cc: stable@vger.kernel.org Signed-off-by: Ming Lei ming.lei@redhat.com
Could you provide some background as to why this is -stable only in the commit message?
Multi-page bvec has been merged to linus tree already, so the following patch simply can fix the current issue without needing to limit the segment size for nvme-loop:
http://lists.infradead.org/pipermail/linux-nvme/2019-March/023105.html
Can you resend the patch with this needed information in it? Also, I don't understand what you are referring to with that url, why can't we just use that patch?
Sure, will resend the patch with the above info soon.
Thanks, Ming
linux-stable-mirror@lists.linaro.org