mirror of https://gitee.com/openkylin/linux.git
ionic: pull hwstamp queue_lock up a level
Move the hwstamp configuration use of queue_lock up a level to simplify use and error handling. Signed-off-by: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
af3d2ae114
commit
7ee99fc5ed
|
@ -849,10 +849,8 @@ int ionic_lif_create_hwstamp_txq(struct ionic_lif *lif)
|
|||
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;
|
||||
|
||||
|
@ -894,9 +892,6 @@ int ionic_lif_create_hwstamp_txq(struct ionic_lif *lif)
|
|||
}
|
||||
}
|
||||
|
||||
out:
|
||||
mutex_unlock(&lif->queue_lock);
|
||||
|
||||
return 0;
|
||||
|
||||
err_qcq_enable:
|
||||
|
@ -907,7 +902,6 @@ int ionic_lif_create_hwstamp_txq(struct ionic_lif *lif)
|
|||
ionic_qcq_free(lif, txq);
|
||||
devm_kfree(lif->ionic->dev, txq);
|
||||
err_qcq_alloc:
|
||||
mutex_unlock(&lif->queue_lock);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -919,10 +913,8 @@ int ionic_lif_create_hwstamp_rxq(struct ionic_lif *lif)
|
|||
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;
|
||||
|
||||
|
@ -960,9 +952,6 @@ int ionic_lif_create_hwstamp_rxq(struct ionic_lif *lif)
|
|||
}
|
||||
}
|
||||
|
||||
out:
|
||||
mutex_unlock(&lif->queue_lock);
|
||||
|
||||
return 0;
|
||||
|
||||
err_qcq_enable:
|
||||
|
@ -973,7 +962,6 @@ int ionic_lif_create_hwstamp_rxq(struct ionic_lif *lif)
|
|||
ionic_qcq_free(lif, rxq);
|
||||
devm_kfree(lif->ionic->dev, rxq);
|
||||
err_qcq_alloc:
|
||||
mutex_unlock(&lif->queue_lock);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -194,7 +194,9 @@ int ionic_lif_hwstamp_set(struct ionic_lif *lif, struct ifreq *ifr)
|
|||
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;
|
||||
|
@ -213,7 +215,9 @@ void ionic_lif_hwstamp_replay(struct ionic_lif *lif)
|
|||
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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue