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.