Greg, if at all possible, could you please include the patch below, with an Acked-by: Tilman Schmidt tacked on? It applies fine to 2.6.27.31. Thanks a lot in advance, Tilman ---- original message follows ---- Message-ID: <4A9524BE.3060508@canonical.com> Date: Wed, 26 Aug 2009 14:04:14 +0200 From: Stefan Bader To: stable@kernel.org CC: Tilman Schmidt , "David S. Miller" , Signed-off-by: Greg Kroah-Hartman Subject: [PATCH] Fix incorrect stable backport to bas_gigaset patch This seems to affect 2.6.27.y and (discontinued) 2.6.28.y. Some code went into gigaset_probe instead of gigaset_initcshw causing an oops when the hardware is probed. [I added one pr_err statement from upstream, too) -Stefan From 944fd2dab4173cea4fdcd50732529639ec00cf5d Mon Sep 17 00:00:00 2001 From: Stefan Bader Date: Tue, 25 Aug 2009 17:35:56 +0200 Subject: [PATCH] UBUNTU: SAUCE: 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 --- 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.5.4.3 -- Tilman Schmidt E-Mail: tilman@imap.cc Bonn, Germany Diese Nachricht besteht zu 100% aus wiederverwerteten Bits. Ungeöffnet mindestens haltbar bis: (siehe Rückseite)