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

Reply via email to