All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <45807469.6040609@assembler.cz>

diff --git a/a/1.txt b/N1/1.txt
index bd18bbf..8ef4508 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -25,10 +25,3 @@ Rudolf
 Please CC me, I'm not on all lists.
 
 [1] http://lists.lm-sensors.org/pipermail/lm-sensors/2006-December/018420.html
--------------- next part --------------
-A non-text attachment was scrubbed...
-Name: merge-msr-funcs.patch
-Type: text/x-patch
-Size: 4094 bytes
-Desc: not available
-Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20061213/f144eb2c/attachment.bin
diff --git a/N1/2.hdr b/N1/2.hdr
new file mode 100644
index 0000000..9ea9225
--- /dev/null
+++ b/N1/2.hdr
@@ -0,0 +1,5 @@
+Content-Type: text/x-patch;
+ name="merge-msr-funcs.patch"
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline;
+ filename="merge-msr-funcs.patch"
diff --git a/N1/2.txt b/N1/2.txt
new file mode 100644
index 0000000..3d6fb19
--- /dev/null
+++ b/N1/2.txt
@@ -0,0 +1,136 @@
+Index: linux-2.6.19-rc2/arch/i386/kernel/msr.c
+===================================================================
+--- linux-2.6.19-rc2.orig/arch/i386/kernel/msr.c	2006-10-17 23:10:39.470361250 +0200
++++ linux-2.6.19-rc2/arch/i386/kernel/msr.c	2006-10-17 23:15:54.470047500 +0200
+@@ -90,7 +90,7 @@
+ 		cmd->err = rdmsr_eio(cmd->reg, &cmd->data[0], &cmd->data[1]);
+ }
+ 
+-static inline int do_wrmsr(int cpu, u32 reg, u32 eax, u32 edx)
++int msr_write(int cpu, u32 reg, u32 eax, u32 edx)
+ {
+ 	struct msr_command cmd;
+ 	int ret;
+@@ -111,7 +111,7 @@
+ 	return ret;
+ }
+ 
+-static inline int do_rdmsr(int cpu, u32 reg, u32 * eax, u32 * edx)
++int msr_read(int cpu, u32 reg, u32 * eax, u32 * edx)
+ {
+ 	struct msr_command cmd;
+ 	int ret;
+@@ -136,19 +136,22 @@
+ 
+ #else				/* ! CONFIG_SMP */
+ 
+-static inline int do_wrmsr(int cpu, u32 reg, u32 eax, u32 edx)
++int msr_write(int cpu, u32 reg, u32 eax, u32 edx)
+ {
+ 	return wrmsr_eio(reg, eax, edx);
+ }
+ 
+-static inline int do_rdmsr(int cpu, u32 reg, u32 *eax, u32 *edx)
++int msr_read(int cpu, u32 reg, u32 *eax, u32 *edx)
+ {
+ 	return rdmsr_eio(reg, eax, edx);
+ }
+ 
+ #endif				/* ! CONFIG_SMP */
+ 
+-static loff_t msr_seek(struct file *file, loff_t offset, int orig)
++EXPORT_SYMBOL_GPL(msr_write);
++EXPORT_SYMBOL_GPL(msr_read);
++
++static loff_t msr_fseek(struct file *file, loff_t offset, int orig)
+ {
+ 	loff_t ret = -EINVAL;
+ 
+@@ -166,7 +169,7 @@
+ 	return ret;
+ }
+ 
+-static ssize_t msr_read(struct file *file, char __user * buf,
++static ssize_t msr_fread(struct file *file, char __user * buf,
+ 			size_t count, loff_t * ppos)
+ {
+ 	u32 __user *tmp = (u32 __user *) buf;
+@@ -179,7 +182,7 @@
+ 		return -EINVAL;	/* Invalid chunk size */
+ 
+ 	for (; count; count -= 8) {
+-		err = do_rdmsr(cpu, reg, &data[0], &data[1]);
++		err = msr_read(cpu, reg, &data[0], &data[1]);
+ 		if (err)
+ 			return err;
+ 		if (copy_to_user(tmp, &data, 8))
+@@ -190,7 +193,7 @@
+ 	return ((char __user *)tmp) - buf;
+ }
+ 
+-static ssize_t msr_write(struct file *file, const char __user *buf,
++static ssize_t msr_fwrite(struct file *file, const char __user *buf,
+ 			 size_t count, loff_t *ppos)
+ {
+ 	const u32 __user *tmp = (const u32 __user *)buf;
+@@ -206,7 +209,7 @@
+ 	for (rv = 0; count; count -= 8) {
+ 		if (copy_from_user(&data, tmp, 8))
+ 			return -EFAULT;
+-		err = do_wrmsr(cpu, reg, data[0], data[1]);
++		err = msr_write(cpu, reg, data[0], data[1]);
+ 		if (err)
+ 			return err;
+ 		tmp += 2;
+@@ -215,7 +218,7 @@
+ 	return ((char __user *)tmp) - buf;
+ }
+ 
+-static int msr_open(struct inode *inode, struct file *file)
++static int msr_fopen(struct inode *inode, struct file *file)
+ {
+ 	unsigned int cpu = iminor(file->f_dentry->d_inode);
+ 	struct cpuinfo_x86 *c = &(cpu_data)[cpu];
+@@ -233,10 +236,10 @@
+  */
+ static struct file_operations msr_fops = {
+ 	.owner = THIS_MODULE,
+-	.llseek = msr_seek,
+-	.read = msr_read,
+-	.write = msr_write,
+-	.open = msr_open,
++	.llseek = msr_fseek,
++	.read = msr_fread,
++	.write = msr_fwrite,
++	.open = msr_fopen,
+ };
+ 
+ static int msr_class_device_create(int i)
+Index: linux-2.6.19-rc2/include/asm-i386/msr.h
+===================================================================
+--- linux-2.6.19-rc2.orig/include/asm-i386/msr.h	2006-10-17 23:10:39.446359750 +0200
++++ linux-2.6.19-rc2/include/asm-i386/msr.h	2006-10-17 23:10:52.211157500 +0200
+@@ -78,6 +78,9 @@
+ 			  : "=a" (low), "=d" (high) \
+ 			  : "c" (counter))
+ 
++int msr_write(int cpu, u32 reg, u32 eax, u32 edx);
++int msr_read(int cpu, u32 reg, u32 *eax, u32 *edx);
++
+ /* symbolic names for some interesting MSRs */
+ /* Intel defined MSRs. */
+ #define MSR_IA32_P5_MC_ADDR		0
+Index: linux-2.6.19-rc2/include/asm-x86_64/msr.h
+===================================================================
+--- linux-2.6.19-rc2.orig/include/asm-x86_64/msr.h	2006-10-17 23:10:39.382355750 +0200
++++ linux-2.6.19-rc2/include/asm-x86_64/msr.h	2006-10-17 23:18:29.347726750 +0200
+@@ -160,7 +160,8 @@
+ #define MSR_IA32_UCODE_WRITE		0x79
+ #define MSR_IA32_UCODE_REV		0x8b
+ 
+-
++int msr_write(int cpu, u32 reg, u32 eax, u32 edx);
++int msr_read(int cpu, u32 reg, u32 *eax, u32 *edx);
+ #endif
+ 
+ /* AMD/K8 specific MSRs */
diff --git a/a/content_digest b/N1/content_digest
index 15c9f39..486bf1f 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,12 +1,12 @@
- "From\0r.marek@assembler.cz (Rudolf Marek)\0"
- "Subject\0[lm-sensors] [RFC] new MSR r/w functions per CPU\0"
- "Date\0Wed, 13 Dec 2006 21:45:13 +0000\0"
+ "From\0Rudolf Marek <r.marek@assembler.cz>\0"
+ "Subject\0[RFC] new MSR r/w functions per CPU\0"
+ "Date\0Wed, 13 Dec 2006 22:45:13 +0100\0"
  "To\0hpa@zytor.com"
  " norsk5@xmission.com\0"
  "Cc\0lkml <linux-kernel@vger.kernel.org>"
   LM Sensors <lm-sensors@lm-sensors.org>
  " bluesmoke-devel@lists.sourceforge.net\0"
- "\00:1\0"
+ "\01:1\0"
  "b\0"
  "Hello all,\n"
  "\n"
@@ -34,13 +34,145 @@
  "\n"
  "Please CC me, I'm not on all lists.\n"
  "\n"
- "[1] http://lists.lm-sensors.org/pipermail/lm-sensors/2006-December/018420.html\n"
- "-------------- next part --------------\n"
- "A non-text attachment was scrubbed...\n"
- "Name: merge-msr-funcs.patch\n"
- "Type: text/x-patch\n"
- "Size: 4094 bytes\n"
- "Desc: not available\n"
- Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20061213/f144eb2c/attachment.bin
+ [1] http://lists.lm-sensors.org/pipermail/lm-sensors/2006-December/018420.html
+ "\01:2\0"
+ "fn\0merge-msr-funcs.patch\0"
+ "b\0"
+ "Index: linux-2.6.19-rc2/arch/i386/kernel/msr.c\n"
+ "===================================================================\n"
+ "--- linux-2.6.19-rc2.orig/arch/i386/kernel/msr.c\t2006-10-17 23:10:39.470361250 +0200\n"
+ "+++ linux-2.6.19-rc2/arch/i386/kernel/msr.c\t2006-10-17 23:15:54.470047500 +0200\n"
+ "@@ -90,7 +90,7 @@\n"
+ " \t\tcmd->err = rdmsr_eio(cmd->reg, &cmd->data[0], &cmd->data[1]);\n"
+ " }\n"
+ " \n"
+ "-static inline int do_wrmsr(int cpu, u32 reg, u32 eax, u32 edx)\n"
+ "+int msr_write(int cpu, u32 reg, u32 eax, u32 edx)\n"
+ " {\n"
+ " \tstruct msr_command cmd;\n"
+ " \tint ret;\n"
+ "@@ -111,7 +111,7 @@\n"
+ " \treturn ret;\n"
+ " }\n"
+ " \n"
+ "-static inline int do_rdmsr(int cpu, u32 reg, u32 * eax, u32 * edx)\n"
+ "+int msr_read(int cpu, u32 reg, u32 * eax, u32 * edx)\n"
+ " {\n"
+ " \tstruct msr_command cmd;\n"
+ " \tint ret;\n"
+ "@@ -136,19 +136,22 @@\n"
+ " \n"
+ " #else\t\t\t\t/* ! CONFIG_SMP */\n"
+ " \n"
+ "-static inline int do_wrmsr(int cpu, u32 reg, u32 eax, u32 edx)\n"
+ "+int msr_write(int cpu, u32 reg, u32 eax, u32 edx)\n"
+ " {\n"
+ " \treturn wrmsr_eio(reg, eax, edx);\n"
+ " }\n"
+ " \n"
+ "-static inline int do_rdmsr(int cpu, u32 reg, u32 *eax, u32 *edx)\n"
+ "+int msr_read(int cpu, u32 reg, u32 *eax, u32 *edx)\n"
+ " {\n"
+ " \treturn rdmsr_eio(reg, eax, edx);\n"
+ " }\n"
+ " \n"
+ " #endif\t\t\t\t/* ! CONFIG_SMP */\n"
+ " \n"
+ "-static loff_t msr_seek(struct file *file, loff_t offset, int orig)\n"
+ "+EXPORT_SYMBOL_GPL(msr_write);\n"
+ "+EXPORT_SYMBOL_GPL(msr_read);\n"
+ "+\n"
+ "+static loff_t msr_fseek(struct file *file, loff_t offset, int orig)\n"
+ " {\n"
+ " \tloff_t ret = -EINVAL;\n"
+ " \n"
+ "@@ -166,7 +169,7 @@\n"
+ " \treturn ret;\n"
+ " }\n"
+ " \n"
+ "-static ssize_t msr_read(struct file *file, char __user * buf,\n"
+ "+static ssize_t msr_fread(struct file *file, char __user * buf,\n"
+ " \t\t\tsize_t count, loff_t * ppos)\n"
+ " {\n"
+ " \tu32 __user *tmp = (u32 __user *) buf;\n"
+ "@@ -179,7 +182,7 @@\n"
+ " \t\treturn -EINVAL;\t/* Invalid chunk size */\n"
+ " \n"
+ " \tfor (; count; count -= 8) {\n"
+ "-\t\terr = do_rdmsr(cpu, reg, &data[0], &data[1]);\n"
+ "+\t\terr = msr_read(cpu, reg, &data[0], &data[1]);\n"
+ " \t\tif (err)\n"
+ " \t\t\treturn err;\n"
+ " \t\tif (copy_to_user(tmp, &data, 8))\n"
+ "@@ -190,7 +193,7 @@\n"
+ " \treturn ((char __user *)tmp) - buf;\n"
+ " }\n"
+ " \n"
+ "-static ssize_t msr_write(struct file *file, const char __user *buf,\n"
+ "+static ssize_t msr_fwrite(struct file *file, const char __user *buf,\n"
+ " \t\t\t size_t count, loff_t *ppos)\n"
+ " {\n"
+ " \tconst u32 __user *tmp = (const u32 __user *)buf;\n"
+ "@@ -206,7 +209,7 @@\n"
+ " \tfor (rv = 0; count; count -= 8) {\n"
+ " \t\tif (copy_from_user(&data, tmp, 8))\n"
+ " \t\t\treturn -EFAULT;\n"
+ "-\t\terr = do_wrmsr(cpu, reg, data[0], data[1]);\n"
+ "+\t\terr = msr_write(cpu, reg, data[0], data[1]);\n"
+ " \t\tif (err)\n"
+ " \t\t\treturn err;\n"
+ " \t\ttmp += 2;\n"
+ "@@ -215,7 +218,7 @@\n"
+ " \treturn ((char __user *)tmp) - buf;\n"
+ " }\n"
+ " \n"
+ "-static int msr_open(struct inode *inode, struct file *file)\n"
+ "+static int msr_fopen(struct inode *inode, struct file *file)\n"
+ " {\n"
+ " \tunsigned int cpu = iminor(file->f_dentry->d_inode);\n"
+ " \tstruct cpuinfo_x86 *c = &(cpu_data)[cpu];\n"
+ "@@ -233,10 +236,10 @@\n"
+ "  */\n"
+ " static struct file_operations msr_fops = {\n"
+ " \t.owner = THIS_MODULE,\n"
+ "-\t.llseek = msr_seek,\n"
+ "-\t.read = msr_read,\n"
+ "-\t.write = msr_write,\n"
+ "-\t.open = msr_open,\n"
+ "+\t.llseek = msr_fseek,\n"
+ "+\t.read = msr_fread,\n"
+ "+\t.write = msr_fwrite,\n"
+ "+\t.open = msr_fopen,\n"
+ " };\n"
+ " \n"
+ " static int msr_class_device_create(int i)\n"
+ "Index: linux-2.6.19-rc2/include/asm-i386/msr.h\n"
+ "===================================================================\n"
+ "--- linux-2.6.19-rc2.orig/include/asm-i386/msr.h\t2006-10-17 23:10:39.446359750 +0200\n"
+ "+++ linux-2.6.19-rc2/include/asm-i386/msr.h\t2006-10-17 23:10:52.211157500 +0200\n"
+ "@@ -78,6 +78,9 @@\n"
+ " \t\t\t  : \"=a\" (low), \"=d\" (high) \\\n"
+ " \t\t\t  : \"c\" (counter))\n"
+ " \n"
+ "+int msr_write(int cpu, u32 reg, u32 eax, u32 edx);\n"
+ "+int msr_read(int cpu, u32 reg, u32 *eax, u32 *edx);\n"
+ "+\n"
+ " /* symbolic names for some interesting MSRs */\n"
+ " /* Intel defined MSRs. */\n"
+ " #define MSR_IA32_P5_MC_ADDR\t\t0\n"
+ "Index: linux-2.6.19-rc2/include/asm-x86_64/msr.h\n"
+ "===================================================================\n"
+ "--- linux-2.6.19-rc2.orig/include/asm-x86_64/msr.h\t2006-10-17 23:10:39.382355750 +0200\n"
+ "+++ linux-2.6.19-rc2/include/asm-x86_64/msr.h\t2006-10-17 23:18:29.347726750 +0200\n"
+ "@@ -160,7 +160,8 @@\n"
+ " #define MSR_IA32_UCODE_WRITE\t\t0x79\n"
+ " #define MSR_IA32_UCODE_REV\t\t0x8b\n"
+ " \n"
+ "-\n"
+ "+int msr_write(int cpu, u32 reg, u32 eax, u32 edx);\n"
+ "+int msr_read(int cpu, u32 reg, u32 *eax, u32 *edx);\n"
+ " #endif\n"
+ " \n"
+  /* AMD/K8 specific MSRs */
 
-9a146af1b7c9d616561f9448a264458056c552891d76b673a75374ecfa8fb725
+ebba88f6d0f37d1453dd932fb0be832436b3531eecbc85cd81fe70817a872def

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.