aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/ipwireless/network.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/ipwireless/network.c')
-rw-r--r--drivers/tty/ipwireless/network.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/tty/ipwireless/network.c b/drivers/tty/ipwireless/network.c
index c0dfb642383..f7daeea598e 100644
--- a/drivers/tty/ipwireless/network.c
+++ b/drivers/tty/ipwireless/network.c
@@ -22,7 +22,7 @@
22#include <linux/ppp_channel.h> 22#include <linux/ppp_channel.h>
23#include <linux/ppp_defs.h> 23#include <linux/ppp_defs.h>
24#include <linux/slab.h> 24#include <linux/slab.h>
25#include <linux/ppp-ioctl.h> 25#include <linux/if_ppp.h>
26#include <linux/skbuff.h> 26#include <linux/skbuff.h>
27 27
28#include "network.h" 28#include "network.h"
@@ -274,12 +274,7 @@ static void do_go_online(struct work_struct *work_go_online)
274 network->xaccm[0] = ~0U; 274 network->xaccm[0] = ~0U;
275 network->xaccm[3] = 0x60000000U; 275 network->xaccm[3] = 0x60000000U;
276 network->raccm = ~0U; 276 network->raccm = ~0U;
277 if (ppp_register_channel(channel) < 0) { 277 ppp_register_channel(channel);
278 printk(KERN_ERR IPWIRELESS_PCCARD_NAME
279 ": unable to register PPP channel\n");
280 kfree(channel);
281 return;
282 }
283 spin_lock_irqsave(&network->lock, flags); 278 spin_lock_irqsave(&network->lock, flags);
284 network->ppp_channel = channel; 279 network->ppp_channel = channel;
285 } 280 }
@@ -352,8 +347,6 @@ static struct sk_buff *ipw_packet_received_skb(unsigned char *data,
352 } 347 }
353 348
354 skb = dev_alloc_skb(length + 4); 349 skb = dev_alloc_skb(length + 4);
355 if (skb == NULL)
356 return NULL;
357 skb_reserve(skb, 2); 350 skb_reserve(skb, 2);
358 memcpy(skb_put(skb, length), data, length); 351 memcpy(skb_put(skb, length), data, length);
359 352
@@ -399,8 +392,7 @@ void ipwireless_network_packet_received(struct ipw_network *network,
399 392
400 /* Send the data to the ppp_generic module. */ 393 /* Send the data to the ppp_generic module. */
401 skb = ipw_packet_received_skb(data, length); 394 skb = ipw_packet_received_skb(data, length);
402 if (skb) 395 ppp_input(network->ppp_channel, skb);
403 ppp_input(network->ppp_channel, skb);
404 } else 396 } else
405 spin_unlock_irqrestore(&network->lock, 397 spin_unlock_irqrestore(&network->lock,
406 flags); 398 flags);
@@ -438,8 +430,8 @@ void ipwireless_network_free(struct ipw_network *network)
438 network->shutting_down = 1; 430 network->shutting_down = 1;
439 431
440 ipwireless_ppp_close(network); 432 ipwireless_ppp_close(network);
441 flush_work(&network->work_go_online); 433 flush_work_sync(&network->work_go_online);
442 flush_work(&network->work_go_offline); 434 flush_work_sync(&network->work_go_offline);
443 435
444 ipwireless_stop_interrupts(network->hardware); 436 ipwireless_stop_interrupts(network->hardware);
445 ipwireless_associate_network(network->hardware, NULL); 437 ipwireless_associate_network(network->hardware, NULL);