Messages in this thread | | | Date | Wed, 20 Nov 1996 00:29:42 -0500 | From | "David S. Miller" <> | Subject | Re: fix for the module problems in 2.1.11 |
| |
Date: Tue, 19 Nov 1996 09:22:58 -0801 (PST) From: Trevor Johnson <trevor@jpj.org>
On Tue, 19 Nov 1996, David S. Miller wrote: > This should clear up everything people are reporting with 2.1.11
After applying your patches to net/netsyms.c and kernel/module.c, and doing "make dep clean modules install modules_install" I'm still having problems. I double-checked that your patches were applied.
Looking at your strace output (I assume this is on an Intel?) clued me into a possible but in strncpy_from_user() in uaccess.h, simply because my fix works just fine on the Sparc...
The core reads like this:
__asm__ __volatile__( \ " testl %1,%1\n" \ " jz 2f\n" \ "0: lodsb\n" \ " stosb\n" \ " testb %%al,%%al\n" \ " jz 1f\n" \ " decl %1\n" \ " jnz 0b\n" \ "1: subl %1,%0\n" \ "2:\n" \ ".section .fixup,\"ax\"\n" \ "3: movl %2,%0\n" \ " jmp 2b\n" \ ".section __ex_table,\"a\"\n" \ " .align 4\n" \ " .long 0b,3b\n" \ ".text" \ : "=r"(res), "=r"(count) \ : "i"(-EFAULT), "0"(count), "1"(count), "S"(src), "D"(dst) \ : "si", "di", "ax", "memory")
I belive the "subl %1,%0" is suspect, Linus any clues? It certainly looks incorrect to me because it is doing something like:
old_count = count; new_count = strncpy(dst, src, count); return new_count - old_count;
Which would return a negative number on success...
--------------------------------------------//// Yow! 10.49 MB/s remote host TCP bandwidth //// over 100Mb/s ethernet. Beat that! //// -----------------------------------------////__________ o David S. Miller, davem@caip.rutgers.edu /_____________/ / // /_/ ><
| |