qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] mem/cxl_type3: Fix overlapping region validation error


From: Jonathan Cameron
Subject: Re: [PATCH] mem/cxl_type3: Fix overlapping region validation error
Date: Thu, 18 Jul 2024 17:36:14 +0100

On Thu, 18 Jul 2024 05:07:53 -0400
Yao Xingtao <yaoxt.fnst@fujitsu.com> wrote:

> When injecting a new poisoned region through qmp_cxl_inject_poison(),
> the newly injected region should not overlap with existing poisoned
> regions.
> 
> The current validation method does not consider the following
> overlapping region:
> ┌───┬───────┬───┐
> │a  │  b(a) │a  │
> └───┴───────┴───┘
> (a is a newly added region, b is an existing region, and b is a
>  subregion of a)
> 
> Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com>
Looks correct to me.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huwei.com>
I've queued it on my local branch.
I need to put together an updated public one.

No huge rush to queue this up though I think as the effects
are minor.

Jonathan

> ---
>  hw/mem/cxl_type3.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/hw/mem/cxl_type3.c b/hw/mem/cxl_type3.c
> index 35ac59883a5b..8e32de327908 100644
> --- a/hw/mem/cxl_type3.c
> +++ b/hw/mem/cxl_type3.c
> @@ -1331,9 +1331,7 @@ void qmp_cxl_inject_poison(const char *path, uint64_t 
> start, uint64_t length,
>      ct3d = CXL_TYPE3(obj);
>  
>      QLIST_FOREACH(p, &ct3d->poison_list, node) {
> -        if (((start >= p->start) && (start < p->start + p->length)) ||
> -            ((start + length > p->start) &&
> -             (start + length <= p->start + p->length))) {
> +        if ((start < p->start + p->length) && (start + length > p->start)) {
>              error_setg(errp,
>                         "Overlap with existing poisoned region not 
> supported");
>              return;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]