> -----Original Message----- > From: gregkh@xxxxxxxxxxxxxxxxxxx <gregkh@xxxxxxxxxxxxxxxxxxx> > Sent: Wednesday, March 20, 2019 8:35 AM > To: Dexuan Cui <decui@xxxxxxxxxxxxx>; dan.j.williams@xxxxxxxxx; > stable@xxxxxxxxxxxxxxx > Cc: stable@xxxxxxxxxxxxxxx > Subject: FAILED: patch "[PATCH] nfit: acpi_nfit_ctl(): Check out_obj->type in the > right place" failed to apply to 4.9-stable tree > > > The patch below does not apply to the 4.9-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@xxxxxxxxxxxxxxx>. > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From 43f89877f26671c6309cd87d7364b1a3e66e71cf Mon Sep 17 00:00:00 > 2001 > From: Dexuan Cui <decui@xxxxxxxxxxxxx> > Date: Wed, 30 Jan 2019 01:23:01 +0000 > Subject: [PATCH] nfit: acpi_nfit_ctl(): Check out_obj->type in the right place > > In the case of ND_CMD_CALL, we should also check out_obj->type. > > The patch uses out_obj->type, which is a short alias to > out_obj->package.type. > > Fixes: 31eca76ba2fc ("nfit, libnvdimm: limited/whitelisted dimm command > marshaling mechanism") > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx> > Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > index 95db6a2d0d6b..1598e3a121a6 100644 > --- a/drivers/acpi/nfit/core.c > +++ b/drivers/acpi/nfit/core.c > @@ -535,6 +535,13 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor > *nd_desc, struct nvdimm *nvdimm, > return -EINVAL; > } > > + if (out_obj->type != ACPI_TYPE_BUFFER) { > + dev_dbg(dev, "%s unexpected output object type cmd: %s > type: %d\n", > + dimm_name, cmd_name, out_obj->type); > + rc = -EINVAL; > + goto out; > + } > + > if (call_pkg) { > call_pkg->nd_fw_size = out_obj->buffer.length; > memcpy(call_pkg->nd_payload + call_pkg->nd_size_in, > @@ -553,13 +560,6 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor > *nd_desc, struct nvdimm *nvdimm, > return 0; > } > > - if (out_obj->package.type != ACPI_TYPE_BUFFER) { > - dev_dbg(dev, "%s unexpected output object type cmd: %s > type: %d\n", > - dimm_name, cmd_name, out_obj->type); > - rc = -EINVAL; > - goto out; > - } > - > dev_dbg(dev, "%s cmd: %s output length: %d\n", dimm_name, > cmd_name, out_obj->buffer.length); > print_hex_dump_debug(cmd_name, DUMP_PREFIX_OFFSET, 4, 4, Hi, I rebased the patch on linux-4.9.y (Linux 4.9.164) as below (I also attached it for your convenience): >From ee95ef19124b5d425977b9abb0d7553aa8e96e93 Mon Sep 17 00:00:00 2001 From: Dexuan Cui <decui@xxxxxxxxxxxxx> Date: Wed, 30 Jan 2019 01:23:01 +0000 Subject: [PATCH] nfit: acpi_nfit_ctl(): Check out_obj->type in the right place Reply-To: decui@xxxxxxxxxxxxx In the case of ND_CMD_CALL, we should also check out_obj->type. The patch uses out_obj->type, which is a short alias to out_obj->package.type. Fixes: 31eca76ba2fc ("nfit, libnvdimm: limited/whitelisted dimm command marshaling mechanism") Cc: <stable@xxxxxxxxxxxxxxx> Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx> --- drivers/acpi/nfit/core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c index 06cf7427d0c4..31a07609f7a2 100644 --- a/drivers/acpi/nfit/core.c +++ b/drivers/acpi/nfit/core.c @@ -307,6 +307,13 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, return -EINVAL; } + if (out_obj->type != ACPI_TYPE_BUFFER) { + dev_dbg(dev, "%s unexpected output object type cmd: %s type: %d\n", + dimm_name, cmd_name, out_obj->type); + rc = -EINVAL; + goto out; + } + if (call_pkg) { call_pkg->nd_fw_size = out_obj->buffer.length; memcpy(call_pkg->nd_payload + call_pkg->nd_size_in, @@ -325,13 +332,6 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, return 0; } - if (out_obj->package.type != ACPI_TYPE_BUFFER) { - dev_dbg(dev, "%s:%s unexpected output object type cmd: %s type: %d\n", - __func__, dimm_name, cmd_name, out_obj->type); - rc = -EINVAL; - goto out; - } - if (IS_ENABLED(CONFIG_ACPI_NFIT_DEBUG)) { dev_dbg(dev, "%s:%s cmd: %s output length: %d\n", __func__, dimm_name, cmd_name, out_obj->buffer.length); -- 2.19.1
Attachment:
for-linux-4.9.y-0001-nfit-acpi_nfit_ctl-Check-out_obj-type-in-the-right-p.patch
Description: for-linux-4.9.y-0001-nfit-acpi_nfit_ctl-Check-out_obj-type-in-the-right-p.patch