Issue with ioctl commands - Linux version 2.6.35.7+

Chetan Nanda chetannanda at gmail.com
Tue Dec 27 22:34:12 EST 2011


On Tue, Dec 27, 2011 at 11:25 PM, Dave Hylands <dhylands at gmail.com> wrote:

> Hi Chetan,
>
> On Tue, Dec 27, 2011 at 3:39 AM, Chetan Nanda <chetannanda at gmail.com>
> wrote:
> > Hi All,
> >
> > I am facing a strange issue with the ioctl commands, and not able to find
> > what wrong I am doing.
> > I am trying with a dummy kernel driver and implemented ioctl command as
> > follow:
> >
> > in my_ioctl.h
> > #define READHWREG_MAGIC_NUMBER 0x15
> > #define READHWREG_CAM_READPE _IOR(READHWREG_MAGIC_NUMBER, 1, int*)
> >
> > But the value of 'READHWREG_CAM_READPE' is comes out to be different in
> > userspace (in the application) and kernel space (in the driver).
> >
> > In userspace I used ioctl as
> > ...
> >    printf("\ncommand %x \n",READHWREG_CAM_READPE); <-- command 80041501
> >    error = ioctl(g_DevFileId, READHWREG_CAM_READPE);
> > ..
> >
> > In kernel space
> >
> > int readHwReg_ioctl(struct inode *node, struct file *filp, unsigned int
> > cmd,  unsigned long arg)
> > {
> > ...
> >    printk("\n%d %s cmd = %x\n",__LINE__,__FUNCTION__,cmd); <--- cmd =
> > bee6a9d4
>
> Back in 2.6.36, the ioctl member of the struct file_operations
> structure  (which took 4 arguments) was finally deprecated, replaced
> with unlocked_ioctl (which only takes 3 arguments).
>
> If you just renamed and ignored the compiler warnings, then that
> explains your problem.
>
> Thanks Dave for pointing out 'unlocked_ioctl'
I come across this link:
http://lwn.net/Articles/119652/

--
> Dave Hylands
> Shuswap, BC, Canada
> http://www.davehylands.com
>

Thanks,
Chetan Nanda
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20111228/25bc51df/attachment.html 


More information about the Kernelnewbies mailing list