Commit d51d1d7e authored by Xiao Guangrong's avatar Xiao Guangrong Committed by Michael S. Tsirkin
Browse files

acpi nvdimm: fix wrong buffer size returned by DSM method



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: default avatarXiao Guangrong <guangrong.xiao@linux.intel.com>
Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 6034011c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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),