Hi Prasad, On Sat, Jan 3, 2015 at 9:23 PM, me storage <me.storage126@gmail.com> wrote:
Hi, Thanks Valdis for your nice explanation. After practising i got another doubt if read from my driver as below
cat /dev/myDev
for this how many times read function will call because some times it is executing only once but some times it is executing infinite times. Like for write also echo "hello" > /dev/myDev for that particular call it is executing 1 or 2 times. So can one please clarify my doubts
Make sure you return the correct amount to be read based on the amount asked and the amount of data available from current value of fpos. If there's nothing to read then return 0 based on the current value of fpos. Doing strace would help. You would see that cat stops if the amount of data read is lesser than it asks for which is usually a page. Try using generic read/write routines and instead override the readpage(s)/writepage(s) of aops. You won't need to handle those checks then.
Thanks & Regards Prasad
On 2 January 2015 at 21:32, <Valdis.Kletnieks@vt.edu> wrote:
On Fri, 02 Jan 2015 07:50:55 +0530, me storage said:
Can any one please tell me difference between kernal space & user space in code perspective
Two biggies:
1) Kernel space pages are usually nailed down and not paging in and out, this is *not* true for userspace pages (so special tap-dancing in copy_(to/from)_user() is needed to make sure no page faults happen).
2) Data inside the kernel can usually be trusted from a security standpoint. Data in userspace *MUST NOT* be trusted. Also, beware of TOCTOU (time of check / time of use) bugs - that's why we should copy the user-supplied data to an internal buffer *first*, and then validity-check the buffer - if we check the value in userspace and then later copy it, there's a race condition where the userspace value can be changed after the check but before the copy.
Also, keep in mind that a userspace pointer needs to be translated before using it to dereference data from kernel space....
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- ---P.K.S