It seems the Linux kernel getting another ABI change for USB in 2.6.36. function


is being deprecated for a while and now being removed. It is changed with function 


. The parameter also changed.

Here’s the chunk of changes that would gives you idea of what changed:

<2.6.36 2.6.36+
ioctl   = usbdpfp_ioctl
.unlocked_ioctl   = usbdpfp_ioctl
usbdpfp_ioctl(struct inode *inode, struct file *file, unsigned int cmd, usbdpfp_ioctl(struct file *file, unsigned int cmd,
static int usbdpfp_ioctl( static long usbdpfp_ioctl(

That’s not all of the code, but you get the idea. The


is changed. Every


calling is having one less parameter. The return is no longer





According to Alex comment in my previous post, the UDEV rule also changing. Every USB device is default installed in /dev/usb directory. That’s why we have to make an adjustment in udev rule. As usual, I’m uploading the whole code here. As usual, remove the .pdf extension.