[PATCH] i386/tdx: Use .has_gpa field to check if the gpa is valid

Xiaoyao Li posted 1 patch 4 months, 1 week ago
Failed in applying to current master (apply log)
system/runstate.c     | 2 +-
target/i386/kvm/tdx.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
[PATCH] i386/tdx: Use .has_gpa field to check if the gpa is valid
Posted by Xiaoyao Li 4 months, 1 week ago
There is actually the .has_gpa field when translating the QAPI data
type GuestPanicInformationTdx to C structure.

Stop using the magic number -1 as the indicator for no valid gpa.
Instead just use .has_gpa field.

Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
---
 system/runstate.c     | 2 +-
 target/i386/kvm/tdx.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/system/runstate.c b/system/runstate.c
index 38900c935a35..87cdcab4f388 100644
--- a/system/runstate.c
+++ b/system/runstate.c
@@ -690,7 +690,7 @@ void qemu_system_guest_panicked(GuestPanicInformation *info)
                           " error code: 0x%" PRIx32 " error message:\"%s\"\n",
                           info->u.tdx.error_code, message);
             g_free(message);
-            if (info->u.tdx.gpa != -1ull) {
+            if (info->u.tdx.has_gpa) {
                 qemu_log_mask(LOG_GUEST_ERROR, "Additional error information "
                               "can be found at gpa page: 0x%" PRIx64 "\n",
                               info->u.tdx.gpa);
diff --git a/target/i386/kvm/tdx.c b/target/i386/kvm/tdx.c
index 370a9b6e656c..14704eb523c5 100644
--- a/target/i386/kvm/tdx.c
+++ b/target/i386/kvm/tdx.c
@@ -1298,7 +1298,7 @@ int tdx_handle_report_fatal_error(X86CPU *cpu, struct kvm_run *run)
     uint64_t reg_mask = run->system_event.data[R_ECX];
     char *message = NULL;
     uint64_t *tmp;
-    uint64_t gpa = -1ull;
+    uint64_t gpa = 0;
     bool has_gpa = false;
 
     if (error_code & 0xffff) {
-- 
2.43.0
Re: [PATCH] i386/tdx: Use .has_gpa field to check if the gpa is valid
Posted by Xiaoyao Li 2 months ago
Gentle ping.

On 7/10/2025 10:15 PM, Xiaoyao Li wrote:
> There is actually the .has_gpa field when translating the QAPI data
> type GuestPanicInformationTdx to C structure.
> 
> Stop using the magic number -1 as the indicator for no valid gpa.
> Instead just use .has_gpa field.
> 
> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
> ---
>   system/runstate.c     | 2 +-
>   target/i386/kvm/tdx.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/system/runstate.c b/system/runstate.c
> index 38900c935a35..87cdcab4f388 100644
> --- a/system/runstate.c
> +++ b/system/runstate.c
> @@ -690,7 +690,7 @@ void qemu_system_guest_panicked(GuestPanicInformation *info)
>                             " error code: 0x%" PRIx32 " error message:\"%s\"\n",
>                             info->u.tdx.error_code, message);
>               g_free(message);
> -            if (info->u.tdx.gpa != -1ull) {
> +            if (info->u.tdx.has_gpa) {
>                   qemu_log_mask(LOG_GUEST_ERROR, "Additional error information "
>                                 "can be found at gpa page: 0x%" PRIx64 "\n",
>                                 info->u.tdx.gpa);
> diff --git a/target/i386/kvm/tdx.c b/target/i386/kvm/tdx.c
> index 370a9b6e656c..14704eb523c5 100644
> --- a/target/i386/kvm/tdx.c
> +++ b/target/i386/kvm/tdx.c
> @@ -1298,7 +1298,7 @@ int tdx_handle_report_fatal_error(X86CPU *cpu, struct kvm_run *run)
>       uint64_t reg_mask = run->system_event.data[R_ECX];
>       char *message = NULL;
>       uint64_t *tmp;
> -    uint64_t gpa = -1ull;
> +    uint64_t gpa = 0;
>       bool has_gpa = false;
>   
>       if (error_code & 0xffff) {
RE: [PATCH] i386/tdx: Use .has_gpa field to check if the gpa is valid
Posted by Duan, Zhenzhong 4 months, 1 week ago

>-----Original Message-----
>From: Li, Xiaoyao <xiaoyao.li@intel.com>
>Subject: [PATCH] i386/tdx: Use .has_gpa field to check if the gpa is valid
>
>There is actually the .has_gpa field when translating the QAPI data
>type GuestPanicInformationTdx to C structure.
>
>Stop using the magic number -1 as the indicator for no valid gpa.
>Instead just use .has_gpa field.
>
>Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>

Good catch.

Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>

Thanks
Zhenzhong
Re: [PATCH] i386/tdx: Use .has_gpa field to check if the gpa is valid
Posted by Daniel P. Berrangé 4 months, 1 week ago
On Thu, Jul 10, 2025 at 10:15:12PM +0800, Xiaoyao Li wrote:
> There is actually the .has_gpa field when translating the QAPI data
> type GuestPanicInformationTdx to C structure.
> 
> Stop using the magic number -1 as the indicator for no valid gpa.
> Instead just use .has_gpa field.
> 
> Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
> ---
>  system/runstate.c     | 2 +-
>  target/i386/kvm/tdx.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|