diff mbox

Atheros Communications Inc. AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (rev b0) 1.0.0.7 md5/sha1 corrupted using NFS and samba (updated) Version 2

Message ID 1364145768.29473.9.camel@edumazet-glaptop
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Eric Dumazet March 24, 2013, 5:22 p.m. UTC
On Sun, 2013-03-24 at 05:42 +0000, Huang, Xiong wrote:

> 1.  pages cross 4GB bouandary ?  or overlap with each other ?

Normally this should not happen.

However the frame could span two 4K pages.

(physically contigous, and not spanning a 32K boundary)

> 2. try to set hw->dmaw_block = atl1e_dma_req_128 
> 3. can you print reg15C0 content when the NIC is in normal tx/rx status ?
> 4. other possible may be related the diff register configuration, but it's very difficult to compare with Windows driver :(  
> 

What could be tried is to remove the possibility of page spanning.



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Hannes Frederic Sowa March 24, 2013, 5:38 p.m. UTC | #1
On Sun, Mar 24, 2013 at 10:22:48AM -0700, Eric Dumazet wrote:
> What could be tried is to remove the possibility of page spanning.
> 
> diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
> index 441f5bf..d0f4dd1 100644
> --- a/include/linux/skbuff.h
> +++ b/include/linux/skbuff.h
> @@ -1849,7 +1849,7 @@ static inline void __skb_queue_purge(struct sk_buff_head *list)
>  		kfree_skb(skb);
>  }
>  
> -#define NETDEV_FRAG_PAGE_MAX_ORDER get_order(32768)
> +#define NETDEV_FRAG_PAGE_MAX_ORDER 0
>  #define NETDEV_FRAG_PAGE_MAX_SIZE  (PAGE_SIZE << NETDEV_FRAG_PAGE_MAX_ORDER)
>  #define NETDEV_PAGECNT_MAX_BIAS	   NETDEV_FRAG_PAGE_MAX_SIZE

Doesn't change anything. :(

We tested it on a v3.8 kernel so I changed the definition in
net/core/skbuff.c. I hope this doesn't change the outcome.

Btw, reports about this bug are dating back to 2008 so I don't think
that a recent change in the kernel broke it.

Thanks,

  Hannes
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 441f5bf..d0f4dd1 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -1849,7 +1849,7 @@  static inline void __skb_queue_purge(struct sk_buff_head *list)
 		kfree_skb(skb);
 }
 
-#define NETDEV_FRAG_PAGE_MAX_ORDER get_order(32768)
+#define NETDEV_FRAG_PAGE_MAX_ORDER 0
 #define NETDEV_FRAG_PAGE_MAX_SIZE  (PAGE_SIZE << NETDEV_FRAG_PAGE_MAX_ORDER)
 #define NETDEV_PAGECNT_MAX_BIAS	   NETDEV_FRAG_PAGE_MAX_SIZE