<br><br><div class="gmail_quote">On Wed, Dec 28, 2011 at 8:22 PM, autif khan <span dir="ltr">&lt;<a href="mailto:autif.mlist@gmail.com">autif.mlist@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Chetan,<br>
<br>
I was wondering if switching to unlocked_ioctl() fixed the issue.<br>
<br>
I will be developing a hardware driver and would like to know how you<br>
made out. Please let me know if the &#39;cmd&#39; is passed correctly.<br>
<br>
Thanks for sharing.<br>
<br>
Autif<br></blockquote><div> </div><div>Hi Autif, <br>Please go through the link:<br><a href="http://lwn.net/Articles/119652/" target="_blank">http://lwn.net/Articles/119652/</a> <br><br>Problem with my dummy driver was that i am using unlocked_ioctl, but defined the ioctl function with wrong syntax (i.e. with syntax of normal ioctl function.)<br>
<br>Thanks,<br>Chetan Nanda<br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><div class="h5"><br>
On Tue, Dec 27, 2011 at 10:34 PM, Chetan Nanda &lt;<a href="mailto:chetannanda@gmail.com">chetannanda@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Dec 27, 2011 at 11:25 PM, Dave Hylands &lt;<a href="mailto:dhylands@gmail.com">dhylands@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Chetan,<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Dec 27, 2011 at 3:39 AM, Chetan Nanda &lt;<a href="mailto:chetannanda@gmail.com">chetannanda@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt; &gt; Hi All,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I am facing a strange issue with the ioctl commands, and not able to<br>
&gt;&gt; &gt; find<br>
&gt;&gt; &gt; what wrong I am doing.<br>
&gt;&gt; &gt; I am trying with a dummy kernel driver and implemented ioctl command as<br>
&gt;&gt; &gt; follow:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; in my_ioctl.h<br>
&gt;&gt; &gt; #define READHWREG_MAGIC_NUMBER 0x15<br>
&gt;&gt; &gt; #define READHWREG_CAM_READPE _IOR(READHWREG_MAGIC_NUMBER, 1, int*)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; But the value of &#39;READHWREG_CAM_READPE&#39; is comes out to be different in<br>
&gt;&gt; &gt; userspace (in the application) and kernel space (in the driver).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In userspace I used ioctl as<br>
&gt;&gt; &gt; ...<br>
&gt;&gt; &gt;    printf(&quot;\ncommand %x \n&quot;,READHWREG_CAM_READPE); &lt;-- command 80041501<br>
&gt;&gt; &gt;    error = ioctl(g_DevFileId, READHWREG_CAM_READPE);<br>
&gt;&gt; &gt; ..<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In kernel space<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; int readHwReg_ioctl(struct inode *node, struct file *filp, unsigned int<br>
&gt;&gt; &gt; cmd,  unsigned long arg)<br>
&gt;&gt; &gt; {<br>
&gt;&gt; &gt; ...<br>
&gt;&gt; &gt;    printk(&quot;\n%d %s cmd = %x\n&quot;,__LINE__,__FUNCTION__,cmd); &lt;--- cmd =<br>
&gt;&gt; &gt; bee6a9d4<br>
&gt;&gt;<br>
&gt;&gt; Back in 2.6.36, the ioctl member of the struct file_operations<br>
&gt;&gt; structure  (which took 4 arguments) was finally deprecated, replaced<br>
&gt;&gt; with unlocked_ioctl (which only takes 3 arguments).<br>
&gt;&gt;<br>
&gt;&gt; If you just renamed and ignored the compiler warnings, then that<br>
&gt;&gt; explains your problem.<br>
&gt;&gt;<br>
&gt; Thanks Dave for pointing out &#39;unlocked_ioctl&#39;<br>
&gt; I come across this link:<br>
&gt; <a href="http://lwn.net/Articles/119652/" target="_blank">http://lwn.net/Articles/119652/</a><br>
&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Dave Hylands<br>
&gt;&gt; Shuswap, BC, Canada<br>
&gt;&gt; <a href="http://www.davehylands.com" target="_blank">http://www.davehylands.com</a><br>
&gt;<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Chetan Nanda<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;<br>
</blockquote></div><br>