Prev: [PATCH 1/7] 68328serial: check return value of copy_*_user() instead of access_ok()
Next: [PATCH 3/7] usb: goku_udc: fix error path
From: Kulikov Vasiliy on 31 Jul 2010 13:40 proc_create() may fail, if so return -ENOMEM. Signed-off-by: Kulikov Vasiliy <segooon(a)gmail.com> --- 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-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |