Messages in this thread | | | From | Yejune Deng <> | Date | Sun, 21 Feb 2021 10:20:44 +0800 | Subject | Re: [PATCH] arp: Remove the arp_hh_ops structure |
| |
Sorry,it was my fault, I will resubmit.
On Sun, Feb 21, 2021 at 9:54 AM David Ahern <dsahern@gmail.com> wrote: > > On 2/19/21 9:32 PM, Yejune Deng wrote: > > static const struct neigh_ops arp_direct_ops = { > > .family = AF_INET, > > .output = neigh_direct_output, > > @@ -277,15 +269,10 @@ static int arp_constructor(struct neighbour *neigh) > > memcpy(neigh->ha, dev->broadcast, dev->addr_len); > > } > > > > - if (dev->header_ops->cache) > > - neigh->ops = &arp_hh_ops; > > - else > > - neigh->ops = &arp_generic_ops; > > How did you test this? > > you took out the neigh->ops assignment, so all of the neigh->ops in > net/core/neighbour.c are going to cause a NULL dereference. > > > > - > > - if (neigh->nud_state & NUD_VALID) > > - neigh->output = neigh->ops->connected_output; > > + if (!dev->header_ops->cache && (neigh->nud_state & NUD_VALID)) > > + neigh->output = arp_generic_ops.connected_output; > > else > > - neigh->output = neigh->ops->output; > > + neigh->output = arp_generic_ops.output; > > } > > return 0; > > } > > >
| |