|
@@ -516,7 +516,8 @@ __qeth_set_offline(struct ccwgroup_device *cgdev, int recovery_mode)
|
|
|
QETH_DBF_TEXT(setup, 3, "setoffl");
|
|
|
QETH_DBF_HEX(setup, 3, &card, sizeof(void *));
|
|
|
|
|
|
- netif_carrier_off(card->dev);
|
|
|
+ if (card->dev && netif_carrier_ok(card->dev))
|
|
|
+ netif_carrier_off(card->dev);
|
|
|
recover_flag = card->state;
|
|
|
if (qeth_stop_card(card, recovery_mode) == -ERESTARTSYS){
|
|
|
PRINT_WARN("Stopping card %s interrupted by user!\n",
|
|
@@ -1679,6 +1680,7 @@ qeth_cmd_timeout(unsigned long data)
|
|
|
spin_unlock_irqrestore(&reply->card->lock, flags);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
static struct qeth_ipa_cmd *
|
|
|
qeth_check_ipa_data(struct qeth_card *card, struct qeth_cmd_buffer *iob)
|
|
|
{
|
|
@@ -1699,7 +1701,8 @@ qeth_check_ipa_data(struct qeth_card *card, struct qeth_cmd_buffer *iob)
|
|
|
QETH_CARD_IFNAME(card),
|
|
|
card->info.chpid);
|
|
|
card->lan_online = 0;
|
|
|
- netif_carrier_off(card->dev);
|
|
|
+ if (card->dev && netif_carrier_ok(card->dev))
|
|
|
+ netif_carrier_off(card->dev);
|
|
|
return NULL;
|
|
|
case IPA_CMD_STARTLAN:
|
|
|
PRINT_INFO("Link reestablished on %s "
|
|
@@ -5562,7 +5565,7 @@ qeth_set_multicast_list(struct net_device *dev)
|
|
|
if (card->info.type == QETH_CARD_TYPE_OSN)
|
|
|
return ;
|
|
|
|
|
|
- QETH_DBF_TEXT(trace,3,"setmulti");
|
|
|
+ QETH_DBF_TEXT(trace, 3, "setmulti");
|
|
|
qeth_delete_mc_addresses(card);
|
|
|
if (card->options.layer2) {
|
|
|
qeth_layer2_add_multicast(card);
|
|
@@ -5579,7 +5582,6 @@ out:
|
|
|
return;
|
|
|
if (qeth_set_thread_start_bit(card, QETH_SET_PROMISC_MODE_THREAD)==0)
|
|
|
schedule_work(&card->kernel_thread_starter);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
static int
|
|
@@ -7452,6 +7454,7 @@ qeth_softsetup_card(struct qeth_card *card)
|
|
|
card->lan_online = 1;
|
|
|
if (card->info.type==QETH_CARD_TYPE_OSN)
|
|
|
goto out;
|
|
|
+ qeth_set_large_send(card, card->options.large_send);
|
|
|
if (card->options.layer2) {
|
|
|
card->dev->features |=
|
|
|
NETIF_F_HW_VLAN_FILTER |
|
|
@@ -7468,12 +7471,6 @@ qeth_softsetup_card(struct qeth_card *card)
|
|
|
#endif
|
|
|
goto out;
|
|
|
}
|
|
|
- if ((card->options.large_send == QETH_LARGE_SEND_EDDP) ||
|
|
|
- (card->options.large_send == QETH_LARGE_SEND_TSO))
|
|
|
- card->dev->features |= NETIF_F_TSO | NETIF_F_SG;
|
|
|
- else
|
|
|
- card->dev->features &= ~(NETIF_F_TSO | NETIF_F_SG);
|
|
|
-
|
|
|
if ((rc = qeth_setadapter_parms(card)))
|
|
|
QETH_DBF_TEXT_(setup, 2, "2err%d", rc);
|
|
|
if ((rc = qeth_start_ipassists(card)))
|