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

sungem 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
David S. Miller
439104b3 f3ec33e5

+9 -7
+5 -3
drivers/net/sungem.c
··· 758 758 { 759 759 int entry, drops, work_done = 0; 760 760 u32 done; 761 + __sum16 csum; 761 762 762 763 if (netif_msg_rx_status(gp)) 763 764 printk(KERN_DEBUG "%s: rx interrupt, done: %d, rx_new: %d\n", ··· 770 769 for (;;) { 771 770 struct gem_rxd *rxd = &gp->init_block->rxd[entry]; 772 771 struct sk_buff *skb; 773 - u64 status = cpu_to_le64(rxd->status_word); 772 + u64 status = le64_to_cpu(rxd->status_word); 774 773 dma_addr_t dma_addr; 775 774 int len; 776 775 ··· 812 811 goto next; 813 812 } 814 813 815 - dma_addr = cpu_to_le64(rxd->buffer); 814 + dma_addr = le64_to_cpu(rxd->buffer); 816 815 if (len > RX_COPY_THRESHOLD) { 817 816 struct sk_buff *new_skb; 818 817 ··· 854 853 skb = copy_skb; 855 854 } 856 855 857 - skb->csum = ntohs((status & RXDCTRL_TCPCSUM) ^ 0xffff); 856 + csum = (__force __sum16)htons((status & RXDCTRL_TCPCSUM) ^ 0xffff); 857 + skb->csum = csum_unfold(csum); 858 858 skb->ip_summed = CHECKSUM_COMPLETE; 859 859 skb->protocol = eth_type_trans(skb, gp->dev); 860 860
+4 -4
drivers/net/sungem.h
··· 828 828 * DMA mappings for a transmitted packet. 829 829 */ 830 830 struct gem_txd { 831 - u64 control_word; 832 - u64 buffer; 831 + __le64 control_word; 832 + __le64 buffer; 833 833 }; 834 834 835 835 #define TXDCTRL_BUFSZ 0x0000000000007fffULL /* Buffer Size */ ··· 863 863 * by the host driver just as in the TX descriptor case above. 864 864 */ 865 865 struct gem_rxd { 866 - u64 status_word; 867 - u64 buffer; 866 + __le64 status_word; 867 + __le64 buffer; 868 868 }; 869 869 870 870 #define RXDCTRL_TCPCSUM 0x000000000000ffffULL /* TCP Pseudo-CSUM */