From: Sebastian Andrzej Siewior Date: Mon, 22 Oct 2012 20:15:05 +0000 (+0200) Subject: usb: gadget: uvc: fix error path in uvc_function_bind() X-Git-Tag: omap-for-v3.8/fixes-for-merge-window-v4-signed~82^2~59^2~20 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f9df939385527049c8062a099fbfa1479fe7ce0;p=pandora-kernel.git usb: gadget: uvc: fix error path in uvc_function_bind() The "video->minor = -1" assigment is done in V4L2 by video_register_device() so it is removed here. Now. uvc_function_bind() calls in error case uvc_function_unbind() for cleanup. The problem is that uvc_function_unbind() frees the uvc struct and uvc_bind_config() does as well in error case of usb_add_function(). Removing kfree() in usb_add_function() would make the patch smaller but it would look odd because the new allocated memory is not cleaned up. However it is not guaranteed that if we call usb_add_function() we also get to the bind function. Therefore the patch extracts the conditional cleanup from uvc_function_unbind() applies to uvc_function_bind(). uvc_function_unbind() now contains only the complete cleanup which is required once everything has been registrated. Cc: Laurent Pinchart Cc: Bhupesh Sharma Cc: stable Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Felipe Balbi --- Reading git-diff-tree failed