Steffen Hieber wrote:
I have attached a couple of patches for LiS-2.17.K running on SuSE Linux 9.1.
-----------------------------------
The first patch, patch1.LiS, removes the static modifier from the lis_xxx_cachep
variables so LiS compiles in production mode, i.e. USE_KMEM_CACHE=y and
USE_LINUX_KMEM_TIMER=y
If the patch is not applied, the following error occurs when loading LiS in production
mode:
streams: Unknown symbol lis_queue_cachep
streams: Unknown symbol lis_head_cachep
streams: Unknown symbol lis_qsync_cachep
streams: Unknown symbol lis_timer_cachep
streams: Unknown symbol lis_qband_cachep
I submitted a similar to fix to Dave for post-K.
-----------------------------------
The next patch, patch2.LiS is a nice to have. LiS failed to load and crashed in
lis_printk so I first created this patch for a better compile time check of the format
string and the arguments with the printf like family of functions.
It was not the reason for the crash mentioned above, but nevertheless it shows us a
lot of compiler warnings we can fix to improve the code, which I did with the next
patches.
Sounds like something else I did a patch for (which I think I also
submitted to Dave for post-K). There was a problem with the order
of includes that resulted in an instance of printk not having the
"mangled modversions suffix." It would show up when compiling
as an implicit declaration of printk, since the kernel's printk
has the mangled suffix. If actually used, I can see how it would
cause a panic. But the patch I submitted should resolve all of
this.
-----------------------------------
The next and last patches, patch3.LiS - patch6.LiS just fix the compiler warnings we
get when applying patch2.LiS.
-----------------------------------
Anyway, the crash which led to patch2.LiS had nothing to do with the missing or wrong format
arguments, the reason for the crash is the CONFIG_REGPARM option SuSE enabled when building the
default kernel. With CONFIG_REGPARM=y the kernel and the kernel modules are compiled with the
compiler option "-mregparm=3", with which the first three arguments of a function call
are passed in registers. With this option set in the kernel, LiS needs to be compiled with the
same compiler option (kernel space only, not the user space utilities).
I haven't had time to create a patch for this, but I think we will need to introduce a
new Makefile macro KOPTS in addition to XOPTS to distinguish between kernel and
general compiler options.
If CONFIG_REGPARM=y and LiS is not compiled with the compiler options "-mregparm=3",
the following error occurs:
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
c01dcee9
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<c01dcee9>] Tainted: GF
EFLAGS: 00010213 (2.6.4-52-default)
EIP is at vsnprintf+0x39/0x510
eax: c8b16413 ebx: c0341da8 ecx: 00000000 edx: 374e9bec
esi: c8b16414 edi: c0341d98 ebp: ffffffff esp: c1e2fdfc
ds: 007b es: 007b ss: 0068
Process modprobe (pid: 2642, threadinfo=c1e2e000 task=c07b6690)
Stack: 00000092 ffffffff c03424f8 374e9bec c8b16414 00000000 c0341da8 c8b31800
c0341d98 c0341d98 c01dd3cd c0341da8 c8b0e495 c8baba00 c8b16414 c1e2fe48
c0341da8 c8b03b5b c8b16414 c0341da8 c0132305 00000000 c8abcb14 c8abcb14
Call Trace:
[<c01dd3cd>] vsprintf+0xd/0x10
[<c8b0e495>] lis_printk+0x15/0x30 [streams]
[<c8b03b5b>] lis_init_module+0xb/0x190 [streams]
[<c0132305>] sys_init_module+0x105/0x15b0
[<c010a895>] do_IRQ+0x115/0x170
[<c0108d48>] common_interrupt+0x18/0x20
[<c010e3dd>] do_mmap2+0x6d/0xa0
[<c010e3ff>] do_mmap2+0x8f/0xa0
[<c0107dc9>] sysenter_past_esp+0x52/0x79
Code: 80 39 00 75 1a eb 40 39 ee 77 06 88 06 8b 4c 24 14 46 89 c8
I haven't seen this, but then, I hadn't thought about CONFIG_REGPARM.
But can I suggest that this might be a 2.6.4 issue that might be
resolved in 2.6.6? 2.6.5 and before didn't support symbols that
aren't properly kernel-built very well; 2.6.6 does better. 2.17.K
doesn't support 2.6.6, though, but again, my post-K patches to Dave
might be of interest, since they do fully support 2.6.6.
-----------------------------------
LiS now loads but loop-around fails to create it's device nodes, maybe someone else
has fixed this already. I will investigate further.
I don't have that problem, but again, I have a number of post-K patches
I'm running against. I've in fact been testing with the loop-around
driver the past week or so.
Best regards,
Steffen
_____________________________________________________________________
Endlich SMS mit Bildern versenden! Das Bild selbst ist dabei gratis,
Sie bezahlen lediglich den Versand. http://freemail.web.de/?mc=021195
_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams