• Kuniyuki Iwashima's avatar
    sysctl: Fix data races in proc_douintvec(). · 4762b532
    Kuniyuki Iwashima authored
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_douintvec() to use READ_ONCE() and WRITE_ONCE()
    internally to fix data-races on the sysctl side.  For now, proc_douintvec()
    itself is tolerant to a data-race, but we still need to add annotations on
    the other subsystem's side.
    
    Fixes: e7d316a0 ("sysctl: handle error writing UINT_MAX to u32 fields")
    Signed-off-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4762b532
sysctl.c 58.3 KB