Merge branch 'e1000-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[pandora-kernel.git] / net / atm / ioctl.c
index eb109af..7afd8e7 100644 (file)
@@ -4,7 +4,6 @@
 /* 2003 John Levon  <levon@movementarian.org> */
 
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/kmod.h>
 #include <linux/net.h>         /* struct socket, struct proto_ops */
@@ -18,6 +17,7 @@
 #include <linux/atmmpc.h>
 #include <net/atmclip.h>
 #include <linux/atmlec.h>
+#include <linux/mutex.h>
 #include <asm/ioctls.h>
 
 #include "resources.h"
 #include "common.h"
 
 
-static DECLARE_MUTEX(ioctl_mutex);
+static DEFINE_MUTEX(ioctl_mutex);
 static LIST_HEAD(ioctl_list);
 
 
 void register_atm_ioctl(struct atm_ioctl *ioctl)
 {
-       down(&ioctl_mutex);
+       mutex_lock(&ioctl_mutex);
        list_add_tail(&ioctl->list, &ioctl_list);
-       up(&ioctl_mutex);
+       mutex_unlock(&ioctl_mutex);
 }
 
 void deregister_atm_ioctl(struct atm_ioctl *ioctl)
 {
-       down(&ioctl_mutex);
+       mutex_lock(&ioctl_mutex);
        list_del(&ioctl->list);
-       up(&ioctl_mutex);
+       mutex_unlock(&ioctl_mutex);
 }
 
 EXPORT_SYMBOL(register_atm_ioctl);
@@ -76,12 +76,15 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                                }
                                skb = skb_peek(&sk->sk_receive_queue);
                                error = put_user(skb ? skb->len : 0,
-                                                (int __user *)argp) ? -EFAULT : 0;
+                                                (int __user *)argp) ? -EFAULT : 0;
                                goto done;
                        }
                case SIOCGSTAMP: /* borrowed from IP */
                        error = sock_get_timestamp(sk, argp);
                        goto done;
+               case SIOCGSTAMPNS: /* borrowed from IP */
+                       error = sock_get_timestampns(sk, argp);
+                       goto done;
                case ATM_SETSC:
                        printk(KERN_WARNING "ATM_SETSC is obsolete\n");
                        error = 0;
@@ -137,7 +140,7 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 
        error = -ENOIOCTLCMD;
 
-       down(&ioctl_mutex);
+       mutex_lock(&ioctl_mutex);
        list_for_each(pos, &ioctl_list) {
                struct atm_ioctl * ic = list_entry(pos, struct atm_ioctl, list);
                if (try_module_get(ic->owner)) {
@@ -147,7 +150,7 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                                break;
                }
        }
-       up(&ioctl_mutex);
+       mutex_unlock(&ioctl_mutex);
 
        if (error != -ENOIOCTLCMD)
                goto done;