>From 55559d69f6a84ae295e8a1b0cbabc7d6c7e5f18a Mon Sep 17 00:00:00 2001 From: Stefan Bader Date: Tue, 25 Aug 2009 17:35:56 +0200 Subject: [PATCH] Fix incorrect stable backport to bas_gigaset BugLink: http://bugs.launchpad.net/bugs/417732 commit 56f7efe48d57dda9e59e23ab161c118271cce815 Author: Tilman Schmidt Date: Wed Apr 15 03:25:43 2009 -0700 bas_gigaset: correctly allocate USB interrupt transfer buffer [ Upstream commit 170ebf85160dd128e1c4206cc197cce7d1424705 ] This incorrect backport to 2.6.28.10 placed some code into the probe function which used a pointer before it was initialized. Moving this to the correct place (as it is in upstream). Signed-off-by: Stefan Bader Acked-by: Tim Gardner Acked-by: Steve Conklin --- drivers/isdn/gigaset/bas-gigaset.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c index fcec2df..3990eae 100644 --- a/drivers/isdn/gigaset/bas-gigaset.c +++ b/drivers/isdn/gigaset/bas-gigaset.c @@ -2140,8 +2140,16 @@ static int gigaset_initcshw(struct cardstate *cs) struct bas_cardstate *ucs; cs->hw.bas = ucs = kmalloc(sizeof *ucs, GFP_KERNEL); - if (!ucs) + if (!ucs) { + pr_err("out of memory\n"); + return 0; + } + ucs->int_in_buf = kmalloc(IP_MSGSIZE, GFP_KERNEL); + if (!ucs->int_in_buf) { + kfree(ucs); + pr_err("out of memory\n"); return 0; + } ucs->urb_cmd_in = NULL; ucs->urb_cmd_out = NULL; @@ -2236,12 +2244,6 @@ static int gigaset_probe(struct usb_interface *interface, } hostif = interface->cur_altsetting; } - ucs->int_in_buf = kmalloc(IP_MSGSIZE, GFP_KERNEL); - if (!ucs->int_in_buf) { - kfree(ucs); - pr_err("out of memory\n"); - return 0; - } /* Reject application specific interfaces */ -- 1.6.0.4