Date: Tue, 10 Mar 2009 17:32:43 +0100 From: Alexej Sokolov <bsd.quest@googlemail.com> To: freebsd-hackers@freebsd.org Subject: Fwd: write protection by mmap of /dev/mem doesn't work Message-ID: <671bb5fc0903100932y71e6c78bq8904224959e24e55@mail.gmail.com> In-Reply-To: <671bb5fc0903100905u7484cd1dp9faefc8bc208a6a6@mail.gmail.com> References: <671bb5fc0903100905u7484cd1dp9faefc8bc208a6a6@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Sorry, it was my mistake ! seg fault was by reading of data. To do this should PROT_READ|PROT_WRITE be setted. Now it works! Alexej ---------- Forwarded message ---------- From: Alexej Sokolov <bsd.quest@googlemail.com> Date: 2009/3/10 Subject: write protection by mmap of /dev/mem doesn't work To: freebsd-hackers@freebsd.org hello, How can I mmap some memory regions with PROT_WRITE protection flag ? What i do: /* Open mem device */ if ((devmem_fd = open("/dev/mem", O_RDWR)) == -1){ perror("/dev/mem"); exit (1); } then if I try to mmap some memory region with PROT_READ it goes Ok. But by PROT_WRITE it doesn't work: sp = mmap ( 0, MCLBYTES, /* Size of remapped buffer = size of mbuf cluster */ PROT_WRITE, MAP_SHARED, devmem_fd, phys_addr /* Physical addres of packet buffer from descriptor */ ); I get by PROT_WRITE " segmentation fault" What is the problem here ? And question again: How can I do it possible to remapp the kernel memory region to user space process through /dev/mem and give to this user process write permissions to remmaped space ? Thanx
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?671bb5fc0903100932y71e6c78bq8904224959e24e55>