Hello, On Wed, 9 Aug 2023, Sishuai Gong wrote: > Hi, > > We observed races over (struct ctl_table *) table->data when two threads > are running proc_do_sync_threshold() in parallel, as shown below: > > Thread-1 Thread-2 > memcpy(val, valp, sizeof(val)); memcpy(valp, val, sizeof(val)); > > This race probably would mess up table->data. Is it better to add a lock? We can put mutex_lock(&ipvs->sync_mutex) before the first memcpy and to use two WRITE_ONCE instead of the second memcpy. But this requires extra2 = ipvs in ip_vs_control_net_init_sysctl(): tbl[idx].data = &ipvs->sysctl_sync_threshold; + tbl[idx].extra2 = ipvs; Will you provide patch? Regards -- Julian Anastasov <ja@xxxxxx>