|
@@ -498,7 +498,6 @@ norbuff:
|
|
|
static int x25_asy_close(struct net_device *dev)
|
|
|
{
|
|
|
struct x25_asy *sl = netdev_priv(dev);
|
|
|
- int err;
|
|
|
|
|
|
spin_lock(&sl->lock);
|
|
|
if (sl->tty)
|
|
@@ -507,10 +506,6 @@ static int x25_asy_close(struct net_device *dev)
|
|
|
netif_stop_queue(dev);
|
|
|
sl->rcount = 0;
|
|
|
sl->xleft = 0;
|
|
|
- err = lapb_unregister(dev);
|
|
|
- if (err != LAPB_OK)
|
|
|
- printk(KERN_ERR "x25_asy_close: lapb_unregister error -%d\n",
|
|
|
- err);
|
|
|
spin_unlock(&sl->lock);
|
|
|
return 0;
|
|
|
}
|
|
@@ -595,6 +590,7 @@ static int x25_asy_open_tty(struct tty_struct *tty)
|
|
|
static void x25_asy_close_tty(struct tty_struct *tty)
|
|
|
{
|
|
|
struct x25_asy *sl = tty->disc_data;
|
|
|
+ int err;
|
|
|
|
|
|
/* First make sure we're connected. */
|
|
|
if (!sl || sl->magic != X25_ASY_MAGIC)
|
|
@@ -605,6 +601,11 @@ static void x25_asy_close_tty(struct tty_struct *tty)
|
|
|
dev_close(sl->dev);
|
|
|
rtnl_unlock();
|
|
|
|
|
|
+ err = lapb_unregister(sl->dev);
|
|
|
+ if (err != LAPB_OK)
|
|
|
+ printk(KERN_ERR "x25_asy_close: lapb_unregister error -%d\n",
|
|
|
+ err);
|
|
|
+
|
|
|
tty->disc_data = NULL;
|
|
|
sl->tty = NULL;
|
|
|
x25_asy_free(sl);
|