In all my drivers I use separate qinit structures for read and write queues. It makes sense since one naturally would specify xxx_wput and xxx_rput differently. Just supply a NULL pointer for the close routine on the write-side qinit and you will only get one call to close.
-- Dave


At 02:35 PM 10/10/2003 Friday, David Lehmann wrote:
David Grothe wrote:
David:
I think I see what is going on. Consider the following lines from the trace:
...
Queues come in pairs. This loop is examining each queue of the pair and calling the close routine for whichever queue has a pointer to a close routine. Apparently your qinfo structure for your module has a pointer to the close routine for both the read and write queues. It is conventional to only provide open/close routine pointers for the read queue.
I think if you change your qinit structure the problem will go away.

Maybe so, but this is the same code that Solaris uses. My understanding is that close should be called once and only once for the queue pair. Maybe you should take John's suggestion and set do_close to zero after executing the close routine once.

--

David Lehmann                          Ulticom, Inc.
AOL/Yahoo IM: davidULCM                1020 Briggs Road
1-856-787-2729                         Mt. Laurel, NJ 08054   USA


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


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

Reply via email to