diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index d27425e..8de9a24 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -833,12 +833,8 @@
 	async->events = 0;
 }
 
-static int
-comedi_auto_config_helper(struct device *hardware_device,
-			  struct comedi_driver *driver,
-			  int (*attach_wrapper) (struct comedi_device *,
-						 unsigned long),
-			  unsigned long context)
+int comedi_auto_config(struct device *hardware_device,
+		       struct comedi_driver *driver, unsigned long context)
 {
 	int minor;
 	struct comedi_device_file_info *dev_file_info;
@@ -848,6 +844,13 @@
 	if (!comedi_autoconfig)
 		return 0;
 
+	if (!driver->auto_attach) {
+		dev_warn(hardware_device,
+			 "BUG! comedi driver '%s' has no auto_attach handler\n",
+			 driver->driver_name);
+		return -EINVAL;
+	}
+
 	minor = comedi_alloc_board_minor(hardware_device);
 	if (minor < 0)
 		return minor;
@@ -862,9 +865,8 @@
 		ret = -EIO;
 	else {
 		comedi_set_hw_dev(comedi_dev, hardware_device);
-		/* set comedi_dev->driver here for attach wrapper */
 		comedi_dev->driver = driver;
-		ret = (*attach_wrapper)(comedi_dev, context);
+		ret = driver->auto_attach(comedi_dev, context);
 		if (ret < 0) {
 			module_put(driver->module);
 			__comedi_device_detach(comedi_dev);
@@ -878,25 +880,6 @@
 		comedi_free_board_minor(minor);
 	return ret;
 }
-
-static int comedi_auto_config_wrapper(struct comedi_device *dev,
-				      unsigned long context)
-{
-	if (!dev->driver->auto_attach) {
-		dev_warn(dev->class_dev,
-			 "BUG! driver '%s' has no auto_attach handler\n",
-			 dev->driver->driver_name);
-		return -EINVAL;
-	}
-	return dev->driver->auto_attach(dev, context);
-}
-
-int comedi_auto_config(struct device *hardware_device,
-		       struct comedi_driver *driver, unsigned long context)
-{
-	return comedi_auto_config_helper(hardware_device, driver,
-					 comedi_auto_config_wrapper, context);
-}
 EXPORT_SYMBOL_GPL(comedi_auto_config);
 
 void comedi_auto_unconfig(struct device *hardware_device)
