On Tue, 27 Oct 2020 10:02:42 +0000 Henrik Bjoernlund via Bridge <bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > +/* Return 0 if the frame was not processed otherwise 1 > + * note: already called with rcu_read_lock > + */ > +static int br_process_frame_type(struct net_bridge_port *p, > + struct sk_buff *skb) > +{ > + struct br_frame_type *tmp; > + > + hlist_for_each_entry_rcu(tmp, &p->br->frame_type_list, list) > + if (unlikely(tmp->type == skb->protocol)) > + return tmp->frame_handler(p, skb); > + > + return 0; > +} Does the linear search of frame types have noticable impact on performance? Hint: maybe a bitmap or something would be faster.