sis190 endianness
Check in sis190_rx_interrupt() is broken on big-endian (desc->status is little-endian and everything else actually uses it correctly, including other checks for OWNbit. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
87e417b2f3
commit
961994a0c2
@ -474,7 +474,7 @@ static inline void sis190_map_to_asic(struct RxDesc *desc, dma_addr_t mapping,
|
|||||||
static inline void sis190_make_unusable_by_asic(struct RxDesc *desc)
|
static inline void sis190_make_unusable_by_asic(struct RxDesc *desc)
|
||||||
{
|
{
|
||||||
desc->PSize = 0x0;
|
desc->PSize = 0x0;
|
||||||
desc->addr = 0xdeadbeef;
|
desc->addr = cpu_to_le32(0xdeadbeef);
|
||||||
desc->size &= cpu_to_le32(RingEnd);
|
desc->size &= cpu_to_le32(RingEnd);
|
||||||
wmb();
|
wmb();
|
||||||
desc->status = 0x0;
|
desc->status = 0x0;
|
||||||
@ -580,7 +580,7 @@ static int sis190_rx_interrupt(struct net_device *dev,
|
|||||||
struct RxDesc *desc = tp->RxDescRing + entry;
|
struct RxDesc *desc = tp->RxDescRing + entry;
|
||||||
u32 status;
|
u32 status;
|
||||||
|
|
||||||
if (desc->status & OWNbit)
|
if (le32_to_cpu(desc->status) & OWNbit)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
status = le32_to_cpu(desc->PSize);
|
status = le32_to_cpu(desc->PSize);
|
||||||
@ -1538,9 +1538,9 @@ static int __devinit sis190_get_mac_addr_from_eeprom(struct pci_dev *pdev,
|
|||||||
|
|
||||||
/* Get MAC address from EEPROM */
|
/* Get MAC address from EEPROM */
|
||||||
for (i = 0; i < MAC_ADDR_LEN / 2; i++) {
|
for (i = 0; i < MAC_ADDR_LEN / 2; i++) {
|
||||||
__le16 w = sis190_read_eeprom(ioaddr, EEPROMMACAddr + i);
|
u16 w = sis190_read_eeprom(ioaddr, EEPROMMACAddr + i);
|
||||||
|
|
||||||
((u16 *)dev->dev_addr)[i] = le16_to_cpu(w);
|
((__le16 *)dev->dev_addr)[i] = cpu_to_le16(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
sis190_set_rgmii(tp, sis190_read_eeprom(ioaddr, EEPROMInfo));
|
sis190_set_rgmii(tp, sis190_read_eeprom(ioaddr, EEPROMInfo));
|
||||||
|
Loading…
Reference in New Issue
Block a user