Merge branch 'akpm' (Andrew's patch-bomb)
* emailed from Andrew Morton <akpm@linux-foundation.org>: (21 patches) mm/memblock: fix overlapping allocation when doubling reserved array c/r: prctl: Move PR_GET_TID_ADDRESS to a proper place pidns: find_new_reaper() can no longer switch to init_pid_ns.child_reaper pidns: guarantee that the pidns init will be the last pidns process reaped fault-inject: avoid call to random32() if fault injection is disabled Viresh has moved get_maintainer: Fix --help warning mm/memory.c: fix kernel-doc warnings mm: fix kernel-doc warnings mm: correctly synchronize rss-counters at exit/exec mm, thp: print useful information when mmap_sem is unlocked in zap_pmd_range h8300: use the declarations provided by <asm/sections.h> h8300: fix use of extinct _sbss and _ebss xtensa: use the declarations provided by <asm/sections.h> xtensa: use "test -e" instead of bashism "test -a" xtensa: replace xtensa-specific _f{data,text} by _s{data,text} memcg: fix use_hierarchy css_is_ancestor oops regression mm, oom: fix and cleanup oom score calculations nilfs2: ensure proper cache clearing for gc-inodes thp: avoid atomic64_read in pmd_read_atomic for 32bit PAE ...
This commit is contained in:
commit
a2a2609c97
1
.mailmap
1
.mailmap
|
@ -111,6 +111,7 @@ Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
|
|||
Uwe Kleine-König <ukl@pengutronix.de>
|
||||
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
|
||||
Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
|
||||
Viresh Kumar <viresh.linux@gmail.com> <viresh.kumar@st.com>
|
||||
Takashi YOSHII <takashi.yoshii.zj@renesas.com>
|
||||
Yusuke Goda <goda.yusuke@renesas.com>
|
||||
Gustavo Padovan <gustavo@las.ic.unicamp.br>
|
||||
|
|
|
@ -60,4 +60,4 @@ Introduction
|
|||
Document Author
|
||||
---------------
|
||||
|
||||
Viresh Kumar <viresh.kumar@st.com>, (c) 2010-2012 ST Microelectronics
|
||||
Viresh Kumar <viresh.linux@gmail.com>, (c) 2010-2012 ST Microelectronics
|
||||
|
|
18
MAINTAINERS
18
MAINTAINERS
|
@ -579,7 +579,7 @@ F: drivers/net/appletalk/
|
|||
F: net/appletalk/
|
||||
|
||||
ARASAN COMPACT FLASH PATA CONTROLLER
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
L: linux-ide@vger.kernel.org
|
||||
S: Maintained
|
||||
F: include/linux/pata_arasan_cf_data.h
|
||||
|
@ -5296,7 +5296,7 @@ S: Maintained
|
|||
F: drivers/pinctrl/
|
||||
|
||||
PIN CONTROLLER - ST SPEAR
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
|
@ -5873,7 +5873,7 @@ S: Maintained
|
|||
F: drivers/tty/serial
|
||||
|
||||
SYNOPSYS DESIGNWARE DMAC DRIVER
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
S: Maintained
|
||||
F: include/linux/dw_dmac.h
|
||||
F: drivers/dma/dw_dmac_regs.h
|
||||
|
@ -6021,7 +6021,7 @@ S: Maintained
|
|||
F: drivers/mmc/host/sdhci-s3c.c
|
||||
|
||||
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-mmc@vger.kernel.org
|
||||
S: Maintained
|
||||
|
@ -6377,7 +6377,7 @@ S: Maintained
|
|||
F: include/linux/compiler.h
|
||||
|
||||
SPEAR PLATFORM SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
|
@ -6386,7 +6386,7 @@ S: Maintained
|
|||
F: arch/arm/plat-spear/
|
||||
|
||||
SPEAR13XX MACHINE SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
|
@ -6395,7 +6395,7 @@ S: Maintained
|
|||
F: arch/arm/mach-spear13xx/
|
||||
|
||||
SPEAR3XX MACHINE SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
|
@ -6406,7 +6406,7 @@ F: arch/arm/mach-spear3xx/
|
|||
SPEAR6XX MACHINE SUPPORT
|
||||
M: Rajeev Kumar <rajeev-dlh.kumar@st.com>
|
||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
|
@ -6414,7 +6414,7 @@ S: Maintained
|
|||
F: arch/arm/mach-spear6xx/
|
||||
|
||||
SPEAR CLOCK FRAMEWORK SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||
L: spear-devel@list.st.com
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
W: http://www.st.com/spear
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr1310 Evaluation Baord
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for all SPEAr1310 SoCs
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr1340 Evaluation Baord
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for all SPEAr1340 SoCs
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for all SPEAr13xx SoCs
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr300 Evaluation Baord
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr300 SoC
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr310 Evaluation Baord
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr310 SoC
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr320 Evaluation Baord
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for SPEAr320 SoC
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* DTS file for all SPEAr3xx SoCs
|
||||
*
|
||||
* Copyright 2012 Viresh Kumar <viresh.kumar@st.com>
|
||||
* Copyright 2012 Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* The code contained herein is licensed under the GNU General Public
|
||||
* License. You may obtain a copy of the GNU General Public License
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* ARM PrimeXsys System Controller SP810 header file
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Debugging macro include header spear13xx machine family
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* DMA information for SPEAr13xx machine family
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* spear13xx machine family generic header file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* GPIO macros for SPEAr13xx machine family
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* IRQ helper macros for spear13xx machine family
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* spear13xx Machine family specific definition
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr3XX machine family specific timex definitions
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Serial port stubs for kernel decompress status messages
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr1310 machine source file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr1340 machine source file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr13XX machines common source file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Debugging macro include header spear3xx machine family
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar<viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr3XX machine family generic header file
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar<viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* GPIO macros for SPEAr3xx machine family
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar<viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* IRQ helper macros for SPEAr3xx machine family
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Miscellaneous registers definitions for SPEAr3xx machine family
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr3xx Machine family specific definition
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr3XX machine family specific timex definitions
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Serial port stubs for kernel decompress status messages
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr300 machine source file
|
||||
*
|
||||
* Copyright (C) 2009-2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr310 machine source file
|
||||
*
|
||||
* Copyright (C) 2009-2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr320 machine source file
|
||||
*
|
||||
* Copyright (C) 2009-2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr3XX machines common source file
|
||||
*
|
||||
* Copyright (C) 2009-2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* GPIO macros for SPEAr6xx machine family
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Miscellaneous registers definitions for SPEAr6xx machine family
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Debugging macro include header for spear platform
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* DMAC pl080 definitions for SPEAr platform
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr platform shared irq layer header file
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr platform specific timex definitions
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Serial port stubs for kernel decompress status messages
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* DMAC pl080 definitions for SPEAr platform
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr platform specific restart functions
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr platform shared irq layer source file
|
||||
*
|
||||
* Copyright (C) 2009 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <asm/setup.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/sections.h>
|
||||
|
||||
#if defined(__H8300H__)
|
||||
#define CPU "H8/300H"
|
||||
|
@ -54,7 +55,6 @@ unsigned long memory_end;
|
|||
|
||||
char __initdata command_line[COMMAND_LINE_SIZE];
|
||||
|
||||
extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end;
|
||||
extern int _ramstart, _ramend;
|
||||
extern char _target_name[];
|
||||
extern void h8300_gpio_init(void);
|
||||
|
@ -119,9 +119,9 @@ void __init setup_arch(char **cmdline_p)
|
|||
memory_end = CONFIG_BLKDEV_RESERVE_ADDRESS;
|
||||
#endif
|
||||
|
||||
init_mm.start_code = (unsigned long) &_stext;
|
||||
init_mm.end_code = (unsigned long) &_etext;
|
||||
init_mm.end_data = (unsigned long) &_edata;
|
||||
init_mm.start_code = (unsigned long) _stext;
|
||||
init_mm.end_code = (unsigned long) _etext;
|
||||
init_mm.end_data = (unsigned long) _edata;
|
||||
init_mm.brk = (unsigned long) 0;
|
||||
|
||||
#if (defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)) && defined(CONFIG_GDB_MAGICPRINT)
|
||||
|
@ -134,15 +134,12 @@ void __init setup_arch(char **cmdline_p)
|
|||
printk(KERN_INFO "H8/300 series support by Yoshinori Sato <ysato@users.sourceforge.jp>\n");
|
||||
|
||||
#ifdef DEBUG
|
||||
printk(KERN_DEBUG "KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x "
|
||||
"BSS=0x%06x-0x%06x\n", (int) &_stext, (int) &_etext,
|
||||
(int) &_sdata, (int) &_edata,
|
||||
(int) &_sbss, (int) &_ebss);
|
||||
printk(KERN_DEBUG "KERNEL -> ROMFS=0x%06x-0x%06x MEM=0x%06x-0x%06x "
|
||||
"STACK=0x%06x-0x%06x\n",
|
||||
(int) &_ebss, (int) memory_start,
|
||||
(int) memory_start, (int) memory_end,
|
||||
(int) memory_end, (int) &_ramend);
|
||||
printk(KERN_DEBUG "KERNEL -> TEXT=0x%p-0x%p DATA=0x%p-0x%p "
|
||||
"BSS=0x%p-0x%p\n", _stext, _etext, _sdata, _edata, __bss_start,
|
||||
__bss_stop);
|
||||
printk(KERN_DEBUG "KERNEL -> ROMFS=0x%p-0x%06lx MEM=0x%06lx-0x%06lx "
|
||||
"STACK=0x%06lx-0x%p\n", __bss_stop, memory_start, memory_start,
|
||||
memory_end, memory_end, &_ramend);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DEFAULT_CMDLINE
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include <asm/segment.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/sections.h>
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
|
@ -123,7 +124,6 @@ void __init mem_init(void)
|
|||
int codek = 0, datak = 0, initk = 0;
|
||||
/* DAVIDM look at setup memory map generically with reserved area */
|
||||
unsigned long tmp;
|
||||
extern char _etext, _stext, _sdata, _ebss, __init_begin, __init_end;
|
||||
extern unsigned long _ramend, _ramstart;
|
||||
unsigned long len = &_ramend - &_ramstart;
|
||||
unsigned long start_mem = memory_start; /* DAVIDM - these must start at end of kernel */
|
||||
|
@ -142,9 +142,9 @@ void __init mem_init(void)
|
|||
/* this will put all memory onto the freelists */
|
||||
totalram_pages = free_all_bootmem();
|
||||
|
||||
codek = (&_etext - &_stext) >> 10;
|
||||
datak = (&_ebss - &_sdata) >> 10;
|
||||
initk = (&__init_begin - &__init_end) >> 10;
|
||||
codek = (_etext - _stext) >> 10;
|
||||
datak = (__bss_stop - _sdata) >> 10;
|
||||
initk = (__init_begin - __init_end) >> 10;
|
||||
|
||||
tmp = nr_free_pages() << PAGE_SHIFT;
|
||||
printk(KERN_INFO "Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n",
|
||||
|
@ -178,22 +178,21 @@ free_initmem(void)
|
|||
{
|
||||
#ifdef CONFIG_RAMKERNEL
|
||||
unsigned long addr;
|
||||
extern char __init_begin, __init_end;
|
||||
/*
|
||||
* the following code should be cool even if these sections
|
||||
* are not page aligned.
|
||||
*/
|
||||
addr = PAGE_ALIGN((unsigned long)(&__init_begin));
|
||||
addr = PAGE_ALIGN((unsigned long)(__init_begin));
|
||||
/* next to check that the page we free is not a partial page */
|
||||
for (; addr + PAGE_SIZE < (unsigned long)(&__init_end); addr +=PAGE_SIZE) {
|
||||
for (; addr + PAGE_SIZE < (unsigned long)__init_end; addr +=PAGE_SIZE) {
|
||||
ClearPageReserved(virt_to_page(addr));
|
||||
init_page_count(virt_to_page(addr));
|
||||
free_page(addr);
|
||||
totalram_pages++;
|
||||
}
|
||||
printk(KERN_INFO "Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n",
|
||||
(addr - PAGE_ALIGN((long) &__init_begin)) >> 10,
|
||||
(int)(PAGE_ALIGN((unsigned long)(&__init_begin))),
|
||||
(addr - PAGE_ALIGN((long) __init_begin)) >> 10,
|
||||
(int)(PAGE_ALIGN((unsigned long)__init_begin)),
|
||||
(int)(addr - PAGE_SIZE));
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -47,16 +47,26 @@ static inline void native_set_pte(pte_t *ptep, pte_t pte)
|
|||
* they can run pmd_offset_map_lock or pmd_trans_huge or other pmd
|
||||
* operations.
|
||||
*
|
||||
* Without THP if the mmap_sem is hold for reading, the
|
||||
* pmd can only transition from null to not null while pmd_read_atomic runs.
|
||||
* So there's no need of literally reading it atomically.
|
||||
* Without THP if the mmap_sem is hold for reading, the pmd can only
|
||||
* transition from null to not null while pmd_read_atomic runs. So
|
||||
* we can always return atomic pmd values with this function.
|
||||
*
|
||||
* With THP if the mmap_sem is hold for reading, the pmd can become
|
||||
* THP or null or point to a pte (and in turn become "stable") at any
|
||||
* time under pmd_read_atomic, so it's mandatory to read it atomically
|
||||
* with cmpxchg8b.
|
||||
* trans_huge or none or point to a pte (and in turn become "stable")
|
||||
* at any time under pmd_read_atomic. We could read it really
|
||||
* atomically here with a atomic64_read for the THP enabled case (and
|
||||
* it would be a whole lot simpler), but to avoid using cmpxchg8b we
|
||||
* only return an atomic pmdval if the low part of the pmdval is later
|
||||
* found stable (i.e. pointing to a pte). And we're returning a none
|
||||
* pmdval if the low part of the pmd is none. In some cases the high
|
||||
* and low part of the pmdval returned may not be consistent if THP is
|
||||
* enabled (the low part may point to previously mapped hugepage,
|
||||
* while the high part may point to a more recently mapped hugepage),
|
||||
* but pmd_none_or_trans_huge_or_clear_bad() only needs the low part
|
||||
* of the pmd to be read atomically to decide if the pmd is unstable
|
||||
* or not, with the only exception of when the low part of the pmd is
|
||||
* zero in which case we return a none pmd.
|
||||
*/
|
||||
#ifndef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
|
||||
{
|
||||
pmdval_t ret;
|
||||
|
@ -74,12 +84,6 @@ static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
|
|||
|
||||
return (pmd_t) { ret };
|
||||
}
|
||||
#else /* CONFIG_TRANSPARENT_HUGEPAGE */
|
||||
static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
|
||||
{
|
||||
return (pmd_t) { atomic64_read((atomic64_t *)pmdp) };
|
||||
}
|
||||
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
|
||||
|
||||
static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
|
||||
{
|
||||
|
|
|
@ -68,8 +68,8 @@ endif
|
|||
|
||||
# Only build variant and/or platform if it includes a Makefile
|
||||
|
||||
buildvar := $(shell test -a $(srctree)/arch/xtensa/variants/$(VARIANT)/Makefile && echo arch/xtensa/variants/$(VARIANT)/)
|
||||
buildplf := $(shell test -a $(srctree)/arch/xtensa/platforms/$(PLATFORM)/Makefile && echo arch/xtensa/platforms/$(PLATFORM)/)
|
||||
buildvar := $(shell test -e $(srctree)/arch/xtensa/variants/$(VARIANT)/Makefile && echo arch/xtensa/variants/$(VARIANT)/)
|
||||
buildplf := $(shell test -e $(srctree)/arch/xtensa/platforms/$(PLATFORM)/Makefile && echo arch/xtensa/platforms/$(PLATFORM)/)
|
||||
|
||||
# Find libgcc.a
|
||||
|
||||
|
|
|
@ -83,7 +83,6 @@ SECTIONS
|
|||
|
||||
_text = .;
|
||||
_stext = .;
|
||||
_ftext = .;
|
||||
|
||||
.text :
|
||||
{
|
||||
|
@ -112,7 +111,7 @@ SECTIONS
|
|||
EXCEPTION_TABLE(16)
|
||||
/* Data section */
|
||||
|
||||
_fdata = .;
|
||||
_sdata = .;
|
||||
RW_DATA_SECTION(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
|
||||
_edata = .;
|
||||
|
||||
|
|
|
@ -26,11 +26,7 @@
|
|||
|
||||
#include <asm/bootparam.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/* References to section boundaries */
|
||||
|
||||
extern char _ftext, _etext, _fdata, _edata, _rodata_end;
|
||||
extern char __init_begin, __init_end;
|
||||
#include <asm/sections.h>
|
||||
|
||||
/*
|
||||
* mem_reserve(start, end, must_exist)
|
||||
|
@ -197,9 +193,9 @@ void __init mem_init(void)
|
|||
reservedpages++;
|
||||
}
|
||||
|
||||
codesize = (unsigned long) &_etext - (unsigned long) &_ftext;
|
||||
datasize = (unsigned long) &_edata - (unsigned long) &_fdata;
|
||||
initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
|
||||
codesize = (unsigned long) _etext - (unsigned long) _stext;
|
||||
datasize = (unsigned long) _edata - (unsigned long) _sdata;
|
||||
initsize = (unsigned long) __init_end - (unsigned long) __init_begin;
|
||||
|
||||
printk("Memory: %luk/%luk available (%ldk kernel code, %ldk reserved, "
|
||||
"%ldk data, %ldk init %ldk highmem)\n",
|
||||
|
@ -237,7 +233,7 @@ void free_initrd_mem(unsigned long start, unsigned long end)
|
|||
|
||||
void free_initmem(void)
|
||||
{
|
||||
free_reserved_mem(&__init_begin, &__init_end);
|
||||
printk("Freeing unused kernel memory: %dk freed\n",
|
||||
(&__init_end - &__init_begin) >> 10);
|
||||
free_reserved_mem(__init_begin, __init_end);
|
||||
printk("Freeing unused kernel memory: %zuk freed\n",
|
||||
(__init_end - __init_begin) >> 10);
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Arasan Compact Flash host controller source file
|
||||
*
|
||||
* Copyright (C) 2011 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
@ -959,7 +959,7 @@ static struct platform_driver arasan_cf_driver = {
|
|||
|
||||
module_platform_driver(arasan_cf_driver);
|
||||
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_DESCRIPTION("Arasan ATA Compact Flash driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:" DRIVER_NAME);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Clock framework definitions for SPEAr platform
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr1310 machine clock framework source file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SPEAr1340 machine clock framework source file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* SPEAr3xx machines clock framework source file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* SPEAr6xx machines clock framework source file
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -1626,4 +1626,4 @@ module_exit(dw_exit);
|
|||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DESCRIPTION("Synopsys DesignWare DMA Controller driver");
|
||||
MODULE_AUTHOR("Haavard Skinnemoen (Atmel)");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*
|
||||
* License Terms: GNU General Public License, version 2
|
||||
* Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
|
||||
* Author: Viresh Kumar <viresh.kumar@st.com> for ST Microelectronics
|
||||
* Author: Viresh Kumar <viresh.linux@gmail.com> for ST Microelectronics
|
||||
*/
|
||||
|
||||
#include <linux/i2c.h>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Copyright (C) ST Microelectronics SA 2011
|
||||
*
|
||||
* License Terms: GNU General Public License, version 2
|
||||
* Author: Viresh Kumar <viresh.kumar@st.com> for ST Microelectronics
|
||||
* Author: Viresh Kumar <viresh.linux@gmail.com> for ST Microelectronics
|
||||
*/
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
|
@ -146,4 +146,4 @@ module_exit(stmpe_exit);
|
|||
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DESCRIPTION("STMPE MFD SPI Interface Driver");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Support of SDHCI platform devices for spear soc family
|
||||
*
|
||||
* Copyright (C) 2010 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* Inspired by sdhci-pltfm.c
|
||||
*
|
||||
|
@ -289,5 +289,5 @@ static struct platform_driver sdhci_driver = {
|
|||
module_platform_driver(sdhci_driver);
|
||||
|
||||
MODULE_DESCRIPTION("SPEAr Secure Digital Host Controller Interface driver");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver for the ST Microelectronics SPEAr pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* Inspired from:
|
||||
* - U300 Pinctl drivers
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver header file for the ST Microelectronics SPEAr pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver for the ST Microelectronics SPEAr1310 pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
@ -2192,7 +2192,7 @@ static void __exit spear1310_pinctrl_exit(void)
|
|||
}
|
||||
module_exit(spear1310_pinctrl_exit);
|
||||
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_DESCRIPTION("ST Microelectronics SPEAr1310 pinctrl driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DEVICE_TABLE(of, spear1310_pinctrl_of_match);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver for the ST Microelectronics SPEAr1340 pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
@ -1983,7 +1983,7 @@ static void __exit spear1340_pinctrl_exit(void)
|
|||
}
|
||||
module_exit(spear1340_pinctrl_exit);
|
||||
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_DESCRIPTION("ST Microelectronics SPEAr1340 pinctrl driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DEVICE_TABLE(of, spear1340_pinctrl_of_match);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver for the ST Microelectronics SPEAr300 pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
@ -702,7 +702,7 @@ static void __exit spear300_pinctrl_exit(void)
|
|||
}
|
||||
module_exit(spear300_pinctrl_exit);
|
||||
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_DESCRIPTION("ST Microelectronics SPEAr300 pinctrl driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DEVICE_TABLE(of, spear300_pinctrl_of_match);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver for the ST Microelectronics SPEAr310 pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
@ -425,7 +425,7 @@ static void __exit spear310_pinctrl_exit(void)
|
|||
}
|
||||
module_exit(spear310_pinctrl_exit);
|
||||
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_DESCRIPTION("ST Microelectronics SPEAr310 pinctrl driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DEVICE_TABLE(of, SPEAr310_pinctrl_of_match);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver for the ST Microelectronics SPEAr320 pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
@ -3462,7 +3462,7 @@ static void __exit spear320_pinctrl_exit(void)
|
|||
}
|
||||
module_exit(spear320_pinctrl_exit);
|
||||
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_DESCRIPTION("ST Microelectronics SPEAr320 pinctrl driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_DEVICE_TABLE(of, spear320_pinctrl_of_match);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Driver for the ST Microelectronics SPEAr3xx pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Header file for the ST Microelectronics SPEAr3xx pinmux
|
||||
*
|
||||
* Copyright (C) 2012 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Watchdog driver for ARM SP805 watchdog module
|
||||
*
|
||||
* Copyright (C) 2010 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2 or later. This program is licensed "as is" without any
|
||||
|
@ -331,6 +331,6 @@ static struct amba_driver sp805_wdt_driver = {
|
|||
|
||||
module_amba_driver(sp805_wdt_driver);
|
||||
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.kumar@st.com>");
|
||||
MODULE_AUTHOR("Viresh Kumar <viresh.linux@gmail.com>");
|
||||
MODULE_DESCRIPTION("ARM SP805 Watchdog Driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
|
|
@ -819,10 +819,10 @@ static int exec_mmap(struct mm_struct *mm)
|
|||
/* Notify parent that we're no longer interested in the old VM */
|
||||
tsk = current;
|
||||
old_mm = current->mm;
|
||||
sync_mm_rss(old_mm);
|
||||
mm_release(tsk, old_mm);
|
||||
|
||||
if (old_mm) {
|
||||
sync_mm_rss(old_mm);
|
||||
/*
|
||||
* Make sure that if there is a core dump in progress
|
||||
* for the old mm, we get out and die instead of going
|
||||
|
|
|
@ -191,6 +191,8 @@ void nilfs_remove_all_gcinodes(struct the_nilfs *nilfs)
|
|||
while (!list_empty(head)) {
|
||||
ii = list_first_entry(head, struct nilfs_inode_info, i_dirty);
|
||||
list_del_init(&ii->i_dirty);
|
||||
truncate_inode_pages(&ii->vfs_inode.i_data, 0);
|
||||
nilfs_btnode_cache_clear(&ii->i_btnode_cache);
|
||||
iput(&ii->vfs_inode);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2309,6 +2309,8 @@ nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head)
|
|||
if (!test_bit(NILFS_I_UPDATED, &ii->i_state))
|
||||
continue;
|
||||
list_del_init(&ii->i_dirty);
|
||||
truncate_inode_pages(&ii->vfs_inode.i_data, 0);
|
||||
nilfs_btnode_cache_clear(&ii->i_btnode_cache);
|
||||
iput(&ii->vfs_inode);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -484,6 +484,16 @@ static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
|
|||
/*
|
||||
* The barrier will stabilize the pmdval in a register or on
|
||||
* the stack so that it will stop changing under the code.
|
||||
*
|
||||
* When CONFIG_TRANSPARENT_HUGEPAGE=y on x86 32bit PAE,
|
||||
* pmd_read_atomic is allowed to return a not atomic pmdval
|
||||
* (for example pointing to an hugepage that has never been
|
||||
* mapped in the pmd). The below checks will only care about
|
||||
* the low part of the pmd with 32bit PAE x86 anyway, with the
|
||||
* exception of pmd_none(). So the important thing is that if
|
||||
* the low part of the pmd is found null, the high part will
|
||||
* be also null or the pmd_none() check below would be
|
||||
* confused.
|
||||
*/
|
||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
barrier();
|
||||
|
|
|
@ -57,8 +57,18 @@ struct page {
|
|||
};
|
||||
|
||||
union {
|
||||
#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \
|
||||
defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE)
|
||||
/* Used for cmpxchg_double in slub */
|
||||
unsigned long counters;
|
||||
#else
|
||||
/*
|
||||
* Keep _count separate from slub cmpxchg_double data.
|
||||
* As the rest of the double word is protected by
|
||||
* slab_lock but _count is not.
|
||||
*/
|
||||
unsigned counters;
|
||||
#endif
|
||||
|
||||
struct {
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* SDHCI declarations specific to ST SPEAr platform
|
||||
*
|
||||
* Copyright (C) 2010 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* Arasan Compact Flash host controller platform data header file
|
||||
*
|
||||
* Copyright (C) 2011 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
@ -72,6 +72,18 @@ static void __unhash_process(struct task_struct *p, bool group_dead)
|
|||
list_del_rcu(&p->tasks);
|
||||
list_del_init(&p->sibling);
|
||||
__this_cpu_dec(process_counts);
|
||||
/*
|
||||
* If we are the last child process in a pid namespace to be
|
||||
* reaped, notify the reaper sleeping zap_pid_ns_processes().
|
||||
*/
|
||||
if (IS_ENABLED(CONFIG_PID_NS)) {
|
||||
struct task_struct *parent = p->real_parent;
|
||||
|
||||
if ((task_active_pid_ns(parent)->child_reaper == parent) &&
|
||||
list_empty(&parent->children) &&
|
||||
(parent->flags & PF_EXITING))
|
||||
wake_up_process(parent);
|
||||
}
|
||||
}
|
||||
list_del_rcu(&p->thread_group);
|
||||
}
|
||||
|
@ -643,6 +655,7 @@ static void exit_mm(struct task_struct * tsk)
|
|||
mm_release(tsk, mm);
|
||||
if (!mm)
|
||||
return;
|
||||
sync_mm_rss(mm);
|
||||
/*
|
||||
* Serialize with any possible pending coredump.
|
||||
* We must hold mmap_sem around checking core_state
|
||||
|
@ -719,12 +732,6 @@ static struct task_struct *find_new_reaper(struct task_struct *father)
|
|||
|
||||
zap_pid_ns_processes(pid_ns);
|
||||
write_lock_irq(&tasklist_lock);
|
||||
/*
|
||||
* We can not clear ->child_reaper or leave it alone.
|
||||
* There may by stealth EXIT_DEAD tasks on ->children,
|
||||
* forget_original_parent() must move them somewhere.
|
||||
*/
|
||||
pid_ns->child_reaper = init_pid_ns.child_reaper;
|
||||
} else if (father->signal->has_child_subreaper) {
|
||||
struct task_struct *reaper;
|
||||
|
||||
|
|
|
@ -184,11 +184,31 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns)
|
|||
}
|
||||
read_unlock(&tasklist_lock);
|
||||
|
||||
/* Firstly reap the EXIT_ZOMBIE children we may have. */
|
||||
do {
|
||||
clear_thread_flag(TIF_SIGPENDING);
|
||||
rc = sys_wait4(-1, NULL, __WALL, NULL);
|
||||
} while (rc != -ECHILD);
|
||||
|
||||
/*
|
||||
* sys_wait4() above can't reap the TASK_DEAD children.
|
||||
* Make sure they all go away, see __unhash_process().
|
||||
*/
|
||||
for (;;) {
|
||||
bool need_wait = false;
|
||||
|
||||
read_lock(&tasklist_lock);
|
||||
if (!list_empty(¤t->children)) {
|
||||
__set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
need_wait = true;
|
||||
}
|
||||
read_unlock(&tasklist_lock);
|
||||
|
||||
if (!need_wait)
|
||||
break;
|
||||
schedule();
|
||||
}
|
||||
|
||||
if (pid_ns->reboot)
|
||||
current->signal->group_exit_code = pid_ns->reboot;
|
||||
|
||||
|
|
|
@ -2127,9 +2127,6 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
|
|||
else
|
||||
return -EINVAL;
|
||||
break;
|
||||
case PR_GET_TID_ADDRESS:
|
||||
error = prctl_get_tid_address(me, (int __user **)arg2);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
@ -2147,6 +2144,9 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
|
|||
case PR_SET_MM:
|
||||
error = prctl_set_mm(arg2, arg3, arg4, arg5);
|
||||
break;
|
||||
case PR_GET_TID_ADDRESS:
|
||||
error = prctl_get_tid_address(me, (int __user **)arg2);
|
||||
break;
|
||||
case PR_SET_CHILD_SUBREAPER:
|
||||
me->signal->is_child_subreaper = !!arg2;
|
||||
error = 0;
|
||||
|
|
|
@ -101,6 +101,10 @@ static inline bool fail_stacktrace(struct fault_attr *attr)
|
|||
|
||||
bool should_fail(struct fault_attr *attr, ssize_t size)
|
||||
{
|
||||
/* No need to check any other properties if the probability is 0 */
|
||||
if (attr->probability == 0)
|
||||
return false;
|
||||
|
||||
if (attr->task_filter && !fail_task(attr, current))
|
||||
return false;
|
||||
|
||||
|
|
|
@ -184,7 +184,24 @@ static void __init_memblock memblock_remove_region(struct memblock_type *type, u
|
|||
}
|
||||
}
|
||||
|
||||
static int __init_memblock memblock_double_array(struct memblock_type *type)
|
||||
/**
|
||||
* memblock_double_array - double the size of the memblock regions array
|
||||
* @type: memblock type of the regions array being doubled
|
||||
* @new_area_start: starting address of memory range to avoid overlap with
|
||||
* @new_area_size: size of memory range to avoid overlap with
|
||||
*
|
||||
* Double the size of the @type regions array. If memblock is being used to
|
||||
* allocate memory for a new reserved regions array and there is a previously
|
||||
* allocated memory range [@new_area_start,@new_area_start+@new_area_size]
|
||||
* waiting to be reserved, ensure the memory used by the new array does
|
||||
* not overlap.
|
||||
*
|
||||
* RETURNS:
|
||||
* 0 on success, -1 on failure.
|
||||
*/
|
||||
static int __init_memblock memblock_double_array(struct memblock_type *type,
|
||||
phys_addr_t new_area_start,
|
||||
phys_addr_t new_area_size)
|
||||
{
|
||||
struct memblock_region *new_array, *old_array;
|
||||
phys_addr_t old_size, new_size, addr;
|
||||
|
@ -222,7 +239,18 @@ static int __init_memblock memblock_double_array(struct memblock_type *type)
|
|||
new_array = kmalloc(new_size, GFP_KERNEL);
|
||||
addr = new_array ? __pa(new_array) : 0;
|
||||
} else {
|
||||
addr = memblock_find_in_range(0, MEMBLOCK_ALLOC_ACCESSIBLE, new_size, sizeof(phys_addr_t));
|
||||
/* only exclude range when trying to double reserved.regions */
|
||||
if (type != &memblock.reserved)
|
||||
new_area_start = new_area_size = 0;
|
||||
|
||||
addr = memblock_find_in_range(new_area_start + new_area_size,
|
||||
memblock.current_limit,
|
||||
new_size, sizeof(phys_addr_t));
|
||||
if (!addr && new_area_size)
|
||||
addr = memblock_find_in_range(0,
|
||||
min(new_area_start, memblock.current_limit),
|
||||
new_size, sizeof(phys_addr_t));
|
||||
|
||||
new_array = addr ? __va(addr) : 0;
|
||||
}
|
||||
if (!addr) {
|
||||
|
@ -399,7 +427,7 @@ repeat:
|
|||
*/
|
||||
if (!insert) {
|
||||
while (type->cnt + nr_new > type->max)
|
||||
if (memblock_double_array(type) < 0)
|
||||
if (memblock_double_array(type, obase, size) < 0)
|
||||
return -ENOMEM;
|
||||
insert = true;
|
||||
goto repeat;
|
||||
|
@ -450,7 +478,7 @@ static int __init_memblock memblock_isolate_range(struct memblock_type *type,
|
|||
|
||||
/* we'll create at most two more regions */
|
||||
while (type->cnt + 2 > type->max)
|
||||
if (memblock_double_array(type) < 0)
|
||||
if (memblock_double_array(type, base, size) < 0)
|
||||
return -ENOMEM;
|
||||
|
||||
for (i = 0; i < type->cnt; i++) {
|
||||
|
@ -540,9 +568,9 @@ int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size)
|
|||
* __next_free_mem_range - next function for for_each_free_mem_range()
|
||||
* @idx: pointer to u64 loop variable
|
||||
* @nid: nid: node selector, %MAX_NUMNODES for all nodes
|
||||
* @p_start: ptr to phys_addr_t for start address of the range, can be %NULL
|
||||
* @p_end: ptr to phys_addr_t for end address of the range, can be %NULL
|
||||
* @p_nid: ptr to int for nid of the range, can be %NULL
|
||||
* @out_start: ptr to phys_addr_t for start address of the range, can be %NULL
|
||||
* @out_end: ptr to phys_addr_t for end address of the range, can be %NULL
|
||||
* @out_nid: ptr to int for nid of the range, can be %NULL
|
||||
*
|
||||
* Find the first free area from *@idx which matches @nid, fill the out
|
||||
* parameters, and update *@idx for the next iteration. The lower 32bit of
|
||||
|
@ -616,9 +644,9 @@ void __init_memblock __next_free_mem_range(u64 *idx, int nid,
|
|||
* __next_free_mem_range_rev - next function for for_each_free_mem_range_reverse()
|
||||
* @idx: pointer to u64 loop variable
|
||||
* @nid: nid: node selector, %MAX_NUMNODES for all nodes
|
||||
* @p_start: ptr to phys_addr_t for start address of the range, can be %NULL
|
||||
* @p_end: ptr to phys_addr_t for end address of the range, can be %NULL
|
||||
* @p_nid: ptr to int for nid of the range, can be %NULL
|
||||
* @out_start: ptr to phys_addr_t for start address of the range, can be %NULL
|
||||
* @out_end: ptr to phys_addr_t for end address of the range, can be %NULL
|
||||
* @out_nid: ptr to int for nid of the range, can be %NULL
|
||||
*
|
||||
* Reverse of __next_free_mem_range().
|
||||
*/
|
||||
|
|
|
@ -1148,7 +1148,7 @@ bool __mem_cgroup_same_or_subtree(const struct mem_cgroup *root_memcg,
|
|||
{
|
||||
if (root_memcg == memcg)
|
||||
return true;
|
||||
if (!root_memcg->use_hierarchy)
|
||||
if (!root_memcg->use_hierarchy || !memcg)
|
||||
return false;
|
||||
return css_is_ancestor(&memcg->css, &root_memcg->css);
|
||||
}
|
||||
|
@ -1234,7 +1234,7 @@ int mem_cgroup_inactive_file_is_low(struct lruvec *lruvec)
|
|||
|
||||
/**
|
||||
* mem_cgroup_margin - calculate chargeable space of a memory cgroup
|
||||
* @mem: the memory cgroup
|
||||
* @memcg: the memory cgroup
|
||||
*
|
||||
* Returns the maximum amount of memory @mem can be charged with, in
|
||||
* pages.
|
||||
|
@ -1508,7 +1508,7 @@ static unsigned long mem_cgroup_reclaim(struct mem_cgroup *memcg,
|
|||
|
||||
/**
|
||||
* test_mem_cgroup_node_reclaimable
|
||||
* @mem: the target memcg
|
||||
* @memcg: the target memcg
|
||||
* @nid: the node ID to be checked.
|
||||
* @noswap : specify true here if the user wants flle only information.
|
||||
*
|
||||
|
|
12
mm/memory.c
12
mm/memory.c
|
@ -1225,7 +1225,15 @@ static inline unsigned long zap_pmd_range(struct mmu_gather *tlb,
|
|||
next = pmd_addr_end(addr, end);
|
||||
if (pmd_trans_huge(*pmd)) {
|
||||
if (next - addr != HPAGE_PMD_SIZE) {
|
||||
VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem));
|
||||
#ifdef CONFIG_DEBUG_VM
|
||||
if (!rwsem_is_locked(&tlb->mm->mmap_sem)) {
|
||||
pr_err("%s: mmap_sem is unlocked! addr=0x%lx end=0x%lx vma->vm_start=0x%lx vma->vm_end=0x%lx\n",
|
||||
__func__, addr, end,
|
||||
vma->vm_start,
|
||||
vma->vm_end);
|
||||
BUG();
|
||||
}
|
||||
#endif
|
||||
split_huge_page_pmd(vma->vm_mm, pmd);
|
||||
} else if (zap_huge_pmd(tlb, vma, pmd, addr))
|
||||
goto next;
|
||||
|
@ -1366,7 +1374,7 @@ void unmap_vmas(struct mmu_gather *tlb,
|
|||
/**
|
||||
* zap_page_range - remove user pages in a given range
|
||||
* @vma: vm_area_struct holding the applicable pages
|
||||
* @address: starting address of pages to zap
|
||||
* @start: starting address of pages to zap
|
||||
* @size: number of bytes to zap
|
||||
* @details: details of nonlinear truncation or shared cache invalidation
|
||||
*
|
||||
|
|
|
@ -184,6 +184,7 @@ unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg,
|
|||
const nodemask_t *nodemask, unsigned long totalpages)
|
||||
{
|
||||
long points;
|
||||
long adj;
|
||||
|
||||
if (oom_unkillable_task(p, memcg, nodemask))
|
||||
return 0;
|
||||
|
@ -192,7 +193,8 @@ unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg,
|
|||
if (!p)
|
||||
return 0;
|
||||
|
||||
if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) {
|
||||
adj = p->signal->oom_score_adj;
|
||||
if (adj == OOM_SCORE_ADJ_MIN) {
|
||||
task_unlock(p);
|
||||
return 0;
|
||||
}
|
||||
|
@ -210,14 +212,11 @@ unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg,
|
|||
* implementation used by LSMs.
|
||||
*/
|
||||
if (has_capability_noaudit(p, CAP_SYS_ADMIN))
|
||||
points -= 30 * totalpages / 1000;
|
||||
adj -= 30;
|
||||
|
||||
/*
|
||||
* /proc/pid/oom_score_adj ranges from -1000 to +1000 such that it may
|
||||
* either completely disable oom killing or always prefer a certain
|
||||
* task.
|
||||
*/
|
||||
points += p->signal->oom_score_adj * totalpages / 1000;
|
||||
/* Normalize to oom_score_adj units */
|
||||
adj *= totalpages / 1000;
|
||||
points += adj;
|
||||
|
||||
/*
|
||||
* Never return 0 for an eligible task regardless of the root bonus and
|
||||
|
@ -366,7 +365,7 @@ static struct task_struct *select_bad_process(unsigned int *ppoints,
|
|||
|
||||
/**
|
||||
* dump_tasks - dump current memory state of all system tasks
|
||||
* @mem: current's memory controller, if constrained
|
||||
* @memcg: current's memory controller, if constrained
|
||||
* @nodemask: nodemask passed to page allocator for mempolicy ooms
|
||||
*
|
||||
* Dumps the current memory state of all eligible tasks. Tasks not in the same
|
||||
|
|
|
@ -392,7 +392,7 @@ static struct swap_cgroup *lookup_swap_cgroup(swp_entry_t ent,
|
|||
|
||||
/**
|
||||
* swap_cgroup_cmpxchg - cmpxchg mem_cgroup's id for this swp_entry.
|
||||
* @end: swap entry to be cmpxchged
|
||||
* @ent: swap entry to be cmpxchged
|
||||
* @old: old id
|
||||
* @new: new id
|
||||
*
|
||||
|
@ -422,7 +422,7 @@ unsigned short swap_cgroup_cmpxchg(swp_entry_t ent,
|
|||
/**
|
||||
* swap_cgroup_record - record mem_cgroup for this swp_entry.
|
||||
* @ent: swap entry to be recorded into
|
||||
* @mem: mem_cgroup to be recorded
|
||||
* @id: mem_cgroup to be recorded
|
||||
*
|
||||
* Returns old value at success, 0 at failure.
|
||||
* (Of course, old value can be 0.)
|
||||
|
|
|
@ -162,7 +162,6 @@ static int walk_hugetlb_range(struct vm_area_struct *vma,
|
|||
|
||||
/**
|
||||
* walk_page_range - walk a memory map's page tables with a callback
|
||||
* @mm: memory map to walk
|
||||
* @addr: starting address
|
||||
* @end: ending address
|
||||
* @walk: set of callbacks to invoke for each level of the tree
|
||||
|
|
|
@ -360,7 +360,6 @@ err_free:
|
|||
* @chunk: chunk to depopulate
|
||||
* @off: offset to the area to depopulate
|
||||
* @size: size of the area to depopulate in bytes
|
||||
* @flush: whether to flush cache and tlb or not
|
||||
*
|
||||
* For each cpu, depopulate and unmap pages [@page_start,@page_end)
|
||||
* from @chunk. If @flush is true, vcache is flushed before unmapping
|
||||
|
|
|
@ -83,6 +83,8 @@ push(@signature_tags, "Signed-off-by:");
|
|||
push(@signature_tags, "Reviewed-by:");
|
||||
push(@signature_tags, "Acked-by:");
|
||||
|
||||
my $signature_pattern = "\(" . join("|", @signature_tags) . "\)";
|
||||
|
||||
# rfc822 email address - preloaded methods go here.
|
||||
my $rfc822_lwsp = "(?:(?:\\r\\n)?[ \\t])";
|
||||
my $rfc822_char = '[\\000-\\377]';
|
||||
|
@ -473,7 +475,6 @@ my @subsystem = ();
|
|||
my @status = ();
|
||||
my %deduplicate_name_hash = ();
|
||||
my %deduplicate_address_hash = ();
|
||||
my $signature_pattern;
|
||||
|
||||
my @maintainers = get_maintainers();
|
||||
|
||||
|
|
Loading…
Reference in New Issue