#include <asm/io.h>
 
 #define DRV_NAME       "ehea"
-#define DRV_VERSION    "EHEA_0103"
+#define DRV_VERSION    "EHEA_0105"
 
 /* eHEA capability flags */
 #define DLPAR_PORT_ADD_REM 1
 
                container_of(work, struct ehea_port, reset_task);
        struct net_device *dev = port->netdev;
 
+       mutex_lock(&dlpar_mem_lock);
        port->resets++;
        mutex_lock(&port->port_lock);
        netif_stop_queue(dev);
        netif_wake_queue(dev);
 out:
        mutex_unlock(&port->port_lock);
+       mutex_unlock(&dlpar_mem_lock);
 }
 
 static void ehea_rereg_mrs(struct work_struct *work)
        int ret = NOTIFY_BAD;
        struct memory_notify *arg = data;
 
-       if (!mutex_trylock(&dlpar_mem_lock)) {
-               ehea_info("ehea_mem_notifier must not be called parallelized");
-               goto out;
-       }
+       mutex_lock(&dlpar_mem_lock);
 
        switch (action) {
        case MEM_CANCEL_OFFLINE:
 
 out_unlock:
        mutex_unlock(&dlpar_mem_lock);
-out:
        return ret;
 }