I did the temporary clearing/restoring rt_gateway following the deleted function check_peer_redir(). But, looking again at the function the assigning of peer->redirect_learned.a4 to rt_gateway can be permanent because restoring to the old_gw only happens on errors.
I have updated the patch to use __ipv4_neigh_lookup(). Thank you. On Mon, Nov 07, 2016 at 11:20:16AM -0500, David Miller wrote: > From: Eric Dumazet <eric.duma...@gmail.com> > Date: Mon, 07 Nov 2016 08:08:52 -0800 > > > In any case, rt is a shared object at that time, so even temporarily > > clearing/restoring rt_gateway seems wrong to me. > > > > I would rather call __ipv4_neigh_lookup(dst->dev, new_gw) directly at > > this point. > > Agreed.