Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc0fde2f authored by Sven Wegener's avatar Sven Wegener
Browse files

ipvs: Fix possible deadlock in sync code



Commit 998e7a76 ("ipvs: Use kthread_run()
instead of doing a double-fork via kernel_thread()") introduced a possible
deadlock in the sync code. We need to use the _bh versions for the lock, as the
lock is also accessed from a bottom half.

Signed-off-by: default avatarSven Wegener <sven.wegener@stealer.net>
Acked-by: default avatarSimon Horman <horms@verge.net.au>
parent 8123b421
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -904,9 +904,9 @@ int stop_sync_thread(int state)
		 * progress of stopping the master sync daemon.
		 */

		spin_lock(&ip_vs_sync_lock);
		spin_lock_bh(&ip_vs_sync_lock);
		ip_vs_sync_state &= ~IP_VS_STATE_MASTER;
		spin_unlock(&ip_vs_sync_lock);
		spin_unlock_bh(&ip_vs_sync_lock);
		kthread_stop(sync_master_thread);
		sync_master_thread = NULL;
	} else if (state == IP_VS_STATE_BACKUP) {