![]() |
lvs-devel
|
| To: | Sishuai Gong <sishuai.system@xxxxxxxxx> |
|---|---|
| Subject: | Re: Race over table->data in proc_do_sync_threshold() |
| Cc: | horms@xxxxxxxxxxxx, Linux Kernel Network Developers <netdev@xxxxxxxxxxxxxxx>, lvs-devel@xxxxxxxxxxxxxxx |
| From: | Julian Anastasov <ja@xxxxxx> |
| Date: | Thu, 10 Aug 2023 09:20:28 +0300 (EEST) |
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>
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Race over table->data in proc_do_sync_threshold(), Kuniyuki Iwashima |
|---|---|
| Next by Date: | Re: Race over table->data in proc_do_sync_threshold(), Sishuai Gong |
| Previous by Thread: | Re: Race over table->data in proc_do_sync_threshold(), Kuniyuki Iwashima |
| Next by Thread: | Re: Race over table->data in proc_do_sync_threshold(), Sishuai Gong |
| Indexes: | [Date] [Thread] [Top] [All Lists] |