s390: scatter-gather for inbound traffic in qeth driver
[safe/jmp/linux-2.6] / drivers / s390 / net / qeth_tso.h
index 1286dde..c20e923 100644 (file)
@@ -24,7 +24,7 @@ static inline struct qeth_hdr_tso *
 qeth_tso_prepare_skb(struct qeth_card *card, struct sk_buff **skb)
 {
        QETH_DBF_TEXT(trace, 5, "tsoprsk");
-       return qeth_push_skb(card, skb, sizeof(struct qeth_hdr_tso));
+       return qeth_push_skb(card, *skb, sizeof(struct qeth_hdr_tso));
 }
 
 /**
@@ -40,8 +40,8 @@ qeth_tso_fill_header(struct qeth_card *card, struct sk_buff *skb)
        QETH_DBF_TEXT(trace, 5, "tsofhdr");
 
        hdr  = (struct qeth_hdr_tso *) skb->data;
-       iph  = skb->nh.iph;
-       tcph = skb->h.th;
+       iph  = ip_hdr(skb);
+       tcph = tcp_hdr(skb);
        /*fix header to TSO values ...*/
        hdr->hdr.hdr.l3.id = QETH_HEADER_TYPE_TSO;
        /*set values which are fix for the first approach ...*/
@@ -51,7 +51,7 @@ qeth_tso_fill_header(struct qeth_card *card, struct sk_buff *skb)
        hdr->ext.hdr_version = 1;
        hdr->ext.hdr_len     = 28;
        /*insert non-fix values */
-       hdr->ext.mss = skb_shinfo(skb)->tso_size;
+       hdr->ext.mss = skb_shinfo(skb)->gso_size;
        hdr->ext.dg_hdr_len = (__u16)(iph->ihl*4 + tcph->doff*4);
        hdr->ext.payload_len = (__u16)(skb->len - hdr->ext.dg_hdr_len -
                                       sizeof(struct qeth_hdr_tso));
@@ -63,13 +63,9 @@ qeth_tso_fill_header(struct qeth_card *card, struct sk_buff *skb)
 static inline void
 qeth_tso_set_tcpip_header(struct qeth_card *card, struct sk_buff *skb)
 {
-       struct iphdr *iph;
-       struct ipv6hdr *ip6h;
-       struct tcphdr *tcph;
-
-       iph  = skb->nh.iph;
-       ip6h = skb->nh.ipv6h;
-       tcph = skb->h.th;
+       struct iphdr *iph    = ip_hdr(skb);
+       struct ipv6hdr *ip6h = ipv6_hdr(skb);
+       struct tcphdr *tcph  = tcp_hdr(skb);
 
        tcph->check = 0;
        if (skb->protocol == ETH_P_IPV6) {
@@ -117,11 +113,11 @@ __qeth_fill_buffer_frag(struct sk_buff *skb, struct qdio_buffer *buffer,
        int fragno;
        unsigned long addr;
        int element, cnt, dlen;
-       
+
        fragno = skb_shinfo(skb)->nr_frags;
        element = *next_element_to_fill;
        dlen = 0;
-       
+
        if (is_tso)
                buffer->element[element].flags =
                        SBAL_FLAGS_MIDDLE_FRAG;