Date: Mon, 20 Jul 1998 13:21:52 -0400 (EDT) From: "Larry S. Lile" <lile@stdio.com> To: hackers@FreeBSD.ORG Subject: IF_DEQUEUE problems Message-ID: <Pine.SUN.3.91.980720130034.11204B-100000@heathers.stdio.com>
next in thread | raw e-mail | index | archive | help
What are the conditions neccesary to make IF_DEQUEUE work properly? In my driver when you want to transmit a packet you have to create a transmit SRB and interrupt the adapter, it will respond with an interrupt and a transmit data ARB which you fill out and respond with another interrupt which generates a status interrupt. tok_start: tok_intr: xmit srb ----------------------> ack'd by adapter tok_tx_intr: <------------------ xmit data arb from adapter fill out arb -------------------> adapter gives xmit return code If I call IF_DEQUEUE during tok_start the packet dequeues correctly and I can pass it to bpf and everyting appears to work correctly, except that I don't actually set up the transmit srb. If I move the IF_DEQUEUE and bpf tap to tok_tx_intr then my mbuf pointer always gets set to null. I have checked to make sure that ifp is getting pointed to the correct interface, so is there something magic about ifp->if_start and IF_DEQUEUE, or have I missed something? I have also made sure that I am not attempting to dequeue that packet twice, and I have tried to splimp/splx around IF_DEQUEUE in tok_tx_intr. Any help? Larry Lile lile@stdio.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.980720130034.11204B-100000>