Hi Sven,
Thanks for the review.
I am not 100% sure how you build batman-adv but when you've used the external kernel module then you can use [1,2]:
make EXTRA_CFLAGS="-fno-inline -Og -fno-optimize-sibling-calls -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining" KERNELPATH=...
to get actually useful backtraces. Unfortunately, compile time checks sometimes need inlining and compilations fails or some kernel configurations with '-fno-inline'. If this happens to you then you can at least try to use the rest of the extra flags.
I'm using openwrt. I'll give this a shot.
Thanks for those links. I completely overlooked the devtools section of the wiki. There is a lot of good information there. Thanks for writing it all up.
Please add before your Signed-off-by line following extra line:
Fixes: 5c3245172c01 ("batman-adv: ELP - compute the metric based on the estimated throughput")
Will do in v2.
I would prefer something more explanatory instead of adding more conditions at the end of actually interesting checks. Something more like:
I agree that this is better than my original idea.
But this got me thinking about the unlikely scenario where the soft if netdevice is destroyed before this work is run.
Do you think that's possible? I can try to add delay in the work to get this contrived sequence to happen.
If this is a problem, I think grabbing RTNL before the check of the soft inerface and releasing RTNL after calling batadv_info() would fix it.
What do you think?