u64 features;
        int err;
 
-       mutex_lock(&lif->queue_lock);
-
        if (lif->hwstamp_txq)
-               goto out;
+               return 0;
 
        features = IONIC_Q_F_2X_CQ_DESC | IONIC_TXQ_F_HWSTAMP;
 
                }
        }
 
-out:
-       mutex_unlock(&lif->queue_lock);
-
        return 0;
 
 err_qcq_enable:
        ionic_qcq_free(lif, txq);
        devm_kfree(lif->ionic->dev, txq);
 err_qcq_alloc:
-       mutex_unlock(&lif->queue_lock);
        return err;
 }
 
        u64 features;
        int err;
 
-       mutex_lock(&lif->queue_lock);
-
        if (lif->hwstamp_rxq)
-               goto out;
+               return 0;
 
        features = IONIC_Q_F_2X_CQ_DESC | IONIC_RXQ_F_HWSTAMP;
 
                }
        }
 
-out:
-       mutex_unlock(&lif->queue_lock);
-
        return 0;
 
 err_qcq_enable:
        ionic_qcq_free(lif, rxq);
        devm_kfree(lif->ionic->dev, rxq);
 err_qcq_alloc:
-       mutex_unlock(&lif->queue_lock);
        return err;
 }
 
 
        if (copy_from_user(&config, ifr->ifr_data, sizeof(config)))
                return -EFAULT;
 
+       mutex_lock(&lif->queue_lock);
        err = ionic_lif_hwstamp_set_ts_config(lif, &config);
+       mutex_unlock(&lif->queue_lock);
        if (err) {
                netdev_info(lif->netdev, "hwstamp set failed: %d\n", err);
                return err;
        if (!lif->phc || !lif->phc->ptp)
                return;
 
+       mutex_lock(&lif->queue_lock);
        err = ionic_lif_hwstamp_set_ts_config(lif, NULL);
+       mutex_unlock(&lif->queue_lock);
        if (err)
                netdev_info(lif->netdev, "hwstamp replay failed: %d\n", err);
 }