Skip to content

Commit

Permalink
ionic: extend ts_config set locking
Browse files Browse the repository at this point in the history
Make sure the configuration is locked before
operating on it for the replay.

Signed-off-by: Shannon Nelson <snelson@pensando.io>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Shannon Nelson authored and David S. Miller committed Apr 8, 2021
1 parent 829600c commit f331809
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions drivers/net/ethernet/pensando/ionic/ionic_phc.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ static int ionic_lif_hwstamp_set_ts_config(struct ionic_lif *lif,
if (!lif->phc || !lif->phc->ptp)
return -EOPNOTSUPP;

mutex_lock(&lif->phc->config_lock);

if (new_ts) {
config = new_ts;
} else {
Expand All @@ -96,12 +98,16 @@ static int ionic_lif_hwstamp_set_ts_config(struct ionic_lif *lif,
}

tx_mode = ionic_hwstamp_tx_mode(config->tx_type);
if (tx_mode < 0)
return tx_mode;
if (tx_mode < 0) {
err = tx_mode;
goto err_queues;
}

mask = cpu_to_le64(BIT_ULL(tx_mode));
if ((ionic->ident.lif.eth.hwstamp_tx_modes & mask) != mask)
return -ERANGE;
if ((ionic->ident.lif.eth.hwstamp_tx_modes & mask) != mask) {
err = -ERANGE;
goto err_queues;
}

rx_filt = ionic_hwstamp_rx_filt(config->rx_filter);
rx_all = config->rx_filter != HWTSTAMP_FILTER_NONE && !rx_filt;
Expand All @@ -116,8 +122,6 @@ static int ionic_lif_hwstamp_set_ts_config(struct ionic_lif *lif,
dev_dbg(ionic->dev, "config_rx_filter %d rx_filt %#llx rx_all %d\n",
config->rx_filter, rx_filt, rx_all);

mutex_lock(&lif->phc->config_lock);

if (tx_mode) {
err = ionic_lif_create_hwstamp_txq(lif);
if (err)
Expand Down

0 comments on commit f331809

Please sign in to comment.