hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/mm/mprotect.c
....@@ -41,7 +41,7 @@
4141 {
4242 pte_t *pte, oldpte;
4343 spinlock_t *ptl;
44
- unsigned long pages = 0;
44
+ unsigned long pages = 0, flags;
4545 int target_node = NUMA_NO_NODE;
4646 bool dirty_accountable = cp_flags & MM_CP_DIRTY_ACCT;
4747 bool prot_numa = cp_flags & MM_CP_PROT_NUMA;
....@@ -113,6 +113,7 @@
113113 continue;
114114 }
115115
116
+ flags = hard_local_irq_save();
116117 oldpte = ptep_modify_prot_start(vma, addr, pte);
117118 ptent = pte_modify(oldpte, newprot);
118119 if (preserve_write)
....@@ -138,6 +139,7 @@
138139 ptent = pte_mkwrite(ptent);
139140 }
140141 ptep_modify_prot_commit(vma, addr, pte, oldpte, ptent);
142
+ hard_local_irq_restore(flags);
141143 pages++;
142144 } else if (is_swap_pte(oldpte)) {
143145 swp_entry_t entry = pte_to_swp_entry(oldpte);