fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / net / atm / pppoatm.c
index e430c24..19d5dfc 100644 (file)
  */
 
 #include <linux/module.h>
-#include <linux/config.h>
 #include <linux/init.h>
 #include <linux/skbuff.h>
 #include <linux/atm.h>
 #include <linux/atmdev.h>
+#include <linux/capability.h>
 #include <linux/ppp_defs.h>
 #include <linux/if_ppp.h>
 #include <linux/ppp_channel.h>
@@ -233,7 +233,8 @@ static int pppoatm_send(struct ppp_channel *chan, struct sk_buff *skb)
                kfree_skb(skb);
                return 1;
        }
-       atomic_add(skb->truesize, &ATM_SKB(skb)->vcc->sk->sk_wmem_alloc);
+
+       atomic_add(skb->truesize, &sk_atm(ATM_SKB(skb)->vcc)->sk_wmem_alloc);
        ATM_SKB(skb)->atm_options = ATM_SKB(skb)->vcc->atm_options;
        DPRINTK("(unit %d): atm_skb(%p)->vcc(%p)->dev(%p)\n",
            pvcc->chan.unit, skb, ATM_SKB(skb)->vcc,
@@ -286,10 +287,9 @@ static int pppoatm_assign_vcc(struct atm_vcc *atmvcc, void __user *arg)
        if (be.encaps != PPPOATM_ENCAPS_AUTODETECT &&
            be.encaps != PPPOATM_ENCAPS_VC && be.encaps != PPPOATM_ENCAPS_LLC)
                return -EINVAL;
-       pvcc = kmalloc(sizeof(*pvcc), GFP_KERNEL);
+       pvcc = kzalloc(sizeof(*pvcc), GFP_KERNEL);
        if (pvcc == NULL)
                return -ENOMEM;
-       memset(pvcc, 0, sizeof(*pvcc));
        pvcc->atmvcc = atmvcc;
        pvcc->old_push = atmvcc->push;
        pvcc->old_pop = atmvcc->pop;
@@ -307,7 +307,7 @@ static int pppoatm_assign_vcc(struct atm_vcc *atmvcc, void __user *arg)
        atmvcc->user_back = pvcc;
        atmvcc->push = pppoatm_push;
        atmvcc->pop = pppoatm_pop;
-       (void) try_module_get(THIS_MODULE);
+       __module_get(THIS_MODULE);
        return 0;
 }
 
@@ -344,7 +344,7 @@ static int pppoatm_ioctl(struct socket *sock, unsigned int cmd,
        return -ENOIOCTLCMD;
 }
 
-struct atm_ioctl pppoatm_ioctl_ops = {
+static struct atm_ioctl pppoatm_ioctl_ops = {
        .owner  = THIS_MODULE,
        .ioctl  = pppoatm_ioctl,
 };