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 > --- > 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.