From 01fc3e86c6379cc4c78c529a1bad1b8179b726aa Mon Sep 17 00:00:00 2001 From: Ursula Braun Date: Mon, 21 Jun 2010 22:57:12 +0000 Subject: [PATCH] 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 Signed-off-by: Frank Blaschka Signed-off-by: David S. Miller --- drivers/s390/net/qeth_core_main.c | 8 ++++++-- 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, case -EIO: qeth_clear_ipacmd_list(card); qeth_schedule_recovery(card); + /* fall through */ default: goto out; } @@ -1588,15 +1589,18 @@ static void qeth_idx_read_cb(struct qeth_channel *channel, "host\n"); break; case QETH_IDX_ACT_ERR_AUTH: + case QETH_IDX_ACT_ERR_AUTH_USER: dev_err(&card->read.ccwdev->dev, "Setting the device online failed because of " - "insufficient LPAR authorization\n"); + "insufficient authorization\n"); break; default: QETH_DBF_MESSAGE(2, "%s IDX_ACTIVATE on read channel:" " negative reply\n", dev_name(&card->read.ccwdev->dev)); } + QETH_CARD_TEXT_(card, 2, "idxread%c", + QETH_IDX_ACT_CAUSE_CODE(iob->data)); goto out; } @@ -1929,7 +1933,7 @@ static int qeth_ulp_enable_cb(struct qeth_card *card, struct qeth_reply *reply, card->info.link_type = link_type; } else card->info.link_type = 0; - QETH_DBF_TEXT_(SETUP, 2, "link%d", link_type); + QETH_DBF_TEXT_(SETUP, 2, "link%d", card->info.link_type); QETH_DBF_TEXT_(SETUP, 2, " rc%d", iob->rc); return 0; } 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[]; #define QETH_IS_IDX_ACT_POS_REPLY(buffer) (((buffer)[0x08] & 3) == 2) #define QETH_IDX_REPLY_LEVEL(buffer) (buffer + 0x12) #define QETH_IDX_ACT_CAUSE_CODE(buffer) (buffer)[0x09] -#define QETH_IDX_ACT_ERR_EXCL 0x19 -#define QETH_IDX_ACT_ERR_AUTH 0x1E +#define QETH_IDX_ACT_ERR_EXCL 0x19 +#define QETH_IDX_ACT_ERR_AUTH 0x1E +#define QETH_IDX_ACT_ERR_AUTH_USER 0x20 #define PDU_ENCAPSULATION(buffer) \ (buffer + *(buffer + (*(buffer + 0x0b)) + \