diff options
Diffstat (limited to 'drivers/pci/proc.c')
-rw-r--r-- | drivers/pci/proc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c index 90adc62d07ff..716439e25dd2 100644 --- a/drivers/pci/proc.c +++ b/drivers/pci/proc.c | |||
@@ -60,7 +60,7 @@ proc_bus_pci_read(struct file *file, char __user *buf, size_t nbytes, loff_t *pp | |||
60 | */ | 60 | */ |
61 | 61 | ||
62 | if (capable(CAP_SYS_ADMIN)) | 62 | if (capable(CAP_SYS_ADMIN)) |
63 | size = dev->cfg_size; | 63 | size = dp->size; |
64 | else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) | 64 | else if (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS) |
65 | size = 128; | 65 | size = 128; |
66 | else | 66 | else |
@@ -129,11 +129,11 @@ proc_bus_pci_read(struct file *file, char __user *buf, size_t nbytes, loff_t *pp | |||
129 | static ssize_t | 129 | static ssize_t |
130 | proc_bus_pci_write(struct file *file, const char __user *buf, size_t nbytes, loff_t *ppos) | 130 | proc_bus_pci_write(struct file *file, const char __user *buf, size_t nbytes, loff_t *ppos) |
131 | { | 131 | { |
132 | const struct inode *ino = file->f_path.dentry->d_inode; | 132 | struct inode *ino = file->f_path.dentry->d_inode; |
133 | const struct proc_dir_entry *dp = PDE(ino); | 133 | const struct proc_dir_entry *dp = PDE(ino); |
134 | struct pci_dev *dev = dp->data; | 134 | struct pci_dev *dev = dp->data; |
135 | int pos = *ppos; | 135 | int pos = *ppos; |
136 | int size = dev->cfg_size; | 136 | int size = dp->size; |
137 | int cnt; | 137 | int cnt; |
138 | 138 | ||
139 | if (pos >= size) | 139 | if (pos >= size) |
@@ -193,6 +193,7 @@ proc_bus_pci_write(struct file *file, const char __user *buf, size_t nbytes, lof | |||
193 | } | 193 | } |
194 | 194 | ||
195 | *ppos = pos; | 195 | *ppos = pos; |
196 | i_size_write(ino, dp->size); | ||
196 | return nbytes; | 197 | return nbytes; |
197 | } | 198 | } |
198 | 199 | ||