On x86-64, kernel memory freed after init can be entirely unmapped insteadof just getting 'poisoned' by overwriting with a debug pattern.

On i386 and x86-64 (under CONFIG_DEBUG_RODATA), kernel text and bug tablecan also be write-protected.

Compared to the first version, this one prevents re-creating deletedmappings in the kernel image range on x86-64, if those got removedpreviously. This, together with the original changes, prevents temporarilyhaving inconsistent mappings when cacheability attributes are beingchanged on such pages (e.g. from AGP code). While on i386 such duplicatemappings don't exist, the same change is done there, too, both forconsistency and because checking pte_present() before using various otherpte_XXX functions is a requirement anyway. At once, i386 code getsadjusted to use pte_huge() instead of open coding this.