mirror of
https://github.com/torvalds/linux.git
synced 2024-12-21 02:21:36 +00:00
usb: urgent fixes for v3.10 merge window
Here are some late urgent fixes for v3.10 merge window. All of these errors were introduced by recent commits which are in linux-next. f_obex, multi and cdc2 gadget drivers have learned to return a proper error code when something goes wrong. usb_bind_phy() was mistakenly placed into .init.text section which caused Section mismatch warnings and undefined reference compile errors. f_source_sink had a copy-paste error which is now corrected. g_zero got a memory leak plugged. Two defconfigs got fixed to enable the newly introduced CONFIG_USB_PHY. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJRdnDhAAoJEIaOsuA1yqRE2UoP/RakEoDFlC58D1FtiKYtedT+ /dyq6BA0riqLcOXbLKtvgG58G7KZGKzMWxCvsGALrbUSWRjRptN7Z7okx0onJgPr Wfc6tgJwEQdBaH25FYWDJSZ+zoB7l+LYuEO5XstFE6A26Fa4xKudEf6OFr5/odgm DRxwV0dOSsNzw9zjrDoTnEfLJe8aolGkQNOf/1FUCpLNGFRBt9qg1uMOs5P7bKdp M544LVQSXjwWlqW1oyysUXBbjQtCK2QvELqa+3EK8yMCQQZ27lJzdgHml02NbyfE ktoNB8w9hv4xxUIICgWcWQGPpx/1keE4K0xIycRpCTfQobNOcLv1gzxlZBmaXKQE uBUnXqZ52DgSRMEBmqOOuZqvy5fYOX2e5WRlZNlXAYtnHWMTVf86SwHSr1EWhP7M JLv2dvukagfkg6vlim4pkLEesLEqdzDK3aUMHCYZTQSTATUrV81CAeXZp1ZGVqCw y8jF+UPGTCfnar9V9sGBWmye8Aj5Y1XMacWxsrUNiWXgI4kUTyFK3wwGKbeCihyI z8uZnkTSTUck95S67UBol2dnAyJaEi5N+ttEW8TTyWmCkXmbCORT7wj8CQ6RAMnF 3cLRhU1BKqENaRaBYvVPH28kNSmjNxHQFoxesfDVmzzqUoEvVnzRP+NqLi8y3aSl 5HO3rg8pSc2j056sLLg9 =UKZz -----END PGP SIGNATURE----- Merge tag 'usb-for-v3.10-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next Felipe writes: usb: urgent fixes for v3.10 merge window Here are some late urgent fixes for v3.10 merge window. All of these errors were introduced by recent commits which are in linux-next. f_obex, multi and cdc2 gadget drivers have learned to return a proper error code when something goes wrong. usb_bind_phy() was mistakenly placed into .init.text section which caused Section mismatch warnings and undefined reference compile errors. f_source_sink had a copy-paste error which is now corrected. g_zero got a memory leak plugged. Two defconfigs got fixed to enable the newly introduced CONFIG_USB_PHY.
This commit is contained in:
commit
0b9b6df9ee
@ -188,6 +188,7 @@ CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_MXC=y
|
||||
CONFIG_USB_CHIPIDEA=y
|
||||
CONFIG_USB_CHIPIDEA_HOST=y
|
||||
CONFIG_USB_PHY=y
|
||||
CONFIG_USB_MXS_PHY=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_MMC=y
|
||||
|
@ -120,6 +120,7 @@ CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_CHIPIDEA=y
|
||||
CONFIG_USB_CHIPIDEA_HOST=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_USB_PHY=y
|
||||
CONFIG_USB_MXS_PHY=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_MXS=y
|
||||
|
@ -129,8 +129,10 @@ static int __init cdc_do_config(struct usb_configuration *c)
|
||||
return PTR_ERR(fi_serial);
|
||||
|
||||
f_acm = usb_get_function(fi_serial);
|
||||
if (IS_ERR(f_acm))
|
||||
if (IS_ERR(f_acm)) {
|
||||
status = PTR_ERR(f_acm);
|
||||
goto err_func_acm;
|
||||
}
|
||||
|
||||
status = usb_add_function(c, f_acm);
|
||||
if (status)
|
||||
|
@ -348,6 +348,7 @@ static int obex_bind(struct usb_configuration *c, struct usb_function *f)
|
||||
|
||||
/* allocate instance-specific endpoints */
|
||||
|
||||
status = -ENODEV;
|
||||
ep = usb_ep_autoconfig(cdev->gadget, &obex_fs_ep_in_desc);
|
||||
if (!ep)
|
||||
goto fail;
|
||||
|
@ -898,7 +898,7 @@ static struct usb_function *source_sink_alloc_func(
|
||||
return &ss->function;
|
||||
}
|
||||
|
||||
static void acm_free_instance(struct usb_function_instance *fi)
|
||||
static void source_sink_free_instance(struct usb_function_instance *fi)
|
||||
{
|
||||
struct f_ss_opts *ss_opts;
|
||||
|
||||
@ -913,7 +913,7 @@ static struct usb_function_instance *source_sink_alloc_inst(void)
|
||||
ss_opts = kzalloc(sizeof(*ss_opts), GFP_KERNEL);
|
||||
if (!ss_opts)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
ss_opts->func_inst.free_func_inst = acm_free_instance;
|
||||
ss_opts->func_inst.free_func_inst = source_sink_free_instance;
|
||||
return &ss_opts->func_inst;
|
||||
}
|
||||
DECLARE_USB_FUNCTION(SourceSink, source_sink_alloc_inst,
|
||||
|
@ -157,8 +157,10 @@ static __init int rndis_do_config(struct usb_configuration *c)
|
||||
return ret;
|
||||
|
||||
f_acm_rndis = usb_get_function(fi_acm);
|
||||
if (IS_ERR(f_acm_rndis))
|
||||
if (IS_ERR(f_acm_rndis)) {
|
||||
ret = PTR_ERR(f_acm_rndis);
|
||||
goto err_func_acm;
|
||||
}
|
||||
|
||||
ret = usb_add_function(c, f_acm_rndis);
|
||||
if (ret)
|
||||
|
@ -368,8 +368,10 @@ static int zero_unbind(struct usb_composite_dev *cdev)
|
||||
del_timer_sync(&autoresume_timer);
|
||||
if (!IS_ERR_OR_NULL(func_ss))
|
||||
usb_put_function(func_ss);
|
||||
usb_put_function_instance(func_inst_ss);
|
||||
if (!IS_ERR_OR_NULL(func_lb))
|
||||
usb_put_function(func_lb);
|
||||
usb_put_function_instance(func_inst_lb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -413,7 +413,7 @@ EXPORT_SYMBOL_GPL(usb_remove_phy);
|
||||
*
|
||||
* To be used by platform specific initialization code.
|
||||
*/
|
||||
int __init usb_bind_phy(const char *dev_name, u8 index,
|
||||
int usb_bind_phy(const char *dev_name, u8 index,
|
||||
const char *phy_dev_name)
|
||||
{
|
||||
struct usb_phy_bind *phy_bind;
|
||||
|
Loading…
Reference in New Issue
Block a user