|
@@ -923,34 +923,19 @@ static void mark_nxdata_nx(void)
|
|
void mark_rodata_ro(void)
|
|
void mark_rodata_ro(void)
|
|
{
|
|
{
|
|
unsigned long start = PFN_ALIGN(_text);
|
|
unsigned long start = PFN_ALIGN(_text);
|
|
- unsigned long size = PFN_ALIGN(_etext) - start;
|
|
|
|
|
|
+ unsigned long size = (unsigned long)__end_rodata - start;
|
|
|
|
|
|
set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
|
|
set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
|
|
- printk(KERN_INFO "Write protecting the kernel text: %luk\n",
|
|
|
|
|
|
+ pr_info("Write protecting kernel text and read-only data: %luk\n",
|
|
size >> 10);
|
|
size >> 10);
|
|
|
|
|
|
kernel_set_to_readonly = 1;
|
|
kernel_set_to_readonly = 1;
|
|
|
|
|
|
#ifdef CONFIG_CPA_DEBUG
|
|
#ifdef CONFIG_CPA_DEBUG
|
|
- printk(KERN_INFO "Testing CPA: Reverting %lx-%lx\n",
|
|
|
|
- start, start+size);
|
|
|
|
- set_pages_rw(virt_to_page(start), size>>PAGE_SHIFT);
|
|
|
|
-
|
|
|
|
- printk(KERN_INFO "Testing CPA: write protecting again\n");
|
|
|
|
- set_pages_ro(virt_to_page(start), size>>PAGE_SHIFT);
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
- start += size;
|
|
|
|
- size = (unsigned long)__end_rodata - start;
|
|
|
|
- set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
|
|
|
|
- printk(KERN_INFO "Write protecting the kernel read-only data: %luk\n",
|
|
|
|
- size >> 10);
|
|
|
|
-
|
|
|
|
-#ifdef CONFIG_CPA_DEBUG
|
|
|
|
- printk(KERN_INFO "Testing CPA: undo %lx-%lx\n", start, start + size);
|
|
|
|
|
|
+ pr_info("Testing CPA: Reverting %lx-%lx\n", start, start + size);
|
|
set_pages_rw(virt_to_page(start), size >> PAGE_SHIFT);
|
|
set_pages_rw(virt_to_page(start), size >> PAGE_SHIFT);
|
|
|
|
|
|
- printk(KERN_INFO "Testing CPA: write protecting again\n");
|
|
|
|
|
|
+ pr_info("Testing CPA: write protecting again\n");
|
|
set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
|
|
set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
|
|
#endif
|
|
#endif
|
|
mark_nxdata_nx();
|
|
mark_nxdata_nx();
|