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: Mon, 11 Jul 2016 21:45:11 +0800 Message-ID: <1468244718-3731-2-git-send-email-guangrong.xiao@linux.intel.com> References: <1468244718-3731-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 mga14.intel.com ([192.55.52.115]:7354 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751917AbcGKN4x (ORCPT ); Mon, 11 Jul 2016 09:56:53 -0400 In-Reply-To: <1468244718-3731-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 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c index e486128..5454c0f 100644 --- a/hw/acpi/nvdimm.c +++ b/hw/acpi/nvdimm.c @@ -863,6 +863,8 @@ static void nvdimm_build_common_dsm(Aml *dev) 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(result_size, 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