aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/proc.c')
-rw-r--r--drivers/pci/proc.c23
1 files changed, 2 insertions, 21 deletions
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
index 08126087ec31..cdc7836d7e3d 100644
--- a/drivers/pci/proc.c
+++ b/drivers/pci/proc.c
@@ -20,27 +20,8 @@ static int proc_initialized; /* = 0 */
20static loff_t 20static loff_t
21proc_bus_pci_lseek(struct file *file, loff_t off, int whence) 21proc_bus_pci_lseek(struct file *file, loff_t off, int whence)
22{ 22{
23 loff_t new = -1; 23 struct pci_dev *dev = PDE_DATA(file_inode(file));
24 struct inode *inode = file_inode(file); 24 return fixed_size_llseek(file, off, whence, dev->cfg_size);
25
26 mutex_lock(&inode->i_mutex);
27 switch (whence) {
28 case 0:
29 new = off;
30 break;
31 case 1:
32 new = file->f_pos + off;
33 break;
34 case 2:
35 new = inode->i_size + off;
36 break;
37 }
38 if (new < 0 || new > inode->i_size)
39 new = -EINVAL;
40 else
41 file->f_pos = new;
42 mutex_unlock(&inode->i_mutex);
43 return new;
44} 25}
45 26
46static ssize_t 27static ssize_t