diff options
Diffstat (limited to 'drivers/s390/net/lcs.c')
| -rw-r--r-- | drivers/s390/net/lcs.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c index 0f76e945b984..cccfed248e70 100644 --- a/drivers/s390/net/lcs.c +++ b/drivers/s390/net/lcs.c | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | * Frank Pavlic (pavlic@de.ibm.com) and | 11 | * Frank Pavlic (pavlic@de.ibm.com) and |
| 12 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 12 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
| 13 | * | 13 | * |
| 14 | * $Revision: 1.96 $ $Date: 2004/11/11 13:42:33 $ | 14 | * $Revision: 1.98 $ $Date: 2005/04/18 13:41:29 $ |
| 15 | * | 15 | * |
| 16 | * This program is free software; you can redistribute it and/or modify | 16 | * This program is free software; you can redistribute it and/or modify |
| 17 | * it under the terms of the GNU General Public License as published by | 17 | * it under the terms of the GNU General Public License as published by |
| @@ -59,7 +59,7 @@ | |||
| 59 | /** | 59 | /** |
| 60 | * initialization string for output | 60 | * initialization string for output |
| 61 | */ | 61 | */ |
| 62 | #define VERSION_LCS_C "$Revision: 1.96 $" | 62 | #define VERSION_LCS_C "$Revision: 1.98 $" |
| 63 | 63 | ||
| 64 | static char version[] __initdata = "LCS driver ("VERSION_LCS_C "/" VERSION_LCS_H ")"; | 64 | static char version[] __initdata = "LCS driver ("VERSION_LCS_C "/" VERSION_LCS_H ")"; |
| 65 | static char debug_buffer[255]; | 65 | static char debug_buffer[255]; |
| @@ -1098,14 +1098,6 @@ lcs_check_multicast_support(struct lcs_card *card) | |||
| 1098 | PRINT_ERR("Query IPAssist failed. Assuming unsupported!\n"); | 1098 | PRINT_ERR("Query IPAssist failed. Assuming unsupported!\n"); |
| 1099 | return -EOPNOTSUPP; | 1099 | return -EOPNOTSUPP; |
| 1100 | } | 1100 | } |
| 1101 | /* Print out supported assists: IPv6 */ | ||
| 1102 | PRINT_INFO("LCS device %s %s IPv6 support\n", card->dev->name, | ||
| 1103 | (card->ip_assists_supported & LCS_IPASS_IPV6_SUPPORT) ? | ||
| 1104 | "with" : "without"); | ||
| 1105 | /* Print out supported assist: Multicast */ | ||
| 1106 | PRINT_INFO("LCS device %s %s Multicast support\n", card->dev->name, | ||
| 1107 | (card->ip_assists_supported & LCS_IPASS_MULTICAST_SUPPORT) ? | ||
| 1108 | "with" : "without"); | ||
| 1109 | if (card->ip_assists_supported & LCS_IPASS_MULTICAST_SUPPORT) | 1101 | if (card->ip_assists_supported & LCS_IPASS_MULTICAST_SUPPORT) |
| 1110 | return 0; | 1102 | return 0; |
| 1111 | return -EOPNOTSUPP; | 1103 | return -EOPNOTSUPP; |
| @@ -1160,7 +1152,7 @@ list_modified: | |||
| 1160 | } | 1152 | } |
| 1161 | } | 1153 | } |
| 1162 | /* re-insert all entries from the failed_list into ipm_list */ | 1154 | /* re-insert all entries from the failed_list into ipm_list */ |
| 1163 | list_for_each_entry(ipm, &failed_list, list) { | 1155 | list_for_each_entry_safe(ipm, tmp, &failed_list, list) { |
| 1164 | list_del_init(&ipm->list); | 1156 | list_del_init(&ipm->list); |
| 1165 | list_add_tail(&ipm->list, &card->ipm_list); | 1157 | list_add_tail(&ipm->list, &card->ipm_list); |
| 1166 | } | 1158 | } |
| @@ -2198,30 +2190,39 @@ lcs_new_device(struct ccwgroup_device *ccwgdev) | |||
| 2198 | if (!dev) | 2190 | if (!dev) |
| 2199 | goto out; | 2191 | goto out; |
| 2200 | card->dev = dev; | 2192 | card->dev = dev; |
| 2201 | netdev_out: | ||
| 2202 | card->dev->priv = card; | 2193 | card->dev->priv = card; |
| 2203 | card->dev->open = lcs_open_device; | 2194 | card->dev->open = lcs_open_device; |
| 2204 | card->dev->stop = lcs_stop_device; | 2195 | card->dev->stop = lcs_stop_device; |
| 2205 | card->dev->hard_start_xmit = lcs_start_xmit; | 2196 | card->dev->hard_start_xmit = lcs_start_xmit; |
| 2206 | card->dev->get_stats = lcs_getstats; | 2197 | card->dev->get_stats = lcs_getstats; |
| 2207 | SET_MODULE_OWNER(dev); | 2198 | SET_MODULE_OWNER(dev); |
| 2208 | if (lcs_register_netdev(ccwgdev) != 0) | ||
| 2209 | goto out; | ||
| 2210 | memcpy(card->dev->dev_addr, card->mac, LCS_MAC_LENGTH); | 2199 | memcpy(card->dev->dev_addr, card->mac, LCS_MAC_LENGTH); |
| 2211 | #ifdef CONFIG_IP_MULTICAST | 2200 | #ifdef CONFIG_IP_MULTICAST |
| 2212 | if (!lcs_check_multicast_support(card)) | 2201 | if (!lcs_check_multicast_support(card)) |
| 2213 | card->dev->set_multicast_list = lcs_set_multicast_list; | 2202 | card->dev->set_multicast_list = lcs_set_multicast_list; |
| 2214 | #endif | 2203 | #endif |
| 2215 | netif_stop_queue(card->dev); | 2204 | netdev_out: |
| 2216 | lcs_set_allowed_threads(card,0xffffffff); | 2205 | lcs_set_allowed_threads(card,0xffffffff); |
| 2217 | if (recover_state == DEV_STATE_RECOVER) { | 2206 | if (recover_state == DEV_STATE_RECOVER) { |
| 2218 | lcs_set_multicast_list(card->dev); | 2207 | lcs_set_multicast_list(card->dev); |
| 2219 | card->dev->flags |= IFF_UP; | 2208 | card->dev->flags |= IFF_UP; |
| 2220 | netif_wake_queue(card->dev); | 2209 | netif_wake_queue(card->dev); |
| 2221 | card->state = DEV_STATE_UP; | 2210 | card->state = DEV_STATE_UP; |
| 2222 | } else | 2211 | } else { |
| 2223 | lcs_stopcard(card); | 2212 | lcs_stopcard(card); |
| 2213 | } | ||
| 2224 | 2214 | ||
| 2215 | if (lcs_register_netdev(ccwgdev) != 0) | ||
| 2216 | goto out; | ||
| 2217 | |||
| 2218 | /* Print out supported assists: IPv6 */ | ||
| 2219 | PRINT_INFO("LCS device %s %s IPv6 support\n", card->dev->name, | ||
| 2220 | (card->ip_assists_supported & LCS_IPASS_IPV6_SUPPORT) ? | ||
| 2221 | "with" : "without"); | ||
| 2222 | /* Print out supported assist: Multicast */ | ||
| 2223 | PRINT_INFO("LCS device %s %s Multicast support\n", card->dev->name, | ||
| 2224 | (card->ip_assists_supported & LCS_IPASS_MULTICAST_SUPPORT) ? | ||
| 2225 | "with" : "without"); | ||
| 2225 | return 0; | 2226 | return 0; |
| 2226 | out: | 2227 | out: |
| 2227 | 2228 | ||
