Re: [PATCH v3 23/38] PCI/sysfs: Make I/O resource depend on HAS_IOPORT
From: Bjorn Helgaas
Date: Tue Mar 14 2023 - 12:05:49 EST
On Tue, Mar 14, 2023 at 01:12:01PM +0100, Niklas Schnelle wrote:
> If legacy I/O spaces are not supported simply return an error when
> trying to access them via pci_resource_io(). This allows inb() and
> friends to become undefined when they are known at compile time to be
> non-functional in a later patch.
>
> Co-developed-by: Arnd Bergmann <arnd@xxxxxxxxxx>
> Signed-off-by: Niklas Schnelle <schnelle@xxxxxxxxxxxxx>
Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> ---
> drivers/pci/pci-sysfs.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index dd0d9d9bc509..11e92d106761 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -1083,6 +1083,7 @@ static ssize_t pci_resource_io(struct file *filp, struct kobject *kobj,
> struct bin_attribute *attr, char *buf,
> loff_t off, size_t count, bool write)
> {
> +#ifdef CONFIG_HAS_IOPORT
> struct pci_dev *pdev = to_pci_dev(kobj_to_dev(kobj));
> int bar = (unsigned long)attr->private;
> unsigned long port = off;
> @@ -1116,6 +1117,9 @@ static ssize_t pci_resource_io(struct file *filp, struct kobject *kobj,
> return 4;
> }
> return -EINVAL;
> +#else
> + return -ENXIO;
> +#endif
> }
>
> static ssize_t pci_read_resource_io(struct file *filp, struct kobject *kobj,
> --
> 2.37.2
>