Re: [PATCH] staging: comedi: add error handling for vmap

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 14/06/18 08:57, Zhouyang Jia wrote:
Hi,

I reported this bug since more than 90% callsites of vmap are
well handled in kernel. The caller function __comedi_buf_alloc
has no return value, so I don't know how the error is handled in
its caller.

I believe there would be a better error handling method, but I
have limited domain knowledge, so I'm sorry I can't help here.

Thanks for your kind reply.

Best,
Zhouyang

__comedi_buf_alloc is just a helper function factored out of, and called by comedi_buf_alloc. __comedi_buf_alloc does not clean up after itself on error because it expects comedi_buf_alloc to detect the error and call __comedi_buf_free to clean up any partially allocated mess:

    __comedi_buf_alloc(dev, s, n_pages);
    if (!async->prealloc_buf) {
        /*
         * [This is not the actual comment in the code!]
         *
         * Error occured in __comedi_buf_alloc().
         * Buffer may be partially allocated.
         * Call __comedi_buf_free() to clean it up.
         */
        __comedi_buf_free(dev, s);
        return -ENOMEM;
    }




2018-06-12 19:50 GMT+08:00 Dan Carpenter <dan.carpenter@xxxxxxxxxx <mailto:dan.carpenter@xxxxxxxxxx>>:

    On Tue, Jun 12, 2018 at 11:25:35AM +0800, Zhouyang Jia wrote:
    > When vmap fails, the lack of error-handling code may
    > cause unexpected results.
> > This patch adds error-handling code after calling vmap. >
    Again, this is not error handling, this is just an error message.  This
    error condition is handled in the caller.

    regards,
    dan carpenter





--
-=( Ian Abbott <abbotti@xxxxxxxxx> || Web: www.mev.co.uk )=-
-=( MEV Ltd. is a company registered in England & Wales. )=-
-=( Registered number: 02862268.  Registered address:    )=-
-=( 15 West Park Road, Bramhall, STOCKPORT, SK7 3JZ, UK. )=-
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux