From: Neil Horman <nhorman@tuxdriver.com>
To: David Miller <davem@davemloft.net>
Cc: mroos@linux.ee, klassert@mathematik.tu-chemnitz.de,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: bisected regression: 3c59x corrupts packets in 3.17-rc5
Date: Wed, 17 Sep 2014 06:27:01 -0400 [thread overview]
Message-ID: <20140917102701.GA5699@hmsreliant.think-freely.org> (raw)
In-Reply-To: <20140916.162923.605101746131407931.davem@davemloft.net>
On Tue, Sep 16, 2014 at 04:29:23PM -0400, David Miller wrote:
> From: Neil Horman <nhorman@tuxdriver.com>
> Date: Tue, 16 Sep 2014 06:17:04 -0400
>
> > I'm guessing the above change has uncovered another bug,
>
> Neil, read your patch carefully, I think it added the bug.
>
> The ->page_offset of the frag gets applied two times.
>
> skb_dma_map_frag() already takes frag->page_offset into consideration,
> you then pass it in as the 'offset' argument and it then gets added to
> itself to compute th final offset.
>
Shit, you're right, sorry about that. Its odd, I'm running it here, and its not
causing problems, but thats obviously wrong. Meelis, please add the above fix
to your test and confirm that it sovles the problem. If you could keep the
previous patch in place too that would be great, as we should probably add the
dma error checking anyway.
[PATCH] 3c59x: Fix bad offset spec in skb_frag_dma_map
Recently aded the use of skb_frag_dma_map to 3c59x, but didn't realize it
automatically included the frag_offset internally, as well as provided an option
to specify an extra offset in the parameter list. We need to specify an offset
of 0 in the parameter list to avoid skb corruption that results in lost
connections.
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
---
drivers/net/ethernet/3com/3c59x.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/3com/3c59x.c b/drivers/net/ethernet/3com/3c59x.c
index 5621dab..0f59d68 100644
--- a/drivers/net/ethernet/3com/3c59x.c
+++ b/drivers/net/ethernet/3com/3c59x.c
@@ -2186,7 +2186,7 @@ boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev)
skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
dma_addr = skb_frag_dma_map(&VORTEX_PCI(vp)->dev, frag,
- frag->page_offset,
+ 0,
frag->size,
DMA_TO_DEVICE);
if (dma_mapping_error(&VORTEX_PCI(vp)->dev, dma_addr)) {
--
1.9.3
next prev parent reply other threads:[~2014-09-17 10:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-15 23:14 Meelis Roos
2014-09-16 10:17 ` Neil Horman
2014-09-16 10:32 ` Meelis Roos
2014-09-16 14:31 ` Neil Horman
2014-09-16 14:32 ` [RFC PATCH] 3c59x: Add dma error checking and recovery Neil Horman
2014-09-16 20:29 ` bisected regression: 3c59x corrupts packets in 3.17-rc5 David Miller
2014-09-17 10:27 ` Neil Horman [this message]
2014-09-17 12:43 ` mroos
2014-09-17 12:56 ` Neil Horman
2014-09-17 13:04 ` [PATCH 1/2] 3c59x: Add dma error checking and recovery Neil Horman
2014-09-17 13:04 ` [PATCH 2/2] 3c59x: Fix bad offset spec in skb_frag_dma_map Neil Horman
2014-09-19 20:29 ` David Miller
2014-09-19 20:29 ` [PATCH 1/2] 3c59x: Add dma error checking and recovery David Miller
2014-09-20 1:19 ` Neil Horman
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=20140917102701.GA5699@hmsreliant.think-freely.org \
--to=nhorman@tuxdriver.com \
--cc=davem@davemloft.net \
--cc=klassert@mathematik.tu-chemnitz.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mroos@linux.ee \
--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
all inboxes | Powered by JetHome®