X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Flapb%2Flapb_iface.c;h=7e6bc41eeb216df942fcaf4b0575a1d4e26a6d05;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=fe50f633b2a04d9a29d0b39480eac37c85f09a9c;hpb=9bf4aaab3e101692164d49b7ca357651eb691cb6;p=linux-2.6.git diff --git a/net/lapb/lapb_iface.c b/net/lapb/lapb_iface.c index fe50f633b..7e6bc41ee 100644 --- a/net/lapb/lapb_iface.c +++ b/net/lapb/lapb_iface.c @@ -40,7 +40,7 @@ #include static struct list_head lapb_list = LIST_HEAD_INIT(lapb_list); -static rwlock_t lapb_list_lock = RW_LOCK_UNLOCKED; +static DEFINE_RWLOCK(lapb_list_lock); /* * Free an allocated lapb control block. @@ -115,14 +115,12 @@ static struct lapb_cb *lapb_devtostruct(struct net_device *dev) */ static struct lapb_cb *lapb_create_cb(void) { - struct lapb_cb *lapb = kmalloc(sizeof(*lapb), GFP_ATOMIC); + struct lapb_cb *lapb = kzalloc(sizeof(*lapb), GFP_ATOMIC); if (!lapb) goto out; - memset(lapb, 0x00, sizeof(*lapb)); - skb_queue_head_init(&lapb->write_queue); skb_queue_head_init(&lapb->ack_queue); @@ -240,11 +238,13 @@ int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms) goto out_put; if (lapb->state == LAPB_STATE_0) { - if (((parms->mode & LAPB_EXTENDED) && - (parms->window < 1 || parms->window > 127)) || - (parms->window < 1 || parms->window > 7)) - goto out_put; - + if (parms->mode & LAPB_EXTENDED) { + if (parms->window < 1 || parms->window > 127) + goto out_put; + } else { + if (parms->window < 1 || parms->window > 7) + goto out_put; + } lapb->mode = parms->mode; lapb->window = parms->window; }