On Tue, 17 Jun 2025 14:48:32 -0700
Davidlohr Bueso <d...@stgolabs.net> wrote:

> The current check incorrectly misses the 0% case, which semantically
> can either be not running or one that just started. The runtime
> is a better way to check for 0%, 100% or aborted. This is currently
> benign in the kernel equivalent without cancel support.
> 
> Signed-off-by: Davidlohr Bueso <d...@stgolabs.net>
Looks good to me. I'll carry this on my local tree for now and combine
it with some other fixes to send to MST.

Probably push out a new cxl staging tree sometime in next few weeks.
> ---
> 
> Applies against 'cxl-2025-06-10' from jic23 tree.
> 
>  hw/cxl/cxl-device-utils.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/hw/cxl/cxl-device-utils.c b/hw/cxl/cxl-device-utils.c
> index e150d7445762..add0ab615976 100644
> --- a/hw/cxl/cxl-device-utils.c
> +++ b/hw/cxl/cxl-device-utils.c
> @@ -95,13 +95,10 @@ static uint64_t mailbox_reg_read(void *opaque, hwaddr 
> offset, unsigned size)
>          }
>          if (offset == A_CXL_DEV_MAILBOX_STS) {
>              uint64_t status_reg = cxl_dstate->mbox_reg_state64[offset / 
> size];
> -            int bgop;
>  
>              qemu_mutex_lock(&cci->bg.lock);
> -            bgop = !(cci->bg.complete_pct == 100 || cci->bg.aborted);
> -
>              status_reg = FIELD_DP64(status_reg, CXL_DEV_MAILBOX_STS, BG_OP,
> -                                    bgop);
> +                                    !!cci->bg.runtime);
>              cxl_dstate->mbox_reg_state64[offset / size] = status_reg;
>              qemu_mutex_unlock(&cci->bg.lock);
>          }


Reply via email to