diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2014-03-17 15:17:07 +0100 | 
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2014-03-17 15:17:07 +0100 | 
| commit | 38edc2da5014e70e46a724d97c3ef3dde106331b (patch) | |
| tree | 590499bacd062e8dd74c6f05a7d811dd714a2d70 /mm/mprotect.c | |
| parent | 937b5991ca7717ceba99014f2ad3f51c85cdb9ad (diff) | |
| parent | 28b191118c11719bb27db621425a70be28a40e08 (diff) | |
Merge tag 'omap-for-v3.15/dt-overo-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
Updates to the .dts files to support more Gumstix boards.
These are sent separately from the rest of the .dts changes
as these depend on the fixes merged into v3.14-rc4, and
needed a bit more time to get updated on the fixes.
* tag 'omap-for-v3.15/dt-overo-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: dts: Add support for the Overo Summit
  ARM: dts: Add support for the Overo Chestnut43
  ARM: dts: Add support for the Overo Alto35
  ARM: dts: Add support for the Overo Gallop43
  ARM: dts: Add support for the Overo Palo43
  ARM: dts: overo: Add LIS33DE accelerometer
  ARM: dts: overo: Create a file for common Gumstix peripherals
  ARM: dts: overo: Push uart3 pinmux down to expansion board
  ARM: dts: omap3-tobi: Add AT24C01 EEPROM
  ARM: dts: omap3-tobi: Use include file omap-gpmc-smsc9221
  ARM: dts: omap: Add common file for SMSC9221
  ARM: dts: omap3-overo: Add HSUSB PHY
  ARM: dts: omap3-overo: Enable WiFi/BT combo
  ARM: dts: omap3-overo: Add missing pinctrl
  ARM: dts: omap3-tobi: Add missing pinctrl
  ARM: dts: overo: reorganize include files
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Conflicts:
	arch/arm/boot/dts/omap3-overo.dtsi
Diffstat (limited to 'mm/mprotect.c')
| -rw-r--r-- | mm/mprotect.c | 25 | 
1 files changed, 8 insertions, 17 deletions
diff --git a/mm/mprotect.c b/mm/mprotect.c index 7332c1785744..769a67a15803 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -58,36 +58,27 @@ static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd,  				if (pte_numa(ptent))  					ptent = pte_mknonnuma(ptent);  				ptent = pte_modify(ptent, newprot); +				/* +				 * Avoid taking write faults for pages we +				 * know to be dirty. +				 */ +				if (dirty_accountable && pte_dirty(ptent)) +					ptent = pte_mkwrite(ptent); +				ptep_modify_prot_commit(mm, addr, pte, ptent);  				updated = true;  			} else {  				struct page *page; -				ptent = *pte;  				page = vm_normal_page(vma, addr, oldpte);  				if (page && !PageKsm(page)) {  					if (!pte_numa(oldpte)) { -						ptent = pte_mknuma(ptent); -						set_pte_at(mm, addr, pte, ptent); +						ptep_set_numa(mm, addr, pte);  						updated = true;  					}  				}  			} - -			/* -			 * Avoid taking write faults for pages we know to be -			 * dirty. -			 */ -			if (dirty_accountable && pte_dirty(ptent)) { -				ptent = pte_mkwrite(ptent); -				updated = true; -			} -  			if (updated)  				pages++; - -			/* Only !prot_numa always clears the pte */ -			if (!prot_numa) -				ptep_modify_prot_commit(mm, addr, pte, ptent);  		} else if (IS_ENABLED(CONFIG_MIGRATION) && !pte_file(oldpte)) {  			swp_entry_t entry = pte_to_swp_entry(oldpte);  | 
