Re: [ 157/184] inet: add RCU protection to inet->opt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
> > 
> > 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@xxxxxxxxx>
> > Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> > [dannf/bwh: backported to Debian's 2.6.32]
> 
> Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>

added, thank you.

willy

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]