Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6570ebc4f57ad0761104f769576ae5652d9b8d64
Commit:     6570ebc4f57ad0761104f769576ae5652d9b8d64
Parent:     bc4b2b497aa61c79e3f3444237a4003a254ea565
Author:     Frank Blaschka <[EMAIL PROTECTED]>
AuthorDate: Fri Oct 5 16:45:45 2007 +0200
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Wed Oct 10 16:54:40 2007 -0700

    qeth: EDDP does not work on large MTUs
    
    Fix filling the qdio buffers in EDDP mode.
    
    Signed-off-by: Frank Blaschka <[EMAIL PROTECTED]>
    Signed-off-by: Ursula Braun <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/s390/net/qeth_eddp.c |   16 +++++++++-------
 drivers/s390/net/qeth_main.c |    3 ++-
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/s390/net/qeth_eddp.c b/drivers/s390/net/qeth_eddp.c
index 70108fb..e3c268c 100644
--- a/drivers/s390/net/qeth_eddp.c
+++ b/drivers/s390/net/qeth_eddp.c
@@ -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--;
                }
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c
index b41a538..fe61647 100644
--- a/drivers/s390/net/qeth_main.c
+++ b/drivers/s390/net/qeth_main.c
@@ -4508,7 +4508,8 @@ qeth_do_send_packet(struct qeth_card *card, struct 
qeth_qdio_out_q *queue,
                        /* check if we have enough elements (including following
                         * free buffers) to handle eddp context */
                        if (qeth_eddp_check_buffers_for_context(queue,ctx) < 0){
-                               printk("eddp tx_dropped 1\n");
+                               if (net_ratelimit())
+                                       PRINT_WARN("eddp tx_dropped 1\n");
                                rc = -EBUSY;
                                goto out;
                        }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to