summaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/jr3_pci.c
diff options
context:
space:
mode:
authorIan Abbott <abbotti@mev.co.uk>2017-03-08 18:44:30 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-12 14:57:00 +0100
commit7cb1c5c2cd5fe2d4303eee415ca2ed207bd932a5 (patch)
tree48fa1c9da43a44c9dfa2794523db063d94b42440 /drivers/staging/comedi/drivers/jr3_pci.c
parent6fbd1330e50383a8a30f0fc67e690a22b99fd2d5 (diff)
downloadop-kernel-dev-7cb1c5c2cd5fe2d4303eee415ca2ed207bd932a5.zip
op-kernel-dev-7cb1c5c2cd5fe2d4303eee415ca2ed207bd932a5.tar.gz
staging: comedi: jr3_pci: check sizes at compile time
The driver currently checks the size of `struct jr3_sensor` is correct when a device is attached, returning an error if it is wrong. Replace that with a compile-time check. We don't care too much about the size of `struct jr3_sensor` as it is embedded in the larger `struct jr3_block` and is followed by a lot of padding. We should care more that the size of `struct jr3_block` is correct, as it describes the overall register layout of a block, and there is an array of such blocks (one per subdevice). Check its size at compile-time using the `BUILD_BUG_ON()` macro. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/jr3_pci.c')
-rw-r--r--drivers/staging/comedi/drivers/jr3_pci.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/staging/comedi/drivers/jr3_pci.c b/drivers/staging/comedi/drivers/jr3_pci.c
index 8399493..c0ae922 100644
--- a/drivers/staging/comedi/drivers/jr3_pci.c
+++ b/drivers/staging/comedi/drivers/jr3_pci.c
@@ -688,12 +688,7 @@ static int jr3_pci_auto_attach(struct comedi_device *dev,
int ret;
int i;
- if (sizeof(struct jr3_sensor) != 0xc00) {
- dev_err(dev->class_dev,
- "sizeof(struct jr3_sensor) = %x [expected %x]\n",
- (unsigned int)sizeof(struct jr3_sensor), 0xc00);
- return -EINVAL;
- }
+ BUILD_BUG_ON(sizeof(struct jr3_block) != 0x80000);
if (context < ARRAY_SIZE(jr3_pci_boards))
board = &jr3_pci_boards[context];
OpenPOWER on IntegriCloud