I think I can do that by getting the related pte of a virtuak kaddr, starting with

 pgd_offset_k(address)

, or directly with 
pte_t *lookup_address(unsigned long address, unsigned int *level);
  And then I can checks the flags of this pte.





2016-09-05 12:59 GMT+02:00 Oscar Salvador <osalvador.vilardaga@gmail.com>:
Hi all,

I'm writing a module to read/write kernel memory, and for this I'd like to check if a page is marked as read-only, so we don't have the right to write there (kernel code for instance).

I though about the flags field from "struct page {}", but from the name I can't see any useful flag to check this.

The only flag I saw is different between kernel code and module code is that kernel code has the flag "reserved" enabled, so it's not swapped.

Could someone provide me a hint about that?

Thank you very much