提交 038e6f06 编写于 作者: M Michal Privoznik

virpcimock: Move actions checking one level up

The pci_driver_bind() and pci_driver_unbind() functions are
"internal implementation", meaning other parts of the code should
be able to call them and get the job done. Checking for actions
(PCI_ACTION_BIND and PCI_ACTION_UNBIND) should be done in
handlers (pci_driver_handle_bind() and
pci_driver_handle_unbind()). Surprisingly, the other two actions
(PCI_ACTION_NEW_ID and PCI_ACTION_REMOVE_ID) are checked already
at this level.
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
Tested-by: NDaniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: NDaniel Henrique Barboza <danielhb413@gmail.com>
上级 39de732a
......@@ -552,8 +552,8 @@ pci_driver_bind(struct pciDriver *driver,
int ret = -1;
char *devpath = NULL, *driverpath = NULL;
if (dev->driver || PCI_ACTION_BIND & driver->fail) {
/* Device already bound or failing driver requested */
if (dev->driver) {
/* Device already bound */
errno = ENODEV;
return ret;
}
......@@ -599,8 +599,8 @@ pci_driver_unbind(struct pciDriver *driver,
int ret = -1;
char *devpath = NULL, *driverpath = NULL;
if (dev->driver != driver || PCI_ACTION_UNBIND & driver->fail) {
/* Device not bound to the @driver or failing driver used */
if (dev->driver != driver) {
/* Device not bound to the @driver */
errno = ENODEV;
return ret;
}
......@@ -670,8 +670,8 @@ pci_driver_handle_bind(const char *path)
struct pciDevice *dev = pci_device_find_by_content(path);
struct pciDriver *driver = pci_driver_find_by_path(path);
if (!driver || !dev) {
/* This should never happen (TM) */
if (!driver || !dev || PCI_ACTION_BIND & driver->fail) {
/* No driver, no device or failing driver requested */
errno = ENODEV;
goto cleanup;
}
......@@ -687,8 +687,8 @@ pci_driver_handle_unbind(const char *path)
int ret = -1;
struct pciDevice *dev = pci_device_find_by_content(path);
if (!dev || !dev->driver) {
/* This should never happen (TM) */
if (!dev || !dev->driver || PCI_ACTION_UNBIND & dev->driver->fail) {
/* No device, device not binded or failing driver requested */
errno = ENODEV;
goto cleanup;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册