Commit 01fc3e86c6379cc4c78c529a1bad1b8179b726aa

Authored by Ursula Braun
Committed by David S. Miller
1 parent 0132951e81

qeth: handle missing z/VM authorization of OSX

For z/VM guest operating systems, OSX CHPIDs can only be used, if
LPAR and z/VM userID are explicitly authorized through the Service
Element. Issue a message if this SE-authorization is missing.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 2 changed files with 9 additions and 4 deletions Side-by-side Diff

drivers/s390/net/qeth_core_main.c
... ... @@ -512,6 +512,7 @@
512 512 case -EIO:
513 513 qeth_clear_ipacmd_list(card);
514 514 qeth_schedule_recovery(card);
  515 + /* fall through */
515 516 default:
516 517 goto out;
517 518 }
518 519  
519 520  
... ... @@ -1588,15 +1589,18 @@
1588 1589 "host\n");
1589 1590 break;
1590 1591 case QETH_IDX_ACT_ERR_AUTH:
  1592 + case QETH_IDX_ACT_ERR_AUTH_USER:
1591 1593 dev_err(&card->read.ccwdev->dev,
1592 1594 "Setting the device online failed because of "
1593   - "insufficient LPAR authorization\n");
  1595 + "insufficient authorization\n");
1594 1596 break;
1595 1597 default:
1596 1598 QETH_DBF_MESSAGE(2, "%s IDX_ACTIVATE on read channel:"
1597 1599 " negative reply\n",
1598 1600 dev_name(&card->read.ccwdev->dev));
1599 1601 }
  1602 + QETH_CARD_TEXT_(card, 2, "idxread%c",
  1603 + QETH_IDX_ACT_CAUSE_CODE(iob->data));
1600 1604 goto out;
1601 1605 }
1602 1606  
... ... @@ -1929,7 +1933,7 @@
1929 1933 card->info.link_type = link_type;
1930 1934 } else
1931 1935 card->info.link_type = 0;
1932   - QETH_DBF_TEXT_(SETUP, 2, "link%d", link_type);
  1936 + QETH_DBF_TEXT_(SETUP, 2, "link%d", card->info.link_type);
1933 1937 QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc);
1934 1938 return 0;
1935 1939 }
drivers/s390/net/qeth_core_mpc.h
... ... @@ -616,8 +616,9 @@
616 616 #define QETH_IS_IDX_ACT_POS_REPLY(buffer) (((buffer)[0x08] & 3) == 2)
617 617 #define QETH_IDX_REPLY_LEVEL(buffer) (buffer + 0x12)
618 618 #define QETH_IDX_ACT_CAUSE_CODE(buffer) (buffer)[0x09]
619   -#define QETH_IDX_ACT_ERR_EXCL 0x19
620   -#define QETH_IDX_ACT_ERR_AUTH 0x1E
  619 +#define QETH_IDX_ACT_ERR_EXCL 0x19
  620 +#define QETH_IDX_ACT_ERR_AUTH 0x1E
  621 +#define QETH_IDX_ACT_ERR_AUTH_USER 0x20
621 622  
622 623 #define PDU_ENCAPSULATION(buffer) \
623 624 (buffer + *(buffer + (*(buffer + 0x0b)) + \