core/linux-kirkwood to 3.13-1

This commit is contained in:
moonman 2014-01-27 20:41:56 -07:00
parent 7e33c91a19
commit 66274425ff
5 changed files with 157 additions and 130 deletions

View file

@ -7,12 +7,12 @@ buildarch=2
pkgbase=linux-kirkwood
_kernelname=${pkgbase#linux}
_desc="Marvell Kirkwood"
pkgver=3.12.8
pkgver=3.13
pkgrel=1
cryptover=1.6
cryptodev_commit=57b5544de80db85c8955499831fdaa30829db77a
bfqver=v6r2
uksmver="0.1.2.2"
uksmname="v3.12"
uksmname="v3.13"
arch=('arm')
url="http://www.kernel.org/"
@ -26,36 +26,27 @@ source=("ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-${pkgver}.tar.xz"
'mach-types::http://www.arm.linux.org.uk/developer/machines/download.php'
'change-default-console-loglevel.patch'
'usb-add-reset-resume-quirk-for-several-webcams.patch'
"git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs${pkgver%.*}"
"http://download.gna.org/cryptodev-linux/cryptodev-linux-${cryptover}.tar.gz"
"git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs${pkgver:0:4}"
"https://github.com/cryptodev-linux/cryptodev-linux/archive/${cryptodev_commit}.tar.gz"
"http://kerneldedup.org/download/uksm/${uksmver}/uksm-${uksmver}-for-${uksmname}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver%.*}.0-${bfqver}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${pkgver%.*}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver%.*}.0-${bfqver}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${pkgver%.*}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver%.*}.0-${bfqver}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${pkgver%.*}.0.patch"
'aufs-sources-3.12.7-mmap-aufs3.patch')
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver:0:4}.0-${bfqver}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${pkgver:0:4}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver:0:4}.0-${bfqver}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${pkgver:0:4}.patch"
"http://algo.ing.unimo.it/people/paolo/disk_sched/patches/${pkgver:0:4}.0-${bfqver}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${pkgver:0:4}.0.patch")
md5sums=('bacfc23a07a6fee0d271a4b062862445'
md5sums=('0ecbaf65c00374eb4a826c2f9f37606f'
'1c87cbbc3355eb8741143b4595d0bb5e'
'5050ace2b2352cd39edc4e7396b8651a'
'b4b1b416e579e1daabd84c4e5953a382'
'SKIP'
'65d5a4f313310bb2a732d022d51ea7e7'
'9b5a265440abf57d2052838f31486a3a'
'SKIP'
'eade38998313c25fd7934719cdf8a2ea'
'57cbf7fa8220461f8a052ea0eb9af779'
'2d39966d14fdad1e05679232f97fdb3c'
'2965641038a5aae263722b1ba16b971b'
'9a55951ee4c3741b61e2e159631b5cf2'
'2dd9dae61c1d0eacda41a17bd13e7f7f')
'a59f78f0a34cfe321921265246a7b725'
'36d74b349f4c0e97dd5e5b91b8a1d750'
'32db619d53dd4a174b85dc417363b964'
'788c1b0d2951e019547460f952aabdfb'
'1c3dc805758bd27109abab08a78305a6')
prepare() {
#Remove after this fix is in the tree
msg2 "Fixing aufs3 for kernel >=3.12.7"
cd "${srcdir}/aufs3-standalone"
patch -p1 -i ../aufs-sources-3.12.7-mmap-aufs3.patch
#Evomer
cd "${srcdir}/linux-${pkgver}"
msg2 "Copying aufs3 patches into the kernel source tree"
@ -83,9 +74,9 @@ msg2 "Add UKSM patch"
patch -Np1 -i "${srcdir}/uksm-${uksmver}-for-${uksmname}.patch"
msg2 "Add BFQ patches"
patch -Np1 -i "${srcdir}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${pkgver%.*}.patch"
patch -Np1 -i "${srcdir}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${pkgver%.*}.patch"
patch -Np1 -i "${srcdir}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${pkgver%.*}.0.patch"
patch -Np1 -i "${srcdir}/0001-block-cgroups-kconfig-build-bits-for-BFQ-${bfqver}-${pkgver:0:4}.patch"
patch -Np1 -i "${srcdir}/0002-block-introduce-the-BFQ-${bfqver}-I-O-sched-for-${pkgver:0:4}.patch"
patch -Np1 -i "${srcdir}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-${bfqver}-for-${pkgver:0:4}.0.patch"
cat "${srcdir}/config" > ./.config
@ -126,7 +117,7 @@ msg "Building!"
make ${MAKEFLAGS} uImage modules
msg "Building cryptodev module"
cd "${srcdir}/cryptodev-linux-${cryptover}"
cd "${srcdir}/cryptodev-linux-${cryptodev_commit}"
make KERNEL_DIR="${srcdir}/linux-${pkgver}"
}
@ -171,7 +162,7 @@ _package() {
echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}-${_kernelname:-ARCH}/version"
# install cryptodev module
cd "${srcdir}/cryptodev-linux-${cryptover}"
cd "${srcdir}/cryptodev-linux-${cryptodev_commit}"
make -C "${srcdir}/linux-${pkgver}" INSTALL_MOD_PATH="${pkgdir}" SUBDIRS=`pwd` modules_install
cd "${srcdir}/linux-${pkgver}"
@ -324,7 +315,7 @@ _package-headers() {
rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,x86,xtensa}
# install cryptodev header
cd "${srcdir}/cryptodev-linux-${cryptover}"
cd "${srcdir}/cryptodev-linux-${cryptodev_commit}"
install -D crypto/cryptodev.h "${pkgdir}/usr/src/linux-${_kernver}/crypto/cryptodev.h"
}

View file

@ -1,38 +0,0 @@
aufs3-mmap.patch | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/aufs3-mmap.patch b/aufs3-mmap.patch
index acebfa8..8682a6d 100644
--- a/aufs3-mmap.patch
+++ b/aufs3-mmap.patch
@@ -215,24 +215,19 @@ index ae4846f..3f890ee 100644
if (page->mapping != inode->i_mapping) {
unlock_page(page);
diff --git a/mm/fremap.c b/mm/fremap.c
-index 5bff081..246a9c7 100644
+index bbc4d66..7deee2c 100644
--- a/mm/fremap.c
+++ b/mm/fremap.c
-@@ -207,11 +207,12 @@ get_write_lock:
- */
- if (mapping_cap_account_dirty(mapping)) {
- unsigned long addr;
-- struct file *file = get_file(vma->vm_file);
-+ struct file *file = vma->vm_file;
+@@ -211,7 +211,9 @@ get_write_lock:
+ /* mmap_region may free vma; grab the info now */
+ vm_flags = vma->vm_flags;
+ vma_get_file(vma);
- addr = mmap_region(file, start, size,
- vma->vm_flags, pgoff);
-- fput(file);
+ addr = mmap_region(file, start, size, vm_flags, pgoff);
+ vma_fput(vma);
+ fput(file);
if (IS_ERR_VALUE(addr)) {
err = addr;
- } else {
diff --git a/mm/madvise.c b/mm/madvise.c
index 539eeb9..5e700b1 100644
--- a/mm/madvise.c

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 3.12.6-1 Kernel Configuration
# Linux/arm 3.13.0-1 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@ -49,7 +49,6 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_FHANDLE=y
CONFIG_AUDIT=y
# CONFIG_AUDITSYSCALL is not set
# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set
#
# IRQ subsystem
@ -79,6 +78,7 @@ CONFIG_HIGH_RES_TIMERS=y
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
@ -191,10 +191,13 @@ CONFIG_GENERIC_IDLE_POLL_SETUP=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_REL=y
@ -210,6 +213,7 @@ CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
@ -305,7 +309,6 @@ CONFIG_ARCH_KIRKWOOD=y
# CONFIG_ARCH_S5PC100 is not set
# CONFIG_ARCH_S5PV210 is not set
# CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_SHARK is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_GPIO_PCA953X is not set
@ -461,6 +464,8 @@ CONFIG_ALIGNMENT_TRAP=y
CONFIG_UACCESS_WITH_MEMCPY=y
# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
#
# Boot options
@ -485,7 +490,6 @@ CONFIG_ATAGS_PROC=y
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
@ -615,7 +619,6 @@ CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
# CONFIG_IPV6_ROUTE_INFO is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
@ -629,10 +632,11 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_VTI=m
CONFIG_IPV6_SIT=m
# CONFIG_IPV6_SIT_6RD is not set
CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_TUNNEL is not set
CONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_GRE is not set
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
@ -690,6 +694,17 @@ CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_SIP=m
CONFIG_NF_NAT_TFTP=m
CONFIG_NF_TABLES=m
CONFIG_NFT_EXTHDR=m
CONFIG_NFT_META=m
CONFIG_NFT_CT=m
CONFIG_NFT_RBTREE=m
CONFIG_NFT_HASH=m
CONFIG_NFT_COUNTER=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_NAT=m
CONFIG_NFT_COMPAT=m
CONFIG_NETFILTER_XTABLES=m
#
@ -780,7 +795,9 @@ CONFIG_IP_SET_HASH_IP=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NETPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETNET=m
CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
@ -792,6 +809,11 @@ CONFIG_IP_SET_LIST_SET=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_NF_TABLES_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_CHAIN_NAT_IPV4=m
CONFIG_NF_TABLES_ARP=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
@ -823,6 +845,9 @@ CONFIG_IP_NF_ARP_MANGLE=m
#
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_CHAIN_NAT_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@ -843,6 +868,7 @@ CONFIG_IP6_NF_RAW=m
CONFIG_NF_NAT_IPV6=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
@ -945,6 +971,7 @@ CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=y
CONFIG_NET_CLS_BPF=m
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
@ -974,6 +1001,7 @@ CONFIG_VSOCKETS=m
# CONFIG_NETLINK_MMAP is not set
# CONFIG_NETLINK_DIAG is not set
# CONFIG_NET_MPLS_GSO is not set
# CONFIG_HSR is not set
# CONFIG_NETPRIO_CGROUP is not set
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
@ -1229,7 +1257,6 @@ CONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_DATAFLASH is not set
CONFIG_MTD_M25P80=y
CONFIG_M25PXX_USE_FAST_READ=y
# CONFIG_MTD_SST25L is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
@ -1268,7 +1295,9 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
# CONFIG_MTD_UBI_GLUEBI is not set
# CONFIG_PARPORT is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
@ -1351,6 +1380,14 @@ CONFIG_TI_ST=m
# Altera FPGA firmware download module
#
# CONFIG_ALTERA_STAPL is not set
#
# Intel MIC Host Driver
#
#
# Intel MIC Card Driver
#
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@ -1551,7 +1588,6 @@ CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BCACHE=m
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_EDEBUG is not set
# CONFIG_BCACHE_CLOSURES_DEBUG is not set
CONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set
@ -1560,8 +1596,8 @@ CONFIG_DM_SNAPSHOT=m
# CONFIG_DM_THIN_PROVISIONING is not set
# CONFIG_DM_CACHE is not set
CONFIG_DM_MIRROR=m
CONFIG_DM_RAID=m
# CONFIG_DM_LOG_USERSPACE is not set
CONFIG_DM_RAID=m
CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_QL=m
@ -1827,6 +1863,7 @@ CONFIG_USB_NET_AX88179_178A=m
CONFIG_USB_NET_CDCETHER=m
# CONFIG_USB_NET_CDC_EEM is not set
CONFIG_USB_NET_CDC_NCM=m
CONFIG_USB_NET_HUAWEI_CDC_NCM=m
CONFIG_USB_NET_CDC_MBIM=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_SR9700=m
@ -1903,6 +1940,8 @@ CONFIG_ATH10K=m
# CONFIG_ATH10K_DEBUG is not set
# CONFIG_ATH10K_DEBUGFS is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_WCN36XX=m
# CONFIG_WCN36XX_DEBUGFS is not set
CONFIG_B43=m
CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
@ -1982,6 +2021,7 @@ CONFIG_RT2800USB_RT3573=y
# CONFIG_RT2800USB_RT55XX is not set
CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RT2800_LIB=m
CONFIG_RT2800_LIB_MMIO=m
CONFIG_RT2X00_LIB_MMIO=m
CONFIG_RT2X00_LIB_PCI=m
CONFIG_RT2X00_LIB_USB=m
@ -2065,6 +2105,7 @@ CONFIG_KEYBOARD_TCA6416=m
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_SH_KEYSC is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
@ -2150,7 +2191,9 @@ CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
CONFIG_TOUCHSCREEN_TSC2007=m
# CONFIG_TOUCHSCREEN_W90X900 is not set
# CONFIG_TOUCHSCREEN_ST1232 is not set
# CONFIG_TOUCHSCREEN_SUR40 is not set
CONFIG_TOUCHSCREEN_TPS6507X=m
# CONFIG_TOUCHSCREEN_ZFORCE is not set
# CONFIG_INPUT_MISC is not set
#
@ -2206,6 +2249,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=2
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
# CONFIG_SERIAL_MFD_HSU is not set
# CONFIG_SERIAL_SH_SCI is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
@ -2269,8 +2313,10 @@ CONFIG_I2C_MV64XXX=m
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_PXA_PCI is not set
# CONFIG_I2C_SH_MOBILE is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set
# CONFIG_I2C_RCAR is not set
#
# External I2C/SMBus adapter drivers
@ -2297,7 +2343,6 @@ CONFIG_SPI_MASTER=y
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_FSL_DSPI is not set
# CONFIG_SPI_OC_TINY is not set
CONFIG_SPI_ORION=y
# CONFIG_SPI_PXA2XX is not set
@ -2352,8 +2397,8 @@ CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_KIRKWOOD=y
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
@ -2361,7 +2406,6 @@ CONFIG_GPIO_SYSFS=y
# Memory mapped GPIO drivers:
#
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_EM is not set
# CONFIG_GPIO_RCAR is not set
# CONFIG_GPIO_TS5500 is not set
# CONFIG_GPIO_VX855 is not set
@ -2450,6 +2494,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_POWER_RESET is not set
# CONFIG_POWER_RESET_RESTART is not set
@ -3018,7 +3063,7 @@ CONFIG_VIDEO_MT9V011=m
#
#
# Miscelaneous helper chips
# Miscellaneous helper chips
#
#
@ -3269,7 +3314,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_GENERIC=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3630 is not set
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_LP855X is not set
# CONFIG_BACKLIGHT_GPIO is not set
@ -3410,6 +3455,7 @@ CONFIG_HID_ROCCAT=m
# CONFIG_HID_SAITEK is not set
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
# CONFIG_SONY_FF is not set
CONFIG_HID_SPEEDLINK=m
# CONFIG_HID_STEELSERIES is not set
CONFIG_HID_SUNPLUS=m
@ -3685,6 +3731,7 @@ CONFIG_LEDS_GPIO=y
# CONFIG_LEDS_LP8501 is not set
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not set
# CONFIG_LEDS_PCA9685 is not set
# CONFIG_LEDS_DAC124S085 is not set
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_LT3593 is not set
@ -3816,9 +3863,9 @@ CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
# CONFIG_NET_DMA is not set
CONFIG_ASYNC_TX_DMA=y
# CONFIG_DMATEST is not set
CONFIG_DMA_ENGINE_RAID=y
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_VIRT_DRIVERS is not set
@ -3980,6 +4027,7 @@ CONFIG_NET_VENDOR_SILICOM=y
# CONFIG_BPCTL is not set
# CONFIG_CED1401 is not set
# CONFIG_DGRP is not set
# CONFIG_MTD_SPINAND_MT29F is not set
# CONFIG_USB_DWC2 is not set
# CONFIG_LUSTRE_FS is not set
CONFIG_USB_BTMTK=m
@ -4002,6 +4050,7 @@ CONFIG_COMMON_CLK=y
CONFIG_CLKSRC_MMIO=y
# CONFIG_MAILBOX is not set
CONFIG_IOMMU_SUPPORT=y
# CONFIG_SHMOBILE_IOMMU is not set
#
# Remoteproc drivers
@ -4038,6 +4087,7 @@ CONFIG_IIO=m
# CONFIG_AD7923 is not set
# CONFIG_MAX1363 is not set
# CONFIG_MCP320X is not set
# CONFIG_MCP3422 is not set
# CONFIG_NAU7802 is not set
# CONFIG_TI_ADC081C is not set
@ -4051,7 +4101,6 @@ CONFIG_IIO=m
#
CONFIG_HID_SENSOR_IIO_COMMON=m
# CONFIG_HID_SENSOR_IIO_TRIGGER is not set
# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set
#
# Digital to analog converters
@ -4110,14 +4159,19 @@ CONFIG_HID_SENSOR_IIO_COMMON=m
#
# CONFIG_ADJD_S311 is not set
# CONFIG_APDS9300 is not set
# CONFIG_CM36651 is not set
# CONFIG_GP2AP020A00F is not set
# CONFIG_HID_SENSOR_ALS is not set
# CONFIG_TCS3472 is not set
# CONFIG_SENSORS_TSL2563 is not set
# CONFIG_TSL4531 is not set
# CONFIG_VCNL4000 is not set
#
# Magnetometer sensors
#
# CONFIG_AK8975 is not set
# CONFIG_MAG3110 is not set
# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set
# CONFIG_IIO_ST_MAGN_3AXIS is not set
@ -4136,6 +4190,13 @@ CONFIG_HID_SENSOR_IIO_COMMON=m
# CONFIG_RESET_CONTROLLER is not set
# CONFIG_FMC is not set
#
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set
# CONFIG_POWERCAP is not set
#
# File systems
#
@ -4277,6 +4338,11 @@ CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_LOGFS is not set
CONFIG_CRAMFS=y
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_CACHE=y
# CONFIG_SQUASHFS_FILE_DIRECT is not set
CONFIG_SQUASHFS_DECOMP_SINGLE=y
# CONFIG_SQUASHFS_DECOMP_MULTI is not set
# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZO=y
@ -4303,6 +4369,7 @@ CONFIG_F2FS_STAT_FS=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
# CONFIG_F2FS_FS_SECURITY is not set
CONFIG_F2FS_CHECK_FS=y
CONFIG_AUFS_FS=y
CONFIG_AUFS_BRANCH_MAX_127=y
# CONFIG_AUFS_BRANCH_MAX_511 is not set
@ -4441,6 +4508,7 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_SECTION_MISMATCH is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
CONFIG_DEBUG_KERNEL=y
#
@ -4549,6 +4617,7 @@ CONFIG_PROBE_EVENTS=y
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PERCPU_TEST is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_ASYNC_RAID6_TEST is not set
# CONFIG_TEST_STRING_HELPERS is not set
@ -4582,6 +4651,8 @@ CONFIG_EARLY_PRINTK=y
# Security options
#
CONFIG_KEYS=y
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_ENCRYPTED_KEYS is not set
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
@ -4743,6 +4814,7 @@ CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IO=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
# CONFIG_CRC_T10DIF is not set
@ -4757,6 +4829,7 @@ CONFIG_CRC7=m
CONFIG_LIBCRC32C=y
# CONFIG_CRC8 is not set
CONFIG_AUDIT_GENERIC=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
@ -4783,6 +4856,7 @@ CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y

View file

@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-kirkwood
KERNEL_VERSION=3.12.5-1-ARCH
KERNEL_VERSION=3.13.0-1-ARCH
post_install () {
# updating module dependencies

View file

@ -1,8 +1,8 @@
diff --git a/Documentation/vm/00-INDEX b/Documentation/vm/00-INDEX
index 5481c8b..7141876 100644
index a39d066..a03f094 100644
--- a/Documentation/vm/00-INDEX
+++ b/Documentation/vm/00-INDEX
@@ -14,6 +14,8 @@ hwpoison.txt
@@ -16,6 +16,8 @@ hwpoison.txt
- explains what hwpoison is
ksm.txt
- how to use the Kernel Samepage Merging feature.
@ -10,7 +10,7 @@ index 5481c8b..7141876 100644
+ - Introduction to Ultra KSM
locking
- info on how locking and synchronization is done in the Linux vm code.
map_hugetlb.c
numa
diff --git a/Documentation/vm/uksm.txt b/Documentation/vm/uksm.txt
new file mode 100644
index 0000000..9b2cb51
@ -75,7 +75,7 @@ index 0000000..9b2cb51
+2012-10-13 UKSM 0.1.2.1 Bug fixes.
+2012-12-31 UKSM 0.1.2.2 Minor bug fixes
diff --git a/fs/exec.c b/fs/exec.c
index 8875dd1..4b86536 100644
index 7ea097f..ae44a37 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -19,7 +19,7 @@
@ -95,7 +95,7 @@ index 8875dd1..4b86536 100644
#include <asm/uaccess.h>
#include <asm/mmu_context.h>
@@ -1143,7 +1144,7 @@ void setup_new_exec(struct linux_binprm * bprm)
@@ -1141,7 +1142,7 @@ void setup_new_exec(struct linux_binprm * bprm)
group */
current->self_exec_id++;
@ -104,7 +104,7 @@ index 8875dd1..4b86536 100644
flush_signal_handlers(current, 0);
do_close_on_exec(current->files);
}
@@ -1269,8 +1270,8 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
@@ -1267,8 +1268,8 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
return res;
}
@ -116,10 +116,10 @@ index 8875dd1..4b86536 100644
*
* This may be called multiple times for binary chains (scripts for example).
diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
index 59d85d6..948cab28 100644
index a77d2b2..d435567 100644
--- a/fs/proc/meminfo.c
+++ b/fs/proc/meminfo.c
@@ -88,6 +88,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
@@ -85,6 +85,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
"SUnreclaim: %8lu kB\n"
"KernelStack: %8lu kB\n"
"PageTables: %8lu kB\n"
@ -129,7 +129,7 @@ index 59d85d6..948cab28 100644
#ifdef CONFIG_QUICKLIST
"Quicklists: %8lu kB\n"
#endif
@@ -141,6 +144,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
@@ -138,6 +141,9 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
K(global_page_state(NR_SLAB_UNRECLAIMABLE)),
global_page_state(NR_KERNEL_STACK) * THREAD_SIZE / 1024,
K(global_page_state(NR_PAGETABLE)),
@ -140,7 +140,7 @@ index 59d85d6..948cab28 100644
K(quicklist_total_size()),
#endif
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
index f330d28..0bc3f46 100644
index db09234..b936093 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -502,12 +502,25 @@ extern void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn,
@ -247,10 +247,10 @@ index 45c9b6a..c7de7a7 100644
+
#endif /* __LINUX_KSM_H */
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index d9851ee..ecbb39c 100644
index 290901a..a6d4935 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -289,6 +289,9 @@ struct vm_area_struct {
@@ -307,6 +307,9 @@ struct vm_area_struct {
#ifdef CONFIG_NUMA
struct mempolicy *vm_policy; /* NUMA policy for the VMA */
#endif
@ -519,7 +519,7 @@ index 0000000..a644bca
+#endif /* !CONFIG_UKSM */
+#endif /* __LINUX_UKSM_H */
diff --git a/kernel/fork.c b/kernel/fork.c
index 086fe73..d774585 100644
index dfa736c..79a2187 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -394,7 +394,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
@ -541,7 +541,7 @@ index 086fe73..d774585 100644
retval = copy_page_range(mm, oldmm, mpnt);
diff --git a/lib/Makefile b/lib/Makefile
index f3bb2cb..f42bf2c 100644
index a459c31..9630dae 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -8,7 +8,7 @@ KBUILD_CFLAGS = $(subst -pg,,$(ORIG_CFLAGS))
@ -1036,10 +1036,10 @@ index 0000000..8d06329
+ return 0;
+}
diff --git a/mm/Kconfig b/mm/Kconfig
index 394838f..daf01b3 100644
index 723bbe0..da46fbd 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -315,6 +315,32 @@ config KSM
@@ -324,6 +324,32 @@ config KSM
See Documentation/vm/ksm.txt for more information: KSM is inactive
until a program has madvised that an area is MADV_MERGEABLE, and
root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
@ -1087,7 +1087,7 @@ index 305d10a..b5e5920 100644
obj-$(CONFIG_SLAB) += slab.o
obj-$(CONFIG_SLUB) += slub.o
diff --git a/mm/memory.c b/mm/memory.c
index d176154..5d30a95 100644
index 6768ce9..146ef7d 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -116,6 +116,27 @@ __setup("norandmaps", disable_randmaps);
@ -1126,7 +1126,7 @@ index d176154..5d30a95 100644
#if defined(SPLIT_RSS_COUNTING)
void sync_mm_rss(struct mm_struct *mm)
@@ -871,6 +893,11 @@ copy_one_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm,
@@ -870,6 +892,11 @@ copy_one_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm,
rss[MM_ANONPAGES]++;
else
rss[MM_FILEPAGES]++;
@ -1138,7 +1138,7 @@ index d176154..5d30a95 100644
}
out_set_pte:
@@ -1113,8 +1140,10 @@ again:
@@ -1112,8 +1139,10 @@ again:
ptent = ptep_get_and_clear_full(mm, addr, pte,
tlb->fullmm);
tlb_remove_tlb_entry(tlb, pte, addr);
@ -1150,7 +1150,7 @@ index d176154..5d30a95 100644
if (unlikely(details) && details->nonlinear_vma
&& linear_page_index(details->nonlinear_vma,
addr) != page->index) {
@@ -1705,7 +1734,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
@@ -1704,7 +1733,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
VM_BUG_ON(!!pages != !!(gup_flags & FOLL_GET));
@ -1159,7 +1159,7 @@ index d176154..5d30a95 100644
* Require read or write permissions.
* If FOLL_FORCE is set, we only require the "MAY" flags.
*/
@@ -1765,7 +1794,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
@@ -1764,7 +1793,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
page = vm_normal_page(vma, start, *pte);
if (!page) {
if (!(gup_flags & FOLL_DUMP) &&
@ -1168,7 +1168,7 @@ index d176154..5d30a95 100644
page = pte_page(*pte);
else {
pte_unmap(pte);
@@ -2580,8 +2609,10 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
@@ -2579,8 +2608,10 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
clear_page(kaddr);
kunmap_atomic(kaddr);
flush_dcache_page(dst);
@ -1180,7 +1180,7 @@ index d176154..5d30a95 100644
}
/*
@@ -2780,6 +2811,7 @@ gotten:
@@ -2787,6 +2818,7 @@ gotten:
new_page = alloc_zeroed_user_highpage_movable(vma, address);
if (!new_page)
goto oom;
@ -1188,7 +1188,7 @@ index d176154..5d30a95 100644
} else {
new_page = alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, address);
if (!new_page)
@@ -2805,8 +2837,11 @@ gotten:
@@ -2812,8 +2844,11 @@ gotten:
dec_mm_counter_fast(mm, MM_FILEPAGES);
inc_mm_counter_fast(mm, MM_ANONPAGES);
}
@ -1202,7 +1202,7 @@ index d176154..5d30a95 100644
entry = mk_pte(new_page, vma->vm_page_prot);
entry = maybe_mkwrite(pte_mkdirty(entry), vma);
diff --git a/mm/mmap.c b/mm/mmap.c
index 9d54851..6c8b834 100644
index 834b2d7..9211c9b 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -36,6 +36,7 @@
@ -1222,7 +1222,7 @@ index 9d54851..6c8b834 100644
* MAP_PRIVATE r: (no) no r: (yes) yes r: (no) yes r: (no) yes
* w: (no) no w: (no) no w: (copy) copy w: (no) no
* x: (no) no x: (no) yes x: (no) yes x: (yes) yes
@@ -252,6 +253,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
@@ -250,6 +251,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
if (vma->vm_file)
fput(vma->vm_file);
mpol_put(vma_policy(vma));
@ -1230,7 +1230,7 @@ index 9d54851..6c8b834 100644
kmem_cache_free(vm_area_cachep, vma);
return next;
}
@@ -707,9 +709,16 @@ int vma_adjust(struct vm_area_struct *vma, unsigned long start,
@@ -705,9 +707,16 @@ int vma_adjust(struct vm_area_struct *vma, unsigned long start,
long adjust_next = 0;
int remove_next = 0;
@ -1247,7 +1247,7 @@ index 9d54851..6c8b834 100644
if (end >= next->vm_end) {
/*
* vma expands, overlapping all the next, and
@@ -803,6 +812,7 @@ again: remove_next = 1 + (end > next->vm_end);
@@ -801,6 +810,7 @@ again: remove_next = 1 + (end > next->vm_end);
end_changed = true;
}
vma->vm_pgoff = pgoff;
@ -1255,7 +1255,7 @@ index 9d54851..6c8b834 100644
if (adjust_next) {
next->vm_start += adjust_next << PAGE_SHIFT;
next->vm_pgoff += adjust_next;
@@ -873,16 +883,22 @@ again: remove_next = 1 + (end > next->vm_end);
@@ -871,16 +881,22 @@ again: remove_next = 1 + (end > next->vm_end);
* up the code too much to do both in one go.
*/
next = vma->vm_next;
@ -1281,7 +1281,7 @@ index 9d54851..6c8b834 100644
validate_mm(mm);
return 0;
@@ -1249,6 +1265,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
@@ -1247,6 +1263,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
@ -1291,7 +1291,7 @@ index 9d54851..6c8b834 100644
if (flags & MAP_LOCKED)
if (!can_do_mlock())
return -EPERM;
@@ -1593,6 +1612,7 @@ munmap_back:
@@ -1591,6 +1610,7 @@ munmap_back:
if (vm_flags & VM_DENYWRITE)
allow_write_access(file);
file = vma->vm_file;
@ -1299,7 +1299,7 @@ index 9d54851..6c8b834 100644
out:
perf_event_mmap(vma);
@@ -1629,6 +1649,7 @@ unmap_and_free_vma:
@@ -1627,6 +1647,7 @@ unmap_and_free_vma:
unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
charged = 0;
free_vma:
@ -1307,7 +1307,7 @@ index 9d54851..6c8b834 100644
kmem_cache_free(vm_area_cachep, vma);
unacct_error:
if (charged)
@@ -1877,7 +1898,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
@@ -1875,7 +1896,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
info.align_mask = 0;
return vm_unmapped_area(&info);
}
@ -1316,7 +1316,7 @@ index 9d54851..6c8b834 100644
/*
* This mmap-allocator allocates new areas top-down from below the
@@ -2423,6 +2444,8 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
@@ -2421,6 +2442,8 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
else
err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
@ -1325,7 +1325,7 @@ index 9d54851..6c8b834 100644
/* Success. */
if (!err)
return 0;
@@ -2588,6 +2611,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
@@ -2586,6 +2609,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
return addr;
flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
@ -1333,7 +1333,7 @@ index 9d54851..6c8b834 100644
error = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED);
if (error & ~PAGE_MASK)
@@ -2655,6 +2679,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
@@ -2653,6 +2677,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
vma->vm_flags = flags;
vma->vm_page_prot = vm_get_page_prot(flags);
vma_link(mm, vma, prev, rb_link, rb_parent);
@ -1341,7 +1341,7 @@ index 9d54851..6c8b834 100644
out:
perf_event_mmap(vma);
mm->total_vm += len >> PAGE_SHIFT;
@@ -2690,6 +2715,12 @@ void exit_mmap(struct mm_struct *mm)
@@ -2688,6 +2713,12 @@ void exit_mmap(struct mm_struct *mm)
/* mm's last user has gone, and its about to be pulled down */
mmu_notifier_release(mm);
@ -1354,7 +1354,7 @@ index 9d54851..6c8b834 100644
if (mm->locked_vm) {
vma = mm->mmap;
while (vma) {
@@ -2726,6 +2757,11 @@ void exit_mmap(struct mm_struct *mm)
@@ -2724,6 +2755,11 @@ void exit_mmap(struct mm_struct *mm)
}
vm_unacct_memory(nr_accounted);
@ -1363,10 +1363,10 @@ index 9d54851..6c8b834 100644
+ mm->mmap_cache = NULL;
+ up_write(&mm->mmap_sem);
+
WARN_ON(mm->nr_ptes > (FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT);
WARN_ON(atomic_long_read(&mm->nr_ptes) >
(FIRST_USER_ADDRESS+PMD_SIZE-1)>>PMD_SHIFT);
}
@@ -2833,6 +2869,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
@@ -2832,6 +2868,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
new_vma->vm_ops->open(new_vma);
vma_link(mm, new_vma, prev, rb_link, rb_parent);
*need_rmap_locks = false;
@ -1374,7 +1374,7 @@ index 9d54851..6c8b834 100644
}
}
return new_vma;
@@ -2934,10 +2971,10 @@ int install_special_mapping(struct mm_struct *mm,
@@ -2933,10 +2970,10 @@ int install_special_mapping(struct mm_struct *mm,
ret = insert_vm_struct(mm, vma);
if (ret)
goto out;
@ -1387,10 +1387,10 @@ index 9d54851..6c8b834 100644
return 0;
diff --git a/mm/rmap.c b/mm/rmap.c
index fd3ee7a..6c07ff9 100644
index 068522d..7552b6d 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -970,9 +970,9 @@ void page_move_anon_rmap(struct page *page,
@@ -971,9 +971,9 @@ void page_move_anon_rmap(struct page *page,
/**
* __page_set_anon_rmap - set up new anonymous rmap
@ -7049,7 +7049,7 @@ index 0000000..794867a
+#endif
+
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 9bb3145..885419c 100644
index 7249614..3cbe5ba 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -772,6 +772,9 @@ const char * const vmstat_text[] = {