Messages in this thread | | | Date | Thu, 21 Mar 2013 20:45:54 -0300 | Subject | Re: remap kernel static memory to user space | From | Eduardo Cruz <> |
| |
Please, anyone knows how to solve this problem?
2013/3/20 Eduardo Cruz <eduardohmdacruz@gmail.com>: > Hello. > > I'm trying to remap some kernel static memory to user space using > remap_pfn_range. > For that, I wrote a module that initializes a device, which later I > use mknod, etc. > > When I allocate the memory with kmalloc, everything works: (where > user_space_shared was allocated with kmalloc) > > if ((ret = remap_pfn_range(vma, vma->vm_start, > virt_to_phys(user_space_shared) >> PAGE_SHIFT, length, > vma->vm_page_prot)) < 0) > > In the application in user space: > kstc = mmap(0, sizeof(user_space_shared_t), PROT_READ|PROT_WRITE, > MAP_SHARED| MAP_LOCKED, fd, 0); > > With user_space_shared allocated using kmalloc, it is working. > The application is able to read the data I wrote in the kernel module. > > However, when I define and allocate that var in arch/ia64/mm/fault.c: > > unsigned char user_space_shared[ sizeof(user_space_shared_t) + > PAGE_SIZE ] __attribute__((aligned(PAGE_SIZE))); > EXPORT_SYMBOL(user_space_shared); > > And access that var from the module: > > extern unsigned char user_space_shared[ sizeof(user_space_shared_t) + > PAGE_SIZE ]; > > There is no error message, but I can't read the contents i wrote > inside the kernel module from the application. > > Your help would be appreciated. > > ps: > I am taking care of page offsets/boundaries. > I'm using kernel 2.6.32 for ia64. > > > -- > Eduardo Henrique Molina da Cruz > PhD student > Parallel and Distributed Processing Group > Federal University of Rio Grande do Sul (UFRGS)
-- Eduardo Henrique Molina da Cruz PhD student Parallel and Distributed Processing Group Federal University of Rio Grande do Sul (UFRGS)
| |