看板 DFBSD_submit 關於我們 聯絡資訊
Matthew Dillon wrote: > Hmm. That doesn't look quite right.... the mbuf is being put on the > ifq but then it is also being passed to NETISR_USB. NETISR_USB > (usbintr() in usb/usb_ethersubr.c) takes the passed mbuf and > IF_DEQUEUE's it... so far so good. But then it *LOOPS* on the ifq > to get the next mbuf... but that means the same mbuf may be IF_DEQUEUE'd > more then once since the other mbufs on the ifq also had an ISR queued > for them. This basic pattern is used by many network drivers -- the argument to the isr routine is effectively ignored. Sure, m gets initialized but the value is never actually used.