diff options
Diffstat (limited to 'drivers/s390/net/qeth_core_main.c')
| -rw-r--r-- | drivers/s390/net/qeth_core_main.c | 24 | 
1 files changed, 22 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index 3e25d315045..4d6ba00d004 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c @@ -2942,13 +2942,33 @@ static int qeth_query_ipassists_cb(struct qeth_card *card,  	QETH_DBF_TEXT(SETUP, 2, "qipasscb");  	cmd = (struct qeth_ipa_cmd *) data; + +	switch (cmd->hdr.return_code) { +	case IPA_RC_NOTSUPP: +	case IPA_RC_L2_UNSUPPORTED_CMD: +		QETH_DBF_TEXT(SETUP, 2, "ipaunsup"); +		card->options.ipa4.supported_funcs |= IPA_SETADAPTERPARMS; +		card->options.ipa6.supported_funcs |= IPA_SETADAPTERPARMS; +		return -0; +	default: +		if (cmd->hdr.return_code) { +			QETH_DBF_MESSAGE(1, "%s IPA_CMD_QIPASSIST: Unhandled " +						"rc=%d\n", +						dev_name(&card->gdev->dev), +						cmd->hdr.return_code); +			return 0; +		} +	} +  	if (cmd->hdr.prot_version == QETH_PROT_IPV4) {  		card->options.ipa4.supported_funcs = cmd->hdr.ipa_supported;  		card->options.ipa4.enabled_funcs = cmd->hdr.ipa_enabled; -	} else { +	} else if (cmd->hdr.prot_version == QETH_PROT_IPV6) {  		card->options.ipa6.supported_funcs = cmd->hdr.ipa_supported;  		card->options.ipa6.enabled_funcs = cmd->hdr.ipa_enabled; -	} +	} else +		QETH_DBF_MESSAGE(1, "%s IPA_CMD_QIPASSIST: Flawed LIC detected" +					"\n", dev_name(&card->gdev->dev));  	QETH_DBF_TEXT(SETUP, 2, "suppenbl");  	QETH_DBF_TEXT_(SETUP, 2, "%08x", (__u32)cmd->hdr.ipa_supported);  	QETH_DBF_TEXT_(SETUP, 2, "%08x", (__u32)cmd->hdr.ipa_enabled);  |