On 08.04.2013 14:51, Borislav Petkov wrote: > On Mon, Apr 08, 2013 at 02:28:47PM +0200, Stefan Bader wrote: >> To enforce the PSE bit here sounds reasonably right. And also apply >> canon_pgprot, too. GLOBAL I don't know for sure. > > Well sure, you don't want to flush those from the TLB if it is kernel > memory since it is mapped in every process AFAICT. > >> By the way there is a usage of new_prot a bit down of >> try_preserve_large_page which probably should be changed into >> req_prot, too. That was enforcing the canon_pgprot before the change. >> So that may be considered a regression to before. > > Which one?
* that we limited the number of possible pages already to * the number of pages in the large page. */ if (address == (address & pmask) && cpa->numpages == (psize >> PAGE_SHIFT)) { /* * The address is aligned and the number of pages * covers the full page. */ new_pte = pfn_pte(pte_pfn(old_pte), new_prot); ^ This one. The first patch changed - new_pte = pfn_pte(pte_pfn(old_pte), canon_pgprot(new_prot)); + new_pte = pfn_pte(pte_pfn(old_pte), new_prot); The fixup patch drops new_prot completely from being initialized and only works on req_prot. Probably it would be best to also drop the definition of new_prot. I think it then completely unused. -Stefan > > Actually, after Andrea's patch it all makes sense - we initialize > new_prot from req_prot *after* all protections checks. new_prot are, > IMHO, the final protection bits which we are actually going to change. >
signature.asc
Description: OpenPGP digital signature