The 'thisboard' macro relies on a local variable having a specific name and yields a pointer derived from that local variable. Replace the macro with local variables and use the comedi_board() helper to get the pointer. Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxx> --- drivers/staging/comedi/drivers/das800.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/staging/comedi/drivers/das800.c b/drivers/staging/comedi/drivers/das800.c index 38f625b..a8c8a13 100644 --- a/drivers/staging/comedi/drivers/das800.c +++ b/drivers/staging/comedi/drivers/das800.c @@ -228,11 +228,6 @@ static const struct das800_board das800_boards[] = { }, }; -/* - * Useful for shorthand access to the particular board structure - */ -#define thisboard ((const struct das800_board *)dev->board_ptr) - struct das800_private { volatile unsigned int count; /* number of data points left to be taken */ volatile int forever; /* flag indicating whether we should take data forever */ @@ -279,6 +274,7 @@ static int das800_set_frequency(struct comedi_device *dev); /* checks and probes das-800 series board type */ static int das800_probe(struct comedi_device *dev) { + const struct das800_board *thisboard = comedi_board(dev); int id_bits; unsigned long irq_flags; int board; @@ -350,6 +346,7 @@ static irqreturn_t das800_interrupt(int irq, void *d) short i; /* loop index */ short dataPoint = 0; struct comedi_device *dev = d; + const struct das800_board *thisboard = comedi_board(dev); struct das800_private *devpriv = dev->private; struct comedi_subdevice *s = dev->read_subdev; /* analog input subdevice */ struct comedi_async *async; @@ -445,6 +442,7 @@ static irqreturn_t das800_interrupt(int irq, void *d) static int das800_attach(struct comedi_device *dev, struct comedi_devconfig *it) { + const struct das800_board *thisboard = comedi_board(dev); struct das800_private *devpriv; struct comedi_subdevice *s; unsigned long iobase = it->options[0]; @@ -481,6 +479,7 @@ static int das800_attach(struct comedi_device *dev, struct comedi_devconfig *it) return -ENODEV; } dev->board_ptr = das800_boards + board; + thisboard = comedi_board(dev); /* grab our IRQ */ if (irq == 1 || irq > 7) { @@ -566,6 +565,7 @@ static int das800_cancel(struct comedi_device *dev, struct comedi_subdevice *s) /* enable_das800 makes the card start taking hardware triggered conversions */ static void enable_das800(struct comedi_device *dev) { + const struct das800_board *thisboard = comedi_board(dev); struct das800_private *devpriv = dev->private; unsigned long irq_flags; @@ -594,6 +594,7 @@ static int das800_ai_do_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) { + const struct das800_board *thisboard = comedi_board(dev); struct das800_private *devpriv = dev->private; int err = 0; int tmp; @@ -685,6 +686,7 @@ static int das800_ai_do_cmdtest(struct comedi_device *dev, static int das800_ai_do_cmd(struct comedi_device *dev, struct comedi_subdevice *s) { + const struct das800_board *thisboard = comedi_board(dev); struct das800_private *devpriv = dev->private; int startChan, endChan, scan, gain; int conv_bits; @@ -769,6 +771,7 @@ static int das800_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) { + const struct das800_board *thisboard = comedi_board(dev); struct das800_private *devpriv = dev->private; int i, n; int chan; -- 1.8.1.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel