|
@@ -256,7 +256,6 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
|
|
|
unsigned long pfn)
|
|
|
{
|
|
|
pgprot_t forbidden = __pgprot(0);
|
|
|
- pgprot_t required = __pgprot(0);
|
|
|
|
|
|
/*
|
|
|
* The BIOS area between 640k and 1Mb needs to be executable for
|
|
@@ -282,12 +281,6 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
|
|
|
if (within(pfn, __pa((unsigned long)__start_rodata) >> PAGE_SHIFT,
|
|
|
__pa((unsigned long)__end_rodata) >> PAGE_SHIFT))
|
|
|
pgprot_val(forbidden) |= _PAGE_RW;
|
|
|
- /*
|
|
|
- * .data and .bss should always be writable.
|
|
|
- */
|
|
|
- if (within(address, (unsigned long)_sdata, (unsigned long)_edata) ||
|
|
|
- within(address, (unsigned long)__bss_start, (unsigned long)__bss_stop))
|
|
|
- pgprot_val(required) |= _PAGE_RW;
|
|
|
|
|
|
#if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA)
|
|
|
/*
|
|
@@ -327,7 +320,6 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
|
|
|
#endif
|
|
|
|
|
|
prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden));
|
|
|
- prot = __pgprot(pgprot_val(prot) | pgprot_val(required));
|
|
|
|
|
|
return prot;
|
|
|
}
|