Help: e_wakeup crashes system

Mike Massa massa at aurora.cis.upenn.edu
Fri May 3 14:21:25 AEST 1991


The bottom half of my device driver includes a timer interrupt handler which 
calls e_wakeup() to restart sleeping calls in the top half of the driver. The 
driver is broken up into separate object modules which are loaded together
when the driver is configured. The event_word parameter is located in the DDS,
which is allocated on the pinned kernel heap, and is set to EVENT_NULL in the 
top-half module prior to the timer being started. If I allow the interrupt
handler to call e_wakeup() with the address of the event_word, the system
crashes with a Data Storage Interrupt - PROC. If it doesn't call e_wakeup(),
but instead merely accesses the event_word (ie assign a local variable to
point to it, assign its value to a local variable), everything works fine
- except of course that my sleeping calls hang. Note that even if no
calls are sleeping, the system still crashes on the call to e_wakeup().
I'm running AIX 3.01.0003.0018 on an RS/6000 model 320.

Any suggestions out there?

Thanks
-- 
Mike Massa                            
University of Pennsylvania                         
Distributed Systems Laboratory



More information about the Comp.unix.aix mailing list