X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fpci%2Fproc.c;h=cdc7836d7e3de3ab710341b3feef63c1ff3b3a47;hb=79a6fb1acec93ef829a59d88429aafddf42793d3;hp=08126087ec3125c29de84c5b9e5f68d45d2b0328;hpb=f5b8fcb48b9eb1a02f6a3a679da913f6c467527c;p=~andy%2Flinux diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c index 08126087ec3..cdc7836d7e3 100644 --- a/drivers/pci/proc.c +++ b/drivers/pci/proc.c @@ -20,27 +20,8 @@ static int proc_initialized; /* = 0 */ static loff_t proc_bus_pci_lseek(struct file *file, loff_t off, int whence) { - loff_t new = -1; - struct inode *inode = file_inode(file); - - mutex_lock(&inode->i_mutex); - switch (whence) { - case 0: - new = off; - break; - case 1: - new = file->f_pos + off; - break; - case 2: - new = inode->i_size + off; - break; - } - if (new < 0 || new > inode->i_size) - new = -EINVAL; - else - file->f_pos = new; - mutex_unlock(&inode->i_mutex); - return new; + struct pci_dev *dev = PDE_DATA(file_inode(file)); + return fixed_size_llseek(file, off, whence, dev->cfg_size); } static ssize_t