Ollie Wild wrote:
Patrick McHardy wrote:
Your patch doesn't fit your description, the else-condition you're
adding triggers when the queue is empty, so what is the point?
Since we're only calling ip_append_data() once here, the two
conditions are identical.
I should mention that this problem is not academic. We've run into it
in the field. If a lot of ICMP destination unreachable messages are
generated (by flooding a net_device with bad UDP packets for instance),
the net_device can no longer be unregistered.
That said, I appreciate that the if-else condition doesn't seem quite
right. The problem is, the icmp_push_reply() routine is implicitly
using the queue as a success indicator. I put the
ip_flush_pending_frames() call inside the else block because I wanted to
guarantee that one of ip_push_pending_frames() and
ip_flush_pending_frames() is always called. Both will do proper cleanup.
I'm open to suggestions if you think there's a cleaner way to implement
this.
Ollie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
|
|