]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/net/qeth_eddp.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / drivers / s390 / net / qeth_eddp.c
index 90da58b4e532c78e944eb1116d981e37f0e590c2..dd7034fbfff89ec8b51fe12788dd35703291bfab 100644 (file)
@@ -267,7 +267,8 @@ qeth_eddp_copy_data_tcp(char *dst, struct qeth_eddp_data *eddp, int len,
 
        QETH_DBF_TEXT(trace, 5, "eddpcdtc");
        if (skb_shinfo(eddp->skb)->nr_frags == 0) {
-               memcpy(dst, eddp->skb->data + eddp->skb_offset, len);
+               skb_copy_from_linear_data_offset(eddp->skb, eddp->skb_offset,
+                                                dst, len);
                *hcsum = csum_partial(eddp->skb->data + eddp->skb_offset, len,
                                      *hcsum);
                eddp->skb_offset += len;
@@ -416,7 +417,7 @@ __qeth_eddp_fill_context_tcp(struct qeth_eddp_context *ctx,
                        eddp->skb_offset += VLAN_HLEN;
 #endif /* CONFIG_QETH_VLAN */
        }
-       tcph = eddp->skb->h.th;
+       tcph = tcp_hdr(eddp->skb);
        while (eddp->skb_offset < eddp->skb->len) {
                data_len = min((int)skb_shinfo(eddp->skb)->gso_size,
                               (int)(eddp->skb->len - eddp->skb_offset));
@@ -476,14 +477,14 @@ qeth_eddp_fill_context_tcp(struct qeth_eddp_context *ctx,
                eddp = qeth_eddp_create_eddp_data(qhdr,
                                                  skb_network_header(skb),
                                                  ip_hdrlen(skb),
-                                                 skb->h.raw,
-                                                 skb->h.th->doff * 4);
+                                                 skb_transport_header(skb),
+                                                 tcp_hdrlen(skb));
        else
                eddp = qeth_eddp_create_eddp_data(qhdr,
                                                  skb_network_header(skb),
                                                  sizeof(struct ipv6hdr),
-                                                 skb->h.raw,
-                                                 skb->h.th->doff * 4);
+                                                 skb_transport_header(skb),
+                                                 tcp_hdrlen(skb));
 
        if (eddp == NULL) {
                QETH_DBF_TEXT(trace, 2, "eddpfcnm");
@@ -596,11 +597,11 @@ qeth_eddp_create_context_tcp(struct qeth_card *card, struct sk_buff *skb,
                ctx = qeth_eddp_create_context_generic(card, skb,
                                                       (sizeof(struct qeth_hdr) +
                                                        ip_hdrlen(skb) +
-                                                       skb->h.th->doff * 4));
+                                                       tcp_hdrlen(skb)));
        else if (skb->protocol == htons(ETH_P_IPV6))
                ctx = qeth_eddp_create_context_generic(card, skb,
                        sizeof(struct qeth_hdr) + sizeof(struct ipv6hdr) +
-                       skb->h.th->doff*4);
+                       tcp_hdrlen(skb));
        else
                QETH_DBF_TEXT(trace, 2, "cetcpinv");