Re: [PATCH v1 1/1] range.h: Move resource API and constant to respective headers

From: Bjorn Helgaas
Date: Thu Jul 13 2023 - 11:26:01 EST


On Mon, Jul 10, 2023 at 04:11:42PM +0300, Andy Shevchenko wrote:
> range.h works with struct range data type. The resource_size_t
> is an alien here. Move the related pieces to the respective
> headers and rename MAX_RESOURCE using pattern ${TYPE}_MAX.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

No objection from me, although I might include more specifics in the
commit log, e.g., (1) move cap_resource() implementation into its only
user, and (2) rename and move RESOURCE_SIZE_MAX to limits.h.

Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>

> ---
> arch/mips/cavium-octeon/setup.c | 2 +-
> arch/x86/pci/amd_bus.c | 8 ++++++++
> arch/x86/pci/bus_numa.c | 2 +-
> include/linux/limits.h | 2 ++
> include/linux/range.h | 8 --------
> 5 files changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
> index c5561016f577..1ad2602a0383 100644
> --- a/arch/mips/cavium-octeon/setup.c
> +++ b/arch/mips/cavium-octeon/setup.c
> @@ -1240,7 +1240,7 @@ static int __init octeon_no_pci_init(void)
> */
> octeon_dummy_iospace = vzalloc(IO_SPACE_LIMIT);
> set_io_port_base((unsigned long)octeon_dummy_iospace);
> - ioport_resource.start = MAX_RESOURCE;
> + ioport_resource.start = RESOURCE_SIZE_MAX;
> ioport_resource.end = 0;
> return 0;
> }
> diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
> index dd40d3fea74e..631512f7ec85 100644
> --- a/arch/x86/pci/amd_bus.c
> +++ b/arch/x86/pci/amd_bus.c
> @@ -51,6 +51,14 @@ static struct pci_root_info __init *find_pci_root_info(int node, int link)
> return NULL;
> }
>
> +static inline resource_size_t cap_resource(u64 val)
> +{
> + if (val > RESOURCE_SIZE_MAX)
> + return RESOURCE_SIZE_MAX;
> +
> + return val;
> +}
> +
> /**
> * early_root_info_init()
> * called before pcibios_scan_root and pci_scan_bus
> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
> index 2752c02e3f0e..e4a525e59eaf 100644
> --- a/arch/x86/pci/bus_numa.c
> +++ b/arch/x86/pci/bus_numa.c
> @@ -101,7 +101,7 @@ void update_res(struct pci_root_info *info, resource_size_t start,
> if (start > end)
> return;
>
> - if (start == MAX_RESOURCE)
> + if (start == RESOURCE_SIZE_MAX)
> return;
>
> if (!merge)
> diff --git a/include/linux/limits.h b/include/linux/limits.h
> index f6bcc9369010..38eb7f6f7e88 100644
> --- a/include/linux/limits.h
> +++ b/include/linux/limits.h
> @@ -10,6 +10,8 @@
> #define SSIZE_MAX ((ssize_t)(SIZE_MAX >> 1))
> #define PHYS_ADDR_MAX (~(phys_addr_t)0)
>
> +#define RESOURCE_SIZE_MAX ((resource_size_t)~0)
> +
> #define U8_MAX ((u8)~0U)
> #define S8_MAX ((s8)(U8_MAX >> 1))
> #define S8_MIN ((s8)(-S8_MAX - 1))
> diff --git a/include/linux/range.h b/include/linux/range.h
> index 7efb6a9b069b..6ad0b73cb7ad 100644
> --- a/include/linux/range.h
> +++ b/include/linux/range.h
> @@ -31,12 +31,4 @@ int clean_sort_range(struct range *range, int az);
>
> void sort_range(struct range *range, int nr_range);
>
> -#define MAX_RESOURCE ((resource_size_t)~0)
> -static inline resource_size_t cap_resource(u64 val)
> -{
> - if (val > MAX_RESOURCE)
> - return MAX_RESOURCE;
> -
> - return val;
> -}
> #endif
> --
> 2.40.0.1.gaa8946217a0b
>