From: Tim Sell <Timothy.Sell@xxxxxxxxxx> These redundant unlocks of visornic_devdata.priv_lock would result in the RHEL 7.2 guests hanging during service partition recovery testing. __Testing__ * An scp of a large file was started from a remote host TO the RHEL 7.2 Linux guest. * During the scp transfer, s-Par service partition recovery was forced twice. After each occasion, I verified that the guest recovered completely (all s-Par guest devices), and that the file transfer resumed. * Within the RHEL 7.2 guest environment, copied the large file to another location in the local filesystem. * During the copy, s-Par service partition recovery was again forced twice. After each occasion, I verified that the guest recovered completely (all s-Par guest devices), and that the copy resumed. * An scp of the new copy of the large file was started FROM the RHEL 7.2 guest to a remote host. * During the scp transfer, s-Par service partition recovery was forced twice. After each occasion, I verified that the guest recovered completely (all s-Par guest devices), and that the file transfer resumed. * Used cmp to verify that the large file had successfully survived the round-trip without becoming corrupted. Signed-off-by: Tim Sell <Timothy.Sell@xxxxxxxxxx> Signed-off-by: David Kershner <david.kershner@xxxxxxxxxx> --- drivers/staging/unisys/visornic/visornic_main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 3a638ca..0a8f361 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -461,7 +461,6 @@ visornic_disable_with_timeout(struct net_device *netdev, const int timeout) if (devdata->enab_dis_acked) break; if (devdata->server_down || devdata->server_change_state) { - spin_unlock_irqrestore(&devdata->priv_lock, flags); dev_dbg(&netdev->dev, "%s server went away\n", __func__); break; @@ -605,7 +604,6 @@ visornic_enable_with_timeout(struct net_device *netdev, const int timeout) if (devdata->enab_dis_acked) break; if (devdata->server_down || devdata->server_change_state) { - spin_unlock_irqrestore(&devdata->priv_lock, flags); dev_dbg(&netdev->dev, "%s server went away\n", __func__); break; -- git-series 0.9.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel