Hi Roger,

> On 28 Sep 2022, at 16:11, Roger Pau Monne <[email protected]> wrote:
> 
> While correct from a code point of view, the usage of the const
> attribute for the domain parameter of gic_iomem_deny_access() is at
> least partially bogus.  Contents of the domain structure (the iomem
> rangeset) is modified by the function.  Such modifications succeed
> because right now the iomem rangeset is allocated separately from
> struct domain, and hence is not subject to the constness of struct
> domain.
> 
> Amend this by dropping the const attribute from the function
> parameter.
> 
> This is required by further changes that will convert
> iomem_{permit,deny}_access into a function.
> 
> Signed-off-by: Roger Pau MonnĂ© <[email protected]>
Reviewed-by: Bertrand Marquis <[email protected]>

Cheers
Bertrand

> ---
> xen/arch/arm/gic-v2.c          | 2 +-
> xen/arch/arm/gic-v3.c          | 2 +-
> xen/arch/arm/gic.c             | 2 +-
> xen/arch/arm/include/asm/gic.h | 4 ++--
> 4 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index bd773bcc67..ae5bd8e95f 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -1083,7 +1083,7 @@ static void __init gicv2_dt_init(void)
>     gicv2_extension_dt_init(node);
> }
> 
> -static int gicv2_iomem_deny_access(const struct domain *d)
> +static int gicv2_iomem_deny_access(struct domain *d)
> {
>     int rc;
>     unsigned long mfn, nr;
> diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
> index 64b36cec25..018fa0dfa0 100644
> --- a/xen/arch/arm/gic-v3.c
> +++ b/xen/arch/arm/gic-v3.c
> @@ -1424,7 +1424,7 @@ static void __init gicv3_dt_init(void)
>                               &vbase, &vsize);
> }
> 
> -static int gicv3_iomem_deny_access(const struct domain *d)
> +static int gicv3_iomem_deny_access(struct domain *d)
> {
>     int rc, i;
>     unsigned long mfn, nr;
> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
> index 3b0331b538..9b82325442 100644
> --- a/xen/arch/arm/gic.c
> +++ b/xen/arch/arm/gic.c
> @@ -462,7 +462,7 @@ unsigned long gic_get_hwdom_madt_size(const struct domain 
> *d)
> }
> #endif
> 
> -int gic_iomem_deny_access(const struct domain *d)
> +int gic_iomem_deny_access(struct domain *d)
> {
>     return gic_hw_ops->iomem_deny_access(d);
> }
> diff --git a/xen/arch/arm/include/asm/gic.h b/xen/arch/arm/include/asm/gic.h
> index 3692fae393..76e3fa5dc4 100644
> --- a/xen/arch/arm/include/asm/gic.h
> +++ b/xen/arch/arm/include/asm/gic.h
> @@ -392,7 +392,7 @@ struct gic_hw_operations {
>     /* Map extra GIC MMIO, irqs and other hw stuffs to the hardware domain. */
>     int (*map_hwdom_extra_mappings)(struct domain *d);
>     /* Deny access to GIC regions */
> -    int (*iomem_deny_access)(const struct domain *d);
> +    int (*iomem_deny_access)(struct domain *d);
>     /* Handle LPIs, which require special handling */
>     void (*do_LPI)(unsigned int lpi);
> };
> @@ -449,7 +449,7 @@ unsigned long gic_get_hwdom_madt_size(const struct domain 
> *d);
> #endif
> 
> int gic_map_hwdom_extra_mappings(struct domain *d);
> -int gic_iomem_deny_access(const struct domain *d);
> +int gic_iomem_deny_access(struct domain *d);
> 
> #endif /* __ASSEMBLY__ */
> #endif
> -- 
> 2.37.3
> 

Reply via email to