On Tue, May 3, 2016 at 8:56 PM, Eric Dumazet <eric.duma...@gmail.com> wrote: > From: Eric Dumazet <eduma...@google.com> > > tcp_snd_una_update() and tcp_rcv_nxt_update() call > u64_stats_update_begin() either from process context or BH handler. > > This triggers a lockdep splat on 32bit & SMP builds. > > We could add u64_stats_update_begin_bh() variant but this would > slow down 32bit builds with useless local_disable_bh() and > local_enable_bh() pairs, since we own the socket lock at this point. > > I add sock_owned_by_me() helper to have proper lockdep support > even on 64bit builds, and new u64_stats_update_begin_raw() > and u64_stats_update_end_raw methods. > > Fixes: c10d9310edf5 ("tcp: do not assume TCP code is non preemptible") > Reported-by: Fabio Estevam <feste...@gmail.com> > Diagnosed-by: Francois Romieu <rom...@fr.zoreil.com> > Signed-off-by: Eric Dumazet <eduma...@google.com>
Thanks for the fix, Eric and Francois! This allows me to do NFS boot again: Tested-by: Fabio Estevam <fabio.este...@nxp.com>