提交 51c56f40 编写于 作者: B Ben Hutchings

sfc: Use ACCESS_ONCE when copying efx_tx_queue::read_count

Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
上级 ab28c12a
...@@ -240,8 +240,7 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) ...@@ -240,8 +240,7 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb)
* of read_count. */ * of read_count. */
smp_mb(); smp_mb();
tx_queue->old_read_count = tx_queue->old_read_count =
*(volatile unsigned *) ACCESS_ONCE(tx_queue->read_count);
&tx_queue->read_count;
fill_level = (tx_queue->insert_count fill_level = (tx_queue->insert_count
- tx_queue->old_read_count); - tx_queue->old_read_count);
q_space = efx->txq_entries - 1 - fill_level; q_space = efx->txq_entries - 1 - fill_level;
...@@ -764,7 +763,7 @@ static int efx_tx_queue_insert(struct efx_tx_queue *tx_queue, ...@@ -764,7 +763,7 @@ static int efx_tx_queue_insert(struct efx_tx_queue *tx_queue,
* stopped from the access of read_count. */ * stopped from the access of read_count. */
smp_mb(); smp_mb();
tx_queue->old_read_count = tx_queue->old_read_count =
*(volatile unsigned *)&tx_queue->read_count; ACCESS_ONCE(tx_queue->read_count);
fill_level = (tx_queue->insert_count fill_level = (tx_queue->insert_count
- tx_queue->old_read_count); - tx_queue->old_read_count);
q_space = efx->txq_entries - 1 - fill_level; q_space = efx->txq_entries - 1 - fill_level;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册