Messages in this thread | | | Subject | Re: staging: vt6656: Use common error handling code in vnt_alloc_bufs() | From | Markus Elfring <> | Date | Fri, 23 Aug 2019 19:24:07 +0200 |
| |
Your patch remove redundant code, which is fine.
Thanks for your constructive feedback.
> code you changed was simple enough to be understand quickly. I think replacing > it with a crossed goto (even if it remove redundant code) might not be the best > option. > > A solution might be to move the second loop to the top of the function
I am unsure about the relevance of the loop ordering for the affected resource allocations.
> so you should be able to replace the end of the cleanup calls with: > > enomem: > ret = -ENOMEM; > free_rx: > vnt_free_rx_bufs(priv); > return ret;
The exception handling can eventually adjusted another bit according to your refactoring.
> This way, only a failed call to vnt_submit_rx_urb() should jump to free_rx,
It seems that a goto statement will still be needed in an error code part by both discussed variants.
> another failed call should jump to enomem or previously defined > label, so we can correctly forward errors.
This view sounds promising.
> With such solution it might be worth adding a comment to describe > that all error should be ENOMEM except for vnt_submit_rx_urb().
Can this function implementation become clearer also without such a comment?
Regards, Markus
| |