public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
	akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
	Tilman Schmidt <tilman@imap.cc>,
	"David S. Miller" <davem@davemloft.net>
Subject: [160/205] isdn/gigaset: honor CAPI applications buffer size request
Date: Fri, 30 Jul 2010 10:52:57 -0700	[thread overview]
Message-ID: <20100730175148.493550802@clark.site> (raw)
In-Reply-To: <20100730175238.GA3924@kroah.com>

2.6.34-stable review patch.  If anyone has any objections, please let us know.

------------------

From: Tilman Schmidt <tilman@imap.cc>

commit e7752ee280608a24e27f163641121bdc2c68d6af upstream.

Fix the Gigaset CAPI driver to limit the length of a connection's
payload data receive buffers to the corresponding CAPI application's
data buffer size, as some real-life CAPI applications tend to be
rather unhappy if they receive bigger data blocks than requested.

Impact: bugfix
Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/isdn/gigaset/asyncdata.c |   44 +++++------------------
 drivers/isdn/gigaset/capi.c      |    8 ++++
 drivers/isdn/gigaset/common.c    |   32 ++++-------------
 drivers/isdn/gigaset/gigaset.h   |   29 +++++++++++----
 drivers/isdn/gigaset/i4l.c       |   21 +++++++++++
 drivers/isdn/gigaset/isocdata.c  |   72 +++++++++++++--------------------------
 6 files changed, 94 insertions(+), 112 deletions(-)

--- a/drivers/isdn/gigaset/asyncdata.c
+++ b/drivers/isdn/gigaset/asyncdata.c
@@ -126,26 +126,6 @@ static unsigned lock_loop(unsigned numby
 	return numbytes;
 }
 
-/* set up next receive skb for data mode
- */
-static void new_rcv_skb(struct bc_state *bcs)
-{
-	struct cardstate *cs = bcs->cs;
-	unsigned short hw_hdr_len = cs->hw_hdr_len;
-
-	if (bcs->ignore) {
-		bcs->skb = NULL;
-		return;
-	}
-
-	bcs->skb = dev_alloc_skb(SBUFSIZE + hw_hdr_len);
-	if (bcs->skb == NULL) {
-		dev_warn(cs->dev, "could not allocate new skb\n");
-		return;
-	}
-	skb_reserve(bcs->skb, hw_hdr_len);
-}
-
 /* process a block of received bytes in HDLC data mode
  * (mstate != MS_LOCKED && !(inputstate & INS_command) && proto2 == L2_HDLC)
  * Collect HDLC frames, undoing byte stuffing and watching for DLE escapes.
@@ -159,8 +139,8 @@ static unsigned hdlc_loop(unsigned numby
 	struct cardstate *cs = inbuf->cs;
 	struct bc_state *bcs = cs->bcs;
 	int inputstate = bcs->inputstate;
-	__u16 fcs = bcs->fcs;
-	struct sk_buff *skb = bcs->skb;
+	__u16 fcs = bcs->rx_fcs;
+	struct sk_buff *skb = bcs->rx_skb;
 	unsigned char *src = inbuf->data + inbuf->head;
 	unsigned procbytes = 0;
 	unsigned char c;
@@ -245,8 +225,7 @@ byte_stuff:
 
 				/* prepare reception of next frame */
 				inputstate &= ~INS_have_data;
-				new_rcv_skb(bcs);
-				skb = bcs->skb;
+				skb = gigaset_new_rx_skb(bcs);
 			} else {
 				/* empty frame (7E 7E) */
 #ifdef CONFIG_GIGASET_DEBUG
@@ -255,8 +234,7 @@ byte_stuff:
 				if (!skb) {
 					/* skipped (?) */
 					gigaset_isdn_rcv_err(bcs);
-					new_rcv_skb(bcs);
-					skb = bcs->skb;
+					skb = gigaset_new_rx_skb(bcs);
 				}
 			}
 
@@ -279,11 +257,11 @@ byte_stuff:
 #endif
 		inputstate |= INS_have_data;
 		if (skb) {
-			if (skb->len == SBUFSIZE) {
+			if (skb->len >= bcs->rx_bufsize) {
 				dev_warn(cs->dev, "received packet too long\n");
 				dev_kfree_skb_any(skb);
 				/* skip remainder of packet */
-				bcs->skb = skb = NULL;
+				bcs->rx_skb = skb = NULL;
 			} else {
 				*__skb_put(skb, 1) = c;
 				fcs = crc_ccitt_byte(fcs, c);
@@ -292,7 +270,7 @@ byte_stuff:
 	}
 
 	bcs->inputstate = inputstate;
-	bcs->fcs = fcs;
+	bcs->rx_fcs = fcs;
 	return procbytes;
 }
 
@@ -308,18 +286,18 @@ static unsigned iraw_loop(unsigned numby
 	struct cardstate *cs = inbuf->cs;
 	struct bc_state *bcs = cs->bcs;
 	int inputstate = bcs->inputstate;
-	struct sk_buff *skb = bcs->skb;
+	struct sk_buff *skb = bcs->rx_skb;
 	unsigned char *src = inbuf->data + inbuf->head;
 	unsigned procbytes = 0;
 	unsigned char c;
 
 	if (!skb) {
 		/* skip this block */
-		new_rcv_skb(bcs);
+		gigaset_new_rx_skb(bcs);
 		return numbytes;
 	}
 
-	while (procbytes < numbytes && skb->len < SBUFSIZE) {
+	while (procbytes < numbytes && skb->len < bcs->rx_bufsize) {
 		c = *src++;
 		procbytes++;
 
@@ -343,7 +321,7 @@ static unsigned iraw_loop(unsigned numby
 	if (inputstate & INS_have_data) {
 		gigaset_skb_rcvd(bcs, skb);
 		inputstate &= ~INS_have_data;
-		new_rcv_skb(bcs);
+		gigaset_new_rx_skb(bcs);
 	}
 
 	bcs->inputstate = inputstate;
--- a/drivers/isdn/gigaset/capi.c
+++ b/drivers/isdn/gigaset/capi.c
@@ -80,6 +80,7 @@ struct gigaset_capi_appl {
 	struct list_head ctrlist;
 	struct gigaset_capi_appl *bcnext;
 	u16 id;
+	struct capi_register_params rp;
 	u16 nextMessageNumber;
 	u32 listenInfoMask;
 	u32 listenCIPmask;
@@ -956,6 +957,7 @@ static void gigaset_register_appl(struct
 		return;
 	}
 	ap->id = appl;
+	ap->rp = *rp;
 
 	list_add(&ap->ctrlist, &iif->appls);
 }
@@ -1177,6 +1179,9 @@ static void do_connect_req(struct gigase
 	}
 	ap->bcnext = NULL;
 	bcs->ap = ap;
+	bcs->rx_bufsize = ap->rp.datablklen;
+	dev_kfree_skb(bcs->rx_skb);
+	gigaset_new_rx_skb(bcs);
 	cmsg->adr.adrPLCI |= (bcs->channel + 1) << 8;
 
 	/* build command table */
@@ -1446,6 +1451,9 @@ static void do_connect_resp(struct gigas
 					CapiCallGivenToOtherApplication);
 		ap->bcnext = NULL;
 		bcs->ap = ap;
+		bcs->rx_bufsize = ap->rp.datablklen;
+		dev_kfree_skb(bcs->rx_skb);
+		gigaset_new_rx_skb(bcs);
 		bcs->chstate |= CHS_NOTIFY_LL;
 
 		/* check/encode B channel protocol */
--- a/drivers/isdn/gigaset/common.c
+++ b/drivers/isdn/gigaset/common.c
@@ -399,8 +399,8 @@ static void gigaset_freebcs(struct bc_st
 	gig_dbg(DEBUG_INIT, "clearing bcs[%d]->at_state", bcs->channel);
 	clear_at_state(&bcs->at_state);
 	gig_dbg(DEBUG_INIT, "freeing bcs[%d]->skb", bcs->channel);
-	dev_kfree_skb(bcs->skb);
-	bcs->skb = NULL;
+	dev_kfree_skb(bcs->rx_skb);
+	bcs->rx_skb = NULL;
 
 	for (i = 0; i < AT_NUM; ++i) {
 		kfree(bcs->commands[i]);
@@ -634,19 +634,10 @@ static struct bc_state *gigaset_initbcs(
 	bcs->emptycount = 0;
 #endif
 
-	gig_dbg(DEBUG_INIT, "allocating bcs[%d]->skb", channel);
-	bcs->fcs = PPP_INITFCS;
+	bcs->rx_bufsize = 0;
+	bcs->rx_skb = NULL;
+	bcs->rx_fcs = PPP_INITFCS;
 	bcs->inputstate = 0;
-	if (cs->ignoreframes) {
-		bcs->skb = NULL;
-	} else {
-		bcs->skb = dev_alloc_skb(SBUFSIZE + cs->hw_hdr_len);
-		if (bcs->skb != NULL)
-			skb_reserve(bcs->skb, cs->hw_hdr_len);
-		else
-			pr_err("out of memory\n");
-	}
-
 	bcs->channel = channel;
 	bcs->cs = cs;
 
@@ -663,11 +654,6 @@ static struct bc_state *gigaset_initbcs(
 		return bcs;
 
 	gig_dbg(DEBUG_INIT, "  failed");
-
-	gig_dbg(DEBUG_INIT, "  freeing bcs[%d]->skb", channel);
-	dev_kfree_skb(bcs->skb);
-	bcs->skb = NULL;
-
 	return NULL;
 }
 
@@ -839,14 +825,12 @@ void gigaset_bcs_reinit(struct bc_state
 	bcs->emptycount = 0;
 #endif
 
-	bcs->fcs = PPP_INITFCS;
+	bcs->rx_fcs = PPP_INITFCS;
 	bcs->chstate = 0;
 
 	bcs->ignore = cs->ignoreframes;
-	if (bcs->ignore) {
-		dev_kfree_skb(bcs->skb);
-		bcs->skb = NULL;
-	}
+	dev_kfree_skb(bcs->rx_skb);
+	bcs->rx_skb = NULL;
 
 	cs->ops->reinitbcshw(bcs);
 }
--- a/drivers/isdn/gigaset/gigaset.h
+++ b/drivers/isdn/gigaset/gigaset.h
@@ -45,10 +45,6 @@
 #define MAX_EVENTS 64		/* size of event queue */
 
 #define RBUFSIZE 8192
-#define SBUFSIZE 4096		/* sk_buff payload size */
-
-#define TRANSBUFSIZE 768	/* bytes per skb for transparent receive */
-#define MAX_BUF_SIZE (SBUFSIZE - 2)	/* Max. size of a data packet from LL */
 
 /* compile time options */
 #define GIG_MAJOR 0
@@ -380,8 +376,10 @@ struct bc_state {
 
 	struct at_state_t at_state;
 
-	__u16 fcs;
-	struct sk_buff *skb;
+	/* receive buffer */
+	unsigned rx_bufsize;		/* max size accepted by application */
+	struct sk_buff *rx_skb;
+	__u16 rx_fcs;
 	int inputstate;			/* see INS_XXXX */
 
 	int channel;
@@ -801,8 +799,23 @@ static inline void gigaset_bchannel_up(s
 	gigaset_schedule_event(bcs->cs);
 }
 
-/* handling routines for sk_buff */
-/* ============================= */
+/* set up next receive skb for data mode */
+static inline struct sk_buff *gigaset_new_rx_skb(struct bc_state *bcs)
+{
+	struct cardstate *cs = bcs->cs;
+	unsigned short hw_hdr_len = cs->hw_hdr_len;
+
+	if (bcs->ignore) {
+		bcs->rx_skb = NULL;
+	} else {
+		bcs->rx_skb = dev_alloc_skb(bcs->rx_bufsize + hw_hdr_len);
+		if (bcs->rx_skb == NULL)
+			dev_warn(cs->dev, "could not allocate skb\n");
+		else
+			skb_reserve(bcs->rx_skb, hw_hdr_len);
+	}
+	return bcs->rx_skb;
+}
 
 /* append received bytes to inbuf */
 int gigaset_fill_inbuf(struct inbuf_t *inbuf, const unsigned char *src,
--- a/drivers/isdn/gigaset/i4l.c
+++ b/drivers/isdn/gigaset/i4l.c
@@ -16,7 +16,10 @@
 #include "gigaset.h"
 #include <linux/isdnif.h>
 
+#define SBUFSIZE	4096	/* sk_buff payload size */
+#define TRANSBUFSIZE	768	/* bytes per skb for transparent receive */
 #define HW_HDR_LEN	2	/* Header size used to store ack info */
+#define MAX_BUF_SIZE	(SBUFSIZE - HW_HDR_LEN)	/* max data packet from LL */
 
 /* == Handling of I4L IO =====================================================*/
 
@@ -231,6 +234,15 @@ static int command_from_LL(isdn_ctrl *cn
 			dev_err(cs->dev, "ISDN_CMD_DIAL: channel not free\n");
 			return -EBUSY;
 		}
+		switch (bcs->proto2) {
+		case L2_HDLC:
+			bcs->rx_bufsize = SBUFSIZE;
+			break;
+		default:			/* assume transparent */
+			bcs->rx_bufsize = TRANSBUFSIZE;
+		}
+		dev_kfree_skb(bcs->rx_skb);
+		gigaset_new_rx_skb(bcs);
 
 		commands = kzalloc(AT_NUM*(sizeof *commands), GFP_ATOMIC);
 		if (!commands) {
@@ -314,6 +326,15 @@ static int command_from_LL(isdn_ctrl *cn
 			return -EINVAL;
 		}
 		bcs = cs->bcs + ch;
+		switch (bcs->proto2) {
+		case L2_HDLC:
+			bcs->rx_bufsize = SBUFSIZE;
+			break;
+		default:			/* assume transparent */
+			bcs->rx_bufsize = TRANSBUFSIZE;
+		}
+		dev_kfree_skb(bcs->rx_skb);
+		gigaset_new_rx_skb(bcs);
 		if (!gigaset_add_event(cs, &bcs->at_state,
 				       EV_ACCEPT, NULL, 0, NULL))
 			return -ENOMEM;
--- a/drivers/isdn/gigaset/isocdata.c
+++ b/drivers/isdn/gigaset/isocdata.c
@@ -500,19 +500,18 @@ int gigaset_isoc_buildframe(struct bc_st
  */
 static inline void hdlc_putbyte(unsigned char c, struct bc_state *bcs)
 {
-	bcs->fcs = crc_ccitt_byte(bcs->fcs, c);
-	if (unlikely(bcs->skb == NULL)) {
+	bcs->rx_fcs = crc_ccitt_byte(bcs->rx_fcs, c);
+	if (bcs->rx_skb == NULL)
 		/* skipping */
 		return;
-	}
-	if (unlikely(bcs->skb->len == SBUFSIZE)) {
+	if (bcs->rx_skb->len >= bcs->rx_bufsize) {
 		dev_warn(bcs->cs->dev, "received oversized packet discarded\n");
 		bcs->hw.bas->giants++;
-		dev_kfree_skb_any(bcs->skb);
-		bcs->skb = NULL;
+		dev_kfree_skb_any(bcs->rx_skb);
+		bcs->rx_skb = NULL;
 		return;
 	}
-	*__skb_put(bcs->skb, 1) = c;
+	*__skb_put(bcs->rx_skb, 1) = c;
 }
 
 /* hdlc_flush
@@ -521,18 +520,13 @@ static inline void hdlc_putbyte(unsigned
 static inline void hdlc_flush(struct bc_state *bcs)
 {
 	/* clear skb or allocate new if not skipping */
-	if (likely(bcs->skb != NULL))
-		skb_trim(bcs->skb, 0);
-	else if (!bcs->ignore) {
-		bcs->skb = dev_alloc_skb(SBUFSIZE + bcs->cs->hw_hdr_len);
-		if (bcs->skb)
-			skb_reserve(bcs->skb, bcs->cs->hw_hdr_len);
-		else
-			dev_err(bcs->cs->dev, "could not allocate skb\n");
-	}
+	if (bcs->rx_skb != NULL)
+		skb_trim(bcs->rx_skb, 0);
+	else
+		gigaset_new_rx_skb(bcs);
 
 	/* reset packet state */
-	bcs->fcs = PPP_INITFCS;
+	bcs->rx_fcs = PPP_INITFCS;
 }
 
 /* hdlc_done
@@ -549,7 +543,7 @@ static inline void hdlc_done(struct bc_s
 		hdlc_flush(bcs);
 		return;
 	}
-	procskb = bcs->skb;
+	procskb = bcs->rx_skb;
 	if (procskb == NULL) {
 		/* previous error */
 		gig_dbg(DEBUG_ISO, "%s: skb=NULL", __func__);
@@ -560,8 +554,8 @@ static inline void hdlc_done(struct bc_s
 		bcs->hw.bas->runts++;
 		dev_kfree_skb_any(procskb);
 		gigaset_isdn_rcv_err(bcs);
-	} else if (bcs->fcs != PPP_GOODFCS) {
-		dev_notice(cs->dev, "frame check error (0x%04x)\n", bcs->fcs);
+	} else if (bcs->rx_fcs != PPP_GOODFCS) {
+		dev_notice(cs->dev, "frame check error\n");
 		bcs->hw.bas->fcserrs++;
 		dev_kfree_skb_any(procskb);
 		gigaset_isdn_rcv_err(bcs);
@@ -574,13 +568,8 @@ static inline void hdlc_done(struct bc_s
 		bcs->hw.bas->goodbytes += len;
 		gigaset_skb_rcvd(bcs, procskb);
 	}
-
-	bcs->skb = dev_alloc_skb(SBUFSIZE + cs->hw_hdr_len);
-	if (bcs->skb)
-		skb_reserve(bcs->skb, cs->hw_hdr_len);
-	else
-		dev_err(cs->dev, "could not allocate skb\n");
-	bcs->fcs = PPP_INITFCS;
+	gigaset_new_rx_skb(bcs);
+	bcs->rx_fcs = PPP_INITFCS;
 }
 
 /* hdlc_frag
@@ -597,8 +586,8 @@ static inline void hdlc_frag(struct bc_s
 	dev_notice(bcs->cs->dev, "received partial byte (%d bits)\n", inbits);
 	bcs->hw.bas->alignerrs++;
 	gigaset_isdn_rcv_err(bcs);
-	__skb_trim(bcs->skb, 0);
-	bcs->fcs = PPP_INITFCS;
+	__skb_trim(bcs->rx_skb, 0);
+	bcs->rx_fcs = PPP_INITFCS;
 }
 
 /* bit counts lookup table for HDLC bit unstuffing
@@ -847,7 +836,6 @@ static inline void hdlc_unpack(unsigned
 static inline void trans_receive(unsigned char *src, unsigned count,
 				 struct bc_state *bcs)
 {
-	struct cardstate *cs = bcs->cs;
 	struct sk_buff *skb;
 	int dobytes;
 	unsigned char *dst;
@@ -857,17 +845,11 @@ static inline void trans_receive(unsigne
 		hdlc_flush(bcs);
 		return;
 	}
-	skb = bcs->skb;
-	if (unlikely(skb == NULL)) {
-		bcs->skb = skb = dev_alloc_skb(SBUFSIZE + cs->hw_hdr_len);
-		if (!skb) {
-			dev_err(cs->dev, "could not allocate skb\n");
-			return;
-		}
-		skb_reserve(skb, cs->hw_hdr_len);
-	}
+	skb = bcs->rx_skb;
+	if (skb == NULL)
+		skb = gigaset_new_rx_skb(bcs);
 	bcs->hw.bas->goodbytes += skb->len;
-	dobytes = TRANSBUFSIZE - skb->len;
+	dobytes = bcs->rx_bufsize - skb->len;
 	while (count > 0) {
 		dst = skb_put(skb, count < dobytes ? count : dobytes);
 		while (count > 0 && dobytes > 0) {
@@ -879,14 +861,10 @@ static inline void trans_receive(unsigne
 			dump_bytes(DEBUG_STREAM_DUMP,
 				   "rcv data", skb->data, skb->len);
 			gigaset_skb_rcvd(bcs, skb);
-			bcs->skb = skb =
-				dev_alloc_skb(SBUFSIZE + cs->hw_hdr_len);
-			if (!skb) {
-				dev_err(cs->dev, "could not allocate skb\n");
+			skb = gigaset_new_rx_skb(bcs);
+			if (skb == NULL)
 				return;
-			}
-			skb_reserve(skb, cs->hw_hdr_len);
-			dobytes = TRANSBUFSIZE;
+			dobytes = bcs->rx_bufsize;
 		}
 	}
 }



  parent reply	other threads:[~2010-07-30 18:12 UTC|newest]

Thread overview: 206+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-30 17:52 [000/205] 2.6.34.2-rc1 stable review Greg KH
2010-07-30 17:50 ` [001/205] virtio-pci: disable msi at startup Greg KH
2010-07-30 17:50 ` [002/205] virtio: return ENOMEM on out of memory Greg KH
2010-07-30 17:50 ` [003/205] virtio_net: do not reschedule rx refill forever Greg KH
2010-07-30 17:50 ` [004/205] bridge: fdb cleanup runs too often Greg KH
2010-07-30 17:50 ` [005/205] net/dccp: expansion of error code size Greg KH
2010-07-30 17:50 ` [006/205] gro: Fix bogus gso_size on the first fraglist entry Greg KH
2010-07-30 17:50 ` [007/205] IPv6: fix Mobile IPv6 regression Greg KH
2010-07-30 17:50 ` [008/205] pegasus: fix USB device ID for ETX-US2 Greg KH
2010-07-30 17:50 ` [009/205] r8169: fix random mdio_write failures Greg KH
2010-07-30 17:50 ` [010/205] r8169: fix mdio_read and update mdio_write according to hw specs Greg KH
2010-07-30 17:50 ` [011/205] tcp: tcp_synack_options() fix Greg KH
2010-07-30 17:50 ` [012/205] tcp: use correct net ns in cookie_v4_check() Greg KH
2010-07-30 17:50 ` [013/205] usbnet: Set parent device early for netdev_printk() Greg KH
2010-07-30 17:50 ` [014/205] fix mis-applied upstream commit ac9721f3f54b27a16c7e1afb2481e7ee95a70318 Greg KH
2010-07-30 17:50 ` [015/205] ssb: Handle Netbook devices where the SPROM address is changed Greg KH
2010-07-30 17:50 ` [016/205] hwmon: (k8temp) Bypass core swapping on single-core processors Greg KH
2010-07-30 17:50 ` [017/205] hwmon: (k8temp) Fix temperature reporting for ASB1 processor revisions Greg KH
2010-07-30 17:50 ` [018/205] hwmon: (i5k_amb) Fix sysfs attribute for lockdep Greg KH
2010-07-30 17:50 ` [019/205] hwmon: (k10temp) Do not blacklist known working CPU models Greg KH
2010-07-30 17:50 ` [020/205] hwmon: (coretemp) Properly label the sensors Greg KH
2010-07-30 17:50 ` [021/205] hwmon: (coretemp) Skip duplicate CPU entries Greg KH
2010-07-30 17:50 ` [022/205] hwmon: (it87) Fix in7 on IT8720F Greg KH
2010-07-30 17:50 ` [023/205] cifs: remove bogus first_time check in NTLMv2 session setup code Greg KH
2010-07-30 17:50 ` [024/205] cifs: dont attempt busy-file rename unless its in same directory Greg KH
2010-07-30 17:50 ` [025/205] CIFS: Fix a malicious redirect problem in the DNS lookup code Greg KH
2010-07-30 17:50 ` [026/205] ALSA: hda - Dont check capture source mixer if no ADC is available Greg KH
2010-07-30 17:50 ` [027/205] ALSA: hda - Add Macbook 5,2 quirk Greg KH
2010-07-30 17:50 ` [028/205] ALSA: hda - Restore cleared pin controls on resume Greg KH
2010-07-30 17:50 ` [029/205] cpmac: do not leak struct net_device on phy_connect errors Greg KH
2010-07-30 17:50 ` [030/205] sky2: Restore multicast after restart Greg KH
2010-07-30 17:50 ` [031/205] sky2: enable rx/tx in sky2_phy_reinit() Greg KH
2010-07-30 17:50 ` [032/205] net: fix problem in reading sock TX queue Greg KH
2010-07-30 17:50 ` [033/205] tcp: fix crash in tcp_xmit_retransmit_queue Greg KH
2010-07-30 17:50 ` [034/205] net/core: neighbour update Oops Greg KH
2010-07-30 17:50 ` [035/205] math-emu: correct test for downshifting fraction in _FP_FROM_INT() Greg KH
2010-07-30 17:50 ` [036/205] cmd640: fix kernel oops in test_irq() method Greg KH
2010-07-30 17:50 ` [037/205] NFSv4: Fix an embarassing typo in encode_attrs() Greg KH
2010-07-30 17:50 ` [038/205] NFSv4: Ensure that /proc/self/mountinfo displays the minor version number Greg KH
2010-07-30 17:50 ` [039/205] SUNRPC: Fix a re-entrancy bug in xs_tcp_read_calldir() Greg KH
2010-07-30 17:50 ` [040/205] powerpc/5200: Fix build error in sound code Greg KH
2010-07-30 17:50 ` [041/205] ath9k: Avoid corrupt frames being forwarded to mac80211 Greg KH
2010-07-30 17:50 ` [042/205] hostap: Protect against initialization interrupt Greg KH
2010-07-30 17:51 ` [043/205] TPM: ReadPubEK output struct fix Greg KH
2010-07-30 17:51 ` [044/205] fb: fix colliding defines for fb flags Greg KH
2010-07-30 17:51 ` [045/205] iwlwifi: cancel scan watchdog in iwl_bg_abort_scan Greg KH
2010-07-30 17:51 ` [046/205] mac80211: do not wip out old supported rates Greg KH
2010-07-30 17:51 ` [047/205] Btrfs: fix checks in BTRFS_IOC_CLONE_RANGE Greg KH
2010-07-30 17:51 ` [048/205] ocfs2: No need to zero pages past i_size Greg KH
2010-07-30 17:51 ` [049/205] ocfs2: When zero extending, do it by page Greg KH
2010-07-30 17:51 ` [050/205] p54pci: add Symbol AP-300 minipci adapters pciid Greg KH
2010-07-30 17:51 ` [051/205] perf_events: Fix Intel Westmere event constraints Greg KH
2010-07-30 17:51 ` [052/205] dynamic debug: move ddebug_remove_module() down into free_module() Greg KH
2010-07-30 17:51 ` [053/205] drm/i915: fix hibernation since i915 self-reclaim fixes Greg KH
2010-07-30 17:51 ` [054/205] drm/i915: dont access FW_BLC_SELF on 965G Greg KH
2010-07-30 17:51 ` [055/205] drm/i915: add reclaimable to i915 self-reclaimable page allocations Greg KH
2010-07-30 17:51 ` [056/205] i915: fix lock imbalance on error path Greg KH
2010-07-30 17:51 ` [057/205] drm/i915: Define MI_ARB_STATE bits Greg KH
2010-07-30 17:51 ` [058/205] drm/i915: enable low power render writes on GEN3 hardware Greg KH
2010-07-30 17:51 ` [059/205] drm/i915: Make G4X-style PLL search more permissive Greg KH
2010-07-30 17:51 ` [060/205] drm/radeon/r200: handle more hw tex coord types Greg KH
2010-07-30 17:51 ` [061/205] drm/radeon/r100/r200: fix calculation of compressed cube maps Greg KH
2010-07-30 17:51 ` [062/205] drm/radeon/kms: fix DP after DPMS cycle Greg KH
2010-07-30 17:51 ` [063/205] drm/radeon/kms: CS checker texture fixes for r1xx/r2xx/r3xx Greg KH
2010-07-30 17:51 ` [064/205] drm/radeon/kms: fix shared ddc handling Greg KH
2010-07-30 17:51 ` [065/205] drm/radeon/kms: fix shared ddc harder Greg KH
2010-07-30 17:51 ` [066/205] drm/radeon/kms: add quirk for ASUS HD 3600 board Greg KH
2010-07-30 17:51 ` [067/205] drm/radeon/kms: fix possible mis-detection of sideport on rs690/rs740 Greg KH
2010-07-30 17:51 ` [068/205] drm/radeon/kms: fix legacy LVDS dpms sequence Greg KH
2010-07-30 17:51 ` [069/205] drm/radeon/kms: fix legacy tv-out pal mode Greg KH
2010-07-30 17:51 ` [070/205] tpm_tis: fix subsequent suspend failures Greg KH
2010-07-30 17:51 ` [071/205] IPv6: keep route for tentative address Greg KH
2010-07-30 17:51 ` [072/205] IPv6: only notify protocols if address is completely gone Greg KH
2010-07-30 17:51 ` [073/205] ipvs: Add missing locking during connection table hashing and unhashing Greg KH
2010-07-30 17:51 ` [074/205] ipv6: fix NULL reference in proxy neighbor discovery Greg KH
2010-07-30 17:51 ` [075/205] netfilter: ip6t_REJECT: fix a dst leak in ipv6 REJECT Greg KH
2010-07-30 17:51 ` [076/205] SCSI: aacraid: Eliminate use after free Greg KH
2010-07-30 17:51 ` [077/205] md: raid10: Fix null pointer dereference in fix_read_error() Greg KH
2010-07-30 17:51 ` [078/205] amd64-agp: Probe unknown AGP devices the right way Greg KH
2010-07-30 17:51 ` [079/205] amd64_edac: Fix syndrome calculation on K8 Greg KH
2010-07-30 17:51 ` [080/205] perf, x86: Fix incorrect branches event on AMD CPUs Greg KH
2010-07-30 17:51 ` [081/205] ARM: 6205/1: perf: ensure counter delta is treated as unsigned Greg KH
2010-07-30 17:51 ` [082/205] perf: Resurrect flat callchains Greg KH
2010-07-30 17:51 ` [083/205] x86: Send a SIGTRAP for user icebp traps Greg KH
2010-07-30 17:51 ` [084/205] x86: Fix vsyscall on gcc 4.5 with -Os Greg KH
2010-07-30 17:51 ` [085/205] x86, Calgary: Increase max PHB number Greg KH
2010-07-30 17:51 ` [086/205] x86, Calgary: Limit the max PHB number to 256 Greg KH
2010-07-30 17:51 ` [087/205] sched: Prevent compiler from optimising the sched_avg_update() loop Greg KH
2010-07-30 17:51 ` [088/205] ipmi: set schedule_timeout_wait() value back to one Greg KH
2010-07-30 17:51 ` [089/205] sched: Fix over-scheduling bug Greg KH
2010-07-30 17:51 ` [090/205] genirq: Deal with desc->set_type() changing desc->chip Greg KH
2010-07-30 17:51 ` [091/205] cfq: Dont allow queue merges for queues that have no process references Greg KH
2010-07-30 17:51 ` [092/205] sysvfs: fix NULL deref. when allocating new inode Greg KH
2010-07-30 17:51 ` [093/205] serial: cpm_uart: implement the cpm_uart_early_write() function for console poll Greg KH
2010-07-30 17:51 ` [094/205] um: os-linux/mem.c needs sys/stat.h Greg KH
2010-07-30 17:51 ` [095/205] compiler-gcc.h: gcc-4.5 needs noclone and noinline on __naked functions Greg KH
2010-07-30 17:51 ` [096/205] rtc: fix ds1388 time corruption Greg KH
2010-07-30 17:51 ` [097/205] ahci,ata_generic: let ata_generic handle new MBP w/ MCP89 Greg KH
2010-07-30 17:51 ` [098/205] ata_generic: implement ATA_GEN_* flags and force enable DMA on MBP 7,1 Greg KH
2010-07-30 17:51 ` [099/205] ethtool: Fix potential kernel buffer overflow in ETHTOOL_GRXCLSRLALL Greg KH
2010-07-30 17:51 ` [100/205] powerpc: Fix logic error in fixup_irqs Greg KH
2010-07-30 17:51 ` [101/205] powerpc/cpm: Reintroduce global spi_pram struct (fixes build issue) Greg KH
2010-07-30 17:51 ` [102/205] powerpc/cpm1: Fix build with various CONFIG_*_UCODE_PATCH combinations Greg KH
2010-07-30 17:52 ` [103/205] kmemleak: Add support for NO_BOOTMEM configurations Greg KH
2010-07-30 17:52 ` [104/205] sdhci-s3c: add missing remove function Greg KH
2010-07-30 17:52 ` [105/205] virtio_net: fix oom handling on tx Greg KH
2010-07-30 17:52 ` [106/205] virtio: fix oops on OOM Greg KH
2010-07-30 17:52 ` [107/205] edac: mpc85xx: fix MPC85xx dependency Greg KH
2010-07-30 17:52 ` [108/205] ASoC: Remove duplicate AUX definition from WM8776 Greg KH
2010-07-30 17:52 ` [109/205] x86,nobootmem: make alloc_bootmem_node fall back to other node when 32bit numa is used Greg KH
2010-07-30 17:52 ` [110/205] Input: gamecon - reference correct input device in NES mode Greg KH
2010-07-30 17:52 ` [111/205] Input: gamecon - reference correct pad in gc_psx_command() Greg KH
2010-07-30 17:52 ` [112/205] x86: Fix x2apic preenabled system with kexec Greg KH
2010-07-30 17:52 ` [113/205] IPoIB: Fix world-writable child interface control sysfs attributes Greg KH
2010-07-30 17:52 ` [114/205] Input: i8042 - add Gigabyte Spring Peak to dmi_noloop_table Greg KH
2010-07-30 17:52 ` [115/205] Input: twl40300-keypad - fix handling of "all ground" rows Greg KH
2010-07-30 17:52 ` [116/205] ARM: 6201/1: RealView: Do not use outer_sync() on ARM11MPCore boards with L220 Greg KH
2010-07-30 17:52 ` [117/205] ARM: 6211/1: atomic ops: fix register constraints for atomic64_add_unless Greg KH
2010-07-30 17:52 ` [118/205] ARM: 6212/1: atomic ops: add memory constraints to inline asm Greg KH
2010-07-30 17:52 ` [119/205] ARM: 6226/1: fix kprobe bug in ldr instruction emulation Greg KH
2010-07-30 17:52 ` [120/205] x86: Do not try to disable hpet if it hasnt been initialized before Greg KH
2010-07-30 17:52 ` [121/205] x86, pci, mrst: Add extra sanity check in walking the PCI extended cap chain Greg KH
2010-07-30 17:52 ` [122/205] x86: kprobes: fix swapped segment registers in kretprobe Greg KH
2010-07-30 17:52 ` [123/205] x86, i8259: Only register sysdev if we have a real 8259 PIC Greg KH
2010-07-30 17:52 ` [124/205] USB: dont enable remote wakeup by default Greg KH
2010-07-30 17:52 ` [125/205] USB: g_serial: dont set low_latency flag Greg KH
2010-07-30 17:52 ` [126/205] USB: g_serial: fix tty cleanup on unload Greg KH
2010-07-30 17:52 ` [127/205] usb: musb: Fix a bug by making suspend interrupt available in device mode Greg KH
2010-07-30 17:52 ` [128/205] USB: ehci-mxc: bail out on transceiver problems Greg KH
2010-07-30 17:52 ` [129/205] USB: obey the sysfs power/wakeup setting Greg KH
2010-07-30 17:52 ` [130/205] USB: musb_core: make disconnect and suspend interrupts work again Greg KH
2010-07-30 17:52 ` [131/205] USB: MUSB: make non-OMAP platforms build with CONFIG_PM=y Greg KH
2010-07-30 17:52 ` [132/205] USB: option: add support for 1da5:4518 Greg KH
2010-07-30 17:52 ` [133/205] USB: Add PID for Sierra 250U to drivers/usb/serial/sierra.c Greg KH
2010-07-30 17:52 ` [134/205] USB: ftdi_sio: support for Signalyzer tools based on FTDI chips Greg KH
2010-07-30 17:52 ` [135/205] USB: option: Add support for AMOI Skypephone S2 Greg KH
2010-07-30 17:52 ` [136/205] USB: Fix USB3.0 Port Speed Downgrade after port reset Greg KH
2010-07-30 17:52 ` [137/205] USB: adds Artisman USB dongle to list of quirky devices Greg KH
2010-07-30 17:52 ` [138/205] USB: sisusbvga: Fix for USB 3.0 Greg KH
2010-07-30 17:52 ` [139/205] USB: xhci: Set Mult field in endpoint context correctly Greg KH
2010-07-30 17:52 ` [140/205] USB: add quirk for Broadcom BT dongle Greg KH
2010-07-30 17:52 ` [141/205] USB: FTDI: Add support for the RT System VX-7 radio programming cable Greg KH
2010-07-30 17:52 ` [142/205] USB: musb: tusb6010: fix compile error with n8x0_defconfig Greg KH
2010-07-30 17:52 ` [143/205] drm/i915: gen3 page flipping fixes Greg KH
2010-07-30 17:52 ` [144/205] drm/i915: dont queue flips during a flip pending event Greg KH
2010-07-30 17:52 ` [145/205] drm/i915: Hold the spinlock whilst resetting unpin_work along error path Greg KH
2010-07-30 17:52 ` [146/205] drm/i915: handle shared framebuffers when flipping Greg KH
2010-07-30 17:52 ` [147/205] ethtool: Fix potential user buffer overflow for ETHTOOL_{G, S}RXFH Greg KH
2010-07-30 17:52 ` [148/205] KVM: MMU: Remove user access when allowing kernel access to gpte.w=0 page Greg KH
2010-07-30 17:52 ` [149/205] KVM: SVM: Handle MCEs early in the vmexit process Greg KH
2010-07-30 17:52 ` [150/205] KVM: SVM: Implement workaround for Erratum 383 Greg KH
2010-07-30 17:52 ` [151/205] KVM: MMU: invalidate and flush on spte small->large page size change Greg KH
2010-07-30 17:52 ` [152/205] KVM: read apic->irr with ioapic lock held Greg KH
2010-07-30 17:52 ` [153/205] splice: direct_splice_actor() should not use pos in sd Greg KH
2010-07-30 17:52 ` [154/205] splice: check f_mode for seekable file Greg KH
2010-07-30 17:52 ` [155/205] futex: futex_find_get_task remove credentails check Greg KH
2010-07-30 17:52 ` [156/205] PM / x86: Save/restore MISC_ENABLE register Greg KH
2010-07-30 17:52 ` [157/205] PCI/PM: Do not use native PCIe PME by default Greg KH
2010-07-30 17:52 ` [158/205] isdn/capi: make reset_ctr op truly optional Greg KH
2010-07-30 17:52 ` [159/205] isdn/gigaset: remove dummy CAPI method implementations Greg KH
2010-07-30 17:52 ` Greg KH [this message]
2010-07-30 17:52 ` [161/205] isdn/gigaset: correct CAPI voice connection encoding Greg KH
2010-07-30 17:52 ` [162/205] isdn/gigaset: correct CAPI DATA_B3 Delivery Confirmation Greg KH
2010-07-30 17:53 ` [163/205] isdn/gigaset: encode HLC and BC together Greg KH
2010-07-30 17:53 ` [164/205] isdn/gigaset: correct CAPI connection state storage Greg KH
2010-07-30 17:53 ` [165/205] ACPI: skip checking BM_STS if the BIOS doesnt ask for it Greg KH
2010-07-30 17:53 ` [166/205] ACPI / PM: Do not enable GPEs for system wakeup in advance Greg KH
2010-07-30 17:53 ` [167/205] ACPI: Unconditionally set SCI_EN on resume Greg KH
2010-07-30 17:53 ` [168/205] libertas/sdio: 8686: set ECSI bit for 1-bit transfers Greg KH
2010-07-30 17:53 ` [169/205] dm9000: fix "BUG: spinlock recursion" Greg KH
2010-07-30 17:53 ` [170/205] mfd: Remove unneeded and dangerous clearing of clientdata Greg KH
2010-07-30 17:53 ` [171/205] firmware_class: fix memory leak - free allocated pages Greg KH
2010-07-30 17:53 ` [172/205] [CPUFREQ] revert "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)" Greg KH
2010-07-30 17:53 ` [173/205] V4L/DVB: dvb-core: Fix ULE decapsulation bug Greg KH
2010-07-30 17:53 ` [174/205] V4L/DVB: FusionHDTV: Use quick reads for I2C IR device probing Greg KH
2010-07-30 17:53 ` [175/205] V4L/DVB: budget: Select correct frontends Greg KH
2010-07-30 17:53 ` [176/205] 3c503: Fix IRQ probing Greg KH
2010-07-30 17:53 ` [177/205] mac80211: fix supported rates IE if AP doesnt give us its rates Greg KH
2010-07-30 17:53 ` [178/205] bnx2: Fix hang during rmmod bnx2 Greg KH
2010-07-30 17:53 ` [179/205] xfs: prevent swapext from operating on write-only files Greg KH
2010-07-30 17:53 ` [180/205] V4L/DVB: uvcvideo: Add support for unbranded Arkmicro 18ec:3290 webcams Greg KH
2010-07-30 17:53 ` [181/205] V4L/DVB: uvcvideo: Add support for Packard Bell EasyNote MX52 integrated webcam Greg KH
2010-07-30 17:53 ` [182/205] V4L/DVB: uvcvideo: Add support for V4L2_PIX_FMT_Y16 Greg KH
2010-07-30 17:53 ` [183/205] block: Dont count_vm_events for discard bio in submit_bio Greg KH
2010-07-30 17:53 ` [184/205] iwlagn: verify flow id in compressed BA packet Greg KH
2010-07-30 17:53 ` [185/205] iwlwifi: Recover TX flow stall due to stuck queue Greg KH
2010-07-30 17:53 ` [186/205] iwl3945: enable stuck queue detection on 3945 Greg KH
2010-07-30 17:53 ` [187/205] kbuild: Fix modpost segfault Greg KH
2010-07-30 17:53 ` [188/205] ACPI / ACPICA: Use helper function for computing GPE masks Greg KH
2010-07-30 17:53 ` [189/205] ACPI / ACPICA: Fix low-level GPE manipulation code Greg KH
2010-07-30 17:53 ` [190/205] ACPI / ACPICA: Avoid writing full enable masks to GPE registers Greg KH
2010-07-30 17:53 ` [191/205] ACPI / ACPICA: Fix GPE initialization Greg KH
2010-07-30 17:53 ` [192/205] ACPI / ACPICA: Fix sysfs GPE interface Greg KH
2010-07-30 17:53 ` [193/205] [IA64] Fix spinaphore down_spin() Greg KH
2010-07-30 17:53 ` [194/205] ecryptfs: Bugfix for error related to ecryptfs_hash_buckets Greg KH
2010-07-30 17:53 ` [195/205] pcmcia: do not initialize the present flag too late Greg KH
2010-07-30 17:53 ` [196/205] MIPS: MTX-1: Fix PCI on the MeshCube and related boards Greg KH
2010-07-30 17:53 ` [197/205] HID: usbhid: enable remote wakeup for keyboards Greg KH
2010-07-30 17:53 ` [198/205] ath5k: initialize ah->ah_current_channel Greg KH
2010-07-30 17:53 ` [199/205] Input: RX51 keymap - fix recent compile breakage Greg KH
2010-07-30 17:53 ` [200/205] ocfs2: make xattr extension work with new local alloc reservation Greg KH
2010-07-30 17:53 ` [201/205] ACPI: processor: fix processor_physically_present on UP Greg KH
2010-07-30 17:53 ` [202/205] ALSA: hda - Fix pin-detection of Nvidia HDMI Greg KH
2010-07-30 17:53 ` [203/205] drm/i915: add PANEL_UNLOCK_REGS definition Greg KH
2010-07-30 17:53 ` [204/205] drm/i915: make sure eDP panel is turned on Greg KH
2010-07-30 17:53 ` [205/205] drm/i915: make sure we shut off the panel in eDP configs Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100730175148.493550802@clark.site \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable-review@kernel.org \
    --cc=stable@kernel.org \
    --cc=tilman@imap.cc \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox