Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3ff9247 authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman
Browse files

Remove useless get_driver()/put_driver() calls



As part of the removal of get_driver()/put_driver(), this patch
(as1512) gets rid of various useless and unnecessary calls in several
drivers.  In some cases it may be desirable to pin the driver by
calling try_module_get(), but that can be done later.

Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
CC: "David S. Miller" <davem@davemloft.net>
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: Michael Buesch <m@bues.ch>
CC: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 9f30ea95
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -915,9 +915,7 @@ static int phy_probe(struct device *dev)

	phydev = to_phy_device(dev);

	/* Make sure the driver is held.
	 * XXX -- Is this correct? */
	drv = get_driver(phydev->dev.driver);
	drv = phydev->dev.driver;
	phydrv = to_phy_driver(drv);
	phydev->drv = phydrv;

@@ -957,8 +955,6 @@ static int phy_remove(struct device *dev)

	if (phydev->drv->remove)
		phydev->drv->remove(phydev);

	put_driver(dev->driver);
	phydev->drv = NULL;

	return 0;
+1 −2
Original line number Diff line number Diff line
@@ -593,7 +593,7 @@ static pci_ers_result_t pcifront_common_process(int cmd,
	}
	pdrv = pcidev->driver;

	if (get_driver(&pdrv->driver)) {
	if (pdrv->driver) {
		if (pdrv->err_handler && pdrv->err_handler->error_detected) {
			dev_dbg(&pcidev->dev,
				"trying to call AER service\n");
@@ -623,7 +623,6 @@ static pci_ers_result_t pcifront_common_process(int cmd,
				}
			}
		}
		put_driver(&pdrv->driver);
	}
	if (!flag)
		result = PCI_ERS_RESULT_NONE;
+2 −18
Original line number Diff line number Diff line
@@ -140,19 +140,6 @@ static void ssb_device_put(struct ssb_device *dev)
		put_device(dev->dev);
}

static inline struct ssb_driver *ssb_driver_get(struct ssb_driver *drv)
{
	if (drv)
		get_driver(&drv->drv);
	return drv;
}

static inline void ssb_driver_put(struct ssb_driver *drv)
{
	if (drv)
		put_driver(&drv->drv);
}

static int ssb_device_resume(struct device *dev)
{
	struct ssb_device *ssb_dev = dev_to_ssb_dev(dev);
@@ -250,11 +237,9 @@ int ssb_devices_freeze(struct ssb_bus *bus, struct ssb_freeze_context *ctx)
			ssb_device_put(sdev);
			continue;
		}
		sdrv = ssb_driver_get(drv_to_ssb_drv(sdev->dev->driver));
		if (!sdrv || SSB_WARN_ON(!sdrv->remove)) {
			ssb_device_put(sdev);
		sdrv = drv_to_ssb_drv(sdev->dev->driver);
		if (SSB_WARN_ON(!sdrv->remove))
			continue;
		}
		sdrv->remove(sdev);
		ctx->device_frozen[i] = 1;
	}
@@ -293,7 +278,6 @@ int ssb_devices_thaw(struct ssb_freeze_context *ctx)
				   dev_name(sdev->dev));
			result = err;
		}
		ssb_driver_put(sdrv);
		ssb_device_put(sdev);
	}

+1 −2
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ static bool driver_filter(struct device *dev)
		return false;

	/* driver filter on but not yet initialized */
	drv = get_driver(dev->driver);
	drv = dev->driver;
	if (!drv)
		return false;

@@ -185,7 +185,6 @@ static bool driver_filter(struct device *dev)
	}

	read_unlock_irqrestore(&driver_name_lock, flags);
	put_driver(drv);

	return ret;
}