Hi all. Does anybody knows why this instruction ? - in mm/rmap.c: anon_vma = (struct anon_vma *) (anon_mapping - PAGE_MAPPING_ANON); Above the full function with the instruction: (line number here: 189) static struct anon_vma *page_lock_anon_vma(struct page *page) { struct anon_vma *anon_vma = NULL; unsigned long anon_mapping; rcu_read_lock(); anon_mapping = (unsigned long) page->mapping; if (!(anon_mapping & PAGE_MAPPING_ANON)) goto out; if (!page_mapped(page)) goto out; anon_vma = (struct anon_vma *) (anon_mapping - PAGE_MAPPING_ANON); spin_lock(&anon_vma->lock); out: rcu_read_unlock(); return anon_vma; } Thanks in advance Baroni -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/