From: chas w. <ch...@lo...> - 2003-03-24 15:01:26
|
In message <200...@wa...>,Duncan Sands writes: >Maybe they should communicate using another mechanism then. What is >the he driver doing exactly, and why? to close the tx connection, it enqueues a tx close message on the transmit queue for the particular vpi/vci (cid in he parlance). it gets returned via the transmit buffer return queue. its easy to simple have a wait_queue in the driver dependent part of the vcc to do this communication. otherwise i will have to maintain a seperate mapping of cid's so i can wait on the right close. rx close is similar, although you just write the cid to the close register and a pdu will come on the receeive buffer return queue marked as the last pdu on the connection. again, i need to lookup the cid to some structure so i can do a wait_queue with the bottom half. >> it would make sense to add a new routine to drivers called destroy() >> which might be used to cleanup a vcc after a close. > >Sounds a bit complicated to me... its probably sufficient just to free the driver dependent part of the vcc during atm_release_vcc_sk(). if the driver writer really needs something exotic in there, he should make sure this pointer is set to null (and not in use by the bottom half of the driver!) before returning from ops->close(). |