summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDiego Woitasen <diego@woitasen.com.ar>2007-11-22 00:07:08 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-02 00:04:21 +0100
commit0741a951e8489ef2889d9e3eecf33bb29b779dd0 (patch)
tree687ff8648146dcd4e1ea0da71b46eceb3cd19a22
parentPCI: get rid of pci_dev::{vendor,device}_compatible fields (diff)
downloadlinux-0741a951e8489ef2889d9e3eecf33bb29b779dd0.tar.xz
linux-0741a951e8489ef2889d9e3eecf33bb29b779dd0.zip
PCI: remove unneeded lock_kernel() in drivers/pci/syscall.c.
sys_pciconfig_{read,write}() are protected against PCI removal with the reference count in struct pci_dev. The concurrency of pci_user_{read,write}_config_* functions are already protected by pci_lock in drivers/pci/access.c. Signed-off-by: Diego Woitasen <diego@woitasen.com.ar> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/pci/syscall.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
index 2ac050d7f8cf..645d7a60e412 100644
--- a/drivers/pci/syscall.c
+++ b/drivers/pci/syscall.c
@@ -34,7 +34,6 @@ sys_pciconfig_read(unsigned long bus, unsigned long dfn,
if (!dev)
goto error;
- lock_kernel();
switch (len) {
case 1:
cfg_ret = pci_user_read_config_byte(dev, off, &byte);
@@ -47,10 +46,8 @@ sys_pciconfig_read(unsigned long bus, unsigned long dfn,
break;
default:
err = -EINVAL;
- unlock_kernel();
goto error;
};
- unlock_kernel();
err = -EIO;
if (cfg_ret != PCIBIOS_SUCCESSFUL)
@@ -107,7 +104,6 @@ sys_pciconfig_write(unsigned long bus, unsigned long dfn,
if (!dev)
return -ENODEV;
- lock_kernel();
switch(len) {
case 1:
err = get_user(byte, (u8 __user *)buf);
@@ -140,7 +136,6 @@ sys_pciconfig_write(unsigned long bus, unsigned long dfn,
err = -EINVAL;
break;
}
- unlock_kernel();
pci_dev_put(dev);
return err;
}