On Sun, 16 Feb 2025 at 13:12, Heinrich Schuchardt
<heinrich.schucha...@canonical.com> wrote:
>
> Instead of testing the value of parameter op at runtime use an enum to
> ensure that only valid values are used.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com>
> ---
>  include/lmb.h | 12 ++++++++++++
>  lib/lmb.c     | 23 +++++++----------------
>  2 files changed, 19 insertions(+), 16 deletions(-)
>
> diff --git a/include/lmb.h b/include/lmb.h
> index d9d7435a431..09297a4f530 100644
> --- a/include/lmb.h
> +++ b/include/lmb.h
> @@ -31,6 +31,18 @@
>  #define LMB_NOOVERWRITE BIT(1)
>  #define LMB_NONOTIFY BIT(2)
>
> +/**
> + * enum lmb_map_op - memory map operation
> + */
> +enum lmb_map_op {
> +       /** @LMB_MAP_OP_RESERVE:        reserve memory */
> +       LMB_MAP_OP_RESERVE = 1,
> +       /** @LMB_MAP_OP_FREE:           free memory */
> +       LMB_MAP_OP_FREE,
> +       /** @LMB_MAP_OP_ADD:            add memory */
> +       LMB_MAP_OP_ADD,
> +};
> +
>  /**
>   * struct lmb_region - Description of one region
>   * @base: Base address of the region
> diff --git a/lib/lmb.c b/lib/lmb.c
> index 7ca44591e1d..7534a231c99 100644
> --- a/lib/lmb.c
> +++ b/lib/lmb.c
> @@ -23,10 +23,6 @@
>
>  DECLARE_GLOBAL_DATA_PTR;
>
> -#define MAP_OP_RESERVE         (u8)0x1
> -#define MAP_OP_FREE            (u8)0x2
> -#define MAP_OP_ADD             (u8)0x3
> -
>  /*
>   * The following low level LMB functions must not access the global LMB 
> memory
>   * map since they are also used to manage IOVA memory maps in iommu drivers 
> like
> @@ -436,18 +432,13 @@ static bool lmb_should_notify(u32 flags)
>                 CONFIG_IS_ENABLED(EFI_LOADER);
>  }
>
> -static int lmb_map_update_notify(phys_addr_t addr, phys_size_t size, u8 op,
> -                                u32 flags)
> +static int lmb_map_update_notify(phys_addr_t addr, phys_size_t size,
> +                                enum lmb_map_op op, u32 flags)
>  {
>         u64 efi_addr;
>         u64 pages;
>         efi_status_t status;
>
> -       if (op != MAP_OP_RESERVE && op != MAP_OP_FREE && op != MAP_OP_ADD) {
> -               log_err("Invalid map update op received (%d)\n", op);
> -               return -1;
> -       }
> -
>         if (!lmb_should_notify(flags))
>                 return 0;
>
> @@ -456,7 +447,7 @@ static int lmb_map_update_notify(phys_addr_t addr, 
> phys_size_t size, u8 op,
>         efi_addr &= ~EFI_PAGE_MASK;
>
>         status = efi_add_memory_map_pg(efi_addr, pages,
> -                                      op == MAP_OP_RESERVE ?
> +                                      op == LMB_MAP_OP_RESERVE ?
>                                        EFI_BOOT_SERVICES_DATA :
>                                        EFI_CONVENTIONAL_MEMORY,
>                                        false);
> @@ -642,7 +633,7 @@ long lmb_add(phys_addr_t base, phys_size_t size)
>         if (ret)
>                 return ret;
>
> -       return lmb_map_update_notify(base, size, MAP_OP_ADD, LMB_NONE);
> +       return lmb_map_update_notify(base, size, LMB_MAP_OP_ADD, LMB_NONE);
>  }
>
>  long lmb_free_flags(phys_addr_t base, phys_size_t size,
> @@ -654,7 +645,7 @@ long lmb_free_flags(phys_addr_t base, phys_size_t size,
>         if (ret < 0)
>                 return ret;
>
> -       return lmb_map_update_notify(base, size, MAP_OP_FREE, flags);
> +       return lmb_map_update_notify(base, size, LMB_MAP_OP_FREE, flags);
>  }
>
>  long lmb_free(phys_addr_t base, phys_size_t size)
> @@ -671,7 +662,7 @@ long lmb_reserve(phys_addr_t base, phys_size_t size, u32 
> flags)
>         if (ret)
>                 return ret;
>
> -       return lmb_map_update_notify(base, size, MAP_OP_RESERVE, flags);
> +       return lmb_map_update_notify(base, size, LMB_MAP_OP_RESERVE, flags);
>  }
>
>  static phys_addr_t _lmb_alloc_base(phys_size_t size, ulong align,
> @@ -712,7 +703,7 @@ static phys_addr_t _lmb_alloc_base(phys_size_t size, 
> ulong align,
>                                         return 0;
>
>                                 ret = lmb_map_update_notify(base, size,
> -                                                           MAP_OP_RESERVE,
> +                                                           
> LMB_MAP_OP_RESERVE,
>                                                             flags);
>                                 if (ret)
>                                         return ret;
> --
> 2.47.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>

Reply via email to