Intercept rcu_assign_pointer & rcu_dereference
Fix race in flush_old_exec

==================================================================
ThreadSanitizer: data-race in flush_old_exec

Write of size 4 by thread T568 (K779):
 [<     inlined    >] flush_old_exec+0x2ac/0xed0 de_thread /fs/exec.c:994
 [<ffffffff8124a97c>] flush_old_exec+0x2ac/0xed0 /fs/exec.c:1066
 [<ffffffff812c7ed7>] load_elf_binary+0x4d7/0x2940 /fs/binfmt_elf.c:722
 [<ffffffff8124a383>] search_binary_handler+0x143/0x2f0 /fs/exec.c:1378
 [<     inlined    >] do_execve_common.isra.29+0x810/0xa40 exec_binprm /fs/exec.c:1415
 [<ffffffff8124c180>] do_execve_common.isra.29+0x810/0xa40 /fs/exec.c:1512
 [<ffffffff8124c3dd>] do_execve+0x2d/0x40 /fs/exec.c:1554
 [<ffffffff810a578b>] ____call_usermodehelper+0x23b/0x290 /kernel/kmod.c:242
 [<ffffffff81dea0bc>] ret_from_fork+0x7c/0xb0 /arch/x86/kernel/entry_64.S:347
DBG: cpu = ffff88041fc96030

Previous read of size 4 by thread T248 (K777):
 [<     inlined    >] wait_consider_task+0xc7/0x1740 eligible_child /kernel/exit.c:936
 [<ffffffff81082d37>] wait_consider_task+0xc7/0x1740 /kernel/exit.c:1302
 [<     inlined    >] do_wait+0x1ec/0x400 do_wait_thread /kernel/exit.c:1419
 [<ffffffff8108459c>] do_wait+0x1ec/0x400 /kernel/exit.c:1488
 [<     inlined    >] SyS_wait4+0xca/0x160 SYSC_wait4 /kernel/exit.c:1615
 [<ffffffff81084d2a>] SyS_wait4+0xca/0x160 /kernel/exit.c:1584
 [<ffffffff810a59be>] wait_for_helper+0x5e/0x90 /kernel/kmod.c:303
 [<ffffffff81dea0bc>] ret_from_fork+0x7c/0xb0 /arch/x86/kernel/entry_64.S:347
DBG: cpu = 0

DBG: addr: ffff8801161297e8
DBG: first offset: 0, second offset: 0
DBG: T568 clock: {T568: 7638, T248: 5479}
DBG: T248 clock: {T248: 5528}
==================================================================
Merge branch 'tsan-fixes' into tsan-dev-rcu
Fix warning in rcu_assign_pointer
Fix another race in skb_queue_tail

==================================================================
ThreadSanitizer: data-race in skb_queue_tail

Write of size 8 by thread T289 (K819):
 [<     inlined    >] skb_queue_tail+0x63/0xc0 __skb_insert /include/linux/skbuff.h:1245
 [<     inlined    >] skb_queue_tail+0x63/0xc0 __skb_queue_before /include/linux/skbuff.h:1351
 [<     inlined    >] skb_queue_tail+0x63/0xc0 __skb_queue_tail /include/linux/skbuff.h:1385
 [<ffffffff81a82403>] skb_queue_tail+0x63/0xc0 /net/core/skbuff.c:2320
 [<ffffffff81aea3fe>] __netlink_sendskb+0x3e/0x70 /net/netlink/af_netlink.c:1748
 [<     inlined    >] netlink_broadcast_filtered+0x2d7/0x540 netlink_broadcast_deliver /net/netlink/af_netlink.c:1943
 [<     inlined    >] netlink_broadcast_filtered+0x2d7/0x540 do_one_broadcast /net/netlink/af_netlink.c:2010
 [<ffffffff81aec657>] netlink_broadcast_filtered+0x2d7/0x540 /net/netlink/af_netlink.c:2055
 [<ffffffff81500606>] kobject_uevent_env+0x4a6/0x6c0 /lib/kobject_uevent.c:317
 [<ffffffff81500843>] kobject_uevent+0x23/0x40 /lib/kobject_uevent.c:375
 [<ffffffff8177be46>] uevent_store+0x76/0x80 /drivers/base/core.c:419
 [<ffffffff8177a1b6>] dev_attr_store+0x46/0x70 /drivers/base/core.c:136
 [<ffffffff81300591>] sysfs_kf_write+0xa1/0xd0 /fs/sysfs/file.c:115
 [<ffffffff812ff1e5>] kernfs_fop_write+0x165/0x210 /fs/kernfs/file.c:304
 [<ffffffff81240403>] vfs_write+0x113/0x310 /fs/read_write.c:532
 [<     inlined    >] SyS_write+0x6b/0xe0 SYSC_write /fs/read_write.c:583
 [<ffffffff8124167b>] SyS_write+0x6b/0xe0 /fs/read_write.c:575
 [<ffffffff81dea0e9>] system_call_fastpath+0x16/0x1b /arch/x86/kernel/entry_64.S:422
DBG: cpu = ffff88041fc96030

Previous read of size 8 by thread T288 (K818):
 [<     inlined    >] netlink_recvmsg+0x38b/0x6e0 skb_queue_empty /include/linux/skbuff.h:906
 [<     inlined    >] netlink_recvmsg+0x38b/0x6e0 netlink_rcv_wake /net/netlink/af_netlink.c:267
 [<ffffffff81aeb9eb>] netlink_recvmsg+0x38b/0x6e0 /net/netlink/af_netlink.c:2493
 [<     inlined    >] sock_recvmsg+0x124/0x160 __sock_recvmsg_nosec /net/socket.c:785
 [<     inlined    >] sock_recvmsg+0x124/0x160 __sock_recvmsg /net/socket.c:793
 [<ffffffff81a77754>] sock_recvmsg+0x124/0x160 /net/socket.c:805
 [<ffffffff81a77c7b>] ___sys_recvmsg+0x1bb/0x3b0 /net/socket.c:2267
 [<ffffffff81a78e4c>] __sys_recvmsg+0x4c/0xb0 /net/socket.c:2315
 [<     inlined    >] SyS_recvmsg+0x2c/0x50 SYSC_recvmsg /net/socket.c:2327
 [<ffffffff81a78edc>] SyS_recvmsg+0x2c/0x50 /net/socket.c:2322
 [<ffffffff81dea0e9>] system_call_fastpath+0x16/0x1b /arch/x86/kernel/entry_64.S:422
DBG: cpu = 0

DBG: addr: ffff8800db082490
DBG: first offset: 0, second offset: 0
DBG: T289 clock: {T289: 2147152, T288: 331769}
DBG: T288 clock: {T288: 331928}
==================================================================
Merge branch 'tsan-fixes' into tsan-dev-rcu
Intercept other rcu functions