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

Commit fbd88336 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: unioxx5: use comedi_alloc_spriv()



Use the helper function to allocate the memory and set the subdevice
private pointer. This allows the core to automatically free the
memory during the detach so the driver doesn't need to deal with it.

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7f5ac6f4
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -371,15 +371,13 @@ static int __unioxx5_subdev_init(struct comedi_device *dev,
	int i, to, ndef_flag = 0;
	int ret;

	usp = kzalloc(sizeof(*usp), GFP_KERNEL);
	if (usp == NULL)
	usp = comedi_alloc_spriv(s, sizeof(*usp));
	if (!usp)
		return -ENOMEM;

	ret = __comedi_request_region(dev, iobase, UNIOXX5_SIZE);
	if (ret) {
		kfree(usp);
	if (ret)
		return ret;
	}
	usp->usp_iobase = iobase;

	/* defining modules types */
@@ -413,7 +411,6 @@ static int __unioxx5_subdev_init(struct comedi_device *dev,

	/* initial subdevice for digital or analog i/o */
	s->type = COMEDI_SUBD_DIO;
	s->private = usp;
	s->subdev_flags = SDF_READABLE | SDF_WRITABLE;
	s->n_chan = UNIOXX5_NUM_OF_CHANS;
	s->maxdata = 0xFFF;
@@ -483,7 +480,6 @@ static void unioxx5_detach(struct comedi_device *dev)
		spriv = s->private;
		if (spriv && spriv->usp_iobase)
			release_region(spriv->usp_iobase, UNIOXX5_SIZE);
		kfree(spriv);
	}
}