mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: torvalds@linux-foundation.org, akpm@linux-foundation.org,
	alan@lxorguk.ukuu.org.uk, Cliff Wickman <cpw@sgi.com>,
	Ingo Molnar <mingo@elte.hu>
Subject: [116/129] x86/UV2: Work around BAU bug
Date: Mon, 23 Jan 2012 18:35:36 -0800	[thread overview]
Message-ID: <20120124023934.262597826@clark.kroah.org> (raw)
In-Reply-To: <20120124024041.GA18422@kroah.com>

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------
Content-Length: 18382
Lines: 562

From: Cliff Wickman <cpw@sgi.com>

commit c5d35d399e685acccc85a675e8765c26b2a9813a upstream.

This patch implements a workaround for a UV2 hardware bug.
The bug is a non-atomic update of a memory-mapped register. When
hardware message delivery and software message acknowledge occur
simultaneously the pending message acknowledge for the arriving
message may be lost.  This causes the sender's message status to
stay busy.

Part of the workaround is to not acknowledge a completed message
until it is verified that no other message is actually using the
resource that is mistakenly recorded in the completed message.

Part of the workaround is to test for long elapsed time in such
a busy condition, then handle it by using a spare sending
descriptor. The stay-busy condition is eventually timed out by
hardware, and then the original sending descriptor can be
re-used. Most of that logic change is in keeping track of the
current descriptor and the state of the spares.

The occurrences of the workaround are added to the BAU
statistics.

Signed-off-by: Cliff Wickman <cpw@sgi.com>
Link: http://lkml.kernel.org/r/20120116211947.GC5767@sgi.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 arch/x86/include/asm/uv/uv_bau.h |   13 +
 arch/x86/platform/uv/tlb_uv.c    |  274 ++++++++++++++++++++++++++++++++++-----
 2 files changed, 254 insertions(+), 33 deletions(-)

--- a/arch/x86/include/asm/uv/uv_bau.h
+++ b/arch/x86/include/asm/uv/uv_bau.h
@@ -167,6 +167,7 @@
 #define FLUSH_RETRY_TIMEOUT		2
 #define FLUSH_GIVEUP			3
 #define FLUSH_COMPLETE			4
+#define FLUSH_RETRY_BUSYBUG		5
 
 /*
  * tuning the action when the numalink network is extremely delayed
@@ -463,7 +464,6 @@ struct bau_pq_entry {
 struct msg_desc {
 	struct bau_pq_entry	*msg;
 	int			msg_slot;
-	int			swack_slot;
 	struct bau_pq_entry	*queue_first;
 	struct bau_pq_entry	*queue_last;
 };
@@ -517,6 +517,9 @@ struct ptc_stats {
 	unsigned long	s_retry_messages;	/* retry broadcasts */
 	unsigned long	s_bau_reenabled;	/* for bau enable/disable */
 	unsigned long	s_bau_disabled;		/* for bau enable/disable */
+	unsigned long	s_uv2_wars;		/* uv2 workaround, perm. busy */
+	unsigned long	s_uv2_wars_hw;		/* uv2 workaround, hiwater */
+	unsigned long	s_uv2_war_waits;	/* uv2 workaround, long waits */
 	/* destination statistics */
 	unsigned long	d_alltlb;		/* times all tlb's on this
 						   cpu were flushed */
@@ -593,6 +596,8 @@ struct bau_control {
 	short			cpus_in_socket;
 	short			cpus_in_uvhub;
 	short			partition_base_pnode;
+	short			using_desc; /* an index, like uvhub_cpu */
+	unsigned int		inuse_map;
 	unsigned short		message_number;
 	unsigned short		uvhub_quiesce;
 	short			socket_acknowledge_count[DEST_Q_SIZE];
@@ -610,6 +615,7 @@ struct bau_control {
 	int			cong_response_us;
 	int			cong_reps;
 	int			cong_period;
+	unsigned long		clocks_per_100_usec;
 	cycles_t		period_time;
 	long			period_requests;
 	struct hub_and_pnode	*thp;
@@ -670,6 +676,11 @@ static inline void write_mmr_sw_ack(unsi
 	uv_write_local_mmr(UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS, mr);
 }
 
+static inline void write_gmmr_sw_ack(int pnode, unsigned long mr)
+{
+	write_gmmr(pnode, UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS, mr);
+}
+
 static inline unsigned long read_mmr_sw_ack(void)
 {
 	return read_lmmr(UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE);
--- a/arch/x86/platform/uv/tlb_uv.c
+++ b/arch/x86/platform/uv/tlb_uv.c
@@ -157,13 +157,14 @@ static int __init uvhub_to_first_apicid(
  * clear of the Timeout bit (as well) will free the resource. No reply will
  * be sent (the hardware will only do one reply per message).
  */
-static void reply_to_message(struct msg_desc *mdp, struct bau_control *bcp)
+static void reply_to_message(struct msg_desc *mdp, struct bau_control *bcp,
+						int do_acknowledge)
 {
 	unsigned long dw;
 	struct bau_pq_entry *msg;
 
 	msg = mdp->msg;
-	if (!msg->canceled) {
+	if (!msg->canceled && do_acknowledge) {
 		dw = (msg->swack_vec << UV_SW_ACK_NPENDING) | msg->swack_vec;
 		write_mmr_sw_ack(dw);
 	}
@@ -212,8 +213,8 @@ static void bau_process_retry_msg(struct
 			if (mmr & (msg_res << UV_SW_ACK_NPENDING)) {
 				unsigned long mr;
 				/*
-				 * is the resource timed out?
-				 * make everyone ignore the cancelled message.
+				 * Is the resource timed out?
+				 * Make everyone ignore the cancelled message.
 				 */
 				msg2->canceled = 1;
 				stat->d_canceled++;
@@ -231,8 +232,8 @@ static void bau_process_retry_msg(struct
  * Do all the things a cpu should do for a TLB shootdown message.
  * Other cpu's may come here at the same time for this message.
  */
-static void bau_process_message(struct msg_desc *mdp,
-					struct bau_control *bcp)
+static void bau_process_message(struct msg_desc *mdp, struct bau_control *bcp,
+						int do_acknowledge)
 {
 	short socket_ack_count = 0;
 	short *sp;
@@ -284,8 +285,9 @@ static void bau_process_message(struct m
 		if (msg_ack_count == bcp->cpus_in_uvhub) {
 			/*
 			 * All cpus in uvhub saw it; reply
+			 * (unless we are in the UV2 workaround)
 			 */
-			reply_to_message(mdp, bcp);
+			reply_to_message(mdp, bcp, do_acknowledge);
 		}
 	}
 
@@ -491,27 +493,138 @@ static int uv1_wait_completion(struct ba
 /*
  * UV2 has an extra bit of status in the ACTIVATION_STATUS_2 register.
  */
-static unsigned long uv2_read_status(unsigned long offset, int rshft, int cpu)
+static unsigned long uv2_read_status(unsigned long offset, int rshft, int desc)
 {
 	unsigned long descriptor_status;
 	unsigned long descriptor_status2;
 
 	descriptor_status = ((read_lmmr(offset) >> rshft) & UV_ACT_STATUS_MASK);
-	descriptor_status2 = (read_mmr_uv2_status() >> cpu) & 0x1UL;
+	descriptor_status2 = (read_mmr_uv2_status() >> desc) & 0x1UL;
 	descriptor_status = (descriptor_status << 1) | descriptor_status2;
 	return descriptor_status;
 }
 
+/*
+ * Return whether the status of the descriptor that is normally used for this
+ * cpu (the one indexed by its hub-relative cpu number) is busy.
+ * The status of the original 32 descriptors is always reflected in the 64
+ * bits of UVH_LB_BAU_SB_ACTIVATION_STATUS_0.
+ * The bit provided by the activation_status_2 register is irrelevant to
+ * the status if it is only being tested for busy or not busy.
+ */
+int normal_busy(struct bau_control *bcp)
+{
+	int cpu = bcp->uvhub_cpu;
+	int mmr_offset;
+	int right_shift;
+
+	mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_0;
+	right_shift = cpu * UV_ACT_STATUS_SIZE;
+	return (((((read_lmmr(mmr_offset) >> right_shift) &
+				UV_ACT_STATUS_MASK)) << 1) == UV2H_DESC_BUSY);
+}
+
+/*
+ * Entered when a bau descriptor has gone into a permanent busy wait because
+ * of a hardware bug.
+ * Workaround the bug.
+ */
+int handle_uv2_busy(struct bau_control *bcp)
+{
+	int busy_one = bcp->using_desc;
+	int normal = bcp->uvhub_cpu;
+	int selected = -1;
+	int i;
+	unsigned long descriptor_status;
+	unsigned long status;
+	int mmr_offset;
+	struct bau_desc *bau_desc_old;
+	struct bau_desc *bau_desc_new;
+	struct bau_control *hmaster = bcp->uvhub_master;
+	struct ptc_stats *stat = bcp->statp;
+	cycles_t ttm;
+
+	stat->s_uv2_wars++;
+	spin_lock(&hmaster->uvhub_lock);
+	/* try for the original first */
+	if (busy_one != normal) {
+		if (!normal_busy(bcp))
+			selected = normal;
+	}
+	if (selected < 0) {
+		/* can't use the normal, select an alternate */
+		mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_1;
+		descriptor_status = read_lmmr(mmr_offset);
+
+		/* scan available descriptors 32-63 */
+		for (i = 0; i < UV_CPUS_PER_AS; i++) {
+			if ((hmaster->inuse_map & (1 << i)) == 0) {
+				status = ((descriptor_status >>
+						(i * UV_ACT_STATUS_SIZE)) &
+						UV_ACT_STATUS_MASK) << 1;
+				if (status != UV2H_DESC_BUSY) {
+					selected = i + UV_CPUS_PER_AS;
+					break;
+				}
+			}
+		}
+	}
+
+	if (busy_one != normal)
+		/* mark the busy alternate as not in-use */
+		hmaster->inuse_map &= ~(1 << (busy_one - UV_CPUS_PER_AS));
+
+	if (selected >= 0) {
+		/* switch to the selected descriptor */
+		if (selected != normal) {
+			/* set the selected alternate as in-use */
+			hmaster->inuse_map |=
+					(1 << (selected - UV_CPUS_PER_AS));
+			if (selected > stat->s_uv2_wars_hw)
+				stat->s_uv2_wars_hw = selected;
+		}
+		bau_desc_old = bcp->descriptor_base;
+		bau_desc_old += (ITEMS_PER_DESC * busy_one);
+		bcp->using_desc = selected;
+		bau_desc_new = bcp->descriptor_base;
+		bau_desc_new += (ITEMS_PER_DESC * selected);
+		*bau_desc_new = *bau_desc_old;
+	} else {
+		/*
+		 * All are busy. Wait for the normal one for this cpu to
+		 * free up.
+		 */
+		stat->s_uv2_war_waits++;
+		spin_unlock(&hmaster->uvhub_lock);
+		ttm = get_cycles();
+		do {
+			cpu_relax();
+		} while (normal_busy(bcp));
+		spin_lock(&hmaster->uvhub_lock);
+		/* switch to the original descriptor */
+		bcp->using_desc = normal;
+		bau_desc_old = bcp->descriptor_base;
+		bau_desc_old += (ITEMS_PER_DESC * bcp->using_desc);
+		bcp->using_desc = (ITEMS_PER_DESC * normal);
+		bau_desc_new = bcp->descriptor_base;
+		bau_desc_new += (ITEMS_PER_DESC * normal);
+		*bau_desc_new = *bau_desc_old; /* copy the entire descriptor */
+	}
+	spin_unlock(&hmaster->uvhub_lock);
+	return FLUSH_RETRY_BUSYBUG;
+}
+
 static int uv2_wait_completion(struct bau_desc *bau_desc,
 				unsigned long mmr_offset, int right_shift,
 				struct bau_control *bcp, long try)
 {
 	unsigned long descriptor_stat;
 	cycles_t ttm;
-	int cpu = bcp->uvhub_cpu;
+	int desc = bcp->using_desc;
+	long busy_reps = 0;
 	struct ptc_stats *stat = bcp->statp;
 
-	descriptor_stat = uv2_read_status(mmr_offset, right_shift, cpu);
+	descriptor_stat = uv2_read_status(mmr_offset, right_shift, desc);
 
 	/* spin on the status MMR, waiting for it to go idle */
 	while (descriptor_stat != UV2H_DESC_IDLE) {
@@ -542,12 +655,23 @@ static int uv2_wait_completion(struct ba
 			bcp->conseccompletes = 0;
 			return FLUSH_RETRY_TIMEOUT;
 		} else {
+			busy_reps++;
+			if (busy_reps > 1000000) {
+				/* not to hammer on the clock */
+				busy_reps = 0;
+				ttm = get_cycles();
+				if ((ttm - bcp->send_message) >
+					(bcp->clocks_per_100_usec)) {
+					return handle_uv2_busy(bcp);
+				}
+			}
 			/*
 			 * descriptor_stat is still BUSY
 			 */
 			cpu_relax();
 		}
-		descriptor_stat = uv2_read_status(mmr_offset, right_shift, cpu);
+		descriptor_stat = uv2_read_status(mmr_offset, right_shift,
+									desc);
 	}
 	bcp->conseccompletes++;
 	return FLUSH_COMPLETE;
@@ -563,14 +687,14 @@ static int wait_completion(struct bau_de
 {
 	int right_shift;
 	unsigned long mmr_offset;
-	int cpu = bcp->uvhub_cpu;
+	int desc = bcp->using_desc;
 
-	if (cpu < UV_CPUS_PER_AS) {
+	if (desc < UV_CPUS_PER_AS) {
 		mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_0;
-		right_shift = cpu * UV_ACT_STATUS_SIZE;
+		right_shift = desc * UV_ACT_STATUS_SIZE;
 	} else {
 		mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_1;
-		right_shift = ((cpu - UV_CPUS_PER_AS) * UV_ACT_STATUS_SIZE);
+		right_shift = ((desc - UV_CPUS_PER_AS) * UV_ACT_STATUS_SIZE);
 	}
 
 	if (bcp->uvhub_version == 1)
@@ -752,8 +876,7 @@ static void handle_cmplt(int completion_
  * Returns 1 if it gives up entirely and the original cpu mask is to be
  * returned to the kernel.
  */
-int uv_flush_send_and_wait(struct bau_desc *bau_desc,
-			struct cpumask *flush_mask, struct bau_control *bcp)
+int uv_flush_send_and_wait(struct cpumask *flush_mask, struct bau_control *bcp)
 {
 	int seq_number = 0;
 	int completion_stat = 0;
@@ -766,20 +889,24 @@ int uv_flush_send_and_wait(struct bau_de
 	struct bau_control *hmaster = bcp->uvhub_master;
 	struct uv1_bau_msg_header *uv1_hdr = NULL;
 	struct uv2_bau_msg_header *uv2_hdr = NULL;
+	struct bau_desc *bau_desc;
 
-	if (bcp->uvhub_version == 1) {
-		uv1 = 1;
+	if (bcp->uvhub_version == 1)
 		uv1_throttle(hmaster, stat);
-		uv1_hdr = &bau_desc->header.uv1_hdr;
-	} else
-		uv2_hdr = &bau_desc->header.uv2_hdr;
 
 	while (hmaster->uvhub_quiesce)
 		cpu_relax();
 
 	time1 = get_cycles();
 	do {
-		if (try == 0) {
+		bau_desc = bcp->descriptor_base;
+		bau_desc += (ITEMS_PER_DESC * bcp->using_desc);
+		if (bcp->uvhub_version == 1) {
+			uv1 = 1;
+			uv1_hdr = &bau_desc->header.uv1_hdr;
+		} else
+			uv2_hdr = &bau_desc->header.uv2_hdr;
+		if ((try == 0) || (completion_stat == FLUSH_RETRY_BUSYBUG)) {
 			if (uv1)
 				uv1_hdr->msg_type = MSG_REGULAR;
 			else
@@ -797,13 +924,14 @@ int uv_flush_send_and_wait(struct bau_de
 			uv1_hdr->sequence = seq_number;
 		else
 			uv2_hdr->sequence = seq_number;
-		index = (1UL << AS_PUSH_SHIFT) | bcp->uvhub_cpu;
+		index = (1UL << AS_PUSH_SHIFT) | bcp->using_desc;
 		bcp->send_message = get_cycles();
 
 		write_mmr_activation(index);
 
 		try++;
 		completion_stat = wait_completion(bau_desc, bcp, try);
+		/* UV2: wait_completion() may change the bcp->using_desc */
 
 		handle_cmplt(completion_stat, bau_desc, bcp, hmaster, stat);
 
@@ -814,6 +942,7 @@ int uv_flush_send_and_wait(struct bau_de
 		}
 		cpu_relax();
 	} while ((completion_stat == FLUSH_RETRY_PLUGGED) ||
+		 (completion_stat == FLUSH_RETRY_BUSYBUG) ||
 		 (completion_stat == FLUSH_RETRY_TIMEOUT));
 
 	time2 = get_cycles();
@@ -828,6 +957,7 @@ int uv_flush_send_and_wait(struct bau_de
 	record_send_stats(time1, time2, bcp, stat, completion_stat, try);
 
 	if (completion_stat == FLUSH_GIVEUP)
+		/* FLUSH_GIVEUP will fall back to using IPI's for tlb flush */
 		return 1;
 	return 0;
 }
@@ -983,7 +1113,7 @@ const struct cpumask *uv_flush_tlb_other
 		stat->s_ntargself++;
 
 	bau_desc = bcp->descriptor_base;
-	bau_desc += (ITEMS_PER_DESC * bcp->uvhub_cpu);
+	bau_desc += (ITEMS_PER_DESC * bcp->using_desc);
 	bau_uvhubs_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE);
 	if (set_distrib_bits(flush_mask, bcp, bau_desc, &locals, &remotes))
 		return NULL;
@@ -996,13 +1126,86 @@ const struct cpumask *uv_flush_tlb_other
 	 * uv_flush_send_and_wait returns 0 if all cpu's were messaged,
 	 * or 1 if it gave up and the original cpumask should be returned.
 	 */
-	if (!uv_flush_send_and_wait(bau_desc, flush_mask, bcp))
+	if (!uv_flush_send_and_wait(flush_mask, bcp))
 		return NULL;
 	else
 		return cpumask;
 }
 
 /*
+ * Search the message queue for any 'other' message with the same software
+ * acknowledge resource bit vector.
+ */
+struct bau_pq_entry *find_another_by_swack(struct bau_pq_entry *msg,
+			struct bau_control *bcp, unsigned char swack_vec)
+{
+	struct bau_pq_entry *msg_next = msg + 1;
+
+	if (msg_next > bcp->queue_last)
+		msg_next = bcp->queue_first;
+	while ((msg_next->swack_vec != 0) && (msg_next != msg)) {
+		if (msg_next->swack_vec == swack_vec)
+			return msg_next;
+		msg_next++;
+		if (msg_next > bcp->queue_last)
+			msg_next = bcp->queue_first;
+	}
+	return NULL;
+}
+
+/*
+ * UV2 needs to work around a bug in which an arriving message has not
+ * set a bit in the UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE register.
+ * Such a message must be ignored.
+ */
+void process_uv2_message(struct msg_desc *mdp, struct bau_control *bcp)
+{
+	unsigned long mmr_image;
+	unsigned char swack_vec;
+	struct bau_pq_entry *msg = mdp->msg;
+	struct bau_pq_entry *other_msg;
+
+	mmr_image = read_mmr_sw_ack();
+	swack_vec = msg->swack_vec;
+
+	if ((swack_vec & mmr_image) == 0) {
+		/*
+		 * This message was assigned a swack resource, but no
+		 * reserved acknowlegment is pending.
+		 * The bug has prevented this message from setting the MMR.
+		 * And no other message has used the same sw_ack resource.
+		 * Do the requested shootdown but do not reply to the msg.
+		 * (the 0 means make no acknowledge)
+		 */
+		bau_process_message(mdp, bcp, 0);
+		return;
+	}
+
+	/*
+	 * Some message has set the MMR 'pending' bit; it might have been
+	 * another message.  Look for that message.
+	 */
+	other_msg = find_another_by_swack(msg, bcp, msg->swack_vec);
+	if (other_msg) {
+		/* There is another.  Do not ack the current one. */
+		bau_process_message(mdp, bcp, 0);
+		/*
+		 * Let the natural processing of that message acknowledge
+		 * it. Don't get the processing of sw_ack's out of order.
+		 */
+		return;
+	}
+
+	/*
+	 * There is no other message using this sw_ack, so it is safe to
+	 * acknowledge it.
+	 */
+	bau_process_message(mdp, bcp, 1);
+
+	return;
+}
+
+/*
  * The BAU message interrupt comes here. (registered by set_intr_gate)
  * See entry_64.S
  *
@@ -1038,9 +1241,11 @@ void uv_bau_message_interrupt(struct pt_
 		count++;
 
 		msgdesc.msg_slot = msg - msgdesc.queue_first;
-		msgdesc.swack_slot = ffs(msg->swack_vec) - 1;
 		msgdesc.msg = msg;
-		bau_process_message(&msgdesc, bcp);
+		if (bcp->uvhub_version == 2)
+			process_uv2_message(&msgdesc, bcp);
+		else
+			bau_process_message(&msgdesc, bcp, 1);
 
 		msg++;
 		if (msg > msgdesc.queue_last)
@@ -1158,7 +1363,7 @@ static int ptc_seq_show(struct seq_file
 		seq_printf(file,
 			"all one mult none retry canc nocan reset rcan ");
 		seq_printf(file,
-			"disable enable\n");
+			"disable enable wars warshw warwaits\n");
 	}
 	if (cpu < num_possible_cpus() && cpu_online(cpu)) {
 		stat = &per_cpu(ptcstats, cpu);
@@ -1189,8 +1394,10 @@ static int ptc_seq_show(struct seq_file
 			   stat->d_nomsg, stat->d_retries, stat->d_canceled,
 			   stat->d_nocanceled, stat->d_resets,
 			   stat->d_rcanceled);
-		seq_printf(file, "%ld %ld\n",
-			stat->s_bau_disabled, stat->s_bau_reenabled);
+		seq_printf(file, "%ld %ld %ld %ld %ld\n",
+			stat->s_bau_disabled, stat->s_bau_reenabled,
+			stat->s_uv2_wars, stat->s_uv2_wars_hw,
+			stat->s_uv2_war_waits);
 	}
 	return 0;
 }
@@ -1564,6 +1771,7 @@ static void pq_init(int node, int pnode)
 	write_mmr_payload_first(pnode, pn_first);
 	write_mmr_payload_tail(pnode, first);
 	write_mmr_payload_last(pnode, last);
+	write_gmmr_sw_ack(pnode, 0xffffUL);
 
 	/* in effect, all msg_type's are set to MSG_NOOP */
 	memset(pqp, 0, sizeof(struct bau_pq_entry) * DEST_Q_SIZE);
@@ -1651,6 +1859,7 @@ static void __init init_per_cpu_tunables
 		bcp->cong_response_us		= congested_respns_us;
 		bcp->cong_reps			= congested_reps;
 		bcp->cong_period		= congested_period;
+		bcp->clocks_per_100_usec =	usec_2_cycles(100);
 	}
 }
 
@@ -1771,6 +1980,7 @@ static int scan_sock(struct socket_desc
 		}
 		bcp->uvhub_master = *hmasterp;
 		bcp->uvhub_cpu = uv_cpu_hub_info(cpu)->blade_processor_id;
+		bcp->using_desc = bcp->uvhub_cpu;
 		if (bcp->uvhub_cpu >= MAX_CPUS_PER_UVHUB) {
 			printk(KERN_EMERG "%d cpus per uvhub invalid\n",
 				bcp->uvhub_cpu);



  parent reply	other threads:[~2012-01-24  2:53 UTC|newest]

Thread overview: 244+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-24  2:40 [000/129] 3.2.2-stable review Greg KH
2012-01-24  2:33 ` [001/129] mtdoops: fix the oops_page_used array size Greg KH
2012-01-24  2:33 ` [002/129] mtd: mtdoops: skip reading initially bad blocks Greg KH
2012-01-24  2:33 ` [003/129] mtd: mtd_blkdevs: dont increase open count on error path Greg KH
2012-01-24  2:33 ` [004/129] mtd: tests: stresstest: bail out if device has not enough eraseblocks Greg KH
2012-01-24  2:33 ` [005/129] drivers/rtc/interface.c: fix alarm rollover when day or month is out-of-range Greg KH
2012-01-24  2:33 ` [006/129] ext4: add missing ext4_resize_end on error paths Greg KH
2012-01-24  2:33 ` [007/129] ext4: fix undefined behavior in ext4_fill_flex_info() Greg KH
2012-01-24  2:33 ` [008/129] ALSA: snd-usb-us122l: Delete calls to preempt_disable Greg KH
2012-01-24  2:33 ` [009/129] ALSA: HDA: Fix master control for Cirrus Logic 421X Greg KH
2012-01-24  2:33 ` [010/129] ALSA: HDA: Fix automute for Cirrus Logic 421x Greg KH
2012-01-24  2:33 ` [011/129] ALSA: ice1724 - Check for ac97 to avoid kernel oops Greg KH
2012-01-24  2:33 ` [012/129] ALSA: usb-audio - Avoid flood of frame-active debug messages Greg KH
2012-01-24  2:33 ` [013/129] ALSA: hda - Use auto-parser for HP laptops with cx20459 codec Greg KH
2012-01-24  2:33 ` [014/129] ALSA: hda - Return the error from get_wcaps_type() for invalid NIDs Greg KH
2012-01-24  2:33 ` [015/129] ALSA: hda - Fix the detection of "Loopback Mixing" control for VIA codecs Greg KH
2012-01-24  2:33 ` [016/129] ALSA: hda - Fix the lost power-setup of seconary pins after PM resume Greg KH
2012-01-24  2:33 ` [017/129] drm/radeon/kms: workaround invalid AVI infoframe checksum issue Greg KH
2012-01-24  2:33 ` [018/129] drm/radeon/kms: disable writeback on pre-R300 asics Greg KH
2012-01-24  2:33 ` [019/129] radeon: Fix disabling PCI bus mastering on big endian hosts Greg KH
2012-01-24  2:34 ` [020/129] pnfs-obj: pNFS errors are communicated on iodata->pnfs_error Greg KH
2012-01-24  2:34 ` [021/129] pnfs-obj: Must return layout on IO error Greg KH
2012-01-24  2:34 ` [022/129] NFS: Retry mounting NFSROOT Greg KH
2012-01-24  2:34 ` [023/129] NFSv4.1: fix backchannel slotid off-by-one bug Greg KH
2012-01-24  2:34 ` [024/129] NFS - fix recent breakage to NFS error handling Greg KH
2012-01-24  2:34 ` [025/129] NFSv4: include bitmap in nfsv4 get acl data Greg KH
2012-01-24  2:34 ` [026/129] nfs: fix regression in handling of context= option in NFSv4 Greg KH
2012-01-24  2:34 ` [027/129] HID: bump maximum global item tag report size to 96 bytes Greg KH
2012-01-24  2:34 ` [028/129] HID: wiimote: Select INPUT_FF_MEMLESS Greg KH
2012-01-24  2:34 ` [029/129] UBI: fix missing scrub when there is a bit-flip Greg KH
2012-01-24  2:34 ` [030/129] UBI: fix use-after-free on error path Greg KH
2012-01-24  2:34 ` [031/129] PCI: Fix PCI_EXP_TYPE_RC_EC value Greg KH
2012-01-24  2:34 ` [032/129] PCI: msi: Disable msi interrupts when we initialize a pci device Greg KH
2012-01-24  2:34 ` [033/129] x86/PCI: Ignore CPU non-addressable _CRS reserved memory resources Greg KH
2012-01-24  2:34 ` [034/129] x86/PCI: amd: factor out MMCONFIG discovery Greg KH
2012-01-24  2:34 ` [035/129] x86/PCI: build amd_bus.o only when CONFIG_AMD_NB=y Greg KH
2012-01-24  2:34 ` [036/129] SCSI: mpt2sas: Release spinlock for the raid device list before blocking it Greg KH
2012-01-24  2:34 ` [037/129] SCSI: mpt2sas : Fix for memory allocation error for large host credits Greg KH
2012-01-24  2:34 ` [038/129] xen/xenbus: Reject replies with payload > XENSTORE_PAYLOAD_MAX Greg KH
2012-01-24  2:34 ` [039/129] md/raid1: perform bad-block tests for WriteMostly devices too Greg KH
2012-01-24  2:34 ` [040/129] ima: free duplicate measurement memory Greg KH
2012-01-24  2:34 ` [041/129] ima: fix invalid memory reference Greg KH
2012-01-24  2:34 ` [042/129] slub: fix a possible memleak in __slab_alloc() Greg KH
2012-01-24  2:34 ` [043/129] PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB Greg KH
2012-01-24  2:34 ` [044/129] asix: fix setting custom MAC address on Asix 88178 devices Greg KH
2012-01-24  2:34 ` [045/129] asix: fix setting custom MAC address on Asix 88772 devices Greg KH
2012-01-24  2:34 ` [046/129] include/linux/crash_dump.h needs elf.h Greg KH
2012-01-24  2:34 ` [047/129] rtl8192se: Fix BUG caused by failure to check skb allocation Greg KH
2012-01-24  2:34 ` [048/129] mac80211: fix rx->key NULL pointer dereference in promiscuous mode Greg KH
2012-01-24  2:34 ` [049/129] ath9k: Fix regression in channelwidth switch at the same channel Greg KH
2012-01-24  2:34 ` [050/129] memcg: add mem_cgroup_replace_page_cache() to fix LRU issue Greg KH
2012-01-24  2:34 ` [051/129] x86: Fix mmap random address range Greg KH
2012-01-24  2:34 ` [052/129] UBI: fix nameless volumes handling Greg KH
2012-01-24  2:34 ` [053/129] UBI: fix debugging messages Greg KH
2012-01-24  2:34 ` [054/129] UBI: make vid_hdr non-static Greg KH
2012-01-24  2:34 ` [055/129] UBIFS: fix debugging messages Greg KH
2012-01-24  2:34 ` [056/129] UBIFS: make debugging messages light again Greg KH
2012-01-24  2:34 ` [057/129] i2c: Fix error value returned by several bus drivers Greg KH
2012-01-24  2:34 ` [058/129] mmc: core: Fix voltage select in DDR mode Greg KH
2012-01-24  2:34 ` [059/129] mmc: sdhci: Fix tuning timer incorrect setting when suspending host Greg KH
2012-01-24  2:34 ` [060/129] mmc: sd: Fix SDR12 timing regression Greg KH
2012-01-24  2:34 ` [061/129] [media] V4L/DVB: v4l2-ioctl: integer overflow in video_usercopy() Greg KH
2012-01-24  2:34 ` [062/129] Unused iocbs in a batch should not be accounted as active Greg KH
2012-01-24  2:34 ` [063/129] ftrace: Fix unregister ftrace_ops accounting Greg KH
2012-01-24  2:34 ` [064/129] kconfig/streamline-config.pl: Simplify backslash line concatination Greg KH
2012-01-24  2:34 ` [065/129] kconfig/streamline-config.pl: Fix parsing Makefile with variables Greg KH
2012-01-24  2:34 ` [066/129] svcrpc: fix double-free on shutdown of nfsd after changing pool mode Greg KH
2012-01-24  2:34 ` [067/129] svcrpc: destroy server sockets all at once Greg KH
2012-01-24  2:34 ` [068/129] svcrpc: avoid memory-corruption on pool shutdown Greg KH
2012-01-24  2:34 ` [069/129] nfsd4: fix lockowner matching Greg KH
2012-01-24  2:34 ` [070/129] nfsd: Fix oops when parsing a 0 length export Greg KH
2012-01-24  2:34 ` [071/129] fsnotify: dont BUG in fsnotify_destroy_mark() Greg KH
2012-01-24  2:34 ` [072/129] x86, UV: Update Boot messages for SGI UV2 platform Greg KH
2012-01-24  2:34 ` [073/129] recordmcount: Fix handling of elf64 big-endian objects Greg KH
2012-01-24  2:34 ` [074/129] [media] uvcvideo: Fix integer overflow in uvc_ioctl_ctrl_map() Greg KH
2012-01-24  2:34 ` [075/129] dcache: use a dispose list in select_parent Greg KH
2012-01-24  2:34 ` [076/129] fix shrink_dcache_parent() livelock Greg KH
2012-01-24  2:34 ` [077/129] pnfsblock: acquire im_lock in _preload_range Greg KH
2012-01-24  2:34 ` [078/129] pnfsblock: dont spinlock when freeing block_dev Greg KH
2012-01-24  2:34 ` [079/129] pnfsblock: limit bio page count Greg KH
2012-01-24  2:35 ` [080/129] mac80211: revert on-channel work optimisations Greg KH
2012-01-24  2:35 ` [081/129] HID: hid-multitouch - add another eGalax id Greg KH
2012-01-24  2:35 ` [082/129] HID: multitouch: cleanup with eGalax PID definitions Greg KH
2012-01-24  2:35 ` [083/129] HID: multitouch: Add egalax ID for Acer Iconia W500 Greg KH
2012-01-24  2:35 ` [084/129] HID: multitouch: add support for the MSI Windpad 110W Greg KH
2012-01-24  2:35 ` [085/129] HID: hid-multitouch: add support for new Hanvon panels Greg KH
2012-01-24  2:35 ` [086/129] HID: multitouch: add support of Atmel multitouch panels Greg KH
2012-01-24  2:35 ` [087/129] HID: multitouch: add support for 3M 32" Greg KH
2012-01-24  2:35 ` [088/129] HID: hid-multitouch: add support 9 new Xiroku devices Greg KH
2012-01-24  2:35 ` [089/129] [S390] fix cputime overflow in uptime_proc_show Greg KH
2012-01-24  2:35 ` [090/129] block: add and use scsi_blk_cmd_ioctl Greg KH
2012-01-24  2:35 ` [091/129] block: fail SCSI passthrough ioctls on partition devices Greg KH
2012-01-24 13:01   ` Paolo Bonzini
2012-01-24 14:10     ` Sven Joachim
2012-01-24 14:48     ` Sven Joachim
2012-01-24 16:43   ` [v2] " Paolo Bonzini
2012-01-25 22:39     ` Greg KH
2012-01-25 22:51       ` Sven-Haegar Koch
2012-01-25 23:10         ` Josh Boyer
2012-01-26  0:07           ` Greg KH
2012-01-26  8:02             ` Paolo Bonzini
2012-01-24  2:35 ` [092/129] dm: do not forward ioctls from logical volumes to the underlying device Greg KH
2012-01-24  2:35 ` [093/129] proc: clean up and fix /proc/<pid>/mem handling Greg KH
2012-01-24  2:35 ` [094/129] ALSA: HDA: Use LPIB position fix for Macbook Pro 7,1 Greg KH
2012-01-24  2:35 ` [095/129] ALSA: virtuoso: Xonar DS: fix polarity of front output Greg KH
2012-01-24  2:35 ` [096/129] ALSA: HDA: Fix internal microphone on Dell Studio 16 XPS 1645 Greg KH
2012-01-24  2:35 ` [097/129] TOMOYO: Accept \000 as a valid character Greg KH
2012-01-24  2:35 ` [098/129] intel idle: Make idle driver more robust Greg KH
2012-01-24  2:35 ` [099/129] intel_idle: fix API misuse Greg KH
2012-01-24  2:35 ` [100/129] ACPI: Store SRAT table revision Greg KH
2012-01-24  2:35 ` [101/129] ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64) Greg KH
2012-01-24  2:35 ` [102/129] ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64) Greg KH
2012-01-24  2:35 ` [103/129] ACPICA: Put back the call to acpi_os_validate_address Greg KH
2012-01-24  2:35 ` [104/129] ACPI: processor: fix acpi_get_cpuid for UP processor Greg KH
2012-01-24  2:35 ` [105/129] [SCSI] sym53c8xx: Fix NULL pointer dereference in slave_destroy Greg KH
2012-01-24  2:35 ` [106/129] target: Set response format in INQUIRY response Greg KH
2012-01-24  2:35 ` [107/129] target: Set additional sense length field in sense data Greg KH
2012-01-24  2:35 ` [108/129] bcma: invalidate the mapped core over suspend/resume Greg KH
2012-01-24  2:35 ` [109/129] [media] cx23885-dvb: check if dvb_attach() succeded Greg KH
2012-01-24  2:35 ` [110/129] [media] cx88: fix: dont duplicate xc4000 entry for radio Greg KH
2012-01-24  2:35 ` [111/129] [media] tuner: Fix numberspace conflict between xc4000 and pti 5nf05 tuners Greg KH
2012-01-24  2:35 ` [112/129] tracepoints/module: Fix disabling tracepoints with taint CRAP or OOT Greg KH
2012-01-24  2:35 ` [113/129] I2C: OMAP: correct SYSC register offset for OMAP4 Greg KH
2012-01-24  2:35 ` [114/129] x86/UV2: Fix new UV2 hardware by using native UV2 broadcast mode Greg KH
2012-01-24  2:35 ` [115/129] x86/UV2: Fix BAU destination timeout initialization Greg KH
2012-01-24  2:35 ` Greg KH [this message]
2012-01-24  2:35 ` [117/129] ath9k_hw: fix interpretation of the rx KeyMiss flag Greg KH
2012-01-24  2:35 ` [118/129] rt2800pci: fix spurious interrupts generation Greg KH
2012-01-24  2:35 ` [119/129] xfs: fix endian conversion issue in discard code Greg KH
2012-01-24  2:35 ` [120/129] i2c-eg20t: modified the setting of transfer rate Greg KH
2012-01-24  2:35 ` [121/129] score: fix off-by-one index into syscall table Greg KH
2012-01-24  2:35 ` [122/129] cifs: lower default wsize when unix extensions are not used Greg KH
2012-01-24  2:35 ` [123/129] kprobes: initialize before using a hlist Greg KH
2012-01-24  2:35 ` [124/129] proc: clear_refs: do not clear reserved pages Greg KH
2012-01-24  2:35 ` [125/129] mm: fix NULL ptr dereference in __count_immobile_pages Greg KH
2012-01-24  2:35 ` [126/129] iwlagn: check for SMPS mode Greg KH
2012-01-24  2:35 ` [127/129] iwlegacy: 3945: fix hw passive scan on radar channels Greg KH
2012-01-24  2:35 ` [128/129] SHM_UNLOCK: fix long unpreemptible section Greg KH
2012-01-24  2:35 ` [129/129] SHM_UNLOCK: fix Unevictable pages stranded after swap Greg KH
2012-01-24  7:19 ` [000/129] 3.2.2-stable review Igor Grinberg
2012-01-24 16:52   ` Greg KH
2012-01-25 21:44     ` Jesper Juhl
2012-01-25 19:45   ` Heinz Diehl
2012-01-25 21:47 ` Jesper Juhl
2012-01-25 21:51   ` Greg KH
2012-01-25 22:04     ` Jesper Juhl
  -- strict thread matches above, loose matches on Subject: below --
2012-01-23 23:42 [00/90] 3.0.18-stable review Greg KH
2012-01-23 23:38 ` [01/90] mtdoops: fix the oops_page_used array size Greg KH
2012-01-23 23:38 ` [02/90] mtd: mtdoops: skip reading initially bad blocks Greg KH
2012-01-23 23:38 ` [03/90] mtd: mtd_blkdevs: dont increase open count on error path Greg KH
2012-01-23 23:38 ` [04/90] mtd: tests: stresstest: bail out if device has not enough eraseblocks Greg KH
2012-01-23 23:38 ` [05/90] drivers/rtc/interface.c: fix alarm rollover when day or month is out-of-range Greg KH
2012-01-23 23:38 ` [06/90] ext4: fix undefined behavior in ext4_fill_flex_info() Greg KH
2012-01-23 23:38 ` [07/90] ALSA: snd-usb-us122l: Delete calls to preempt_disable Greg KH
2012-01-23 23:38 ` [08/90] ALSA: ice1724 - Check for ac97 to avoid kernel oops Greg KH
2012-01-23 23:38 ` [09/90] ALSA: hda - Return the error from get_wcaps_type() for invalid NIDs Greg KH
2012-01-23 23:38 ` [10/90] drm/radeon/kms: workaround invalid AVI infoframe checksum issue Greg KH
2012-01-23 23:38 ` [11/90] drm/radeon/kms: disable writeback on pre-R300 asics Greg KH
2012-01-23 23:38 ` [12/90] radeon: Fix disabling PCI bus mastering on big endian hosts Greg KH
2012-01-23 23:38 ` [13/90] NFS: Retry mounting NFSROOT Greg KH
2012-01-23 23:39 ` [14/90] NFSv4.1: fix backchannel slotid off-by-one bug Greg KH
2012-01-23 23:39 ` [15/90] nfs: fix regression in handling of context= option in NFSv4 Greg KH
2012-01-23 23:39 ` [16/90] HID: bump maximum global item tag report size to 96 bytes Greg KH
2012-01-23 23:39 ` [17/90] UBI: fix missing scrub when there is a bit-flip Greg KH
2012-01-23 23:39 ` [18/90] UBI: fix use-after-free on error path Greg KH
2012-01-23 23:39 ` [19/90] PCI: Fix PCI_EXP_TYPE_RC_EC value Greg KH
2012-01-23 23:39 ` [20/90] PCI: msi: Disable msi interrupts when we initialize a pci device Greg KH
2012-01-23 23:39 ` [21/90] x86/PCI: Ignore CPU non-addressable _CRS reserved memory resources Greg KH
2012-01-23 23:39 ` [22/90] x86/PCI: amd: factor out MMCONFIG discovery Greg KH
2012-01-23 23:39 ` [23/90] x86/PCI: build amd_bus.o only when CONFIG_AMD_NB=y Greg KH
2012-01-23 23:39 ` [24/90] SCSI: mpt2sas: Release spinlock for the raid device list before blocking it Greg KH
2012-01-23 23:39 ` [25/90] SCSI: mpt2sas : Fix for memory allocation error for large host credits Greg KH
2012-01-23 23:39 ` [26/90] xen/xenbus: Reject replies with payload > XENSTORE_PAYLOAD_MAX Greg KH
2012-01-23 23:39 ` [27/90] ima: free duplicate measurement memory Greg KH
2012-01-23 23:39 ` [28/90] ima: fix invalid memory reference Greg KH
2012-01-23 23:39 ` [29/90] PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB Greg KH
2012-01-23 23:39 ` [30/90] rtl8192se: Fix BUG caused by failure to check skb allocation Greg KH
2012-01-23 23:39 ` [31/90] mac80211: fix rx->key NULL pointer dereference in promiscuous mode Greg KH
2012-01-23 23:39 ` [32/90] memcg: add mem_cgroup_replace_page_cache() to fix LRU issue Greg KH
2012-01-23 23:39 ` [33/90] x86: Fix mmap random address range Greg KH
2012-01-23 23:39 ` [34/90] UBI: fix nameless volumes handling Greg KH
2012-01-23 23:39 ` [35/90] UBI: fix debugging messages Greg KH
2012-01-23 23:39 ` [36/90] UBIFS: " Greg KH
2012-01-23 23:39 ` [37/90] i2c: Fix error value returned by several bus drivers Greg KH
2012-01-23 23:39 ` [38/90] mmc: core: Fix voltage select in DDR mode Greg KH
2012-01-23 23:39 ` [39/90] mmc: sdhci: Fix tuning timer incorrect setting when suspending host Greg KH
2012-01-23 23:39 ` [40/90] mmc: sd: Fix SDR12 timing regression Greg KH
2012-01-23 23:39 ` [41/90] [media] V4L/DVB: v4l2-ioctl: integer overflow in video_usercopy() Greg KH
2012-01-23 23:39 ` [42/90] kconfig/streamline-config.pl: Simplify backslash line concatination Greg KH
2012-01-23 23:39 ` [43/90] kconfig/streamline-config.pl: Fix parsing Makefile with variables Greg KH
2012-01-23 23:39 ` [44/90] svcrpc: fix double-free on shutdown of nfsd after changing pool mode Greg KH
2012-01-23 23:39 ` [45/90] svcrpc: destroy server sockets all at once Greg KH
2012-01-23 23:39 ` [46/90] svcrpc: avoid memory-corruption on pool shutdown Greg KH
2012-01-23 23:39 ` [47/90] nfsd: Fix oops when parsing a 0 length export Greg KH
2012-01-23 23:39 ` [48/90] fsnotify: dont BUG in fsnotify_destroy_mark() Greg KH
2012-01-23 23:39 ` [49/90] x86, UV: Update Boot messages for SGI UV2 platform Greg KH
2012-01-23 23:39 ` [50/90] recordmcount: Fix handling of elf64 big-endian objects Greg KH
2012-01-23 23:39 ` [51/90] [media] uvcvideo: Fix integer overflow in uvc_ioctl_ctrl_map() Greg KH
2012-01-23 23:39 ` [52/90] fix shrink_dcache_parent() livelock Greg KH
2012-01-23 23:39 ` [53/90] ah: Correctly pass error codes in ahash output callback Greg KH
2012-01-23 23:39 ` [54/90] ah: Read nexthdr value before overwriting it in ahash input callback Greg KH
2012-01-23 23:39 ` [55/90] HID: hid-multitouch - add another eGalax id Greg KH
2012-01-23 23:39 ` [56/90] HID: multitouch: cleanup with eGalax PID definitions Greg KH
2012-01-23 23:39 ` [57/90] HID: multitouch: Add egalax ID for Acer Iconia W500 Greg KH
2012-01-23 23:39 ` [58/90] HID: multitouch: add support for the MSI Windpad 110W Greg KH
2012-01-23 23:39 ` [59/90] HID: multitouch: add support for 3M 32" Greg KH
2012-01-23 23:39 ` [60/90] [S390] fix cputime overflow in uptime_proc_show Greg KH
2012-01-23 23:39 ` [61/90] block: add and use scsi_blk_cmd_ioctl Greg KH
2012-01-23 23:39 ` [62/90] block: fail SCSI passthrough ioctls on partition devices Greg KH
2012-01-24 13:01   ` Paolo Bonzini
2012-01-24 16:43   ` [v2] " Paolo Bonzini
2012-01-23 23:39 ` [63/90] dm: do not forward ioctls from logical volumes to the underlying device Greg KH
2012-01-23 23:39 ` [64/90] proc: clean up and fix /proc/<pid>/mem handling Greg KH
2012-01-23 23:39 ` [65/90] ALSA: virtuoso: Xonar DS: fix polarity of front output Greg KH
2012-01-23 23:39 ` [66/90] ALSA: HDA: Fix internal microphone on Dell Studio 16 XPS 1645 Greg KH
2012-01-23 23:39 ` [67/90] intel idle: Make idle driver more robust Greg KH
2012-01-26 14:45   ` Kirill A. Shutemov
2012-01-26 15:47     ` Michael Tokarev
2012-01-26 15:54       ` Kirill A. Shutemov
2012-01-26 15:59         ` Greg KH
2012-01-26 16:07           ` Kirill A. Shutemov
2012-01-23 23:39 ` [68/90] intel_idle: fix API misuse Greg KH
2012-01-23 23:39 ` [69/90] ACPI: Store SRAT table revision Greg KH
2012-01-23 23:39 ` [70/90] ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64) Greg KH
2012-01-23 23:39 ` [71/90] ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64) Greg KH
2012-01-23 23:39 ` [72/90] ACPICA: Put back the call to acpi_os_validate_address Greg KH
2012-01-23 23:39 ` [73/90] ACPI: processor: fix acpi_get_cpuid for UP processor Greg KH
2012-01-23 23:40 ` [74/90] [SCSI] sym53c8xx: Fix NULL pointer dereference in slave_destroy Greg KH
2012-01-23 23:40 ` [75/90] target: Set response format in INQUIRY response Greg KH
2012-01-23 23:40 ` [76/90] target: Set additional sense length field in sense data Greg KH
2012-01-23 23:40 ` [77/90] I2C: OMAP: correct SYSC register offset for OMAP4 Greg KH
2012-01-23 23:40 ` [78/90] x86/UV2: Fix BAU destination timeout initialization Greg KH
2012-01-23 23:40 ` [79/90] rt2800pci: fix spurious interrupts generation Greg KH
2012-01-23 23:40 ` [80/90] pnfs-obj: pNFS errors are communicated on iodata->pnfs_error Greg KH
2012-01-23 23:40 ` [81/90] pnfs-obj: Must return layout on IO error Greg KH
2012-01-23 23:40 ` [82/90] net: Fix driver name for mdio-gpio.c Greg KH
2012-01-23 23:40 ` [83/90] i2c-eg20t: modified the setting of transfer rate Greg KH
2012-01-23 23:40 ` [84/90] score: fix off-by-one index into syscall table Greg KH
2012-01-23 23:40 ` [85/90] kprobes: initialize before using a hlist Greg KH
2012-01-23 23:40 ` [86/90] proc: clear_refs: do not clear reserved pages Greg KH
2012-01-23 23:40 ` [87/90] mm: fix NULL ptr dereference in __count_immobile_pages Greg KH
2012-01-23 23:40 ` [88/90] iwlagn: check for SMPS mode Greg KH
2012-01-23 23:40 ` [89/90] iwlegacy: 3945: fix hw passive scan on radar channels Greg KH
2012-01-23 23:40 ` [90/90] UBIFS: make debugging messages light again 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=20120124023934.262597826@clark.kroah.org \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=cpw@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=stable@vger.kernel.org \
    --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

all inboxes | Powered by JetHome®