diff options
Diffstat (limited to 'drivers/s390/net/qeth_l2_main.c')
| -rw-r--r-- | drivers/s390/net/qeth_l2_main.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c index e67e0258aec..fddb62654b6 100644 --- a/drivers/s390/net/qeth_l2_main.c +++ b/drivers/s390/net/qeth_l2_main.c @@ -626,10 +626,13 @@ static int qeth_l2_request_initial_mac(struct qeth_card *card)  	QETH_DBF_TEXT(SETUP, 2, "doL2init");  	QETH_DBF_TEXT_(SETUP, 2, "doL2%s", CARD_BUS_ID(card)); -	rc = qeth_query_setadapterparms(card); -	if (rc) { -		QETH_DBF_MESSAGE(2, "could not query adapter parameters on " -			"device %s: x%x\n", CARD_BUS_ID(card), rc); +	if (qeth_is_supported(card, IPA_SETADAPTERPARMS)) { +		rc = qeth_query_setadapterparms(card); +		if (rc) { +			QETH_DBF_MESSAGE(2, "could not query adapter " +				"parameters on device %s: x%x\n", +				CARD_BUS_ID(card), rc); +		}  	}  	if (card->info.type == QETH_CARD_TYPE_IQD || @@ -676,7 +679,7 @@ static int qeth_l2_set_mac_address(struct net_device *dev, void *p)  		return -ERESTARTSYS;  	}  	rc = qeth_l2_send_delmac(card, &card->dev->dev_addr[0]); -	if (!rc) +	if (!rc || (rc == IPA_RC_L2_MAC_NOT_FOUND))  		rc = qeth_l2_send_setmac(card, addr->sa_data);  	return rc ? -EINVAL : 0;  }  |