> + if (pte_present(pteval) &&// swap out ? > + pte_exec(pteval) && // flush only new executable page. > pte_user(pteval) && // ignore kernel page > (!pte_present(*ptep) ||// do_no_page or swap in, migration, > pte_pfn(*ptep) != pte_pfn(pteval))) // do_wp_page(), page copy
David Mosberger was concerned about the increase in code size from this inline function. We can reduce the bloat a bit by defining a macro that tests for "present && executable && user-mode" in one go: #define pte_pux(pte) ((pte_val(pte) & (_PAGE_P|_PAGE_PL_MASK|_PAGE_AR_RX)) == \ (_PAGE_P|_PAGE_PL_3|_PAGE_AR_RX)) Perhaps there is a better name than "pte_pux"? I don't know whether the code that this generates is faster, but it is smaller (bloat is only 3k instead of 4k). One last cleanup needed ... don't use C-99/C++ style comments. -Tony - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/