lkml.org 
[lkml]   [2013]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [ 157/184] inet: add RCU protection to inet->opt
On Fri, Jun 07, 2013 at 07:11:57AM +0100, Ben Hutchings wrote:
> On Tue, 2013-06-04 at 19:24 +0200, Willy Tarreau wrote:
> > 2.6.32-longterm review patch. If anyone has any objections, please let me know.
> >
> > ------------------
> >
> > From: Eric Dumazet <eric.dumazet@gmail.com>
> >
> > commit f6d8bd051c391c1c0458a30b2a7abcd939329259 upstream.
> >
> > We lack proper synchronization to manipulate inet->opt ip_options
> >
> > Problem is ip_make_skb() calls ip_setup_cork() and
> > ip_setup_cork() possibly makes a copy of ipc->opt (struct ip_options),
> > without any protection against another thread manipulating inet->opt.
> >
> > Another thread can change inet->opt pointer and free old one under us.
> >
> > Use RCU to protect inet->opt (changed to inet->inet_opt).
> >
> > Instead of handling atomic refcounts, just copy ip_options when
> > necessary, to avoid cache line dirtying.
> >
> > We cant insert an rcu_head in struct ip_options since its included in
> > skb->cb[], so this patch is large because I had to introduce a new
> > ip_options_rcu structure.
> >
> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
> > Cc: Herbert Xu <herbert@gondor.apana.org.au>
> > Signed-off-by: David S. Miller <davem@davemloft.net>
> > [dannf/bwh: backported to Debian's 2.6.32]
>
> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>

added, thank you.

willy



\
 
 \ /
  Last update: 2013-06-07 18:01    [W:0.114 / U:0.436 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site