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

Ian Abbott abbotti at mev.co.uk
Thu Jun 14 09:58:41 UTC 2018


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 at oracle.com 
> <mailto:dan.carpenter at oracle.com>>:
> 
>     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 at mev.co.uk> || 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. )=-


More information about the devel mailing list