Find the answer to your Linux question:
Results 1 to 2 of 2
Hello all, I need a positive reply from you. I want to copy the user-process-heap to the kernel space memory. For that, I wrote the following code but it does ...
  1. #1
    Just Joined!
    Join Date
    Aug 2009
    Posts
    6

    copy_from_user fails to copy from process-heap

    Hello all,

    I need a positive reply from you.

    I want to copy the user-process-heap to the kernel space memory.
    For that, I wrote the following code but it does not copy.

    ---------------- code --------------
    unsigned long length_of_heap_vma=< length of vma pointing to process-heap > ;
    void * kernel_mem = (void *) kmalloc(length_of_heap_vma,GFP_KERNEL);

    unsigned long bytes_not_copied = 0;
    bytes_not_copied=copy_from_user(kernel_mem,(void *)vm->vma_start,length_of_heap_vma);
    //vm points to process heap
    printk("failed to copy %ld bytes.",bytes_not_copied); //it always displays a non-zero value.

    ---------------- end of code --------

    now the PROBLEM is that - the code successfuly compiles, but when I execute it, it copies not a single byte and
    bytes_not-copied always becomes equal to length_of_heap_vma. No compile-time or execution-time error occurs.

    (note: my process has the following dynamic memory in user-part:
    int * p = (int*) malloc(5 * sizeof(int));
    for(i=0;i<5;i++)
    p[i]= i;
    )

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
    Posts
    8,974
    Please move this to The Linux Kernel forum. Thanks.
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...