mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 19:41:54 +00:00
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: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7f5ac6f4f5
commit
fbd8833666
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user