> Hello Dave:
> 
> Thanks for this explanation. From this explanation I conclude
> that UNIX SVR4 STREAMs drivers that actually move data upstream
> from within the interrupt service routine by invoking putnext()
> are not supported by LiS.  Is this an accurate understanding?
> If so, is this "limitation" and "deviation" from SVR4 documented
> somewhere within the LiS product?
> 

I don't agree that this is a limitation or deviation ... as long as we've been using 
STREAMS it has been an unsafe practice to call putnext() from an ISR.  Doing so 
requires either knowledge that the OS runs ISRs in their own thread (as Dave pointed 
out) or knowledge that the upper layer module you are calling can handle its put() 
routine being run at ISR level.   Certainly you "can" do it in other OS', especially 
if you write all the drivers/modules (don't going calling putnext() into the stock 
TCP/IP stack at ISR level), and each driver module is carefully written with knowledge 
of the whole system (rather than treated in isolation).  It just doesn't seem to be a 
good architecture ... and you'll run across a whole new can of worms when you try to 
SMP.  

----
Ragnar Paulson                   [EMAIL PROTECTED]
The Software Group Limited
705 725 9999 x21

_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to