aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2012-06-12 14:59:55 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-06-12 17:44:04 -0400
commit03afcf472785a63d720202d28d51852d965a95d9 (patch)
tree738ae55c58b03a51749756ad0596b0666891b691 /drivers/staging/comedi/drivers.c
parent8b6c56949ffa83dbc2a6e8fa3f98b10a19372207 (diff)
staging: comedi: cleanup comedi_alloc_subdevices
Access the individual comedi_subdevices using a pointer instead of directly accessing as an array. This is how the rest of the comedi core accesses them. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbott@mev.co.uk> Cc: Frank Mori Hess <fmhess@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers.c')
-rw-r--r--drivers/staging/comedi/drivers.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index ecad2288c9f..6af4a5b302d 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -58,21 +58,24 @@ struct comedi_driver *comedi_drivers;
58 58
59int comedi_alloc_subdevices(struct comedi_device *dev, int num_subdevices) 59int comedi_alloc_subdevices(struct comedi_device *dev, int num_subdevices)
60{ 60{
61 struct comedi_subdevice *s;
61 int i; 62 int i;
62 63
63 if (num_subdevices < 1) 64 if (num_subdevices < 1)
64 return -EINVAL; 65 return -EINVAL;
65 dev->subdevices = 66
66 kcalloc(num_subdevices, sizeof(struct comedi_subdevice), 67 s = kcalloc(num_subdevices, sizeof(*s), GFP_KERNEL);
67 GFP_KERNEL); 68 if (!s)
68 if (!dev->subdevices)
69 return -ENOMEM; 69 return -ENOMEM;
70 dev->subdevices = s;
70 dev->n_subdevices = num_subdevices; 71 dev->n_subdevices = num_subdevices;
72
71 for (i = 0; i < num_subdevices; ++i) { 73 for (i = 0; i < num_subdevices; ++i) {
72 dev->subdevices[i].device = dev; 74 s = dev->subdevices + i;
73 dev->subdevices[i].async_dma_dir = DMA_NONE; 75 s->device = dev;
74 spin_lock_init(&dev->subdevices[i].spin_lock); 76 s->async_dma_dir = DMA_NONE;
75 dev->subdevices[i].minor = -1; 77 spin_lock_init(&s->spin_lock);
78 s->minor = -1;
76 } 79 }
77 return 0; 80 return 0;
78} 81}