diff options
author | Ursula Braun <ursula.braun@de.ibm.com> | 2010-06-21 18:57:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-23 16:16:37 -0400 |
commit | 01fc3e86c6379cc4c78c529a1bad1b8179b726aa (patch) | |
tree | 13340032a709a2ee5033b913be400d588a59b7ed /drivers/s390/net | |
parent | 0132951e812ef7c4cf1e66e6187e7f894bb12a04 (diff) |
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>
Diffstat (limited to 'drivers/s390/net')
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 8 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_mpc.h | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index 926c0873db2f..b7019066c303 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c | |||
@@ -512,6 +512,7 @@ static void qeth_send_control_data_cb(struct qeth_channel *channel, | |||
512 | case -EIO: | 512 | case -EIO: |
513 | qeth_clear_ipacmd_list(card); | 513 | qeth_clear_ipacmd_list(card); |
514 | qeth_schedule_recovery(card); | 514 | qeth_schedule_recovery(card); |
515 | /* fall through */ | ||
515 | default: | 516 | default: |
516 | goto out; | 517 | goto out; |
517 | } | 518 | } |
@@ -1588,15 +1589,18 @@ static void qeth_idx_read_cb(struct qeth_channel *channel, | |||
1588 | "host\n"); | 1589 | "host\n"); |
1589 | break; | 1590 | break; |
1590 | case QETH_IDX_ACT_ERR_AUTH: | 1591 | case QETH_IDX_ACT_ERR_AUTH: |
1592 | case QETH_IDX_ACT_ERR_AUTH_USER: | ||
1591 | dev_err(&card->read.ccwdev->dev, | 1593 | dev_err(&card->read.ccwdev->dev, |
1592 | "Setting the device online failed because of " | 1594 | "Setting the device online failed because of " |
1593 | "insufficient LPAR authorization\n"); | 1595 | "insufficient authorization\n"); |
1594 | break; | 1596 | break; |
1595 | default: | 1597 | default: |
1596 | QETH_DBF_MESSAGE(2, "%s IDX_ACTIVATE on read channel:" | 1598 | QETH_DBF_MESSAGE(2, "%s IDX_ACTIVATE on read channel:" |
1597 | " negative reply\n", | 1599 | " negative reply\n", |
1598 | dev_name(&card->read.ccwdev->dev)); | 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 | goto out; | 1604 | goto out; |
1601 | } | 1605 | } |
1602 | 1606 | ||
@@ -1929,7 +1933,7 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply, | |||
1929 | card->info.link_type = link_type; | 1933 | card->info.link_type = link_type; |
1930 | } else | 1934 | } else |
1931 | card->info.link_type = 0; | 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 | QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); | 1937 | QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); |
1934 | return 0; | 1938 | return 0; |
1935 | } | 1939 | } |
diff --git a/drivers/s390/net/qeth_core_mpc.h b/drivers/s390/net/qeth_core_mpc.h index f9ed24de7514..e37dd8c4bf4e 100644 --- a/drivers/s390/net/qeth_core_mpc.h +++ b/drivers/s390/net/qeth_core_mpc.h | |||
@@ -616,8 +616,9 @@ extern unsigned char IDX_ACTIVATE_WRITE[]; | |||
616 | #define QETH_IS_IDX_ACT_POS_REPLY(buffer) (((buffer)[0x08] & 3) == 2) | 616 | #define QETH_IS_IDX_ACT_POS_REPLY(buffer) (((buffer)[0x08] & 3) == 2) |
617 | #define QETH_IDX_REPLY_LEVEL(buffer) (buffer + 0x12) | 617 | #define QETH_IDX_REPLY_LEVEL(buffer) (buffer + 0x12) |
618 | #define QETH_IDX_ACT_CAUSE_CODE(buffer) (buffer)[0x09] | 618 | #define QETH_IDX_ACT_CAUSE_CODE(buffer) (buffer)[0x09] |
619 | #define QETH_IDX_ACT_ERR_EXCL 0x19 | 619 | #define QETH_IDX_ACT_ERR_EXCL 0x19 |
620 | #define QETH_IDX_ACT_ERR_AUTH 0x1E | 620 | #define QETH_IDX_ACT_ERR_AUTH 0x1E |
621 | #define QETH_IDX_ACT_ERR_AUTH_USER 0x20 | ||
621 | 622 | ||
622 | #define PDU_ENCAPSULATION(buffer) \ | 623 | #define PDU_ENCAPSULATION(buffer) \ |
623 | (buffer + *(buffer + (*(buffer + 0x0b)) + \ | 624 | (buffer + *(buffer + (*(buffer + 0x0b)) + \ |