All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Krzysztof Wilczyński" <kw@linux.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Pali Rohár" <pali@kernel.org>,
	"Oliver O'Halloran" <oohall@gmail.com>,
	"Krzysztof Hałasa" <khalasa@piap.pl>,
	linux-pci@vger.kernel.org
Subject: [PATCH v2 3/7] PCI/sysfs: Only allow IORESOURCE_IO in pci_resource_io()
Date: Fri, 10 Sep 2021 20:26:19 +0000	[thread overview]
Message-ID: <20210910202623.2293708-4-kw@linux.com> (raw)
In-Reply-To: <20210910202623.2293708-1-kw@linux.com>

Currently, when the sysfs attributes for PCI resources are added
dynamically, the read() and write() callbacks will only ever be set when
the underlying resource (a given BAR) has the IORESOURCE_IO flag set,
otherwise the callbacks will be NULL and any attempt to read from such
sysfs attribute will inherently fail.

After the conversion to the static sysfs objects, the read() and write()
callbacks will be always set for a given binary attribute (a particular
sysfs object). Thus, a check is added to the pci_resource_io() function
to ensure that a read against the underlying resource is supported and
that the IORESOURCE_IO flag is set.

Signed-off-by: Krzysztof Wilczyński <kw@linux.com>
---
 drivers/pci/pci-sysfs.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index ccdd1e34aeee..e151d635fe04 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1084,6 +1084,9 @@ static ssize_t pci_resource_io(struct file *filp, struct kobject *kobj,
 	int bar = (unsigned long)attr->private;
 	unsigned long port = off;
 
+	if (!(pci_resource_flags(pdev, bar) & IORESOURCE_IO))
+		return -EIO;
+
 	port += pci_resource_start(pdev, bar);
 
 	if (port > pci_resource_end(pdev, bar))
-- 
2.33.0


  parent reply	other threads:[~2021-09-10 20:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-10 20:26 [PATCH v2 0/7] PCI: Convert dynamic PCI resources sysfs objects into static Krzysztof Wilczyński
2021-09-10 20:26 ` [PATCH v2 1/7] PCI/sysfs: Add pci_dev_resource_attr_is_visible() helper Krzysztof Wilczyński
2021-09-10 20:26 ` [PATCH v2 2/7] PCI/sysfs: Add pci_dev_resource_attr() macro Krzysztof Wilczyński
2021-09-10 20:26 ` Krzysztof Wilczyński [this message]
2021-09-10 20:26 ` [PATCH v2 4/7] PCI/sysfs: Only allow supported resource type in pci_mmap_resource() Krzysztof Wilczyński
2021-09-10 20:26 ` [PATCH v2 5/7] PCI/sysfs: Convert PCI resource files to static attributes Krzysztof Wilczyński
2021-09-10 20:26 ` [PATCH v2 6/7] PCI/sysfs: Rename pci_read_resource_io() and pci_write_resource_io() Krzysztof Wilczyński
2021-09-10 20:26 ` [PATCH v2 7/7] PCI/sysfs: Update code to match the preferred style Krzysztof Wilczyński

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210910202623.2293708-4-kw@linux.com \
    --to=kw@linux.com \
    --cc=bhelgaas@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=khalasa@piap.pl \
    --cc=linux-pci@vger.kernel.org \
    --cc=oohall@gmail.com \
    --cc=pali@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.