Hi all,
 
I've made some progress over the last day or so.  It appears that sizeof(struct semaphore) is much bigger than anticipated on this kernel.  In fact its 164 bytes according to a kernel printf, far larger than the 12 longs allocated in lis_semaphore->sem_mem ... when i replace this array with an actual "struct semaphore" array the system no longer panics.
 
Is the "abstraction to keep user drivers from knowning kernel semaphores look like" really this necessary?  Surely the abstraction could reference a "struct semaphore" at least.  I noticed that I did not need to add any header files to get LiS or my drivers to compile after making this change. 
 
Unforunately I still do not reach my driver open routine.  Now the system scheduler appears to be corrupted as processes and threads are no longer scheduled (but ping works so the kernel is running).
The only clue I have, from LIS_DEBUG_OPEN, is that f_dentry->d_count does not appear to be set ... I see printfs of 1065280112 and other large random values. 
 
Can any kernel guru's given me a clue as where to look next?  Has anyone run LiS on a PPC linux?
 
Thanks
Ragnar
 
----- Original Message -----
Sent: Thursday, August 22, 2002 1:00 PM
Subject: [Linux-streams] PPC Linux (2.4.7) and LiS 2.13.26

Hi,
 
We are trying to get LiS Streams running as a loadable module in a PPC (RPX860 from Embedded Planet to be precise).  We are using the timesys Linux kernel (Based on 2.4.7). 
 
We have a loadable streams.o and insmod works on streams as well as our driver.  However when an application opens the cloning device the operating system panics in __down_interruptible() called from lis_stropen().  This appears to be well before our driver open() routine is called.
 
Has anyone any experience with the PPC (someone did the original port) who could point me in the right direction here.
 
Thanks,
 
Ragnar Paulson
 

Reply via email to