Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8a5ed9efe661dd42bc140e522c2635e0d7b26141
Commit:     8a5ed9efe661dd42bc140e522c2635e0d7b26141
Parent:     b46281f9c5d6ab7b6e412e83f8c62cecf4ebbdfd
Author:     Al Viro <[EMAIL PROTECTED]>
AuthorDate: Fri Dec 21 06:20:53 2007 +0000
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Sat Dec 22 22:53:05 2007 -0500

    typhoon: missed rx overruns on big-endian
    
    rxBuffCleared is little-endian; we miss le32_to_cpu() in checks for
    rx ring overruns.
    
    Signed-off-by: Al Viro <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/typhoon.c |    4 ++--
 drivers/net/typhoon.h |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 16d443b..501abe3 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1596,7 +1596,7 @@ typhoon_recycle_rx_skb(struct typhoon *tp, u32 idx)
        struct rx_free *r;
 
        if((ring->lastWrite + sizeof(*r)) % (RXFREE_ENTRIES * sizeof(*r)) ==
-                               indexes->rxBuffCleared) {
+                               le32_to_cpu(indexes->rxBuffCleared)) {
                /* no room in ring, just drop the skb
                 */
                dev_kfree_skb_any(rxb->skb);
@@ -1627,7 +1627,7 @@ typhoon_alloc_rx_skb(struct typhoon *tp, u32 idx)
        rxb->skb = NULL;
 
        if((ring->lastWrite + sizeof(*r)) % (RXFREE_ENTRIES * sizeof(*r)) ==
-                               indexes->rxBuffCleared)
+                               le32_to_cpu(indexes->rxBuffCleared))
                return -ENOMEM;
 
        skb = dev_alloc_skb(PKT_BUF_SZ);
diff --git a/drivers/net/typhoon.h b/drivers/net/typhoon.h
index 19df208..a02e095 100644
--- a/drivers/net/typhoon.h
+++ b/drivers/net/typhoon.h
@@ -73,7 +73,7 @@ struct typhoon_indexes {
        volatile __le32 txLoCleared;
        volatile __le32 txHiCleared;
        volatile __le32 rxLoReady;
-       volatile __u32 rxBuffCleared;   /* AV: really? */
+       volatile __le32 rxBuffCleared;
        volatile __le32 cmdCleared;
        volatile __le32 respReady;
        volatile __le32 rxHiReady;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to