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@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
	akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
	Alexey Dobriyan <adobriyan@gmail.com>,
	Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
	Len Brown <len.brown@intel.com>
Subject: [074/197] thinkpad-acpi: convert to seq_file
Date: Thu, 22 Apr 2010 12:08:45 -0700	[thread overview]
Message-ID: <20100422190914.024327790@kvm.kroah.org> (raw)
In-Reply-To: <20100422191857.GA13268@kroah.com>

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

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

From: Alexey Dobriyan <adobriyan@gmail.com>

commit 887965e6576a78f71b9b98dec43fd1c73becd2e8 upstream.

(hmh@hmh.eng.br: Updated to apply to 2.6.32.y)

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/platform/x86/thinkpad_acpi.c |  282 ++++++++++++++++-------------------
 1 file changed, 131 insertions(+), 151 deletions(-)

--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -61,6 +61,7 @@
 
 #include <linux/nvram.h>
 #include <linux/proc_fs.h>
+#include <linux/seq_file.h>
 #include <linux/sysfs.h>
 #include <linux/backlight.h>
 #include <linux/fb.h>
@@ -256,7 +257,7 @@ struct tp_acpi_drv_struct {
 struct ibm_struct {
 	char *name;
 
-	int (*read) (char *);
+	int (*read) (struct seq_file *);
 	int (*write) (char *);
 	void (*exit) (void);
 	void (*resume) (void);
@@ -776,36 +777,25 @@ static int __init register_tpacpi_subdri
  ****************************************************************************
  ****************************************************************************/
 
-static int dispatch_procfs_read(char *page, char **start, off_t off,
-			int count, int *eof, void *data)
+static int dispatch_proc_show(struct seq_file *m, void *v)
 {
-	struct ibm_struct *ibm = data;
-	int len;
+	struct ibm_struct *ibm = m->private;
 
 	if (!ibm || !ibm->read)
 		return -EINVAL;
+	return ibm->read(m);
+}
 
-	len = ibm->read(page);
-	if (len < 0)
-		return len;
-
-	if (len <= off + count)
-		*eof = 1;
-	*start = page + off;
-	len -= off;
-	if (len > count)
-		len = count;
-	if (len < 0)
-		len = 0;
-
-	return len;
+static int dispatch_proc_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, dispatch_proc_show, PDE(inode)->data);
 }
 
-static int dispatch_procfs_write(struct file *file,
+static ssize_t dispatch_proc_write(struct file *file,
 			const char __user *userbuf,
-			unsigned long count, void *data)
+			size_t count, loff_t *pos)
 {
-	struct ibm_struct *ibm = data;
+	struct ibm_struct *ibm = PDE(file->f_path.dentry->d_inode)->data;
 	char *kernbuf;
 	int ret;
 
@@ -834,6 +824,15 @@ static int dispatch_procfs_write(struct
 	return ret;
 }
 
+static const struct file_operations dispatch_proc_fops = {
+	.owner		= THIS_MODULE,
+	.open		= dispatch_proc_open,
+	.read		= seq_read,
+	.llseek		= seq_lseek,
+	.release	= single_release,
+	.write		= dispatch_proc_write,
+};
+
 static char *next_cmd(char **cmds)
 {
 	char *start = *cmds;
@@ -1388,12 +1387,11 @@ static ssize_t tpacpi_rfk_sysfs_enable_s
 }
 
 /* procfs -------------------------------------------------------------- */
-static int tpacpi_rfk_procfs_read(const enum tpacpi_rfk_id id, char *p)
+static int tpacpi_rfk_procfs_read(const enum tpacpi_rfk_id id,
+				  struct seq_file *m)
 {
-	int len = 0;
-
 	if (id >= TPACPI_RFK_SW_MAX)
-		len += sprintf(p + len, "status:\t\tnot supported\n");
+		seq_printf(m, "status:\t\tnot supported\n");
 	else {
 		int status;
 
@@ -1407,13 +1405,13 @@ static int tpacpi_rfk_procfs_read(const
 				return status;
 		}
 
-		len += sprintf(p + len, "status:\t\t%s\n",
+		seq_printf(m, "status:\t\t%s\n",
 				(status == TPACPI_RFK_RADIO_ON) ?
 					"enabled" : "disabled");
-		len += sprintf(p + len, "commands:\tenable, disable\n");
+		seq_printf(m, "commands:\tenable, disable\n");
 	}
 
-	return len;
+	return 0;
 }
 
 static int tpacpi_rfk_procfs_write(const enum tpacpi_rfk_id id, char *buf)
@@ -1891,14 +1889,11 @@ static int __init thinkpad_acpi_driver_i
 	return 0;
 }
 
-static int thinkpad_acpi_driver_read(char *p)
+static int thinkpad_acpi_driver_read(struct seq_file *m)
 {
-	int len = 0;
-
-	len += sprintf(p + len, "driver:\t\t%s\n", TPACPI_DESC);
-	len += sprintf(p + len, "version:\t%s\n", TPACPI_VERSION);
-
-	return len;
+	seq_printf(m, "driver:\t\t%s\n", TPACPI_DESC);
+	seq_printf(m, "version:\t%s\n", TPACPI_VERSION);
+	return 0;
 }
 
 static struct ibm_struct thinkpad_acpi_driver_data = {
@@ -3754,14 +3749,13 @@ static void hotkey_resume(void)
 }
 
 /* procfs -------------------------------------------------------------- */
-static int hotkey_read(char *p)
+static int hotkey_read(struct seq_file *m)
 {
 	int res, status;
-	int len = 0;
 
 	if (!tp_features.hotkey) {
-		len += sprintf(p + len, "status:\t\tnot supported\n");
-		return len;
+		seq_printf(m, "status:\t\tnot supported\n");
+		return 0;
 	}
 
 	if (mutex_lock_killable(&hotkey_mutex))
@@ -3773,17 +3767,16 @@ static int hotkey_read(char *p)
 	if (res)
 		return res;
 
-	len += sprintf(p + len, "status:\t\t%s\n", enabled(status, 0));
+	seq_printf(m, "status:\t\t%s\n", enabled(status, 0));
 	if (hotkey_all_mask) {
-		len += sprintf(p + len, "mask:\t\t0x%08x\n", hotkey_user_mask);
-		len += sprintf(p + len,
-			       "commands:\tenable, disable, reset, <mask>\n");
+		seq_printf(m, "mask:\t\t0x%08x\n", hotkey_user_mask);
+		seq_printf(m, "commands:\tenable, disable, reset, <mask>\n");
 	} else {
-		len += sprintf(p + len, "mask:\t\tnot supported\n");
-		len += sprintf(p + len, "commands:\tenable, disable, reset\n");
+		seq_printf(m, "mask:\t\tnot supported\n");
+		seq_printf(m, "commands:\tenable, disable, reset\n");
 	}
 
-	return len;
+	return 0;
 }
 
 static void hotkey_enabledisable_warn(bool enable)
@@ -4050,9 +4043,9 @@ static int __init bluetooth_init(struct
 }
 
 /* procfs -------------------------------------------------------------- */
-static int bluetooth_read(char *p)
+static int bluetooth_read(struct seq_file *m)
 {
-	return tpacpi_rfk_procfs_read(TPACPI_RFK_BLUETOOTH_SW_ID, p);
+	return tpacpi_rfk_procfs_read(TPACPI_RFK_BLUETOOTH_SW_ID, m);
 }
 
 static int bluetooth_write(char *buf)
@@ -4241,9 +4234,9 @@ static int __init wan_init(struct ibm_in
 }
 
 /* procfs -------------------------------------------------------------- */
-static int wan_read(char *p)
+static int wan_read(struct seq_file *m)
 {
-	return tpacpi_rfk_procfs_read(TPACPI_RFK_WWAN_SW_ID, p);
+	return tpacpi_rfk_procfs_read(TPACPI_RFK_WWAN_SW_ID, m);
 }
 
 static int wan_write(char *buf)
@@ -4618,14 +4611,13 @@ static int video_expand_toggle(void)
 	/* not reached */
 }
 
-static int video_read(char *p)
+static int video_read(struct seq_file *m)
 {
 	int status, autosw;
-	int len = 0;
 
 	if (video_supported == TPACPI_VIDEO_NONE) {
-		len += sprintf(p + len, "status:\t\tnot supported\n");
-		return len;
+		seq_printf(m, "status:\t\tnot supported\n");
+		return 0;
 	}
 
 	status = video_outputsw_get();
@@ -4636,20 +4628,20 @@ static int video_read(char *p)
 	if (autosw < 0)
 		return autosw;
 
-	len += sprintf(p + len, "status:\t\tsupported\n");
-	len += sprintf(p + len, "lcd:\t\t%s\n", enabled(status, 0));
-	len += sprintf(p + len, "crt:\t\t%s\n", enabled(status, 1));
+	seq_printf(m, "status:\t\tsupported\n");
+	seq_printf(m, "lcd:\t\t%s\n", enabled(status, 0));
+	seq_printf(m, "crt:\t\t%s\n", enabled(status, 1));
 	if (video_supported == TPACPI_VIDEO_NEW)
-		len += sprintf(p + len, "dvi:\t\t%s\n", enabled(status, 3));
-	len += sprintf(p + len, "auto:\t\t%s\n", enabled(autosw, 0));
-	len += sprintf(p + len, "commands:\tlcd_enable, lcd_disable\n");
-	len += sprintf(p + len, "commands:\tcrt_enable, crt_disable\n");
+		seq_printf(m, "dvi:\t\t%s\n", enabled(status, 3));
+	seq_printf(m, "auto:\t\t%s\n", enabled(autosw, 0));
+	seq_printf(m, "commands:\tlcd_enable, lcd_disable\n");
+	seq_printf(m, "commands:\tcrt_enable, crt_disable\n");
 	if (video_supported == TPACPI_VIDEO_NEW)
-		len += sprintf(p + len, "commands:\tdvi_enable, dvi_disable\n");
-	len += sprintf(p + len, "commands:\tauto_enable, auto_disable\n");
-	len += sprintf(p + len, "commands:\tvideo_switch, expand_toggle\n");
+		seq_printf(m, "commands:\tdvi_enable, dvi_disable\n");
+	seq_printf(m, "commands:\tauto_enable, auto_disable\n");
+	seq_printf(m, "commands:\tvideo_switch, expand_toggle\n");
 
-	return len;
+	return 0;
 }
 
 static int video_write(char *buf)
@@ -4841,25 +4833,24 @@ static void light_exit(void)
 		flush_workqueue(tpacpi_wq);
 }
 
-static int light_read(char *p)
+static int light_read(struct seq_file *m)
 {
-	int len = 0;
 	int status;
 
 	if (!tp_features.light) {
-		len += sprintf(p + len, "status:\t\tnot supported\n");
+		seq_printf(m, "status:\t\tnot supported\n");
 	} else if (!tp_features.light_status) {
-		len += sprintf(p + len, "status:\t\tunknown\n");
-		len += sprintf(p + len, "commands:\ton, off\n");
+		seq_printf(m, "status:\t\tunknown\n");
+		seq_printf(m, "commands:\ton, off\n");
 	} else {
 		status = light_get_status();
 		if (status < 0)
 			return status;
-		len += sprintf(p + len, "status:\t\t%s\n", onoff(status, 0));
-		len += sprintf(p + len, "commands:\ton, off\n");
+		seq_printf(m, "status:\t\t%s\n", onoff(status, 0));
+		seq_printf(m, "commands:\ton, off\n");
 	}
 
-	return len;
+	return 0;
 }
 
 static int light_write(char *buf)
@@ -4937,20 +4928,18 @@ static void cmos_exit(void)
 	device_remove_file(&tpacpi_pdev->dev, &dev_attr_cmos_command);
 }
 
-static int cmos_read(char *p)
+static int cmos_read(struct seq_file *m)
 {
-	int len = 0;
-
 	/* cmos not supported on 570, 600e/x, 770e, 770x, A21e, A2xm/p,
 	   R30, R31, T20-22, X20-21 */
 	if (!cmos_handle)
-		len += sprintf(p + len, "status:\t\tnot supported\n");
+		seq_printf(m, "status:\t\tnot supported\n");
 	else {
-		len += sprintf(p + len, "status:\t\tsupported\n");
-		len += sprintf(p + len, "commands:\t<cmd> (<cmd> is 0-21)\n");
+		seq_printf(m, "status:\t\tsupported\n");
+		seq_printf(m, "commands:\t<cmd> (<cmd> is 0-21)\n");
 	}
 
-	return len;
+	return 0;
 }
 
 static int cmos_write(char *buf)
@@ -5325,15 +5314,13 @@ static int __init led_init(struct ibm_in
 	((s) == TPACPI_LED_OFF ? "off" : \
 		((s) == TPACPI_LED_ON ? "on" : "blinking"))
 
-static int led_read(char *p)
+static int led_read(struct seq_file *m)
 {
-	int len = 0;
-
 	if (!led_supported) {
-		len += sprintf(p + len, "status:\t\tnot supported\n");
-		return len;
+		seq_printf(m, "status:\t\tnot supported\n");
+		return 0;
 	}
-	len += sprintf(p + len, "status:\t\tsupported\n");
+	seq_printf(m, "status:\t\tsupported\n");
 
 	if (led_supported == TPACPI_LED_570) {
 		/* 570 */
@@ -5342,15 +5329,15 @@ static int led_read(char *p)
 			status = led_get_status(i);
 			if (status < 0)
 				return -EIO;
-			len += sprintf(p + len, "%d:\t\t%s\n",
+			seq_printf(m, "%d:\t\t%s\n",
 				       i, str_led_status(status));
 		}
 	}
 
-	len += sprintf(p + len, "commands:\t"
+	seq_printf(m, "commands:\t"
 		       "<led> on, <led> off, <led> blink (<led> is 0-15)\n");
 
-	return len;
+	return 0;
 }
 
 static int led_write(char *buf)
@@ -5423,18 +5410,16 @@ static int __init beep_init(struct ibm_i
 	return (beep_handle)? 0 : 1;
 }
 
-static int beep_read(char *p)
+static int beep_read(struct seq_file *m)
 {
-	int len = 0;
-
 	if (!beep_handle)
-		len += sprintf(p + len, "status:\t\tnot supported\n");
+		seq_printf(m, "status:\t\tnot supported\n");
 	else {
-		len += sprintf(p + len, "status:\t\tsupported\n");
-		len += sprintf(p + len, "commands:\t<cmd> (<cmd> is 0-17)\n");
+		seq_printf(m, "status:\t\tsupported\n");
+		seq_printf(m, "commands:\t<cmd> (<cmd> is 0-17)\n");
 	}
 
-	return len;
+	return 0;
 }
 
 static int beep_write(char *buf)
@@ -5795,9 +5780,8 @@ static void thermal_exit(void)
 	}
 }
 
-static int thermal_read(char *p)
+static int thermal_read(struct seq_file *m)
 {
-	int len = 0;
 	int n, i;
 	struct ibm_thermal_sensors_struct t;
 
@@ -5805,16 +5789,16 @@ static int thermal_read(char *p)
 	if (unlikely(n < 0))
 		return n;
 
-	len += sprintf(p + len, "temperatures:\t");
+	seq_printf(m, "temperatures:\t");
 
 	if (n > 0) {
 		for (i = 0; i < (n - 1); i++)
-			len += sprintf(p + len, "%d ", t.temp[i] / 1000);
-		len += sprintf(p + len, "%d\n", t.temp[i] / 1000);
+			seq_printf(m, "%d ", t.temp[i] / 1000);
+		seq_printf(m, "%d\n", t.temp[i] / 1000);
 	} else
-		len += sprintf(p + len, "not supported\n");
+		seq_printf(m, "not supported\n");
 
-	return len;
+	return 0;
 }
 
 static struct ibm_struct thermal_driver_data = {
@@ -5829,39 +5813,38 @@ static struct ibm_struct thermal_driver_
 
 static u8 ecdump_regs[256];
 
-static int ecdump_read(char *p)
+static int ecdump_read(struct seq_file *m)
 {
-	int len = 0;
 	int i, j;
 	u8 v;
 
-	len += sprintf(p + len, "EC      "
+	seq_printf(m, "EC      "
 		       " +00 +01 +02 +03 +04 +05 +06 +07"
 		       " +08 +09 +0a +0b +0c +0d +0e +0f\n");
 	for (i = 0; i < 256; i += 16) {
-		len += sprintf(p + len, "EC 0x%02x:", i);
+		seq_printf(m, "EC 0x%02x:", i);
 		for (j = 0; j < 16; j++) {
 			if (!acpi_ec_read(i + j, &v))
 				break;
 			if (v != ecdump_regs[i + j])
-				len += sprintf(p + len, " *%02x", v);
+				seq_printf(m, " *%02x", v);
 			else
-				len += sprintf(p + len, "  %02x", v);
+				seq_printf(m, "  %02x", v);
 			ecdump_regs[i + j] = v;
 		}
-		len += sprintf(p + len, "\n");
+		seq_putc(m, '\n');
 		if (j != 16)
 			break;
 	}
 
 	/* These are way too dangerous to advertise openly... */
 #if 0
-	len += sprintf(p + len, "commands:\t0x<offset> 0x<value>"
+	seq_printf(m, "commands:\t0x<offset> 0x<value>"
 		       " (<offset> is 00-ff, <value> is 00-ff)\n");
-	len += sprintf(p + len, "commands:\t0x<offset> <value>  "
+	seq_printf(m, "commands:\t0x<offset> <value>  "
 		       " (<offset> is 00-ff, <value> is 0-255)\n");
 #endif
-	return len;
+	return 0;
 }
 
 static int ecdump_write(char *buf)
@@ -6314,23 +6297,22 @@ static void brightness_exit(void)
 	tpacpi_brightness_checkpoint_nvram();
 }
 
-static int brightness_read(char *p)
+static int brightness_read(struct seq_file *m)
 {
-	int len = 0;
 	int level;
 
 	level = brightness_get(NULL);
 	if (level < 0) {
-		len += sprintf(p + len, "level:\t\tunreadable\n");
+		seq_printf(m, "level:\t\tunreadable\n");
 	} else {
-		len += sprintf(p + len, "level:\t\t%d\n", level);
-		len += sprintf(p + len, "commands:\tup, down\n");
-		len += sprintf(p + len, "commands:\tlevel <level>"
+		seq_printf(m, "level:\t\t%d\n", level);
+		seq_printf(m, "commands:\tup, down\n");
+		seq_printf(m, "commands:\tlevel <level>"
 			       " (<level> is 0-%d)\n",
 			       (tp_features.bright_16levels) ? 15 : 7);
 	}
 
-	return len;
+	return 0;
 }
 
 static int brightness_write(char *buf)
@@ -6387,22 +6369,21 @@ static struct ibm_struct brightness_driv
 
 static int volume_offset = 0x30;
 
-static int volume_read(char *p)
+static int volume_read(struct seq_file *m)
 {
-	int len = 0;
 	u8 level;
 
 	if (!acpi_ec_read(volume_offset, &level)) {
-		len += sprintf(p + len, "level:\t\tunreadable\n");
+		seq_printf(m, "level:\t\tunreadable\n");
 	} else {
-		len += sprintf(p + len, "level:\t\t%d\n", level & 0xf);
-		len += sprintf(p + len, "mute:\t\t%s\n", onoff(level, 6));
-		len += sprintf(p + len, "commands:\tup, down, mute\n");
-		len += sprintf(p + len, "commands:\tlevel <level>"
+		seq_printf(m, "level:\t\t%d\n", level & 0xf);
+		seq_printf(m, "mute:\t\t%s\n", onoff(level, 6));
+		seq_printf(m, "commands:\tup, down, mute\n");
+		seq_printf(m, "commands:\tlevel <level>"
 			       " (<level> is 0-15)\n");
 	}
 
-	return len;
+	return 0;
 }
 
 static int volume_write(char *buf)
@@ -7554,9 +7535,8 @@ static void fan_resume(void)
 	}
 }
 
-static int fan_read(char *p)
+static int fan_read(struct seq_file *m)
 {
-	int len = 0;
 	int rc;
 	u8 status;
 	unsigned int speed = 0;
@@ -7568,7 +7548,7 @@ static int fan_read(char *p)
 		if (rc < 0)
 			return rc;
 
-		len += sprintf(p + len, "status:\t\t%s\n"
+		seq_printf(m, "status:\t\t%s\n"
 			       "level:\t\t%d\n",
 			       (status != 0) ? "enabled" : "disabled", status);
 		break;
@@ -7579,54 +7559,54 @@ static int fan_read(char *p)
 		if (rc < 0)
 			return rc;
 
-		len += sprintf(p + len, "status:\t\t%s\n",
+		seq_printf(m, "status:\t\t%s\n",
 			       (status != 0) ? "enabled" : "disabled");
 
 		rc = fan_get_speed(&speed);
 		if (rc < 0)
 			return rc;
 
-		len += sprintf(p + len, "speed:\t\t%d\n", speed);
+		seq_printf(m, "speed:\t\t%d\n", speed);
 
 		if (status & TP_EC_FAN_FULLSPEED)
 			/* Disengaged mode takes precedence */
-			len += sprintf(p + len, "level:\t\tdisengaged\n");
+			seq_printf(m, "level:\t\tdisengaged\n");
 		else if (status & TP_EC_FAN_AUTO)
-			len += sprintf(p + len, "level:\t\tauto\n");
+			seq_printf(m, "level:\t\tauto\n");
 		else
-			len += sprintf(p + len, "level:\t\t%d\n", status);
+			seq_printf(m, "level:\t\t%d\n", status);
 		break;
 
 	case TPACPI_FAN_NONE:
 	default:
-		len += sprintf(p + len, "status:\t\tnot supported\n");
+		seq_printf(m, "status:\t\tnot supported\n");
 	}
 
 	if (fan_control_commands & TPACPI_FAN_CMD_LEVEL) {
-		len += sprintf(p + len, "commands:\tlevel <level>");
+		seq_printf(m, "commands:\tlevel <level>");
 
 		switch (fan_control_access_mode) {
 		case TPACPI_FAN_WR_ACPI_SFAN:
-			len += sprintf(p + len, " (<level> is 0-7)\n");
+			seq_printf(m, " (<level> is 0-7)\n");
 			break;
 
 		default:
-			len += sprintf(p + len, " (<level> is 0-7, "
+			seq_printf(m, " (<level> is 0-7, "
 				       "auto, disengaged, full-speed)\n");
 			break;
 		}
 	}
 
 	if (fan_control_commands & TPACPI_FAN_CMD_ENABLE)
-		len += sprintf(p + len, "commands:\tenable, disable\n"
+		seq_printf(m, "commands:\tenable, disable\n"
 			       "commands:\twatchdog <timeout> (<timeout> "
 			       "is 0 (off), 1-120 (seconds))\n");
 
 	if (fan_control_commands & TPACPI_FAN_CMD_SPEED)
-		len += sprintf(p + len, "commands:\tspeed <speed>"
+		seq_printf(m, "commands:\tspeed <speed>"
 			       " (<speed> is 0-65535)\n");
 
-	return len;
+	return 0;
 }
 
 static int fan_write_cmd_level(const char *cmd, int *rc)
@@ -7907,19 +7887,19 @@ static int __init ibm_init(struct ibm_in
 		"%s installed\n", ibm->name);
 
 	if (ibm->read) {
-		entry = create_proc_entry(ibm->name,
-					  S_IFREG | S_IRUGO | S_IWUSR,
-					  proc_dir);
+		mode_t mode;
+
+		mode = S_IRUGO;
+		if (ibm->write)
+			mode |= S_IWUSR;
+		entry = proc_create_data(ibm->name, mode, proc_dir,
+					 &dispatch_proc_fops, ibm);
 		if (!entry) {
 			printk(TPACPI_ERR "unable to create proc entry %s\n",
 			       ibm->name);
 			ret = -ENODEV;
 			goto err_out;
 		}
-		entry->data = ibm;
-		entry->read_proc = &dispatch_procfs_read;
-		if (ibm->write)
-			entry->write_proc = &dispatch_procfs_write;
 		ibm->flags.proc_created = 1;
 	}
 



  parent reply	other threads:[~2010-04-22 19:57 UTC|newest]

Thread overview: 238+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-22 19:18 [000/197] 2.6.32.12-stable review Greg KH
2010-04-22 19:07 ` [001/197] drm/edid: allow certain bogus edids to hit a fixup path rather than fail Greg KH
2010-04-22 19:07 ` [002/197] drm/radeon: add new RS880 pci id Greg KH
2010-04-22 19:07 ` [003/197] drm: remove the EDID blob stored in the EDID property when it is disconnected Greg KH
2010-04-22 19:07 ` [004/197] fat: fix buffer overflow in vfat_create_shortname() Greg KH
2010-04-22 19:07 ` [005/197] oom: fix the unsafe usage of badness() in proc_oom_score() Greg KH
2010-04-22 19:07 ` [006/197] drm/radeon/kms: dont print error on -ERESTARTSYS Greg KH
2010-04-22 19:07 ` [007/197] drm/radeon/kms: fix pal tv-out support on legacy IGP chips Greg KH
2010-04-22 19:07 ` [008/197] drm: Return ENODEV if the inode mapping changes Greg KH
2010-04-22 19:07 ` [009/197] xfs: simplify inode teardown Greg KH
2010-04-22 19:07 ` [010/197] xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks Greg KH
2010-04-22 19:07 ` [011/197] xfs: I/O completion handlers must use NOFS allocations Greg KH
2010-04-22 19:07 ` [012/197] xfs: Wrapped journal record corruption on read at recovery Greg KH
2010-04-22 19:07 ` [013/197] xfs: Fix error return for fallocate() on XFS Greg KH
2010-04-22 19:07 ` [014/197] xfs: check for not fully initialized inodes in xfs_ireclaim Greg KH
2010-04-22 19:07 ` [015/197] xfs: fix timestamp handling in xfs_setattr Greg KH
2010-04-22 19:07 ` [016/197] xfs: Dont flush stale inodes Greg KH
2010-04-22 19:07 ` [017/197] xfs: Ensure we force all busy extents in range to disk Greg KH
2010-04-22 19:07 ` [018/197] xfs: reclaim inodes under a write lock Greg KH
2010-04-22 19:07 ` [019/197] xfs: Avoid inodes in reclaim when flushing from inode cache Greg KH
2010-04-22 19:07 ` [020/197] xfs: reclaim all inodes by background tree walks Greg KH
2010-04-22 19:07 ` [021/197] xfs: fix stale inode flush avoidance Greg KH
2010-04-22 19:07 ` [022/197] xfs: xfs_swap_extents needs to handle dynamic fork offsets Greg KH
2010-04-22 19:07 ` [023/197] xfs: quota limit statvfs available blocks Greg KH
2010-04-22 19:07 ` [024/197] xfs: dont hold onto reserved blocks on remount, ro Greg KH
2010-04-22 19:07 ` [025/197] xfs: remove invalid barrier optimization from xfs_fsync Greg KH
2010-04-22 19:07 ` [026/197] xfs: Non-blocking inode locking in IO completion Greg KH
2010-04-22 19:07 ` [027/197] xfs: fix locking for inode cache radix tree tag updates Greg KH
2010-04-22 19:07 ` [028/197] sh: Enable the mmu in start_secondary() Greg KH
2010-04-22 19:08 ` [029/197] sh: Fix FDPIC binary loader Greg KH
2010-04-22 19:08 ` [030/197] [SCSI] libiscsi: Fix recovery slowdown regression Greg KH
2010-04-22 19:08 ` [031/197] Freezer: Fix buggy resume test for tasks frozen with cgroup freezer Greg KH
2010-04-22 19:08 ` [032/197] iwlwifi: counting number of tfds can be free for 4965 Greg KH
2010-04-22 19:08 ` [033/197] iwlwifi: fix nfreed-- Greg KH
2010-04-22 19:08 ` [034/197] iwlwifi: range checking issue Greg KH
2010-04-22 19:08 ` [035/197] setup correct int pipe type in ar9170_usb_exec_cmd Greg KH
2010-04-22 19:08 ` [036/197] mac80211: move netdev queue enabling to correct spot Greg KH
2010-04-22 19:08 ` [037/197] mac80211: tear down all agg queues when restart/reconfig hw Greg KH
2010-04-22 19:08 ` [038/197] WATCHDOG: hpwdt - fix lower timeout limit Greg KH
2010-04-22 19:08 ` [039/197] WATCHDOG: iTCO_wdt: TCO Watchdog patch for additional Intel Cougar Point DeviceIDs Greg KH
2010-04-22 19:08 ` [040/197] genirq: Force MSI irq handlers to run with interrupts disabled Greg KH
2010-04-22 19:08 ` [041/197] tty: release_one_tty() forgets to put pids Greg KH
2010-04-22 19:08 ` [042/197] lis3: fix show rate for 8 bits chips Greg KH
2010-04-22 19:08 ` [043/197] pata_ali: Fix regression with old devices Greg KH
2010-04-22 19:08 ` [044/197] HID: fix oops in gyration_event() Greg KH
2010-04-22 19:08 ` [045/197] raw: fsync method is now required Greg KH
2010-04-22 19:08 ` [046/197] readahead: fix NULL filp dereference Greg KH
2010-04-22 19:08 ` [047/197] ALSA: mixart: range checking proc file Greg KH
2010-04-22 19:08 ` [048/197] ALSA: hda: Fix 0 dB offset for Lenovo Thinkpad models using AD1981 Greg KH
2010-04-22 19:08 ` [049/197] x86, amd: Get multi-node CPU info from NodeId MSR instead of PCI config space Greg KH
2010-04-26 17:10   ` Jiri Kosina
2010-04-27  6:55     ` Andreas Herrmann
2010-04-27  7:07       ` Jiri Kosina
2010-04-22 19:08 ` [050/197] resource: move kernel function inside __KERNEL__ Greg KH
2010-04-22 19:08 ` [051/197] backlight: mbp_nvidia_bl - add five more MacBook variants Greg KH
2010-04-22 19:54   ` Evan McClain
2010-04-23 16:02     ` Greg KH
2010-04-23 16:49       ` Evan McClain
2010-04-23 17:05         ` Evan McClain
2010-04-23 17:11           ` [Stable-review] " Willy Tarreau
2010-04-23 18:04             ` Evan McClain
2010-04-23 19:11               ` [stable] " Greg KH
2010-04-22 19:08 ` [052/197] KVM: x86 emulator: Add Virtual-8086 mode of emulation Greg KH
2010-04-22 19:08 ` [053/197] KVM: x86 emulator: fix memory access during x86 emulation Greg KH
2010-04-22 19:08 ` [054/197] KVM: x86 emulator: Check IOPL level during io instruction emulation Greg KH
2010-04-22 19:08 ` [055/197] KVM: x86 emulator: Fix popf emulation Greg KH
2010-04-22 19:08 ` [056/197] KVM: Fix segment descriptor loading Greg KH
2010-04-22 19:08 ` [057/197] KVM: VMX: Update instruction length on intercepted BP Greg KH
2010-04-22 19:08 ` [058/197] KVM: VMX: Use macros instead of hex value on cr0 initialization Greg KH
2010-04-22 19:08 ` [059/197] KVM: SVM: Reset cr0 properly on vcpu reset Greg KH
2010-04-22 19:08 ` [060/197] KVM: VMX: Disable unrestricted guest when EPT disabled Greg KH
2010-04-22 19:08 ` [061/197] KVM: x86: disable paravirt mmu reporting Greg KH
2010-04-22 19:08 ` [062/197] pata_via: Add VIA VX900 support Greg KH
2010-04-22 19:08 ` [063/197] ext3: Dont update the superblock in ext3_statfs() Greg KH
2010-04-22 19:08 ` [064/197] ext3: journal all modifications in ext3_xattr_set_handle Greg KH
2010-04-22 19:08 ` [065/197] thinkpad-acpi: fix some version quirks Greg KH
2010-04-22 19:08 ` [066/197] thinkpad-acpi: issue backlight class events Greg KH
2010-04-22 19:08 ` [067/197] thinkpad-acpi: silence bogus complain during rmmod Greg KH
2010-04-22 19:08 ` [068/197] thinkpad-acpi: adopt input device Greg KH
2010-04-22 19:08 ` [069/197] thinkpad-acpi: expose module parameters Greg KH
2010-04-22 19:08 ` [070/197] thinkpad-acpi: log temperatures on termal alarm (v2) Greg KH
2010-04-22 19:08 ` [071/197] thinkpad-acpi: use input_set_capability Greg KH
2010-04-22 19:08 ` [072/197] thinkpad-acpi: sync input device EV_SW initial state Greg KH
2010-04-22 19:08 ` [073/197] thinkpad-acpi: log initial state of rfkill switches Greg KH
2010-04-22 19:08 ` Greg KH [this message]
2010-04-22 19:08 ` [075/197] thinkpad-acpi: lock down video output state access Greg KH
2010-04-22 19:08 ` [076/197] eeepc-laptop: disable cpu speed control on EeePC 701 Greg KH
2010-04-22 19:08 ` [077/197] eeepc-laptop: dmi blacklist to disable pci hotplug code Greg KH
2010-04-22 19:08 ` [078/197] eeepc-laptop: add hotplug_disable parameter Greg KH
2010-04-22 19:08 ` [079/197] eeepc-laptop: disable wireless hotplug for 1201N Greg KH
2010-04-22 19:08 ` [080/197] eeepc-laptop: disable wireless hotplug for 1005PE Greg KH
2010-04-22 19:08 ` [081/197] libata: disable NCQ on Crucial C300 SSD Greg KH
2010-04-22 19:08 ` [082/197] cifs: Fix a kernel BUG with remote OS/2 server (try #3) Greg KH
2010-04-22 19:08 ` [083/197] CIFS: initialize nbytes at the beginning of CIFSSMBWrite() Greg KH
2010-04-22 19:08 ` [084/197] iwlwifi: need check for valid qos packet before free Greg KH
2010-04-22 19:08 ` [085/197] ARM: 6031/1: fix Thumb-2 decompressor Greg KH
2010-04-22 19:08 ` [086/197] drm/edid/quirks: Envision EN2028 Greg KH
2010-04-22 19:08 ` [087/197] drm/radeon: R300 AD only has one quad pipe Greg KH
2010-04-22 19:08 ` [088/197] drm/radeon/kms: fix washed out image on legacy tv dac Greg KH
2010-04-22 19:09 ` [089/197] x86-32, resume: do a global tlb flush in S4 resume Greg KH
2010-04-22 19:09 ` [090/197] x86: hpet: Make WARN_ON understandable Greg KH
2010-04-22 19:09 ` [091/197] x86, hpet: Erratum workaround for read after write of HPET comparator Greg KH
2010-04-22 19:09 ` [092/197] x86: Fix double enable_IR_x2apic() call on SMP kernel on !SMP boards Greg KH
2010-04-22 19:09 ` [093/197] sched: sched_getaffinity(): Allow less than NR_CPUS length Greg KH
2010-04-22 19:09 ` [094/197] sched: Fix sched_getaffinity() Greg KH
2010-04-22 19:09 ` [095/197] NFSv4: Fall back to ordinary lookup if nfs4_atomic_open() returns EISDIR Greg KH
2010-04-22 19:09 ` [096/197] NFSv4: fix delegated locking Greg KH
2010-04-22 19:09 ` [097/197] ALSA: hda - add a quirk for Clevo M570U laptop Greg KH
2010-04-22 19:09 ` [098/197] ALSA: usb - Fix Oops after usb-midi disconnection Greg KH
2010-04-22 19:09 ` [099/197] hwmon: (sht15) Fix sht15_calc_temp interpolation function Greg KH
2010-04-22 19:09 ` [100/197] hwmon: (sht15) Properly handle the case CONFIG_REGULATOR=n Greg KH
2010-04-22 19:09 ` [101/197] drm/i915: Add no_lvds entry for the Clientron U800 Greg KH
2010-04-22 19:09 ` [102/197] drm/radeon/kms: disable the tv encoder when tv/cv is not in use Greg KH
2010-04-22 19:09 ` [103/197] drm/radeon/kms: fix tv dac conflict resolver Greg KH
2010-04-22 19:09 ` [104/197] drm/radeon/kms: fix rs600 tlb flush Greg KH
2010-04-22 19:09 ` [105/197] drm/radeon/kms: add FireMV 2400 PCI ID Greg KH
2010-04-22 19:09 ` [106/197] x86/amd-iommu: Use helper function to destroy domain Greg KH
2010-04-22 19:09 ` [107/197] x86/amd-iommu: enable iommu before attaching devices Greg KH
2010-04-22 19:09 ` [108/197] Revert "x86: disable IOMMUs on kernel crash" Greg KH
2010-04-22 19:09 ` [109/197] x86, lib: Add wbinvd smp helpers Greg KH
2010-04-22 19:09 ` [110/197] x86, cacheinfo: Fix disabling of L3 cache indices Greg KH
2010-04-22 19:09 ` [111/197] intel-agp: Switch to wbinvd_on_all_cpus Greg KH
2010-04-22 19:09 ` [112/197] x86, cacheinfo: Add cache index disable sysfs attrs only to L3 caches Greg KH
2010-04-22 19:09 ` [113/197] x86, cacheinfo: Calculate L3 indices Greg KH
2010-05-05 16:26   ` Jiri Kosina
2010-05-05 18:02     ` Borislav Petkov
2010-05-05 21:33       ` Jiri Kosina
2010-05-06  8:17         ` Borislav Petkov
2010-05-06 13:46           ` Jiri Kosina
2010-05-06 14:13             ` Borislav Petkov
2010-05-12 23:19               ` [stable] " Greg KH
2010-05-12 23:32                 ` H. Peter Anvin
2010-05-12 23:42                   ` H. Peter Anvin
2010-05-13  5:26                     ` Jiri Kosina
2010-05-13  7:01                       ` Borislav Petkov
2010-04-22 19:09 ` [114/197] x86, cacheinfo: Remove NUMA dependency, fix for AMD Fam10h rev D1 Greg KH
2010-04-22 19:09 ` [115/197] x86, cacheinfo: Enable L3 CID only on AMD Greg KH
2010-04-22 19:09 ` [116/197] vgaarb: fix "target=default" passing Greg KH
2010-04-22 19:09 ` [117/197] x86-32: clean up rwsem inline asm statements Greg KH
2010-04-22 19:09 ` [118/197] x86: clean up rwsem type system Greg KH
2010-04-22 19:09 ` [119/197] x86-64, rwsem: 64-bit xadd rwsem implementation Greg KH
2010-04-22 19:09 ` [120/197] x86-64: support native " Greg KH
2010-04-22 19:09 ` [121/197] x86: Fix breakage of UML from the changes in the rwsem system Greg KH
2010-04-22 19:09 ` [122/197] x86-64, rwsem: Avoid store forwarding hazard in __downgrade_write Greg KH
2010-04-22 19:09 ` [123/197] fix NFS4 handling of mountpoint stat Greg KH
2010-04-22 19:09 ` [124/197] dm mpath: fix stall when requeueing io Greg KH
2010-04-22 19:09 ` [125/197] quota: Fix possible dq_flags corruption Greg KH
2010-04-22 19:09 ` [126/197] Staging: comedi: fix usbdux timeout bug Greg KH
2010-04-22 19:09 ` [127/197] Staging: comedi: usbdux.c: fix locking up of the driver when the comedi ringbuffer runs empty Greg KH
2010-04-22 19:09 ` [128/197] ocfs2: set i_mode on disk during acl operations Greg KH
2010-04-22 19:09 ` [129/197] ocfs2: Change bg_chain check for ocfs2_validate_gd_parent Greg KH
2010-04-22 19:09 ` [130/197] 9p: Skip check for mandatory locks when unlocking Greg KH
2010-04-22 19:09 ` [131/197] [SCSI] fc class: fail fast bsg requests Greg KH
2010-04-22 19:09 ` [132/197] SCSI: add scsi target reset support to scsi ioctl Greg KH
2010-04-22 19:09 ` [133/197] igb: add support for 82576NS SerDes adapter Greg KH
2010-04-22 19:09 ` [134/197] PCIe AER: prevent AER injection if hardware masks error reporting Greg KH
2010-04-22 19:09 ` [135/197] vgaarb: Fix VGA arbiter to accept PCI domains other than 0 Greg KH
2010-04-22 19:09 ` [136/197] SCSI: fc-transport: Use packed modifier for fc_bsg_request structure Greg KH
2010-04-22 19:09 ` [137/197] pci: Update pci_set_vga_state() to call arch functions Greg KH
2010-04-22 19:09 ` [138/197] PCI: kill off pci_register_set_vga_state() symbol export Greg KH
2010-04-22 19:09 ` [139/197] PCI: fix nested spinlock hang in aer_inject Greg KH
2010-04-22 19:09 ` [140/197] IPoIB: Fix TX queue lockup with mixed UD/CM traffic Greg KH
2010-04-22 19:09 ` [141/197] x86/PCI: irq and pci_ids patch for Intel Cougar Point DeviceIDs Greg KH
2010-04-22 19:09 ` [142/197] ALSA: hda_intel: ALSA HD Audio " Greg KH
2010-04-22 19:09 ` [143/197] ALSA: hda - enable snoop for Intel Cougar Point Greg KH
2010-04-22 19:09 ` [144/197] ata_piix: IDE Mode SATA patch for Intel Cougar Point DeviceIDs Greg KH
2010-04-22 19:09 ` [145/197] ahci: AHCI and RAID mode " Greg KH
2010-04-22 19:09 ` [146/197] i2c-i801: Add Intel Cougar Point device IDs Greg KH
2010-04-22 19:09 ` [147/197] b43: Remove reset after fatal DMA error Greg KH
2010-04-22 19:09 ` [148/197] b43: Allow PIO mode to be selected at module load Greg KH
2010-04-22 19:10 ` [149/197] b43: fall back gracefully to PIO mode after fatal DMA errors Greg KH
2010-04-22 19:10 ` [150/197] ALSA: hda - Add position_fix quirk for Biostar mobo Greg KH
2010-04-22 19:10 ` [151/197] agp/hp: fixup hp agp after ACPI changes Greg KH
2010-04-22 19:10 ` [152/197] b43: Optimize PIO scratchbuffer usage Greg KH
2010-04-22 19:10 ` [153/197] ecryptfs: fix use with tmpfs by removing d_drop from ecryptfs_destroy_inode Greg KH
2010-04-22 19:10 ` [154/197] eCryptfs: Decrypt symlink target for stat size Greg KH
2010-04-22 19:10 ` [155/197] ecryptfs: fix error code for missing xattrs in lower fs Greg KH
2010-04-22 19:10 ` [156/197] sched: Fix a race between ttwu() and migrate_task() Greg KH
2010-04-22 19:10 ` [157/197] USB: cdc-acm: Update to new autopm API Greg KH
2010-04-22 19:10 ` [158/197] USB: cdc-acm: Fix stupid NULL pointer in resume() Greg KH
2010-04-22 19:10 ` [159/197] iwlwifi: clear all tx queues when firmware ready Greg KH
2010-04-22 19:10 ` [160/197] iwlwifi: fix scan race Greg KH
2010-04-22 19:10 ` [161/197] e1000e: stop cleaning when we reach tx_ring->next_to_use Greg KH
2010-04-22 19:10 ` [162/197] r8169: offical fix for CVE-2009-4537 (overlength frame DMAs) Greg KH
2010-04-22 19:10 ` [163/197] tcp: fix ICMP-RTO war Greg KH
2010-04-22 19:10 ` [164/197] perf_events, x86: Implement Intel Westmere/Nehalem-EX support Greg KH
2010-04-22 19:10 ` [165/197] ACPI: EC: Allow multibyte access to EC Greg KH
2010-04-22 19:59   ` Linus Torvalds
2010-04-22 20:07     ` Greg KH
2010-04-22 19:10 ` [166/197] md/raid5: allow for more than 2^31 chunks Greg KH
2010-04-23  0:33   ` [Stable-review] " Chuck Ebbert
2010-04-23  0:58     ` Linus Torvalds
2010-04-23  3:11       ` Greg KH
2010-04-23 16:06     ` Greg KH
2010-04-22 19:10 ` [167/197] ACPI: EC: Limit burst to 64 bits Greg KH
2010-04-22 19:10 ` [168/197] Input: wacom - switch mode upon system resume Greg KH
2010-04-22 19:10 ` [169/197] modules: fix incorrect percpu usage Greg KH
2010-04-28 17:46   ` Mathieu Desnoyers
2010-04-22 19:10 ` [170/197] lockdep: " Greg KH
2010-04-22 21:08   ` [Stable-review] " Nikola Ciprich
2010-04-22 22:02     ` Mathieu Desnoyers
2010-04-23 16:05       ` Greg KH
2010-04-28 17:46   ` Mathieu Desnoyers
2010-04-22 19:10 ` [171/197] module: fix __module_ref_addr() Greg KH
2010-04-28 14:52   ` Jiri Benc
2010-04-28 16:20     ` Mathieu Desnoyers
2010-04-28 16:55       ` Jiri Benc
2010-04-28 17:24         ` Tejun Heo
2010-04-28 17:29           ` Greg KH
2010-04-28 17:45             ` Mathieu Desnoyers
2010-05-12 22:14             ` [stable] " Greg KH
2010-04-22 19:10 ` [172/197] md: deal with merge_bvec_fn in component devices better Greg KH
2010-04-22 19:10 ` [173/197] nfsd4: dont try to map gids in generic rpc code Greg KH
2010-04-22 19:10 ` [174/197] Revert "sunrpc: fix peername failed on closed listener" Greg KH
2010-04-22 19:10 ` [175/197] Revert "sunrpc: move the close processing after do recvfrom method" Greg KH
2010-04-22 19:10 ` [176/197] nfsd: ensure sockets are closed on error Greg KH
2010-04-22 19:10 ` [177/197] ALSA: hda: Set Front Mic to input vref 50% for Lenovo 3000 Y410 Greg KH
2010-04-22 19:10 ` [178/197] mac80211: fix deferred hardware scan requests Greg KH
2010-04-22 19:10 ` [179/197] fs-writeback: Add helper function to start writeback if idle Greg KH
2010-04-22 19:10 ` [180/197] ext4: flush delalloc blocks when space is low Greg KH
2010-04-22 19:10 ` [181/197] ext4: fix async i/o writes beyond 4GB to a sparse file Greg KH
2010-04-22 19:10 ` [182/197] tpm: autoload tpm_tis based on system PnP IDs Greg KH
2010-04-22 19:10 ` [183/197] IB/iser: Rewrite SG handling for RDMA logic Greg KH
2010-04-22 19:10 ` [184/197] [SCSI] mptctl : Remove printk which floods unnecessary messages to var/log/message Greg KH
2010-04-22 19:10 ` [185/197] [SCSI] mptspi: Fix for incorrect data underrun errata Greg KH
2010-04-22 19:10 ` [186/197] sched: Use proper type in sched_getaffinity() Greg KH
2010-04-22 19:10 ` [187/197] KVM: SVM: Fix memory leaks that happen when svm_create_vcpu() fails Greg KH
2010-04-22 19:10 ` [188/197] KVM: Dont spam kernel log when injecting exceptions due to bad cr writes Greg KH
2010-04-22 19:10 ` [189/197] KVM: allow bit 10 to be cleared in MSR_IA32_MC4_CTL Greg KH
2010-04-22 19:10 ` [190/197] KVM: VMX: Save/restore rflags.vm correctly in real mode Greg KH
2010-04-22 19:10 ` [191/197] KVM: MMU: fix kvm_mmu_zap_page() and its calling path Greg KH
2010-04-22 19:10 ` [192/197] KVM: fix the handling of dirty bitmaps to avoid overflows Greg KH
2010-04-22 19:10 ` [193/197] KVM: Increase NR_IOBUS_DEVS limit to 200 Greg KH
2010-04-22 19:10 ` [194/197] KVM: x86: Fix TSS size check for 16-bit tasks Greg KH
2010-04-22 19:10 ` [195/197] x86/gart: Disable GART explicitly before initialization Greg KH
2010-04-22 19:10 ` [196/197] MIPS: uasm: Add OR instruction Greg KH
2010-04-22 19:10 ` [197/197] MIPS: Sibyte: Fix M3 TLB exception handler workaround Greg KH
2010-04-23 16:10 ` [stable] [000/197] 2.6.32.12-stable review 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=20100422190914.024327790@kvm.kroah.org \
    --to=gregkh@suse.de \
    --cc=adobriyan@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=hmh@hmh.eng.br \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable-review@kernel.org \
    --cc=stable@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®