[PATCH 14/20] alpha/PCI: Add static PCI resource attribute macros

Ilpo Järvinen ilpo.jarvinen at linux.intel.com
Fri Apr 10 21:19:27 AEST 2026


On Fri, 10 Apr 2026, Krzysztof Wilczyński wrote:

> Add macros for declaring static binary attributes for Alpha's PCI
> resource files:
> 
>   - pci_dev_resource_attr(),        for dense/BWX systems (mmap dense)
>   - pci_dev_resource_sparse_attr(), for sparse systems (mmap sparse)
>   - pci_dev_resource_dense_attr(),  for dense companion files (mmap dense)
> 
> Each macro creates a const bin_attribute with the BAR index stored in
> the .private property and the appropriate .mmap callback.
> 
> Signed-off-by: Krzysztof Wilczyński <kwilczynski at kernel.org>
> ---
>  arch/alpha/kernel/pci-sysfs.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c
> index 867199b988de..0e016b597b06 100644
> --- a/arch/alpha/kernel/pci-sysfs.c
> +++ b/arch/alpha/kernel/pci-sysfs.c
> @@ -104,6 +104,26 @@ static int pci_mmap_resource_dense(struct file *filp, struct kobject *kobj,
>  	return pci_mmap_resource(kobj, attr, vma, 0);
>  }
>  
> +#define __pci_dev_resource_attr(_bar, _name, _suffix, _mmap)		\
> +static const struct bin_attribute					\
> +pci_dev_resource##_bar##_suffix##_attr = {				\
> +	.attr = { .name = __stringify(_name), .mode = 0600 },		\
> +	.private = (void *)(unsigned long)(_bar),			\
> +	.mmap = (_mmap),						\
> +}
> +
> +#define pci_dev_resource_attr(_bar)					\
> +	__pci_dev_resource_attr(_bar, resource##_bar,,			\
> +			    pci_mmap_resource_dense)
> +
> +#define pci_dev_resource_sparse_attr(_bar)				\
> +	__pci_dev_resource_attr(_bar, resource##_bar##_sparse, _sparse,	\
> +			    pci_mmap_resource_sparse)
> +
> +#define pci_dev_resource_dense_attr(_bar)				\
> +	__pci_dev_resource_attr(_bar, resource##_bar##_dense, _dense,	\
> +			    pci_mmap_resource_dense)
> +
>  /**
>   * pci_remove_resource_files - cleanup resource files
>   * @pdev: pci_dev to cleanup
> 

Wouldn't this belong together with the next patch, or is there some good 
reason why you added them separately?

-- 
 i.


More information about the Linuxppc-dev mailing list