Commit 7a38263c authored by Linus Torvalds's avatar Linus Torvalds

Merge http://gkernel.bkbits.net/net-drivers-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 8f103851 97c9538a
...@@ -512,6 +512,7 @@ el2_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_pag ...@@ -512,6 +512,7 @@ el2_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_pag
if (dev->mem_start) { /* Use the shared memory. */ if (dev->mem_start) { /* Use the shared memory. */
isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr)); isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr));
hdr->count = le16_to_cpu(hdr->count);
return; return;
} }
......
...@@ -133,6 +133,7 @@ ...@@ -133,6 +133,7 @@
0.42 22-Apr-96 Fix alloc_device() bug <jari@markkus2.fimr.fi> 0.42 22-Apr-96 Fix alloc_device() bug <jari@markkus2.fimr.fi>
0.43 16-Aug-96 Update alloc_device() to conform to de4x5.c 0.43 16-Aug-96 Update alloc_device() to conform to de4x5.c
0.44 08-Nov-01 use library crc32 functions <Matt_Domsch@dell.com> 0.44 08-Nov-01 use library crc32 functions <Matt_Domsch@dell.com>
0.45 19-Jul-02 fix unaligned access on alpha <martin@bruli.net>
========================================================================= =========================================================================
*/ */
...@@ -1008,12 +1009,13 @@ static int ewrk3_rx(struct net_device *dev) ...@@ -1008,12 +1009,13 @@ static int ewrk3_rx(struct net_device *dev)
} }
p = skb->data; /* Look at the dest addr */ p = skb->data; /* Look at the dest addr */
if (p[0] & 0x01) { /* Multicast/Broadcast */ if (p[0] & 0x01) { /* Multicast/Broadcast */
if ((*(s32 *) & p[0] == -1) && (*(s16 *) & p[4] == -1)) { if ((*(s16 *) & p[0] == -1) && (*(s16 *) & p[2] == -1) && (*(s16 *) & p[4] == -1)) {
lp->pktStats.broadcast++; lp->pktStats.broadcast++;
} else { } else {
lp->pktStats.multicast++; lp->pktStats.multicast++;
} }
} else if ((*(s32 *) & p[0] == *(s32 *) & dev->dev_addr[0]) && } else if ((*(s16 *) & p[0] == *(s16 *) & dev->dev_addr[0]) &&
(*(s16 *) & p[2] == *(s16 *) & dev->dev_addr[2]) &&
(*(s16 *) & p[4] == *(s16 *) & dev->dev_addr[4])) { (*(s16 *) & p[4] == *(s16 *) & dev->dev_addr[4])) {
lp->pktStats.unicast++; lp->pktStats.unicast++;
} }
......
...@@ -351,7 +351,7 @@ hpp_mem_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring ...@@ -351,7 +351,7 @@ hpp_mem_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring
outw(option_reg & ~(MemDisable + BootROMEnb), ioaddr + HPP_OPTION); outw(option_reg & ~(MemDisable + BootROMEnb), ioaddr + HPP_OPTION);
isa_memcpy_fromio(hdr, dev->mem_start, sizeof(struct e8390_pkt_hdr)); isa_memcpy_fromio(hdr, dev->mem_start, sizeof(struct e8390_pkt_hdr));
outw(option_reg, ioaddr + HPP_OPTION); outw(option_reg, ioaddr + HPP_OPTION);
hdr->count = (hdr->count + 3) & ~3; /* Round up allocation. */ hdr->count = (le16_to_cpu(hdr->count) + 3) & ~3; /* Round up allocation. */
} }
static void static void
......
...@@ -383,9 +383,11 @@ ultra_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_p ...@@ -383,9 +383,11 @@ ultra_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_p
unsigned long hdr_start = dev->mem_start + ((ring_page - START_PG)<<8); unsigned long hdr_start = dev->mem_start + ((ring_page - START_PG)<<8);
outb(ULTRA_MEMENB, dev->base_addr - ULTRA_NIC_OFFSET); /* shmem on */ outb(ULTRA_MEMENB, dev->base_addr - ULTRA_NIC_OFFSET); /* shmem on */
#ifdef notdef #ifdef __BIG_ENDIAN
/* Officially this is what we are doing, but the readl() is faster */ /* Officially this is what we are doing, but the readl() is faster */
/* unfortunately it isn't endian aware of the struct */
isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr)); isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr));
hdr->count = le16_to_cpu(hdr->count);
#else #else
((unsigned int*)hdr)[0] = isa_readl(hdr_start); ((unsigned int*)hdr)[0] = isa_readl(hdr_start);
#endif #endif
......
...@@ -320,9 +320,11 @@ static void ultra32_get_8390_hdr(struct net_device *dev, ...@@ -320,9 +320,11 @@ static void ultra32_get_8390_hdr(struct net_device *dev,
/* Select correct 8KB Window. */ /* Select correct 8KB Window. */
outb(ei_status.reg0 | ((ring_page & 0x60) >> 5), RamReg); outb(ei_status.reg0 | ((ring_page & 0x60) >> 5), RamReg);
#ifdef notdef #ifdef __BIG_ENDIAN
/* Officially this is what we are doing, but the readl() is faster */ /* Officially this is what we are doing, but the readl() is faster */
/* unfortunately it isn't endian aware of the struct */
isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr)); isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr));
hdr->count = le16_to_cpu(hdr->count);
#else #else
((unsigned int*)hdr)[0] = isa_readl(hdr_start); ((unsigned int*)hdr)[0] = isa_readl(hdr_start);
#endif #endif
......
...@@ -370,9 +370,11 @@ wd_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page ...@@ -370,9 +370,11 @@ wd_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *hdr, int ring_page
if (ei_status.word16) if (ei_status.word16)
outb(ISA16 | ei_status.reg5, wd_cmdreg+WD_CMDREG5); outb(ISA16 | ei_status.reg5, wd_cmdreg+WD_CMDREG5);
#ifdef notdef #ifdef __BIG_ENDIAN
/* Officially this is what we are doing, but the readl() is faster */ /* Officially this is what we are doing, but the readl() is faster */
/* unfortunately it isn't endian aware of the struct */
isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr)); isa_memcpy_fromio(hdr, hdr_start, sizeof(struct e8390_pkt_hdr));
hdr->count = le16_to_cpu(hdr->count);
#else #else
((unsigned int*)hdr)[0] = isa_readl(hdr_start); ((unsigned int*)hdr)[0] = isa_readl(hdr_start);
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment