+static int myatmdd_open(struct atm_vcc *vcc);
+static void myatmdd_close(struct atm_vcc *vcc);
+static int myatmdd_ioctl(struct atm_dev *dev, unsigned int cmd,void *arg);
-+static int myatmdd_setsockopt(struct atm_vcc *vcc,int level,int optname, void *optval,int optlen);
-+static int myatmdd_getsockopt(struct atm_vcc *vcc,int level,int optname, void *optval,int optlen);
++static int myatmdd_setsockopt(struct atm_vcc *vcc,int level,int optname, void __user *optval,unsigned int optlen);
++static int myatmdd_getsockopt(struct atm_vcc *vcc,int level,int optname, void __user *optval,int optlen);
+static int myatmdd_send(struct atm_vcc *vcc,struct sk_buff *skb);
+static int myatmdd_change_qos(struct atm_vcc *vcc,struct atm_qos *qos,int flgs);
+static int myatmdd_proc_read(struct atm_dev *dev,loff_t *pos,char *page);
+ return -EINVAL;
+}
+
-+static int myatmdd_getsockopt(struct atm_vcc *vcc,int level,int optname, void *optval,int optlen)
++static int myatmdd_getsockopt(struct atm_vcc *vcc,int level,int optname, void __user *optval,int optlen)
+{
+ return -EINVAL;
+}
+
-+static int myatmdd_setsockopt(struct atm_vcc *vcc,int level,int optname, void *optval,int optlen)
++static int myatmdd_setsockopt(struct atm_vcc *vcc,int level,int optname, void __user *optval,unsigned int optlen)
+{
+ return -EINVAL;
+}
+ return -ENOMEM;
+
+ /* Register the new device */
-+ myatmdd_dev = atm_dev_register(MYATMDD,&myatmdd_ops,-1,NULL);
++ myatmdd_dev = atm_dev_register(MYATMDD,NULL,&myatmdd_ops,-1,NULL);
+
+ /* Were we able to register this device? */
+ if (myatmdd_dev == NULL)