s390/qeth: display warning for OSA3 RX/TX checksum offloading
authorThomas Richter <tmricht@linux.vnet.ibm.com>
Thu, 12 Jan 2017 14:48:34 +0000 (15:48 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Jan 2017 15:02:43 +0000 (10:02 -0500)
When RX/TX checksum offloading is turned on and the adapter is
an OSA 3 card in layer 3 mode, the checksum offloading is only
performed when both peers use different adapters. If both peers
share an OSA 3 card, communication is a memory copy and
checksum offloading is not performed.

This patch adds a warning to inform the administrator.

OSA 3 in layer 2 mode does not offer the RX/TX checksum
offload feature.

Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Reviewed-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Reviewed-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core_main.c

index 49b813f8f91bff2b52be95b956651fbbeabd8bc0..ca8309ff3ad4e03146dded6ad9327da95bea5f52 100644 (file)
@@ -6116,6 +6116,11 @@ static int qeth_send_checksum_on(struct qeth_card *card, int cstype)
                if ((required_features & chksum_cb.supported) !=
                    required_features)
                        rc = -EIO;
+               else if (!(QETH_IPA_CHECKSUM_LP2LP & chksum_cb.supported) &&
+                        cstype == IPA_INBOUND_CHECKSUM)
+                       dev_warn(&card->gdev->dev,
+                                "Hardware checksumming is performed only if %s and its peer use different OSA Express 3 ports\n",
+                                QETH_CARD_IFNAME(card));
        }
        if (rc) {
                qeth_send_simple_setassparms(card, cstype, IPA_CMD_ASS_STOP, 0);