]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/s390/net/qeth_eddp.c
pci: hotplug: pciehp: fix error code path in hpc_power_off_slot
[linux-2.6-omap-h63xx.git] / drivers / s390 / net / qeth_eddp.c
index 4640f32daae5832ed75e410a5bcc131bfc180098..e3c268cfbffee855eae1c17a8274b9929c37390e 100644 (file)
@@ -159,13 +159,15 @@ qeth_eddp_fill_buffer(struct qeth_qdio_out_q *queue,
                buffer = buf->buffer;
                /* fill one skb into buffer */
                for (i = 0; i < ctx->elements_per_skb; ++i){
-                       buffer->element[buf->next_element_to_fill].addr =
-                               ctx->elements[element].addr;
-                       buffer->element[buf->next_element_to_fill].length =
-                               ctx->elements[element].length;
-                       buffer->element[buf->next_element_to_fill].flags =
-                               ctx->elements[element].flags;
-                       buf->next_element_to_fill++;
+                       if (ctx->elements[element].length != 0) {
+                               buffer->element[buf->next_element_to_fill].
+                               addr = ctx->elements[element].addr;
+                               buffer->element[buf->next_element_to_fill].
+                               length = ctx->elements[element].length;
+                               buffer->element[buf->next_element_to_fill].
+                               flags = ctx->elements[element].flags;
+                               buf->next_element_to_fill++;
+                       }
                        element++;
                        elements--;
                }
@@ -424,8 +426,7 @@ __qeth_eddp_fill_context_tcp(struct qeth_eddp_context *ctx,
                /* prepare qdio hdr */
                if (eddp->qh.hdr.l2.id == QETH_HEADER_TYPE_LAYER2){
                        eddp->qh.hdr.l2.pkt_length = data_len + ETH_HLEN +
-                                                    eddp->nhl + eddp->thl -
-                                                    sizeof(struct qeth_hdr);
+                                                    eddp->nhl + eddp->thl;
 #ifdef CONFIG_QETH_VLAN
                        if (eddp->mac.h_proto == __constant_htons(ETH_P_8021Q))
                                eddp->qh.hdr.l2.pkt_length += VLAN_HLEN;