return 0;
  error_free_irq:
-       free_irq(st->client->irq, indio_dev);
+       if (client->irq)
+               free_irq(st->client->irq, indio_dev);
  error_uninit_buffer:
 -      iio_buffer_unregister(indio_dev);
 -error_cleanup_buffer:
 -      max1363_buffer_cleanup(indio_dev);
 +      iio_triggered_buffer_cleanup(indio_dev);
  error_free_available_scan_masks:
        kfree(indio_dev->available_scan_masks);
- error_unregister_map:
-       iio_map_array_unregister(indio_dev, client->dev.platform_data);
  error_disable_reg:
        regulator_disable(st->reg);
  error_put_reg:
        iio_device_unregister(indio_dev);
        if (client->irq)
                free_irq(st->client->irq, indio_dev);
 -      iio_buffer_unregister(indio_dev);
 -      max1363_buffer_cleanup(indio_dev);
 +      iio_triggered_buffer_cleanup(indio_dev);
        kfree(indio_dev->available_scan_masks);
-       if (!IS_ERR(st->reg)) {
-               regulator_disable(st->reg);
-               regulator_put(st->reg);
-       }
+       regulator_disable(st->reg);
+       regulator_put(st->reg);
        iio_map_array_unregister(indio_dev, client->dev.platform_data);
        iio_device_free(indio_dev);
  
 
                                  unsigned long arg)
  {
        const unsigned minor = iminor(file->f_dentry->d_inode);
 -      struct comedi_device_file_info *dev_file_info =
 -          comedi_get_device_file_info(minor);
 -      struct comedi_device *dev;
 +      struct comedi_device *dev = comedi_dev_from_minor(minor);
++      struct comedi_file_info *info = comedi_file_info_from_minor(minor);
        int rc;
  
 -      if (dev_file_info == NULL || dev_file_info->device == NULL)
 +      if (!dev)
                return -ENODEV;
 -      dev = dev_file_info->device;
  
        mutex_lock(&dev->mutex);
  
        if (cmd == COMEDI_DEVCONFIG) {
                rc = do_devconfig_ioctl(dev,
                                        (struct comedi_devconfig __user *)arg);
 -                      dev_file_info->hardware_device = NULL;
+               if (rc == 0)
+                       /* Evade comedi_auto_unconfig(). */
++                      info->hardware_device = NULL;
                goto done;
        }