Messages in this thread | | | Date | Tue, 17 Nov 2015 03:57:10 +0100 | Subject | Re: Routing loops & TTL tracking with tunnel devices | From | "Jason A. Donenfeld" <> |
| |
On Mon, Nov 16, 2015 at 11:25 PM, Hannes Frederic Sowa <hannes@stressinduktion.org> wrote: > Have a look at __dev_queue_xmit and the per_cpu recursion limits > implemented there: > > if (__this_cpu_read(xmit_recursion) > > RECURSION_LIMIT) > goto recursion_alert;
Ahh, thanks for pointing that out. So this works with virtual devices with no queue. As of some recent changes, that now applies to what I'm doing.
Unfortunately, I get a complete hard crash, with the blinking keyboard. The only thing written to serial before it dies is: [ 171.347446] Dead loop on virtual device wg0, fix it urgently! This means it did hit that recursion condition, which is good. I assume the recursion limit is just too high, and this has something to do with me overflowing the stack. I'll test this hypothesis and see if I can add a similar check inside my driver to make it lower. If this works, I'm satisfied.
Thanks a lot for the pointer here.
| |