DECnet: Only use neigh_ops for adding the link layer header
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 4 Mar 2015 16:16:43 +0000 (10:16 -0600)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Mar 2015 19:54:22 +0000 (14:54 -0500)
commitaaa4e70404c7b38a8792dc69af54afd7218b2ec0
tree97e298abfa74712540b528fb7d7436c10175b1f3
parent616f45416ca0d726d6d3421a296ebc6e2bb82cde
DECnet: Only use neigh_ops for adding the link layer header

Other users users of the neighbour table use neigh->output as the method
to decided when and which link-layer header to place on a packet.
DECnet has been using neigh->output to decide which DECnet headers to
place on a packet depending which neighbour the packet is destined for.

The DECnet usage isn't totally wrong but it can run into problems if the
neighbour output function is run for a second time as the teql driver
and the bridge netfilter code can do.

Therefore to avoid pathologic problems later down the line and make the
neighbour code easier to understand by refactoring the decnet output
code to only use a neighbour method to add a link layer header to a
packet.

This is done by moving the neigbhour operations lookup from
dn_to_neigh_output to dn_neigh_output_packet.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dn_neigh.h
net/decnet/dn_neigh.c
net/decnet/dn_route.c