DragonFly submit List (threaded) for 2005-02
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: kue0 not receiving patch
:> 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.
Ah, yes I see. And what a great example of why creating IF_*() macros
that takes left-hand-side assignment variables as an argument is a bad
idea! (usbintr()'s IF_DEQUEUE call).
Ok, I'll commit your patch but I am going to also change the NETISR to
pass NULL instead of 'm', since 'm' is not used and couldn't be used even
if the usbintr wanted to use it.
-Matt
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]