On Monday, April 20, 2015 08:05:20 Sven Eckelmann wrote:
This (subtle) problem is about compat.h. Specifically, the kfree_rcu macro requires a pre-defined variable name: #define kfree_rcu(ptr, rcu_head) call_rcu(&ptr->rcu_head, batadv_free_rcu_##ptr)
void batadv_free_rcu_softif_vlan(struct rcu_head *rcu);
I still don't get it. I wrote the compat code for batadv_free_rcu_* and I was always under the impression that it is not a problem until we have two functions which call kfree_rcu with the same variable name and different types (something which I've now hopefully solved in my kfree_rcu patch for master). And the patch I gave should also show that for this works fine after adding batadv_free_rcu_softif_vlan.
I hope Antonio is going to shed some light on the question whether that patch made it upstream or not. Depending on that question we can pick the appropriate solution.
Cheers, Marek