|
@@ -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);
|