Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

typhoon: trivial endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

authored by

Al Viro and committed by
Jeff Garzik
71f1bb1a 8cc085c7

+24 -20
+15 -16
drivers/net/typhoon.c
··· 813 813 first_txd->flags = TYPHOON_TX_DESC | TYPHOON_DESC_VALID; 814 814 first_txd->numDesc = 0; 815 815 first_txd->len = 0; 816 - first_txd->addr = (u64)((unsigned long) skb) & 0xffffffff; 817 - first_txd->addrHi = (u64)((unsigned long) skb) >> 32; 816 + first_txd->tx_addr = (u64)((unsigned long) skb); 818 817 first_txd->processFlags = 0; 819 818 820 819 if(skb->ip_summed == CHECKSUM_PARTIAL) { ··· 849 850 PCI_DMA_TODEVICE); 850 851 txd->flags = TYPHOON_FRAG_DESC | TYPHOON_DESC_VALID; 851 852 txd->len = cpu_to_le16(skb->len); 852 - txd->addr = cpu_to_le32(skb_dma); 853 - txd->addrHi = 0; 853 + txd->frag.addr = cpu_to_le32(skb_dma); 854 + txd->frag.addrHi = 0; 854 855 first_txd->numDesc++; 855 856 } else { 856 857 int i, len; ··· 860 861 PCI_DMA_TODEVICE); 861 862 txd->flags = TYPHOON_FRAG_DESC | TYPHOON_DESC_VALID; 862 863 txd->len = cpu_to_le16(len); 863 - txd->addr = cpu_to_le32(skb_dma); 864 - txd->addrHi = 0; 864 + txd->frag.addr = cpu_to_le32(skb_dma); 865 + txd->frag.addrHi = 0; 865 866 first_txd->numDesc++; 866 867 867 868 for(i = 0; i < skb_shinfo(skb)->nr_frags; i++) { ··· 879 880 PCI_DMA_TODEVICE); 880 881 txd->flags = TYPHOON_FRAG_DESC | TYPHOON_DESC_VALID; 881 882 txd->len = cpu_to_le16(len); 882 - txd->addr = cpu_to_le32(skb_dma); 883 - txd->addrHi = 0; 883 + txd->frag.addr = cpu_to_le32(skb_dma); 884 + txd->frag.addrHi = 0; 884 885 first_txd->numDesc++; 885 886 } 886 887 } ··· 1357 1358 u8 *image_data; 1358 1359 void *dpage; 1359 1360 dma_addr_t dpage_dma; 1360 - unsigned int csum; 1361 + __sum16 csum; 1361 1362 u32 irqEnabled; 1362 1363 u32 irqMasked; 1363 1364 u32 numSections; ··· 1449 1450 * summing. Fortunately, due to the properties of 1450 1451 * the checksum, we can do this once, at the end. 1451 1452 */ 1452 - csum = csum_partial_copy_nocheck(image_data, dpage, 1453 - len, 0); 1454 - csum = csum_fold(csum); 1455 - csum = le16_to_cpu(csum); 1453 + csum = csum_fold(csum_partial_copy_nocheck(image_data, 1454 + dpage, len, 1455 + 0)); 1456 1456 1457 1457 iowrite32(len, ioaddr + TYPHOON_REG_BOOT_LENGTH); 1458 - iowrite32(csum, ioaddr + TYPHOON_REG_BOOT_CHECKSUM); 1458 + iowrite32(le16_to_cpu((__force __le16)csum), 1459 + ioaddr + TYPHOON_REG_BOOT_CHECKSUM); 1459 1460 iowrite32(load_addr, 1460 1461 ioaddr + TYPHOON_REG_BOOT_DEST_ADDR); 1461 1462 iowrite32(0, ioaddr + TYPHOON_REG_BOOT_DATA_HI); ··· 1550 1551 if(type == TYPHOON_TX_DESC) { 1551 1552 /* This tx_desc describes a packet. 1552 1553 */ 1553 - unsigned long ptr = tx->addr | ((u64)tx->addrHi << 32); 1554 + unsigned long ptr = tx->tx_addr; 1554 1555 struct sk_buff *skb = (struct sk_buff *) ptr; 1555 1556 dev_kfree_skb_irq(skb); 1556 1557 } else if(type == TYPHOON_FRAG_DESC) { 1557 1558 /* This tx_desc describes a memory mapping. Free it. 1558 1559 */ 1559 - skb_dma = (dma_addr_t) le32_to_cpu(tx->addr); 1560 + skb_dma = (dma_addr_t) le32_to_cpu(tx->frag.addr); 1560 1561 dma_len = le16_to_cpu(tx->len); 1561 1562 pci_unmap_single(tp->pdev, skb_dma, dma_len, 1562 1563 PCI_DMA_TODEVICE);
+9 -4
drivers/net/typhoon.h
··· 166 166 #define TYPHOON_DESC_VALID 0x80 167 167 u8 numDesc; 168 168 __le16 len; 169 - u32 addr; 170 - u32 addrHi; 169 + union { 170 + struct { 171 + __le32 addr; 172 + __le32 addrHi; 173 + } frag; 174 + u64 tx_addr; /* opaque for hardware, for TX_DESC */ 175 + }; 171 176 __le32 processFlags; 172 177 #define TYPHOON_TX_PF_NO_CRC __constant_cpu_to_le32(0x00000001) 173 178 #define TYPHOON_TX_PF_IP_CHKSUM __constant_cpu_to_le32(0x00000002) ··· 245 240 u8 flags; 246 241 u8 numDesc; 247 242 __le16 frameLen; 248 - u32 addr; 249 - u32 addrHi; 243 + u32 addr; /* opaque, comes from virtAddr */ 244 + u32 addrHi; /* opaque, comes from virtAddrHi */ 250 245 __le32 rxStatus; 251 246 #define TYPHOON_RX_ERR_INTERNAL __constant_cpu_to_le32(0x00000000) 252 247 #define TYPHOON_RX_ERR_FIFO_UNDERRUN __constant_cpu_to_le32(0x00000001)