Messages in this thread Patch in this message | | | Date | Wed, 2 Aug 2017 01:45:16 -0400 (EDT) | From | Paolo Bonzini <> | Subject | Re: [PATCH 2/3] jump_labels: do not use unserialized static_key_enabled |
| |
----- Original Message ----- > From: "Eric Dumazet" <eric.dumazet@gmail.com> > To: "Paolo Bonzini" <pbonzini@redhat.com> > Cc: linux-kernel@vger.kernel.org, "Peter Zijlstra" <peterz@infradead.org> > Sent: Tuesday, August 1, 2017 10:52:14 PM > Subject: Re: [PATCH 2/3] jump_labels: do not use unserialized static_key_enabled > > On Tue, 2017-08-01 at 17:24 +0200, Paolo Bonzini wrote: > > Any use of key->enabled (that is static_key_enabled and static_key_count) > > outside jump_label_lock should handle its own serialization. The only > > two that are not doing so are the UDP encapsulation static keys. Change > > them to use static_key_enable, which now correctly tests key->enabled under > > the jump label lock. > > > > diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c > > index 1d6219bf2d6b..74b7810df9fc 100644 > > --- a/net/ipv4/udp.c > > +++ b/net/ipv4/udp.c > > @@ -1644,8 +1644,7 @@ static int __udp_queue_rcv_skb(struct sock *sk, > > struct sk_buff *skb) > > static struct static_key udp_encap_needed __read_mostly; > > void udp_encap_enable(void) > > { > > - if (!static_key_enabled(&udp_encap_needed)) > > - static_key_slow_inc(&udp_encap_needed); > > + static_key_enable(&udp_encap_needed); > > } > > Looks good to me, but static_key_enable() is not serialized either ? > > I suspect you should have CCed me on patch 1/3 :)
Yes, indeed... That's the "now correctly test" in the commit message. What a difference one word makes. :)
You can find 1/3 at https://patchwork.kernel.org/patch/9874845/.
Paolo
| |