s390/qeth: fine-tune MAC Address-related errnos
authorJulian Wiedmann <jwi@linux.ibm.com>
Wed, 25 Mar 2020 09:35:05 +0000 (10:35 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 25 Mar 2020 19:07:15 +0000 (12:07 -0700)
Return the correct errnos when .ndo_set_mac_address fails to set a new
MAC address.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_l2_main.c

index 249b00d..766ea0d 100644 (file)
@@ -52,11 +52,11 @@ static int qeth_l2_setdelmac_makerc(struct qeth_card *card, u16 retcode)
                break;
        case IPA_RC_L2_DUP_MAC:
        case IPA_RC_L2_DUP_LAYER3_MAC:
-               rc = -EEXIST;
+               rc = -EADDRINUSE;
                break;
        case IPA_RC_L2_MAC_NOT_AUTH_BY_HYP:
        case IPA_RC_L2_MAC_NOT_AUTH_BY_ADP:
-               rc = -EPERM;
+               rc = -EADDRNOTAVAIL;
                break;
        case IPA_RC_L2_MAC_NOT_FOUND:
                rc = -ENOENT;
@@ -105,11 +105,11 @@ static int qeth_l2_send_setmac(struct qeth_card *card, __u8 *mac)
                         "MAC address %pM successfully registered\n", mac);
        } else {
                switch (rc) {
-               case -EEXIST:
+               case -EADDRINUSE:
                        dev_warn(&card->gdev->dev,
                                "MAC address %pM already exists\n", mac);
                        break;
-               case -EPERM:
+               case -EADDRNOTAVAIL:
                        dev_warn(&card->gdev->dev,
                                "MAC address %pM is not authorized\n", mac);
                        break;
@@ -126,7 +126,7 @@ static int qeth_l2_write_mac(struct qeth_card *card, u8 *mac)
 
        QETH_CARD_TEXT(card, 2, "L2Wmac");
        rc = qeth_l2_send_setdelmac(card, mac, cmd);
-       if (rc == -EEXIST)
+       if (rc == -EADDRINUSE)
                QETH_DBF_MESSAGE(2, "MAC already registered on device %x\n",
                                 CARD_DEVID(card));
        else if (rc)