Oh, yes, something like that... Maybe I should have used ptrace to solve this problem instead of by get_user.. Thanks! Fangkai On Wed, Apr 28, 2010 at 2:19 AM, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote: > On Wed, Apr 28, 2010 at 12:24 PM, Yang Fangkai <wolfgang.yang@xxxxxxxxx> wrote: >> Hi, Nidhi, >> >> Thanks! Now I know what is the problem. >> >> But in my project, I am developing a virtual char device driver >> such that user can read any process's memory contents by specifying >> its pid and virtual address. Therefore, a device /dev/gh is >> registered, and the user try to do something like: >> >> echo -n targetpid>/dev/gh & echo -n addr>/dev/gh >> >> Therefore, the target process can't be modified. The device driver >> will retrieve the value by pid and virtual address and return it to >> user at terminal. > > Isn't it something similar to ptrace with PTRACE_PEEKTEXT, PTRACE_PEEKDATA > > Thanks - > Manish >> I don't know how to solve this problem with get_user >> under my scenario. Thank you! >> >> Fangkai >> >> On Wed, Apr 28, 2010 at 1:42 AM, nidhi mittal hada >> <nidhimittal19@xxxxxxxxx> wrote: >>> you should somehow call the kernel module from user space program ... >>> may be using ioctl .. >>> so that you are in same process context --- as the one you are sending >>> address from . >>> >>> write char dev driver with ioctl method defined >>> then call ioctl from user space >>> >>> ioctl(fd,<IOCTL_CMD>,addrees you want to send) >>> >>> >>> Now in kernel module >>> >>> get_user(kernel data variable, <user space address>); >>> >>> Nidhi >>> >>> >>> >>> >>> >>> >>> >>> On Wed, Apr 28, 2010 at 11:55 AM, Yang Fangkai <wolfgang.yang@xxxxxxxxx> >>> wrote: >>>> >>>> Hi, Nidhi, >>>> >>>> Thanks for your reply! Yes, you are right. I pass the address >>>> to the module from bash command echo, therefore when the address is >>>> referred, the current pid is bash's pid, instead of the simple program >>>> I wrote. >>>> >>>> But how can I fix this problem? >>>> >>>> Thank you! >>>> >>>> Fangkai >>>> >>>> On Wed, Apr 28, 2010 at 1:01 AM, nidhi mittal hada >>>> <nidhimittal19@xxxxxxxxx> wrote: >>>> > >>>> > in your kernel module try to print current->pid >>>> > is it same as the user space process id ? >>>> > i think when in kernel module you are not in the same process context >>>> > whihc >>>> > you want to refer ... >>>> > >>>> > >>>> > Nidhi >>>> > >>>> > On Wed, Apr 28, 2010 at 10:38 AM, Yang Fangkai <wolfgang.yang@xxxxxxxxx> >>>> > wrote: >>>> >> >>>> >> Hi, all, >>>> >> >>>> >> I have a problem with get_user() macro. What I did is as follows: >>>> >> >>>> >> I run the following program >>>> >> >>>> >> int main() >>>> >> { >>>> >> int a = 20; >>>> >> printf("address of a: %p", &a); >>>> >> sleep(200); >>>> >> return 0; >>>> >> } >>>> >> >>>> >> When the program runs, it outputs the address of a, say, 0xbff91914. >>>> >> >>>> >> Then I pass this address to a module running in Kernel Mode that >>>> >> retrieves the contents at this address (at the time when I did this, I >>>> >> also made sure the process didn't terminate, because I put it to sleep >>>> >> for 200 seconds... ): >>>> >> >>>> >> The address is firstly sent as a string, and I cast them into pointer >>>> >> type. >>>> >> >>>> >> int * ptr = (int*)simple_strtol(buffer, NULL,16); >>>> >> printk("address: %p",ptr); // I use this line to make sure the cast is >>>> >> correct. When running, it does output bff91914 >>>> >> int val = 0; >>>> >> int res; >>>> >> res= get_user(val, (int*) ptr); >>>> >> >>>> >> However, res is always not 0, meaning that get_user returns error. I >>>> >> am wondering what is the problem.... >>>> >> >>>> >> Thank you!! >>>> >> >>>> >> -- >>>> >> To unsubscribe from this list: send an email with >>>> >> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx >>>> >> Please read the FAQ at http://kernelnewbies.org/FAQ >>>> >> >>>> > >>>> > >>>> > >>>> > -- >>>> > Thanks & Regards >>>> > Nidhi Mittal Hada >>>> > Scientific officer D >>>> > Computer Division >>>> > Bhabha Atomic Research Center >>>> > Mumbai >>>> > >>>> > >>>> > >>> >>> >>> >>> -- >>> Thanks & Regards >>> Nidhi Mittal Hada >>> Scientific officer D >>> Computer Division >>> Bhabha Atomic Research Center >>> Mumbai >>> >>> >>> >> >> -- >> To unsubscribe from this list: send an email with >> "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx >> Please read the FAQ at http://kernelnewbies.org/FAQ >> >> > > > > -- > Thanks - > Manish > ================================== > [$\*.^ -- I miss being one of them > ================================== > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ