--- a/Embedded/src/GPIO/gpio.h
+++ b/Embedded/src/GPIO/gpio.h
@@ -121,8 +121,7 @@ int gpio_init(void);
 void gpio_close(void);
 int gpio_open(struct inode *inode, struct file *filp);
 int gpio_release(struct inode *inode, struct file *filp);
-int gpio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, 
-			   unsigned long arg);
+long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
 
 // private driver functions
 int gpio_getpininfo(int Signal, char *pBuff);
@@ -134,7 +133,7 @@ struct file_operations file_ops =
 	.owner	=	THIS_MODULE,
 	.open   =    gpio_open,
 	.release =   gpio_release,	
-	.ioctl	=	gpio_ioctl,
+	.unlocked_ioctl	= gpio_ioctl,
 };
 
 #endif
--- a/Embedded/src/GPIO/gpio_ref.c
+++ b/Embedded/src/GPIO/gpio_ref.c
@@ -251,8 +251,7 @@ int gpio_release(struct inode *inode, st
       0 => success
     < 0 => error
 ******************************************************************************/
-int gpio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
-                unsigned long arg)
+long gpio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 {
     gpio_ioctl_t Info;
     u_int bitstr = 0;
