From dcd7b8bd63cb81c5b973bf86510ca3c80bbbd162 Mon Sep 17 00:00:00 2001 From: Ian Abbott Date: Thu, 4 Apr 2013 14:58:57 +0100 Subject: [PATCH] staging: comedi: put module _after_ detach On failure of the call to the low-level comedi device driver's `->attach()` handler from `__comedi_device_attach()`, reverse the current ordering of the calls to `module_put()` and `comedi_device_detach()` because `__comedi_device_detach()` will call code in the module being put. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 73727a73bd34..6f232b8128c0 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -396,8 +396,8 @@ int comedi_device_attach(struct comedi_device *dev, struct comedi_devconfig *it) dev->driver = driv; ret = driv->attach(dev, it); if (ret < 0) { - module_put(dev->driver->module); __comedi_device_detach(dev); + module_put(dev->driver->module); return ret; } ret = comedi_device_postconfig(dev); -- 2.11.0