From 1b6f967a995808eccfe7d92c10d5e0d349b498a8 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Mon, 29 Dec 2003 05:48:57 -0800 Subject: [PATCH] [PATCH] remove lock_kernel() from proc_bus_pci_lseek() Remove pointless lock_kernel(), replace with the standard-but-still-odd i_sem-based lseek locking. --- drivers/pci/proc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c index 3518812d6e311..f7790015a0794 100644 --- a/drivers/pci/proc.c +++ b/drivers/pci/proc.c @@ -25,7 +25,7 @@ proc_bus_pci_lseek(struct file *file, loff_t off, int whence) { loff_t new = -1; - lock_kernel(); + down(&file->f_dentry->d_inode->i_sem); switch (whence) { case 0: new = off; @@ -37,10 +37,12 @@ proc_bus_pci_lseek(struct file *file, loff_t off, int whence) new = PCI_CFG_SPACE_SIZE + off; break; } - unlock_kernel(); if (new < 0 || new > PCI_CFG_SPACE_SIZE) - return -EINVAL; - return (file->f_pos = new); + new = -EINVAL; + else + file->f_pos = new; + up(&file->f_dentry->d_inode->i_sem); + return new; } static ssize_t -- 2.53.0