diff options
author | Jonathan Cameron <jic23@cam.ac.uk> | 2011-04-15 18:55:56 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-04-25 17:23:09 -0700 |
commit | 6f7c8ee585e9db54cb29af1bdb93f29837824933 (patch) | |
tree | 2eaf2ef782137ed1b9996c0fd511c40f1efb6625 /drivers/staging/iio/industrialio-core.c | |
parent | b428173316dcb4a518ee22c642671ae8a4bcec48 (diff) |
staging:iio: Add ability to allocate private data space to iio_allocate_device
Suggested by Arnd Bergmann. Note this will break ALL drivers that
are out of mainline. The fix is trivial change of
iio_allocate_device() -> iio_allocate_device(0)
Sorry if this causes issues for any one!
V2: Include new drivers in the update
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/iio/industrialio-core.c')
-rw-r--r-- | drivers/staging/iio/industrialio-core.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c index 1795ee1e8207..3a824146455e 100644 --- a/drivers/staging/iio/industrialio-core.c +++ b/drivers/staging/iio/industrialio-core.c @@ -720,9 +720,20 @@ static struct device_type iio_dev_type = { .release = iio_dev_release, }; -struct iio_dev *iio_allocate_device(void) +struct iio_dev *iio_allocate_device(int sizeof_priv) { - struct iio_dev *dev = kzalloc(sizeof *dev, GFP_KERNEL); + struct iio_dev *dev; + size_t alloc_size; + + alloc_size = sizeof(struct iio_dev); + if (sizeof_priv) { + alloc_size = ALIGN(alloc_size, IIO_ALIGN); + alloc_size += sizeof_priv; + } + /* ensure 32-byte alignment of whole construct ? */ + alloc_size += IIO_ALIGN - 1; + + dev = kzalloc(alloc_size, GFP_KERNEL); if (dev) { dev->dev.type = &iio_dev_type; |