1
0
Fork 0

pci syscall.c: Switch to refcounting API

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
hifive-unleashed-5.1
Alan Cox 2007-04-23 14:57:37 +01:00 committed by Greg Kroah-Hartman
parent a23adb5b2d
commit e4585da22a
1 changed files with 11 additions and 9 deletions

View File

@ -23,14 +23,14 @@ sys_pciconfig_read(unsigned long bus, unsigned long dfn,
u8 byte;
u16 word;
u32 dword;
long err, cfg_ret;
long err;
long cfg_ret;
err = -EPERM;
if (!capable(CAP_SYS_ADMIN))
goto error;
return -EPERM;
err = -ENODEV;
dev = pci_find_slot(bus, dfn);
dev = pci_get_bus_and_slot(bus, dfn);
if (!dev)
goto error;
@ -66,7 +66,8 @@ sys_pciconfig_read(unsigned long bus, unsigned long dfn,
case 4:
err = put_user(dword, (unsigned int __user *)buf);
break;
};
}
pci_dev_put(dev);
return err;
error:
@ -83,7 +84,8 @@ error:
case 4:
put_user(-1, (unsigned int __user *)buf);
break;
};
}
pci_dev_put(dev);
return err;
}
@ -101,7 +103,7 @@ sys_pciconfig_write(unsigned long bus, unsigned long dfn,
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
dev = pci_find_slot(bus, dfn);
dev = pci_get_bus_and_slot(bus, dfn);
if (!dev)
return -ENODEV;
@ -137,8 +139,8 @@ sys_pciconfig_write(unsigned long bus, unsigned long dfn,
default:
err = -EINVAL;
break;
};
}
unlock_kernel();
pci_dev_put(dev);
return err;
}