aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/qeth_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/net/qeth_main.c')
-rw-r--r--drivers/s390/net/qeth_main.c30
1 files changed, 9 insertions, 21 deletions
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c
index 97f927c01a82..dba7f7f02e79 100644
--- a/drivers/s390/net/qeth_main.c
+++ b/drivers/s390/net/qeth_main.c
@@ -1,6 +1,5 @@
1/* 1/*
2 * 2 * linux/drivers/s390/net/qeth_main.c
3 * linux/drivers/s390/net/qeth_main.c ($Revision: 1.251 $)
4 * 3 *
5 * Linux on zSeries OSA Express and HiperSockets support 4 * Linux on zSeries OSA Express and HiperSockets support
6 * 5 *
@@ -12,8 +11,6 @@
12 * Frank Pavlic (fpavlic@de.ibm.com) and 11 * Frank Pavlic (fpavlic@de.ibm.com) and
13 * Thomas Spatzier <tspat@de.ibm.com> 12 * Thomas Spatzier <tspat@de.ibm.com>
14 * 13 *
15 * $Revision: 1.251 $ $Date: 2005/05/04 20:19:18 $
16 *
17 * This program is free software; you can redistribute it and/or modify 14 * This program is free software; you can redistribute it and/or modify
18 * it under the terms of the GNU General Public License as published by 15 * it under the terms of the GNU General Public License as published by
19 * the Free Software Foundation; either version 2, or (at your option) 16 * the Free Software Foundation; either version 2, or (at your option)
@@ -73,7 +70,6 @@
73#include "qeth_eddp.h" 70#include "qeth_eddp.h"
74#include "qeth_tso.h" 71#include "qeth_tso.h"
75 72
76#define VERSION_QETH_C "$Revision: 1.251 $"
77static const char *version = "qeth S/390 OSA-Express driver"; 73static const char *version = "qeth S/390 OSA-Express driver";
78 74
79/** 75/**
@@ -520,7 +516,8 @@ __qeth_set_offline(struct ccwgroup_device *cgdev, int recovery_mode)
520 QETH_DBF_TEXT(setup, 3, "setoffl"); 516 QETH_DBF_TEXT(setup, 3, "setoffl");
521 QETH_DBF_HEX(setup, 3, &card, sizeof(void *)); 517 QETH_DBF_HEX(setup, 3, &card, sizeof(void *));
522 518
523 netif_carrier_off(card->dev); 519 if (card->dev && netif_carrier_ok(card->dev))
520 netif_carrier_off(card->dev);
524 recover_flag = card->state; 521 recover_flag = card->state;
525 if (qeth_stop_card(card, recovery_mode) == -ERESTARTSYS){ 522 if (qeth_stop_card(card, recovery_mode) == -ERESTARTSYS){
526 PRINT_WARN("Stopping card %s interrupted by user!\n", 523 PRINT_WARN("Stopping card %s interrupted by user!\n",
@@ -1683,6 +1680,7 @@ qeth_cmd_timeout(unsigned long data)
1683 spin_unlock_irqrestore(&reply->card->lock, flags); 1680 spin_unlock_irqrestore(&reply->card->lock, flags);
1684} 1681}
1685 1682
1683
1686static struct qeth_ipa_cmd * 1684static struct qeth_ipa_cmd *
1687qeth_check_ipa_data(struct qeth_card *card, struct qeth_cmd_buffer *iob) 1685qeth_check_ipa_data(struct qeth_card *card, struct qeth_cmd_buffer *iob)
1688{ 1686{
@@ -1703,7 +1701,8 @@ qeth_check_ipa_data(struct qeth_card *card, struct qeth_cmd_buffer *iob)
1703 QETH_CARD_IFNAME(card), 1701 QETH_CARD_IFNAME(card),
1704 card->info.chpid); 1702 card->info.chpid);
1705 card->lan_online = 0; 1703 card->lan_online = 0;
1706 netif_carrier_off(card->dev); 1704 if (card->dev && netif_carrier_ok(card->dev))
1705 netif_carrier_off(card->dev);
1707 return NULL; 1706 return NULL;
1708 case IPA_CMD_STARTLAN: 1707 case IPA_CMD_STARTLAN:
1709 PRINT_INFO("Link reestablished on %s " 1708 PRINT_INFO("Link reestablished on %s "
@@ -5566,7 +5565,7 @@ qeth_set_multicast_list(struct net_device *dev)
5566 if (card->info.type == QETH_CARD_TYPE_OSN) 5565 if (card->info.type == QETH_CARD_TYPE_OSN)
5567 return ; 5566 return ;
5568 5567
5569 QETH_DBF_TEXT(trace,3,"setmulti"); 5568 QETH_DBF_TEXT(trace, 3, "setmulti");
5570 qeth_delete_mc_addresses(card); 5569 qeth_delete_mc_addresses(card);
5571 if (card->options.layer2) { 5570 if (card->options.layer2) {
5572 qeth_layer2_add_multicast(card); 5571 qeth_layer2_add_multicast(card);
@@ -5583,7 +5582,6 @@ out:
5583 return; 5582 return;
5584 if (qeth_set_thread_start_bit(card, QETH_SET_PROMISC_MODE_THREAD)==0) 5583 if (qeth_set_thread_start_bit(card, QETH_SET_PROMISC_MODE_THREAD)==0)
5585 schedule_work(&card->kernel_thread_starter); 5584 schedule_work(&card->kernel_thread_starter);
5586
5587} 5585}
5588 5586
5589static int 5587static int
@@ -7456,6 +7454,7 @@ qeth_softsetup_card(struct qeth_card *card)
7456 card->lan_online = 1; 7454 card->lan_online = 1;
7457 if (card->info.type==QETH_CARD_TYPE_OSN) 7455 if (card->info.type==QETH_CARD_TYPE_OSN)
7458 goto out; 7456 goto out;
7457 qeth_set_large_send(card, card->options.large_send);
7459 if (card->options.layer2) { 7458 if (card->options.layer2) {
7460 card->dev->features |= 7459 card->dev->features |=
7461 NETIF_F_HW_VLAN_FILTER | 7460 NETIF_F_HW_VLAN_FILTER |
@@ -7472,12 +7471,6 @@ qeth_softsetup_card(struct qeth_card *card)
7472#endif 7471#endif
7473 goto out; 7472 goto out;
7474 } 7473 }
7475 if ((card->options.large_send == QETH_LARGE_SEND_EDDP) ||
7476 (card->options.large_send == QETH_LARGE_SEND_TSO))
7477 card->dev->features |= NETIF_F_TSO | NETIF_F_SG;
7478 else
7479 card->dev->features &= ~(NETIF_F_TSO | NETIF_F_SG);
7480
7481 if ((rc = qeth_setadapter_parms(card))) 7474 if ((rc = qeth_setadapter_parms(card)))
7482 QETH_DBF_TEXT_(setup, 2, "2err%d", rc); 7475 QETH_DBF_TEXT_(setup, 2, "2err%d", rc);
7483 if ((rc = qeth_start_ipassists(card))) 7476 if ((rc = qeth_start_ipassists(card)))
@@ -8626,12 +8619,7 @@ qeth_init(void)
8626{ 8619{
8627 int rc=0; 8620 int rc=0;
8628 8621
8629 PRINT_INFO("loading %s (%s/%s/%s/%s/%s/%s/%s %s %s)\n", 8622 PRINT_INFO("loading %s\n", version);
8630 version, VERSION_QETH_C, VERSION_QETH_H,
8631 VERSION_QETH_MPC_H, VERSION_QETH_MPC_C,
8632 VERSION_QETH_FS_H, VERSION_QETH_PROC_C,
8633 VERSION_QETH_SYS_C, QETH_VERSION_IPV6,
8634 QETH_VERSION_VLAN);
8635 8623
8636 INIT_LIST_HEAD(&qeth_card_list.list); 8624 INIT_LIST_HEAD(&qeth_card_list.list);
8637 INIT_LIST_HEAD(&qeth_notify_list); 8625 INIT_LIST_HEAD(&qeth_notify_list);