Re: [patch 00/48] 2.6.27.32-stable review

From: Tilman Schmidt
Date: Sun Sep 06 2009 - 18:59:13 EST


Greg,

if at all possible, could you please include the patch below, with an

Acked-by: Tilman Schmidt <tilman@xxxxxxx>

tacked on? It applies fine to 2.6.27.31.

Thanks a lot in advance,
Tilman

---- original message follows ----
Message-ID: <4A9524BE.3060508@xxxxxxxxxxxxx>
Date: Wed, 26 Aug 2009 14:04:14 +0200
From: Stefan Bader <stefan.bader@xxxxxxxxxxxxx>
To: stable@xxxxxxxxxx
CC: Tilman Schmidt <tilman@xxxxxxx>,
"David S. Miller" <davem@xxxxxxxxxxxxx>,
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
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 <stefan.bader@xxxxxxxxxxxxx>
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 <tilman@xxxxxxx>
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 <stefan.bader@xxxxxxxxxxxxx>
---
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@xxxxxxx
Bonn, Germany
Diese Nachricht besteht zu 100% aus wiederverwerteten Bits.
Ungeöffnet mindestens haltbar bis: (siehe Rückseite)

Attachment: signature.asc
Description: OpenPGP digital signature