diff options
author | Julian Anastasov <ja@ssi.bg> | 2015-06-29 21:51:40 +0300 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2015-07-14 16:41:27 +0900 |
commit | 05f00505a89acd21f5d0d20f5797dfbc4cf85243 (patch) | |
tree | 9e4948698b71fcec2dc3b233c22893efded4c16b /net/mac802154/Kconfig | |
parent | 4754957f04f5f368792a0eb7dab0ae89fb93dcfd (diff) |
ipvs: fix crash if scheduler is changed
I overlooked the svc->sched_data usage from schedulers
when the services were converted to RCU in 3.10. Now
the rare ipvsadm -E command can change the scheduler
but due to the reverse order of ip_vs_bind_scheduler
and ip_vs_unbind_scheduler we provide new sched_data
to the old scheduler resulting in a crash.
To fix it without changing the scheduler methods we
have to use synchronize_rcu() only for the editing case.
It means all svc->scheduler readers should expect a
NULL value. To avoid breakage for the service listing
and ipvsadm -R we can use the "none" name to indicate
that scheduler is not assigned, a state when we drop
new connections.
Reported-by: Alexander Vasiliev <a.vasylev@404-group.com>
Fixes: ceec4c381681 ("ipvs: convert services to rcu")
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'net/mac802154/Kconfig')
0 files changed, 0 insertions, 0 deletions