* [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions
@ 2022-08-12 17:13 Sergei Antonov
2022-08-12 17:56 ` Andrew Lunn
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Sergei Antonov @ 2022-08-12 17:13 UTC (permalink / raw)
To: netdev
Cc: Sergei Antonov, Andrew Lunn, Jakub Kicinski, Pavel Skripkin,
David S . Miller, Paolo Abeni, Florian Fainelli
dma_map_single() calls fail in moxart_mac_setup_desc_ring() and
moxart_mac_start_xmit() which leads to an incessant output of this:
[ 16.043925] moxart-ethernet 92000000.mac eth0: DMA mapping error
[ 16.050957] moxart-ethernet 92000000.mac eth0: DMA mapping error
[ 16.058229] moxart-ethernet 92000000.mac eth0: DMA mapping error
Passing pdev to DMA is a common approach among net drivers.
Changes in v2:
- Reject an approach to inherit DMA masks from the platform device.
Signed-off-by: Sergei Antonov <saproj@gmail.com>
Suggested-by: Andrew Lunn <andrew@lunn.ch>
CC: Jakub Kicinski <kuba@kernel.org>
CC: Pavel Skripkin <paskripkin@gmail.com>
CC: David S. Miller <davem@davemloft.net>
CC: Paolo Abeni <pabeni@redhat.com>
CC: Florian Fainelli <f.fainelli@gmail.com>
---
drivers/net/ethernet/moxa/moxart_ether.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/moxa/moxart_ether.c b/drivers/net/ethernet/moxa/moxart_ether.c
index a3214a762e4b..f11f1cb92025 100644
--- a/drivers/net/ethernet/moxa/moxart_ether.c
+++ b/drivers/net/ethernet/moxa/moxart_ether.c
@@ -77,7 +77,7 @@ static void moxart_mac_free_memory(struct net_device *ndev)
int i;
for (i = 0; i < RX_DESC_NUM; i++)
- dma_unmap_single(&ndev->dev, priv->rx_mapping[i],
+ dma_unmap_single(&priv->pdev->dev, priv->rx_mapping[i],
priv->rx_buf_size, DMA_FROM_DEVICE);
if (priv->tx_desc_base)
@@ -147,11 +147,11 @@ static void moxart_mac_setup_desc_ring(struct net_device *ndev)
desc + RX_REG_OFFSET_DESC1);
priv->rx_buf[i] = priv->rx_buf_base + priv->rx_buf_size * i;
- priv->rx_mapping[i] = dma_map_single(&ndev->dev,
+ priv->rx_mapping[i] = dma_map_single(&priv->pdev->dev,
priv->rx_buf[i],
priv->rx_buf_size,
DMA_FROM_DEVICE);
- if (dma_mapping_error(&ndev->dev, priv->rx_mapping[i]))
+ if (dma_mapping_error(&priv->pdev->dev, priv->rx_mapping[i]))
netdev_err(ndev, "DMA mapping error\n");
moxart_desc_write(priv->rx_mapping[i],
@@ -240,7 +240,7 @@ static int moxart_rx_poll(struct napi_struct *napi, int budget)
if (len > RX_BUF_SIZE)
len = RX_BUF_SIZE;
- dma_sync_single_for_cpu(&ndev->dev,
+ dma_sync_single_for_cpu(&priv->pdev->dev,
priv->rx_mapping[rx_head],
priv->rx_buf_size, DMA_FROM_DEVICE);
skb = netdev_alloc_skb_ip_align(ndev, len);
@@ -294,7 +294,7 @@ static void moxart_tx_finished(struct net_device *ndev)
unsigned int tx_tail = priv->tx_tail;
while (tx_tail != tx_head) {
- dma_unmap_single(&ndev->dev, priv->tx_mapping[tx_tail],
+ dma_unmap_single(&priv->pdev->dev, priv->tx_mapping[tx_tail],
priv->tx_len[tx_tail], DMA_TO_DEVICE);
ndev->stats.tx_packets++;
@@ -358,9 +358,9 @@ static netdev_tx_t moxart_mac_start_xmit(struct sk_buff *skb,
len = skb->len > TX_BUF_SIZE ? TX_BUF_SIZE : skb->len;
- priv->tx_mapping[tx_head] = dma_map_single(&ndev->dev, skb->data,
+ priv->tx_mapping[tx_head] = dma_map_single(&priv->pdev->dev, skb->data,
len, DMA_TO_DEVICE);
- if (dma_mapping_error(&ndev->dev, priv->tx_mapping[tx_head])) {
+ if (dma_mapping_error(&priv->pdev->dev, priv->tx_mapping[tx_head])) {
netdev_err(ndev, "DMA mapping error\n");
goto out_unlock;
}
@@ -379,7 +379,7 @@ static netdev_tx_t moxart_mac_start_xmit(struct sk_buff *skb,
len = ETH_ZLEN;
}
- dma_sync_single_for_device(&ndev->dev, priv->tx_mapping[tx_head],
+ dma_sync_single_for_device(&priv->pdev->dev, priv->tx_mapping[tx_head],
priv->tx_buf_size, DMA_TO_DEVICE);
txdes1 = TX_DESC1_LTS | TX_DESC1_FTS | (len & TX_DESC1_BUF_SIZE_MASK);
@@ -493,7 +493,7 @@ static int moxart_mac_probe(struct platform_device *pdev)
priv->tx_buf_size = TX_BUF_SIZE;
priv->rx_buf_size = RX_BUF_SIZE;
- priv->tx_desc_base = dma_alloc_coherent(&pdev->dev, TX_REG_DESC_SIZE *
+ priv->tx_desc_base = dma_alloc_coherent(p_dev, TX_REG_DESC_SIZE *
TX_DESC_NUM, &priv->tx_base,
GFP_DMA | GFP_KERNEL);
if (!priv->tx_desc_base) {
@@ -501,7 +501,7 @@ static int moxart_mac_probe(struct platform_device *pdev)
goto init_fail;
}
- priv->rx_desc_base = dma_alloc_coherent(&pdev->dev, RX_REG_DESC_SIZE *
+ priv->rx_desc_base = dma_alloc_coherent(p_dev, RX_REG_DESC_SIZE *
RX_DESC_NUM, &priv->rx_base,
GFP_DMA | GFP_KERNEL);
if (!priv->rx_desc_base) {
--
2.32.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions
2022-08-12 17:13 [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions Sergei Antonov
@ 2022-08-12 17:56 ` Andrew Lunn
2022-08-16 2:56 ` Jakub Kicinski
2022-08-16 3:00 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Andrew Lunn @ 2022-08-12 17:56 UTC (permalink / raw)
To: Sergei Antonov
Cc: netdev, Jakub Kicinski, Pavel Skripkin, David S . Miller,
Paolo Abeni, Florian Fainelli
On Fri, Aug 12, 2022 at 08:13:39PM +0300, Sergei Antonov wrote:
> dma_map_single() calls fail in moxart_mac_setup_desc_ring() and
> moxart_mac_start_xmit() which leads to an incessant output of this:
>
> [ 16.043925] moxart-ethernet 92000000.mac eth0: DMA mapping error
> [ 16.050957] moxart-ethernet 92000000.mac eth0: DMA mapping error
> [ 16.058229] moxart-ethernet 92000000.mac eth0: DMA mapping error
>
> Passing pdev to DMA is a common approach among net drivers.
>
> Changes in v2:
> - Reject an approach to inherit DMA masks from the platform device.
>
> Signed-off-by: Sergei Antonov <saproj@gmail.com>
> Suggested-by: Andrew Lunn <andrew@lunn.ch>
> CC: Jakub Kicinski <kuba@kernel.org>
> CC: Pavel Skripkin <paskripkin@gmail.com>
> CC: David S. Miller <davem@davemloft.net>
> CC: Paolo Abeni <pabeni@redhat.com>
> CC: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions
2022-08-12 17:13 [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions Sergei Antonov
2022-08-12 17:56 ` Andrew Lunn
@ 2022-08-16 2:56 ` Jakub Kicinski
2022-08-16 3:00 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Jakub Kicinski @ 2022-08-16 2:56 UTC (permalink / raw)
To: Sergei Antonov
Cc: netdev, Andrew Lunn, Pavel Skripkin, David S . Miller,
Paolo Abeni, Florian Fainelli, Jonas Jensen
On Fri, 12 Aug 2022 20:13:39 +0300 Sergei Antonov wrote:
> dma_map_single() calls fail in moxart_mac_setup_desc_ring() and
> moxart_mac_start_xmit() which leads to an incessant output of this:
>
> [ 16.043925] moxart-ethernet 92000000.mac eth0: DMA mapping error
> [ 16.050957] moxart-ethernet 92000000.mac eth0: DMA mapping error
> [ 16.058229] moxart-ethernet 92000000.mac eth0: DMA mapping error
>
> Passing pdev to DMA is a common approach among net drivers.
Thanks! I slapped
Fixes: 6c821bd9edc9 ("net: Add MOXA ART SoCs ethernet driver")
on it when applying, please make sure to provide Fixes tags in
the future (and CC authors so they can review).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions
2022-08-12 17:13 [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions Sergei Antonov
2022-08-12 17:56 ` Andrew Lunn
2022-08-16 2:56 ` Jakub Kicinski
@ 2022-08-16 3:00 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-08-16 3:00 UTC (permalink / raw)
To: Sergei Antonov
Cc: netdev, andrew, kuba, paskripkin, davem, pabeni, f.fainelli
Hello:
This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 12 Aug 2022 20:13:39 +0300 you wrote:
> dma_map_single() calls fail in moxart_mac_setup_desc_ring() and
> moxart_mac_start_xmit() which leads to an incessant output of this:
>
> [ 16.043925] moxart-ethernet 92000000.mac eth0: DMA mapping error
> [ 16.050957] moxart-ethernet 92000000.mac eth0: DMA mapping error
> [ 16.058229] moxart-ethernet 92000000.mac eth0: DMA mapping error
>
> [...]
Here is the summary with links:
- [v2] net: moxa: pass pdev instead of ndev to DMA functions
https://git.kernel.org/netdev/net/c/3a12df22a8f6
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-08-16 7:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-12 17:13 [PATCH v2] net: moxa: pass pdev instead of ndev to DMA functions Sergei Antonov
2022-08-12 17:56 ` Andrew Lunn
2022-08-16 2:56 ` Jakub Kicinski
2022-08-16 3:00 ` patchwork-bot+netdevbpf
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).