On 27/02/2024 11:25 am, Roger Pau Monne wrote:
> diff --git a/xen/common/virtual_region.c b/xen/common/virtual_region.c
> index ddac5c9147e5..e3a4dc8540df 100644
> --- a/xen/common/virtual_region.c
> +++ b/xen/common/virtual_region.c
> <snip>
>  
> +#ifdef CONFIG_LIVEPATCH
>  void unregister_virtual_region(struct virtual_region *r)
>  {
> -    /* Expected to be called from Live Patch - which has IRQs disabled. */
> -    ASSERT(!local_irq_is_enabled());
> -
>      remove_virtual_region(r);
> +
> +    /* Assert that no CPU might be using the removed region. */
> +    rcu_barrier();
>  }
>  
> -#if defined(CONFIG_LIVEPATCH) && defined(CONFIG_X86)
> +#ifdef CONFIG_X86
>  void relax_virtual_region_perms(void)
>  {
>      const struct virtual_region *region;
> @@ -117,6 +106,7 @@ void tighten_virtual_region_perms(void)
>      rcu_read_unlock(&rcu_virtual_region_lock);
>  }
>  #endif
> +#endif

Can we please have:

#endif /* CONFIG_X86 */
#endif /* CONFIG_LIVEPATCH */

before this gets any more complicated to follow.  Can be fixed on commit.

~Andrew

Reply via email to