Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1577595
| Path | csiph.com!1.us.feeder.erje.net!2.us.feeder.erje.net!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder4.news.weretis.net!news.mixmin.net!aioe.org!news.servidellagleba.it!bofh.it!news.nic.it!robomod |
|---|---|
| From | Netanel Belgazal <netanel@annapurnalabs.com> |
| Newsgroups | linux.kernel |
| Subject | [PATCH V4 net-next 09/13] net/ena: use READ_ONCE to access completion descriptors |
| Date | Thu, 09 Feb 2017 14:40:04 +0100 |
| Message-ID | <t8X76-6JS-87@gated-at.bofh.it> (permalink) |
| References | <t8WXn-6Gp-3@gated-at.bofh.it> |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=annapurnalabs-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gIZAfDydb0JxPwRq2NA/mCtYnEq/JldDHXrby0X3T9I=; b=NsGev6ytrRNTlhzJzpNnVod9xzF/pMlKy82+L3d7tVQmWWMjB3j3XPia27c/N8vKWe ijXODaSYDsViBhshiDMxD4o28tBCCvGPuUPJ2UAOVbzEpG8+evIs+sViJurRWSMBUvuN uYgVKInap5sp32v5jWqA+dbeEDjTyixHkxaT/6u5ar/1uF6hrKIXqsDVdZ76TI6b5gJz FfHkvib73jeyYicQqlbTigoWDSDmkTyP07/rD1DrOZ4dvg/M0BSdneYRuJNuCQrWCmFv YLR8tTiBQj8mu7bzG7wITbfEZ/Vo8koDEZP/V7yRJQGPwYm5AFQwRvmKwCuR/PiOkDLn owfg== |
| X-Google-Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gIZAfDydb0JxPwRq2NA/mCtYnEq/JldDHXrby0X3T9I=; b=ZMcmrpZMe/4k9oTs7fshDf8vG0+bj3pMzCvdFLCysBPoU7z1RcK7u7sbLTjf2qKuHs k4c8WyGnAXC3CHXvDLG7gA3vPXvVnP09xtLMnNaZ5BMmc7/w9F6xnQsXtsOCv6Lf3SVD sEoiyFP8jhx9jhJN8FWnmfVU/VYHVtP+pXGygNz30/mSHtP0Xw8xRJ9yxSkoc5mCviPI 2pygXj/EUm01KEj3jbaPUBFpfjoib58Lt+++XEA6ZsPcuKyeGBT1pHswjL/iyemkfthZ H5FPcgK+xI/Z56lG0/Li5lUyLBH37pX6PigfWH0a12r1F+h9yyDQ/bIMkdNRIfixr2g1 uP/Q== |
| X-Gm-Message-State | AMke39llP0IJyuZjnI3PMpSnCcgaNZsPG0cN3qsa2I+JXQmlX1BmIUIF4C5XfyxnooJ+zt8u |
| X-Received | by 10.223.145.227 with SMTP id 90mr2997625wri.156.1486646535375; Thu, 09 Feb 2017 05:22:15 -0800 (PST) |
| X-Mailer | git-send-email 2.7.4 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 61 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | Netanel Belgazal <netanel@annapurnalabs.com>, dwmw@amazon.com, zorik@annapurnalabs.com, alex@annapurnalabs.com, saeed@annapurnalabs.com, msw@amazon.com, aliguori@amazon.com, nafea@annapurnalabs.com, eric.dumazet@gmail.com, evgenys@annapurnalabs.com |
| X-Original-Date | Thu, 9 Feb 2017 15:21:35 +0200 |
| X-Original-Message-ID | <1486646499-13682-10-git-send-email-netanel@annapurnalabs.com> |
| X-Original-References | <1486646499-13682-1-git-send-email-netanel@annapurnalabs.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1577595 |
Show key headers only | View raw
Completion descriptors are accessed from the driver and from the device. To avoid reading the old value, use READ_ONCE macro. Signed-off-by: Netanel Belgazal <netanel@annapurnalabs.com> --- drivers/net/ethernet/amazon/ena/ena_com.h | 1 + drivers/net/ethernet/amazon/ena/ena_eth_com.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/amazon/ena/ena_com.h b/drivers/net/ethernet/amazon/ena/ena_com.h index 509d7b8..c9b33ee 100644 --- a/drivers/net/ethernet/amazon/ena/ena_com.h +++ b/drivers/net/ethernet/amazon/ena/ena_com.h @@ -33,6 +33,7 @@ #ifndef ENA_COM #define ENA_COM +#include <linux/compiler.h> #include <linux/delay.h> #include <linux/dma-mapping.h> #include <linux/gfp.h> diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.c b/drivers/net/ethernet/amazon/ena/ena_eth_com.c index 539c536..f999305 100644 --- a/drivers/net/ethernet/amazon/ena/ena_eth_com.c +++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.c @@ -45,7 +45,7 @@ static inline struct ena_eth_io_rx_cdesc_base *ena_com_get_next_rx_cdesc( cdesc = (struct ena_eth_io_rx_cdesc_base *)(io_cq->cdesc_addr.virt_addr + (head_masked * io_cq->cdesc_entry_size_in_bytes)); - desc_phase = (cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >> + desc_phase = (READ_ONCE(cdesc->status) & ENA_ETH_IO_RX_CDESC_BASE_PHASE_MASK) >> ENA_ETH_IO_RX_CDESC_BASE_PHASE_SHIFT; if (desc_phase != expected_phase) @@ -141,7 +141,7 @@ static inline u16 ena_com_cdesc_rx_pkt_get(struct ena_com_io_cq *io_cq, ena_com_cq_inc_head(io_cq); count++; - last = (cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >> + last = (READ_ONCE(cdesc->status) & ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >> ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT; } while (!last); @@ -489,13 +489,13 @@ int ena_com_tx_comp_req_id_get(struct ena_com_io_cq *io_cq, u16 *req_id) * expected, it mean that the device still didn't update * this completion. */ - cdesc_phase = cdesc->flags & ENA_ETH_IO_TX_CDESC_PHASE_MASK; + cdesc_phase = READ_ONCE(cdesc->flags) & ENA_ETH_IO_TX_CDESC_PHASE_MASK; if (cdesc_phase != expected_phase) return -EAGAIN; ena_com_cq_inc_head(io_cq); - *req_id = cdesc->req_id; + *req_id = READ_ONCE(cdesc->req_id); return 0; } -- 2.7.4
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH V4 net-next 00/13] Bug Fixes in ENA driver Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:30 +0100 [PATCH V4 net-next 05/13] net/ena: fix NULL dereference when removing the driver after device reset failed Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:30 +0100 [PATCH V4 net-next 02/13] net/ena: fix queues number calculation Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:30 +0100 [PATCH V4 net-next 03/13] net/ena: fix ethtool RSS flow configuration Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:30 +0100 [PATCH V4 net-next 06/13] net/ena: refactor ena_get_stats64 to be atomic context safe Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:30 +0100 [PATCH V4 net-next 13/13] net/ena: update driver version to 1.1.2 Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:40 +0100 [PATCH V4 net-next 07/13] net/ena: fix potential access to freed memory during device reset Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:40 +0100 [PATCH V4 net-next 10/13] net/ena: reduce the severity of ena printouts Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:40 +0100 [PATCH V4 net-next 08/13] net/ena: use napi_complete_done() return value Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:40 +0100 [PATCH V4 net-next 11/13] net/ena: change driver's default timeouts Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:40 +0100 [PATCH V4 net-next 09/13] net/ena: use READ_ONCE to access completion descriptors Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:40 +0100 [PATCH V4 net-next 01/13] net/ena: remove ntuple filter support from device feature list Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 14:40 +0100 [PATCH V4 net-next 04/13] net/ena: fix RSS default hash configuration Netanel Belgazal <netanel@annapurnalabs.com> - 2017-02-09 15:30 +0100 Re: [PATCH V4 net-next 00/13] Bug Fixes in ENA driver David Miller <davem@davemloft.net> - 2017-02-10 04:30 +0100
csiph-web