===== drivers/net/e100/e100.h 1.19 vs edited ===== --- 1.19/drivers/net/e100/e100.h Wed Nov 6 03:31:33 2002 +++ edited/drivers/net/e100/e100.h Sun Dec 8 20:43:03 2002 @@ -705,8 +705,6 @@ #define IPCB_HARDWAREPARSING_ENABLE BIT_0 #define IPCB_INSERTVLAN_ENABLE BIT_1 #define IPCB_IP_ACTIVATION_DEFAULT IPCB_HARDWAREPARSING_ENABLE - -#define FOLD_CSUM(_XSUM) ((((_XSUM << 16) | (_XSUM >> 16)) + _XSUM) >> 16) /* Transmit Buffer Descriptor (TBD)*/ typedef struct _tbd_t { ===== drivers/net/e100/e100_main.c 1.30 vs edited ===== --- 1.30/drivers/net/e100/e100_main.c Sat Nov 30 03:18:46 2002 +++ edited/drivers/net/e100/e100_main.c Sun Dec 8 20:54:06 2002 @@ -2053,32 +2047,6 @@ } /** - * e100_pseudo_hdr_csum - compute IP pseudo-header checksum - * @ip: points to the header of the IP packet - * - * Return the 16 bit checksum of the IP pseudo-header.,which is computed - * on the fields: IP src, IP dst, next protocol, payload length. - * The checksum vaule is returned in network byte order. - */ -static inline u16 -e100_pseudo_hdr_csum(const struct iphdr *ip) -{ - u32 pseudo = 0; - u32 payload_len = 0; - - payload_len = ntohs(ip->tot_len) - (ip->ihl * 4); - - pseudo += htons(payload_len); - pseudo += (ip->protocol << 8); - pseudo += ip->saddr & 0x0000ffff; - pseudo += (ip->saddr & 0xffff0000) >> 16; - pseudo += ip->daddr & 0x0000ffff; - pseudo += (ip->daddr & 0xffff0000) >> 16; - - return FOLD_CSUM(pseudo); -} - -/** * e100_prepare_xmit_buff - prepare a buffer for transmission * @bdp: atapter's private data struct * @skb: skb to send @@ -2121,27 +2089,13 @@ if ((ip->protocol == IPPROTO_TCP) || (ip->protocol == IPPROTO_UDP)) { - u16 *chksum; - tcb->tcbu.ipcb.ip_activation_high = IPCB_HARDWAREPARSING_ENABLE; tcb->tcbu.ipcb.ip_schedule |= IPCB_TCPUDP_CHECKSUM_ENABLE; - if (ip->protocol == IPPROTO_TCP) { - struct tcphdr *tcp; - - tcp = (struct tcphdr *) ((u32 *) ip + ip->ihl); - chksum = &(tcp->check); + if (ip->protocol == IPPROTO_TCP) tcb->tcbu.ipcb.ip_schedule |= IPCB_TCP_PACKET; - } else { - struct udphdr *udp; - - udp = (struct udphdr *) ((u32 *) ip + ip->ihl); - chksum = &(udp->check); - } - - *chksum = e100_pseudo_hdr_csum(ip); } }