netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Saeed Mahameed <saeedm@mellanox.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org, Eran Ben Elisha <eranbe@mellanox.com>,
	Saeed Mahameed <saeedm@mellanox.com>
Subject: [net 06/11] net/mlx5e: Fix dangling page pointer on DMA mapping error
Date: Thu, 31 Aug 2017 01:21:05 +0300	[thread overview]
Message-ID: <20170830222110.15737-7-saeedm@mellanox.com> (raw)
In-Reply-To: <20170830222110.15737-1-saeedm@mellanox.com>

From: Eran Ben Elisha <eranbe@mellanox.com>

Function mlx5e_dealloc_rx_wqe is using page pointer value as an
indication to valid DMA mapping. In case that the mapping failed, we
released the page but kept the dangling pointer. Store the page pointer
only after the DMA mapping passed to avoid invalid page DMA unmap.

Fixes: bc77b240b3c5 ("net/mlx5e: Add fragmented memory support for RX multi packet WQE")
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
index 325b2c8c1c6d..7344433259fc 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
@@ -222,13 +222,13 @@ static inline int mlx5e_page_alloc_mapped(struct mlx5e_rq *rq,
 	if (unlikely(!page))
 		return -ENOMEM;
 
-	dma_info->page = page;
 	dma_info->addr = dma_map_page(rq->pdev, page, 0,
 				      RQ_PAGE_SIZE(rq), rq->buff.map_dir);
 	if (unlikely(dma_mapping_error(rq->pdev, dma_info->addr))) {
 		put_page(page);
 		return -ENOMEM;
 	}
+	dma_info->page = page;
 
 	return 0;
 }
-- 
2.13.0

  parent reply	other threads:[~2017-08-30 22:21 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-30 22:20 [pull request][net 00/11] Mellanox, mlx5 fixes 2017-08-30 Saeed Mahameed
2017-08-30 22:21 ` [net 01/11] net/mlx5e: Check for qos capability in dcbnl_initialize Saeed Mahameed
2017-08-30 22:21 ` [net 02/11] net/mlx5e: Fix DCB_CAP_ATTR_DCBX capability for DCBNL getcap Saeed Mahameed
2017-08-30 22:21 ` [net 03/11] net/mlx5: Fix arm SRQ command for ISSI version 0 Saeed Mahameed
2017-08-30 22:21 ` [net 04/11] net/mlx5: Skip mlx5_unload_one if mlx5_load_one fails Saeed Mahameed
2017-08-30 22:21 ` [net 05/11] net/mlx5: Remove the flag MLX5_INTERFACE_STATE_SHUTDOWN Saeed Mahameed
2017-08-30 22:21 ` Saeed Mahameed [this message]
2017-08-30 22:21 ` [net 07/11] net/mlx5e: Don't override user RSS upon set channels Saeed Mahameed
2017-08-30 22:21 ` [net 08/11] net/mlx5e: Properly resolve TC offloaded ipv6 vxlan tunnel source address Saeed Mahameed
2017-08-30 22:21 ` [net 09/11] net/mlx5: E-Switch, Unload the representors in the correct order Saeed Mahameed
2017-08-30 22:21 ` [net 10/11] net/mlx5e: Fix inline header size for small packets Saeed Mahameed
2017-08-30 22:21 ` [net 11/11] net/mlx5e: Fix CQ moderation mode not set properly Saeed Mahameed
2017-08-31  0:06 ` [pull request][net 00/11] Mellanox, mlx5 fixes 2017-08-30 David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170830222110.15737-7-saeedm@mellanox.com \
    --to=saeedm@mellanox.com \
    --cc=davem@davemloft.net \
    --cc=eranbe@mellanox.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).