]> git.karo-electronics.de Git - linux-beck.git/commitdiff
qeth: change some configurations defaults
authorFrank Blaschka <frank.blaschka@de.ibm.com>
Mon, 14 Mar 2011 22:39:47 +0000 (15:39 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Mar 2011 22:39:47 +0000 (15:39 -0700)
This patch turns on RX checksum and GRO by default. To improve
receiving performance and reduce congestion in case of network
bursts we also increase the default number of inbound buffers.

Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core.h
drivers/s390/net/qeth_core_main.c
drivers/s390/net/qeth_l3_main.c

index c5d763ed406e6c2210ac8a6820f2f0b41f8905c7..af3f7b095647bb3ac5229f7af9d39aae3d8d90aa 100644 (file)
@@ -225,7 +225,8 @@ static inline int qeth_is_ipa_enabled(struct qeth_ipa_info *ipa,
 /*****************************************************************************/
 #define QETH_MAX_QUEUES 4
 #define QETH_IN_BUF_SIZE_DEFAULT 65536
-#define QETH_IN_BUF_COUNT_DEFAULT 16
+#define QETH_IN_BUF_COUNT_DEFAULT 64
+#define QETH_IN_BUF_COUNT_HSDEFAULT 128
 #define QETH_IN_BUF_COUNT_MIN 8
 #define QETH_IN_BUF_COUNT_MAX 128
 #define QETH_MAX_BUFFER_ELEMENTS(card) ((card)->qdio.in_buf_size >> 12)
index f3d98ac16e9f6faa0211978ff2ba8664765395e4..25eef304bd4774b67651d6507e808fb4a0dba027 100644 (file)
@@ -1026,7 +1026,10 @@ static void qeth_init_qdio_info(struct qeth_card *card)
        atomic_set(&card->qdio.state, QETH_QDIO_UNINITIALIZED);
        /* inbound */
        card->qdio.in_buf_size = QETH_IN_BUF_SIZE_DEFAULT;
-       card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_DEFAULT;
+       if (card->info.type == QETH_CARD_TYPE_IQD)
+               card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_HSDEFAULT;
+       else
+               card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_DEFAULT;
        card->qdio.in_buf_pool.buf_count = card->qdio.init_pool.buf_count;
        INIT_LIST_HEAD(&card->qdio.in_buf_pool.entry_list);
        INIT_LIST_HEAD(&card->qdio.init_pool.entry_list);
index 6a9cc58321a03752049142c0120095bcd65e4377..142e5f6ef4f3ac0c6df656fa7c266b7488c7d1da 100644 (file)
@@ -3392,6 +3392,8 @@ static int qeth_l3_setup_netdev(struct qeth_card *card)
                        if (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD))
                                card->dev->dev_id = card->info.unique_id &
                                                         0xffff;
+                       if (!card->info.guestlan)
+                               card->dev->features |= NETIF_F_GRO;
                }
        } else if (card->info.type == QETH_CARD_TYPE_IQD) {
                card->dev = alloc_netdev(0, "hsi%d", ether_setup);
@@ -3430,6 +3432,9 @@ static int qeth_l3_probe_device(struct ccwgroup_device *gdev)
        card->discipline.output_handler = (qdio_handler_t *)
                qeth_qdio_output_handler;
        card->discipline.recover = qeth_l3_recover;
+       if ((card->info.type == QETH_CARD_TYPE_OSD) ||
+           (card->info.type == QETH_CARD_TYPE_OSX))
+               card->options.checksum_type = HW_CHECKSUMMING;
        return 0;
 }