On 3/15/2021 7:27 PM, Stephen Hemminger wrote:
Set mutex used in failsafe driver to protect when used by
both primary and secondary process. Without this fix, the failsafe
lock is not really locking when there are multiple secondary processes.

Bugzilla ID: 662
Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
Fixes: 655fcd68c7d2 ("net/failsafe: fix hotplug races")
Cc: ma...@mellanox.com
---
  drivers/net/failsafe/failsafe.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c
index e3bda0df2bf9..5b7e560dbc08 100644
--- a/drivers/net/failsafe/failsafe.c
+++ b/drivers/net/failsafe/failsafe.c
@@ -140,6 +140,11 @@ fs_mutex_init(struct fs_priv *priv)
                ERROR("Cannot initiate mutex attributes - %s", strerror(ret));
                return ret;
        }
+       /* Allow mutex to protect primary/secondary */
+       ret = pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
+       if (ret)
+               ERROR("Cannot set mutex shared - %s", strerror(ret));
+
        /* Allow mutex relocks for the thread holding the mutex. */
        ret = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
        if (ret) {


Overall looks good to me.

Gaetan, Matan,

Can you please test the patch? To be sure it is not causing any unexpected functional/performance issues.

Thanks,
ferruh

Reply via email to