> 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
