From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: [PATCH 1/8] acpi nvdimm: fix wrong buffer size returned by DSM method Date: Sat, 29 Oct 2016 00:11:49 +0800 Message-ID: <1477671116-24079-2-git-send-email-guangrong.xiao@linux.intel.com> References: <1477671116-24079-1-git-send-email-guangrong.xiao@linux.intel.com> Cc: gleb@kernel.org, mtosatti@redhat.com, stefanha@redhat.com, mst@redhat.com, rth@twiddle.net, ehabkost@redhat.com, dan.j.williams@intel.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, Xiao Guangrong To: pbonzini@redhat.com, imammedo@redhat.com Return-path: Received: from mga09.intel.com ([134.134.136.24]:24352 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030275AbcJ1Q1G (ORCPT ); Fri, 28 Oct 2016 12:27:06 -0400 In-Reply-To: <1477671116-24079-1-git-send-email-guangrong.xiao@linux.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: Currently, 'RLEN' is the totally buffer size written by QEMU and it is ACPI internally used only. The buffer size returned to guest should not include 'RLEN' itself Signed-off-by: Xiao Guangrong --- hw/acpi/nvdimm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c index e486128..24a2b3b 100644 --- a/hw/acpi/nvdimm.c +++ b/hw/acpi/nvdimm.c @@ -862,7 +862,8 @@ static void nvdimm_build_common_dsm(Aml *dev) aml_append(method, aml_store(dsm_mem, aml_name("NTFI"))); result_size = aml_local(1); - aml_append(method, aml_store(aml_name("RLEN"), result_size)); + /* RLEN is not included in the payload returned to guest. */ + aml_append(method, aml_subtract(aml_name("RLEN"), aml_int(4), result_size)); aml_append(method, aml_store(aml_shiftleft(result_size, aml_int(3)), result_size)); aml_append(method, aml_create_field(aml_name("ODAT"), aml_int(0), -- 1.8.3.1