[PATCH v2 6/6] PCI: Align proc_bus_pci_read() with pci_read_config()
Ziming Du <[email protected]>
| Newsgroups | org.kernel.vger.linux-pci,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
proc_bus_pci_read() and pci_read_config() implement essentially the same functionality. To improve consistency across the PCI subsystem, align the implementation in procfs with the sysfs counterpart. Specifically: - Rename the variable 'pos' to 'off' and replace 'cnt' with 'count'. - Remove the redundant bounds check `if (nbytes >= size)`. - Use the same transfer loop conditions as pci_read_config(). No functional change intended. Suggested-by: Bjorn Helgaas <[email protected]> Signed-off-by: Ziming Du <[email protected]> --- drivers/pci/proc.c | 58 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c index 71d1f34e13a7d..13ac92da4624b 100644 --- a/drivers/pci/proc.c +++ b/drivers/pci/proc.c @@ -30,8 +30,9 @@ static ssize_t proc_bus_pci_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) { struct pci_dev *dev = pde_data(file_inode(file)); - loff_t pos = *ppos; - unsigned int cnt, size; + loff_t off = *ppos; + unsigned int count = nbytes; + unsigned int size; /* * Normal users can read only the standardized portion of the @@ -46,66 +47,65 @@ static ssize_t proc_bus_pci_read(struct file *file, char __user *buf, else size = 64; - if (pos >= size) + if (off >= size) return 0; - if (nbytes >= size) - nbytes = size; - if (pos + nbytes > size) - nbytes = size - pos; - cnt = nbytes; + if (off + count > size) { + count = size - off; + nbytes = count; + } - if (!access_ok(buf, cnt)) + if (!access_ok(buf, count)) return -EINVAL; pci_config_pm_runtime_get(dev); - if ((pos & 1) && cnt) { + if ((off & 1) && count) { unsigned char val; - pci_user_read_config_byte(dev, pos, &val); + pci_user_read_config_byte(dev, off, &val); __put_user(val, buf); buf++; - pos++; - cnt--; + off++; + count--; } - if ((pos & 3) && cnt > 2) { + if ((off & 3) && count > 2) { unsigned short val; - pci_user_read_config_word(dev, pos, &val); + pci_user_read_config_word(dev, off, &val); __put_user(cpu_to_le16(val), (__le16 __user *) buf); buf += 2; - pos += 2; - cnt -= 2; + off += 2; + count -= 2; } - while (cnt >= 4) { + while (count > 3) { unsigned int val; - pci_user_read_config_dword(dev, pos, &val); + pci_user_read_config_dword(dev, off, &val); __put_user(cpu_to_le32(val), (__le32 __user *) buf); buf += 4; - pos += 4; - cnt -= 4; + off += 4; + count -= 4; cond_resched(); } - if (cnt >= 2) { + if (count >= 2) { unsigned short val; - pci_user_read_config_word(dev, pos, &val); + pci_user_read_config_word(dev, off, &val); __put_user(cpu_to_le16(val), (__le16 __user *) buf); buf += 2; - pos += 2; - cnt -= 2; + off += 2; + count -= 2; } - if (cnt) { + if (count > 0) { unsigned char val; - pci_user_read_config_byte(dev, pos, &val); + pci_user_read_config_byte(dev, off, &val); __put_user(val, buf); - pos++; + off++; } pci_config_pm_runtime_put(dev); - *ppos = pos; + *ppos = off; return nbytes; } -- 2.43.0