All of lore.kernel.org
 help / color / mirror / Atom feed
* Patch "nvmet: fix KATO offset in Set Features" has been added to the 4.9-stable tree
@ 2017-11-28  9:50 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2017-11-28  9:50 UTC (permalink / raw)
  To: daniel.verkamp, alexander.levin, gregkh, hch; +Cc: stable, stable-commits


This is a note to let you know that I've just added the patch titled

    nvmet: fix KATO offset in Set Features

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     nvmet-fix-kato-offset-in-set-features.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From foo@baz Tue Nov 28 10:49:28 CET 2017
From: Daniel Verkamp <daniel.verkamp@intel.com>
Date: Fri, 9 Dec 2016 12:59:46 -0700
Subject: nvmet: fix KATO offset in Set Features

From: Daniel Verkamp <daniel.verkamp@intel.com>


[ Upstream commit 6c73f949300f17851f53fa80c9d1611ccd6909d3 ]

The Set Features implementation for Keep Alive Timer was using the wrong
structure when retrieving the KATO value; it was treating the Set
Features command as a Property Set command.

The NVMe spec defines the Keep Alive Timer feature as having one input
in CDW11 (4 bytes at offset 44 in the command) whereas the code was
reading 8 bytes at offset 48.

Since the Linux NVMe over Fabrics host never sets this feature, this
code has presumably never been tested.

Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/nvme/target/admin-cmd.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -381,7 +381,6 @@ static void nvmet_execute_set_features(s
 {
 	struct nvmet_subsys *subsys = req->sq->ctrl->subsys;
 	u32 cdw10 = le32_to_cpu(req->cmd->common.cdw10[0]);
-	u64 val;
 	u32 val32;
 	u16 status = 0;
 
@@ -391,8 +390,7 @@ static void nvmet_execute_set_features(s
 			(subsys->max_qid - 1) | ((subsys->max_qid - 1) << 16));
 		break;
 	case NVME_FEAT_KATO:
-		val = le64_to_cpu(req->cmd->prop_set.value);
-		val32 = val & 0xffff;
+		val32 = le32_to_cpu(req->cmd->common.cdw10[1]);
 		req->sq->ctrl->kato = DIV_ROUND_UP(val32, 1000);
 		nvmet_set_result(req, req->sq->ctrl->kato);
 		break;


Patches currently in stable-queue which might be from daniel.verkamp@intel.com are

queue-4.9/nvmet-fix-kato-offset-in-set-features.patch

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-11-28  9:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-28  9:50 Patch "nvmet: fix KATO offset in Set Features" has been added to the 4.9-stable tree gregkh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.