> As the following patch will allow upper devices to follow the call down lower > devices, we need to add dev here and not rely on n->dev.
How does all of this relates to neigh_alloc()? Is it being called only for the lower devices? I'm asking as it appears that __neigh_create() would allocates memory based on some dev's neigh_priv_len, then propagate it via ndo_neigh_construct() [which you change in patch 2] - looks like the current implementers of this function assume the private entry is always theirs. E.g., > -static int clip_constructor(struct neighbour *neigh) > +static int clip_constructor(struct net_device *dev, struct neighbour > +*neigh) > { > struct atmarp_entry *entry = neighbour_priv(neigh); > [Writing with absolute zero knowledge of this; perhaps this is all bollocks]