map_writable: fix incorrect vmalloc_to_page argument

The purpose of map_writable is to make writable mapping of the requested
memory area (addr, len). If if resides on a page break we need map 2
pages at least. Current code has the following block:

      pages[i] = vmalloc_to_page(addr);

Which is invalid as `addr` is not changed despite of an index. So it
must be changed to:

     pages[i] = vmalloc_to_page(page_addr);

Where `page_addr` is incremented by PAGE_SIZE for each iteration.