cvs commit: src/sys/dev/re if_re.c
sobomax at portaone.com
Thu Aug 18 19:19:17 GMT 2005
John Baldwin wrote:
> On Thursday 18 August 2005 10:29 am, Maxim Sobolev wrote:
>>sobomax 2005-08-18 14:29:01 UTC
>> FreeBSD src repository
>> Modified files:
>> sys/dev/re if_re.c
>> In re_shutdown() mark interface as down since otherwise we will panic if
>> interrupt comes in later on, which can happen in some uncommon cases.
>> Another possible fix is to call re_detach() instead of re_stop(), like
>> ve(4) does, but I am not sure if the latter is really RTTD, so that stick
>> with this one-liner for now.
>> PR: kern/80005
>> Approved by: silence on -arch, no reply from selected network gurus
> The PR reports problems while the machine is running, not a panic during
> shutdown. I couldn't get the PR database to load the PR with the panic from
Sorry, it has been a typo - in fact I was reffering to kern/85005.
> vr(4) yesterday. It's very unclear why clearing IFF_UP makes any difference.
> Ah, perhaps re_intr() should be fixed to check IFF_DRV_RUNNING rather than
> IFF_UP? Then the re_stop() in re_shutdown() would be sufficient.
Yes, this will help. However, I am not quite sure, what is the point to
do interrupt processing if interface is down? Perhaps re_intr() should
check both IFF_DRV_RUNNING and IFF_UP?
> I also think that the change to vr(4) should be reverted (way too big of a
> sledge hammer) and instead its interrupt handler can check IFF_DRV_RUNNING
> and bail if it is clear as well.
Well, see kern/85005. IMO some generic approach should be worked out and
implemented since I think many other network drivers may be affected by
the same problem.
More information about the cvs-src