On 2012-07-01 14:36, Devendra Naga wrote:
if alloc_private fail, we wont' release the I/O region,
which was request_region 'ed.

release the allocated I/O region if alloc_private fails.

Signed-off-by: Devendra Naga <[email protected]>
---
  drivers/staging/comedi/drivers/fl512.c |    4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/comedi/drivers/fl512.c 
b/drivers/staging/comedi/drivers/fl512.c
index d1da809..52e6d14 100644
--- a/drivers/staging/comedi/drivers/fl512.c
+++ b/drivers/staging/comedi/drivers/fl512.c
@@ -125,8 +125,10 @@ static int fl512_attach(struct comedi_device *dev, struct 
comedi_devconfig *it)
        }
        dev->iobase = iobase;
        dev->board_name = "fl512";
-       if (alloc_private(dev, sizeof(struct fl512_private)) < 0)
+       if (alloc_private(dev, sizeof(struct fl512_private)) < 0) {
+               release_region(iobase, FL512_SIZE);
                return -ENOMEM;
+       }

  #if DEBUG
        printk(KERN_DEBUG "malloc ok\n");

No. The I/O region will be deallocated in fl512_detach() because dev->iobase has been set non-zero. fl512_detach() will be called by the comedi core if fl512_attach() returns an error. This is an unusual aspect of the comedi drivers.

--
-=( Ian Abbott @ MEV Ltd.    E-mail: <[email protected]>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to