proc_create() may fail, if so return -ENOMEM. Signed-off-by: Kulikov Vasiliy <segooon@xxxxxxxxx> --- drivers/usb/gadget/omap_udc.c | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c index f81e4f0..1083216 100644 --- a/drivers/usb/gadget/omap_udc.c +++ b/drivers/usb/gadget/omap_udc.c @@ -2544,9 +2544,9 @@ static const struct file_operations proc_ops = { .release = single_release, }; -static void create_proc_file(void) +static int create_proc_file(void) { - proc_create(proc_filename, 0, NULL, &proc_ops); + return (proc_create(proc_filename, 0, NULL, &proc_ops) == NULL); } static void remove_proc_file(void) @@ -2556,7 +2556,7 @@ static void remove_proc_file(void) #else -static inline void create_proc_file(void) {} +static inline int create_proc_file(void) { return 0; } static inline void remove_proc_file(void) {} #endif @@ -2998,13 +2998,19 @@ known: #endif } - create_proc_file(); + if (create_proc_file()) { + status = -ENOMEM; + goto cleanup3; + } + status = device_add(&udc->gadget.dev); if (!status) return status; /* If fail, fall through */ -#ifdef USE_ISO + + remove_proc_file(); cleanup3: +#ifdef USE_ISO free_irq(pdev->resource[2].start, udc); #endif -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html