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 <ukl@pengutronix.de>
|
||||||
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
|
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
|
||||||
Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
|
Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
|
||||||
|
Viresh Kumar <viresh.linux@gmail.com> <viresh.kumar@st.com>
|
||||||
Takashi YOSHII <takashi.yoshii.zj@renesas.com>
|
Takashi YOSHII <takashi.yoshii.zj@renesas.com>
|
||||||
Yusuke Goda <goda.yusuke@renesas.com>
|
Yusuke Goda <goda.yusuke@renesas.com>
|
||||||
Gustavo Padovan <gustavo@las.ic.unicamp.br>
|
Gustavo Padovan <gustavo@las.ic.unicamp.br>
|
||||||
|
|
|
@ -60,4 +60,4 @@ Introduction
|
||||||
Document Author
|
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/
|
F: net/appletalk/
|
||||||
|
|
||||||
ARASAN COMPACT FLASH PATA CONTROLLER
|
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
|
L: linux-ide@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: include/linux/pata_arasan_cf_data.h
|
F: include/linux/pata_arasan_cf_data.h
|
||||||
|
@ -5296,7 +5296,7 @@ S: Maintained
|
||||||
F: drivers/pinctrl/
|
F: drivers/pinctrl/
|
||||||
|
|
||||||
PIN CONTROLLER - ST SPEAR
|
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: spear-devel@list.st.com
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
W: http://www.st.com/spear
|
W: http://www.st.com/spear
|
||||||
|
@ -5873,7 +5873,7 @@ S: Maintained
|
||||||
F: drivers/tty/serial
|
F: drivers/tty/serial
|
||||||
|
|
||||||
SYNOPSYS DESIGNWARE DMAC DRIVER
|
SYNOPSYS DESIGNWARE DMAC DRIVER
|
||||||
M: Viresh Kumar <viresh.kumar@st.com>
|
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: include/linux/dw_dmac.h
|
F: include/linux/dw_dmac.h
|
||||||
F: drivers/dma/dw_dmac_regs.h
|
F: drivers/dma/dw_dmac_regs.h
|
||||||
|
@ -6021,7 +6021,7 @@ S: Maintained
|
||||||
F: drivers/mmc/host/sdhci-s3c.c
|
F: drivers/mmc/host/sdhci-s3c.c
|
||||||
|
|
||||||
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) ST SPEAR DRIVER
|
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: spear-devel@list.st.com
|
||||||
L: linux-mmc@vger.kernel.org
|
L: linux-mmc@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
@ -6377,7 +6377,7 @@ S: Maintained
|
||||||
F: include/linux/compiler.h
|
F: include/linux/compiler.h
|
||||||
|
|
||||||
SPEAR PLATFORM SUPPORT
|
SPEAR PLATFORM SUPPORT
|
||||||
M: Viresh Kumar <viresh.kumar@st.com>
|
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||||
L: spear-devel@list.st.com
|
L: spear-devel@list.st.com
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
|
@ -6386,7 +6386,7 @@ S: Maintained
|
||||||
F: arch/arm/plat-spear/
|
F: arch/arm/plat-spear/
|
||||||
|
|
||||||
SPEAR13XX MACHINE SUPPORT
|
SPEAR13XX MACHINE SUPPORT
|
||||||
M: Viresh Kumar <viresh.kumar@st.com>
|
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||||
L: spear-devel@list.st.com
|
L: spear-devel@list.st.com
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
|
@ -6395,7 +6395,7 @@ S: Maintained
|
||||||
F: arch/arm/mach-spear13xx/
|
F: arch/arm/mach-spear13xx/
|
||||||
|
|
||||||
SPEAR3XX MACHINE SUPPORT
|
SPEAR3XX MACHINE SUPPORT
|
||||||
M: Viresh Kumar <viresh.kumar@st.com>
|
M: Viresh Kumar <viresh.linux@gmail.com>
|
||||||
M: Shiraz Hashim <shiraz.hashim@st.com>
|
M: Shiraz Hashim <shiraz.hashim@st.com>
|
||||||
L: spear-devel@list.st.com
|
L: spear-devel@list.st.com
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
|
@ -6406,7 +6406,7 @@ F: arch/arm/mach-spear3xx/
|
||||||
SPEAR6XX MACHINE SUPPORT
|
SPEAR6XX MACHINE SUPPORT
|
||||||
M: Rajeev Kumar <rajeev-dlh.kumar@st.com>
|
M: Rajeev Kumar <rajeev-dlh.kumar@st.com>
|
||||||
M: Shiraz Hashim <shiraz.hashim@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: spear-devel@list.st.com
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
W: http://www.st.com/spear
|
W: http://www.st.com/spear
|
||||||
|
@ -6414,7 +6414,7 @@ S: Maintained
|
||||||
F: arch/arm/mach-spear6xx/
|
F: arch/arm/mach-spear6xx/
|
||||||
|
|
||||||
SPEAR CLOCK FRAMEWORK SUPPORT
|
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: spear-devel@list.st.com
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
W: http://www.st.com/spear
|
W: http://www.st.com/spear
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr1310 Evaluation Baord
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for all SPEAr1310 SoCs
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr1340 Evaluation Baord
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for all SPEAr1340 SoCs
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for all SPEAr13xx SoCs
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr300 Evaluation Baord
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr300 SoC
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr310 Evaluation Baord
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr310 SoC
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr320 Evaluation Baord
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for SPEAr320 SoC
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* DTS file for all SPEAr3xx SoCs
|
* 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
|
* The code contained herein is licensed under the GNU General Public
|
||||||
* License. You may obtain a copy of the GNU General Public License
|
* License. You may obtain a copy of the GNU General Public License
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* ARM PrimeXsys System Controller SP810 header file
|
* ARM PrimeXsys System Controller SP810 header file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Debugging macro include header spear13xx machine family
|
* Debugging macro include header spear13xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* DMA information for SPEAr13xx machine family
|
* DMA information for SPEAr13xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* spear13xx machine family generic header file
|
* spear13xx machine family generic header file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* GPIO macros for SPEAr13xx machine family
|
* GPIO macros for SPEAr13xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* IRQ helper macros for spear13xx machine family
|
* IRQ helper macros for spear13xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* spear13xx Machine family specific definition
|
* spear13xx Machine family specific definition
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr3XX machine family specific timex definitions
|
* SPEAr3XX machine family specific timex definitions
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Serial port stubs for kernel decompress status messages
|
* Serial port stubs for kernel decompress status messages
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr1310 machine source file
|
* SPEAr1310 machine source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr1340 machine source file
|
* SPEAr1340 machine source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr13XX machines common source file
|
* SPEAr13XX machines common source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Debugging macro include header spear3xx machine family
|
* Debugging macro include header spear3xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr3XX machine family generic header file
|
* SPEAr3XX machine family generic header file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* GPIO macros for SPEAr3xx machine family
|
* GPIO macros for SPEAr3xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* IRQ helper macros for SPEAr3xx machine family
|
* IRQ helper macros for SPEAr3xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Miscellaneous registers definitions for SPEAr3xx machine family
|
* Miscellaneous registers definitions for SPEAr3xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr3xx Machine family specific definition
|
* SPEAr3xx Machine family specific definition
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr3XX machine family specific timex definitions
|
* SPEAr3XX machine family specific timex definitions
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Serial port stubs for kernel decompress status messages
|
* Serial port stubs for kernel decompress status messages
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr300 machine source file
|
* SPEAr300 machine source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009-2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr310 machine source file
|
* SPEAr310 machine source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009-2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr320 machine source file
|
* SPEAr320 machine source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009-2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr3XX machines common source file
|
* SPEAr3XX machines common source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009-2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* GPIO macros for SPEAr6xx machine family
|
* GPIO macros for SPEAr6xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Miscellaneous registers definitions for SPEAr6xx machine family
|
* Miscellaneous registers definitions for SPEAr6xx machine family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Debugging macro include header for spear platform
|
* Debugging macro include header for spear platform
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* DMAC pl080 definitions for SPEAr platform
|
* DMAC pl080 definitions for SPEAr platform
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr platform shared irq layer header file
|
* SPEAr platform shared irq layer header file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr platform specific timex definitions
|
* SPEAr platform specific timex definitions
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Serial port stubs for kernel decompress status messages
|
* Serial port stubs for kernel decompress status messages
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* DMAC pl080 definitions for SPEAr platform
|
* DMAC pl080 definitions for SPEAr platform
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr platform specific restart functions
|
* SPEAr platform specific restart functions
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr platform shared irq layer source file
|
* SPEAr platform shared irq layer source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
|
#include <asm/sections.h>
|
||||||
|
|
||||||
#if defined(__H8300H__)
|
#if defined(__H8300H__)
|
||||||
#define CPU "H8/300H"
|
#define CPU "H8/300H"
|
||||||
|
@ -54,7 +55,6 @@ unsigned long memory_end;
|
||||||
|
|
||||||
char __initdata command_line[COMMAND_LINE_SIZE];
|
char __initdata command_line[COMMAND_LINE_SIZE];
|
||||||
|
|
||||||
extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end;
|
|
||||||
extern int _ramstart, _ramend;
|
extern int _ramstart, _ramend;
|
||||||
extern char _target_name[];
|
extern char _target_name[];
|
||||||
extern void h8300_gpio_init(void);
|
extern void h8300_gpio_init(void);
|
||||||
|
@ -119,9 +119,9 @@ void __init setup_arch(char **cmdline_p)
|
||||||
memory_end = CONFIG_BLKDEV_RESERVE_ADDRESS;
|
memory_end = CONFIG_BLKDEV_RESERVE_ADDRESS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
init_mm.start_code = (unsigned long) &_stext;
|
init_mm.start_code = (unsigned long) _stext;
|
||||||
init_mm.end_code = (unsigned long) &_etext;
|
init_mm.end_code = (unsigned long) _etext;
|
||||||
init_mm.end_data = (unsigned long) &_edata;
|
init_mm.end_data = (unsigned long) _edata;
|
||||||
init_mm.brk = (unsigned long) 0;
|
init_mm.brk = (unsigned long) 0;
|
||||||
|
|
||||||
#if (defined(CONFIG_H8300H_SIM) || defined(CONFIG_H8S_SIM)) && defined(CONFIG_GDB_MAGICPRINT)
|
#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");
|
printk(KERN_INFO "H8/300 series support by Yoshinori Sato <ysato@users.sourceforge.jp>\n");
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printk(KERN_DEBUG "KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x "
|
printk(KERN_DEBUG "KERNEL -> TEXT=0x%p-0x%p DATA=0x%p-0x%p "
|
||||||
"BSS=0x%06x-0x%06x\n", (int) &_stext, (int) &_etext,
|
"BSS=0x%p-0x%p\n", _stext, _etext, _sdata, _edata, __bss_start,
|
||||||
(int) &_sdata, (int) &_edata,
|
__bss_stop);
|
||||||
(int) &_sbss, (int) &_ebss);
|
printk(KERN_DEBUG "KERNEL -> ROMFS=0x%p-0x%06lx MEM=0x%06lx-0x%06lx "
|
||||||
printk(KERN_DEBUG "KERNEL -> ROMFS=0x%06x-0x%06x MEM=0x%06x-0x%06x "
|
"STACK=0x%06lx-0x%p\n", __bss_stop, memory_start, memory_start,
|
||||||
"STACK=0x%06x-0x%06x\n",
|
memory_end, memory_end, &_ramend);
|
||||||
(int) &_ebss, (int) memory_start,
|
|
||||||
(int) memory_start, (int) memory_end,
|
|
||||||
(int) memory_end, (int) &_ramend);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DEFAULT_CMDLINE
|
#ifdef CONFIG_DEFAULT_CMDLINE
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include <asm/segment.h>
|
#include <asm/segment.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
|
#include <asm/sections.h>
|
||||||
|
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
|
||||||
|
@ -123,7 +124,6 @@ void __init mem_init(void)
|
||||||
int codek = 0, datak = 0, initk = 0;
|
int codek = 0, datak = 0, initk = 0;
|
||||||
/* DAVIDM look at setup memory map generically with reserved area */
|
/* DAVIDM look at setup memory map generically with reserved area */
|
||||||
unsigned long tmp;
|
unsigned long tmp;
|
||||||
extern char _etext, _stext, _sdata, _ebss, __init_begin, __init_end;
|
|
||||||
extern unsigned long _ramend, _ramstart;
|
extern unsigned long _ramend, _ramstart;
|
||||||
unsigned long len = &_ramend - &_ramstart;
|
unsigned long len = &_ramend - &_ramstart;
|
||||||
unsigned long start_mem = memory_start; /* DAVIDM - these must start at end of kernel */
|
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 */
|
/* this will put all memory onto the freelists */
|
||||||
totalram_pages = free_all_bootmem();
|
totalram_pages = free_all_bootmem();
|
||||||
|
|
||||||
codek = (&_etext - &_stext) >> 10;
|
codek = (_etext - _stext) >> 10;
|
||||||
datak = (&_ebss - &_sdata) >> 10;
|
datak = (__bss_stop - _sdata) >> 10;
|
||||||
initk = (&__init_begin - &__init_end) >> 10;
|
initk = (__init_begin - __init_end) >> 10;
|
||||||
|
|
||||||
tmp = nr_free_pages() << PAGE_SHIFT;
|
tmp = nr_free_pages() << PAGE_SHIFT;
|
||||||
printk(KERN_INFO "Memory available: %luk/%luk RAM, %luk/%luk ROM (%dk kernel code, %dk data)\n",
|
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
|
#ifdef CONFIG_RAMKERNEL
|
||||||
unsigned long addr;
|
unsigned long addr;
|
||||||
extern char __init_begin, __init_end;
|
|
||||||
/*
|
/*
|
||||||
* the following code should be cool even if these sections
|
* the following code should be cool even if these sections
|
||||||
* are not page aligned.
|
* 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 */
|
/* 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));
|
ClearPageReserved(virt_to_page(addr));
|
||||||
init_page_count(virt_to_page(addr));
|
init_page_count(virt_to_page(addr));
|
||||||
free_page(addr);
|
free_page(addr);
|
||||||
totalram_pages++;
|
totalram_pages++;
|
||||||
}
|
}
|
||||||
printk(KERN_INFO "Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n",
|
printk(KERN_INFO "Freeing unused kernel memory: %ldk freed (0x%x - 0x%x)\n",
|
||||||
(addr - PAGE_ALIGN((long) &__init_begin)) >> 10,
|
(addr - PAGE_ALIGN((long) __init_begin)) >> 10,
|
||||||
(int)(PAGE_ALIGN((unsigned long)(&__init_begin))),
|
(int)(PAGE_ALIGN((unsigned long)__init_begin)),
|
||||||
(int)(addr - PAGE_SIZE));
|
(int)(addr - PAGE_SIZE));
|
||||||
#endif
|
#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
|
* they can run pmd_offset_map_lock or pmd_trans_huge or other pmd
|
||||||
* operations.
|
* operations.
|
||||||
*
|
*
|
||||||
* Without THP if the mmap_sem is hold for reading, the
|
* Without THP if the mmap_sem is hold for reading, the pmd can only
|
||||||
* pmd can only transition from null to not null while pmd_read_atomic runs.
|
* transition from null to not null while pmd_read_atomic runs. So
|
||||||
* So there's no need of literally reading it atomically.
|
* we can always return atomic pmd values with this function.
|
||||||
*
|
*
|
||||||
* With THP if the mmap_sem is hold for reading, the pmd can become
|
* 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
|
* trans_huge or none or point to a pte (and in turn become "stable")
|
||||||
* time under pmd_read_atomic, so it's mandatory to read it atomically
|
* at any time under pmd_read_atomic. We could read it really
|
||||||
* with cmpxchg8b.
|
* 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)
|
static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
|
||||||
{
|
{
|
||||||
pmdval_t ret;
|
pmdval_t ret;
|
||||||
|
@ -74,12 +84,6 @@ static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
|
||||||
|
|
||||||
return (pmd_t) { ret };
|
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)
|
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
|
# 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)/)
|
buildvar := $(shell test -e $(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)/)
|
buildplf := $(shell test -e $(srctree)/arch/xtensa/platforms/$(PLATFORM)/Makefile && echo arch/xtensa/platforms/$(PLATFORM)/)
|
||||||
|
|
||||||
# Find libgcc.a
|
# Find libgcc.a
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,6 @@ SECTIONS
|
||||||
|
|
||||||
_text = .;
|
_text = .;
|
||||||
_stext = .;
|
_stext = .;
|
||||||
_ftext = .;
|
|
||||||
|
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
|
@ -112,7 +111,7 @@ SECTIONS
|
||||||
EXCEPTION_TABLE(16)
|
EXCEPTION_TABLE(16)
|
||||||
/* Data section */
|
/* Data section */
|
||||||
|
|
||||||
_fdata = .;
|
_sdata = .;
|
||||||
RW_DATA_SECTION(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
|
RW_DATA_SECTION(XCHAL_ICACHE_LINESIZE, PAGE_SIZE, THREAD_SIZE)
|
||||||
_edata = .;
|
_edata = .;
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,7 @@
|
||||||
|
|
||||||
#include <asm/bootparam.h>
|
#include <asm/bootparam.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
#include <asm/sections.h>
|
||||||
/* References to section boundaries */
|
|
||||||
|
|
||||||
extern char _ftext, _etext, _fdata, _edata, _rodata_end;
|
|
||||||
extern char __init_begin, __init_end;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* mem_reserve(start, end, must_exist)
|
* mem_reserve(start, end, must_exist)
|
||||||
|
@ -197,9 +193,9 @@ void __init mem_init(void)
|
||||||
reservedpages++;
|
reservedpages++;
|
||||||
}
|
}
|
||||||
|
|
||||||
codesize = (unsigned long) &_etext - (unsigned long) &_ftext;
|
codesize = (unsigned long) _etext - (unsigned long) _stext;
|
||||||
datasize = (unsigned long) &_edata - (unsigned long) &_fdata;
|
datasize = (unsigned long) _edata - (unsigned long) _sdata;
|
||||||
initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
|
initsize = (unsigned long) __init_end - (unsigned long) __init_begin;
|
||||||
|
|
||||||
printk("Memory: %luk/%luk available (%ldk kernel code, %ldk reserved, "
|
printk("Memory: %luk/%luk available (%ldk kernel code, %ldk reserved, "
|
||||||
"%ldk data, %ldk init %ldk highmem)\n",
|
"%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)
|
void free_initmem(void)
|
||||||
{
|
{
|
||||||
free_reserved_mem(&__init_begin, &__init_end);
|
free_reserved_mem(__init_begin, __init_end);
|
||||||
printk("Freeing unused kernel memory: %dk freed\n",
|
printk("Freeing unused kernel memory: %zuk freed\n",
|
||||||
(&__init_end - &__init_begin) >> 10);
|
(__init_end - __init_begin) >> 10);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Arasan Compact Flash host controller source file
|
* Arasan Compact Flash host controller source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* 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_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_DESCRIPTION("Arasan ATA Compact Flash driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_ALIAS("platform:" DRIVER_NAME);
|
MODULE_ALIAS("platform:" DRIVER_NAME);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Clock framework definitions for SPEAr platform
|
* Clock framework definitions for SPEAr platform
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr1310 machine clock framework source file
|
* SPEAr1310 machine clock framework source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SPEAr1340 machine clock framework source file
|
* SPEAr1340 machine clock framework source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* SPEAr3xx machines clock framework source file
|
* SPEAr3xx machines clock framework source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* SPEAr6xx machines clock framework source file
|
* SPEAr6xx machines clock framework source file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -1626,4 +1626,4 @@ module_exit(dw_exit);
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_DESCRIPTION("Synopsys DesignWare DMA Controller driver");
|
MODULE_DESCRIPTION("Synopsys DesignWare DMA Controller driver");
|
||||||
MODULE_AUTHOR("Haavard Skinnemoen (Atmel)");
|
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
|
* License Terms: GNU General Public License, version 2
|
||||||
* Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson
|
* 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>
|
#include <linux/i2c.h>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Copyright (C) ST Microelectronics SA 2011
|
* Copyright (C) ST Microelectronics SA 2011
|
||||||
*
|
*
|
||||||
* License Terms: GNU General Public License, version 2
|
* 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>
|
#include <linux/spi/spi.h>
|
||||||
|
@ -146,4 +146,4 @@ module_exit(stmpe_exit);
|
||||||
|
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_DESCRIPTION("STMPE MFD SPI Interface Driver");
|
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
|
* Support of SDHCI platform devices for spear soc family
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010 ST Microelectronics
|
* Copyright (C) 2010 ST Microelectronics
|
||||||
* Viresh Kumar<viresh.kumar@st.com>
|
* Viresh Kumar <viresh.linux@gmail.com>
|
||||||
*
|
*
|
||||||
* Inspired by sdhci-pltfm.c
|
* Inspired by sdhci-pltfm.c
|
||||||
*
|
*
|
||||||
|
@ -289,5 +289,5 @@ static struct platform_driver sdhci_driver = {
|
||||||
module_platform_driver(sdhci_driver);
|
module_platform_driver(sdhci_driver);
|
||||||
|
|
||||||
MODULE_DESCRIPTION("SPEAr Secure Digital Host Controller Interface 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");
|
MODULE_LICENSE("GPL v2");
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver for the ST Microelectronics SPEAr pinmux
|
* Driver for the ST Microelectronics SPEAr pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* Copyright (C) 2012 ST Microelectronics
|
||||||
* Viresh Kumar <viresh.kumar@st.com>
|
* Viresh Kumar <viresh.linux@gmail.com>
|
||||||
*
|
*
|
||||||
* Inspired from:
|
* Inspired from:
|
||||||
* - U300 Pinctl drivers
|
* - U300 Pinctl drivers
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver header file for the ST Microelectronics SPEAr pinmux
|
* Driver header file for the ST Microelectronics SPEAr pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver for the ST Microelectronics SPEAr1310 pinmux
|
* Driver for the ST Microelectronics SPEAr1310 pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* 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_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_DESCRIPTION("ST Microelectronics SPEAr1310 pinctrl driver");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_DEVICE_TABLE(of, spear1310_pinctrl_of_match);
|
MODULE_DEVICE_TABLE(of, spear1310_pinctrl_of_match);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver for the ST Microelectronics SPEAr1340 pinmux
|
* Driver for the ST Microelectronics SPEAr1340 pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* 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_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_DESCRIPTION("ST Microelectronics SPEAr1340 pinctrl driver");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_DEVICE_TABLE(of, spear1340_pinctrl_of_match);
|
MODULE_DEVICE_TABLE(of, spear1340_pinctrl_of_match);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver for the ST Microelectronics SPEAr300 pinmux
|
* Driver for the ST Microelectronics SPEAr300 pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* 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_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_DESCRIPTION("ST Microelectronics SPEAr300 pinctrl driver");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_DEVICE_TABLE(of, spear300_pinctrl_of_match);
|
MODULE_DEVICE_TABLE(of, spear300_pinctrl_of_match);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver for the ST Microelectronics SPEAr310 pinmux
|
* Driver for the ST Microelectronics SPEAr310 pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* 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_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_DESCRIPTION("ST Microelectronics SPEAr310 pinctrl driver");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_DEVICE_TABLE(of, SPEAr310_pinctrl_of_match);
|
MODULE_DEVICE_TABLE(of, SPEAr310_pinctrl_of_match);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver for the ST Microelectronics SPEAr320 pinmux
|
* Driver for the ST Microelectronics SPEAr320 pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* 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_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_DESCRIPTION("ST Microelectronics SPEAr320 pinctrl driver");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
MODULE_DEVICE_TABLE(of, spear320_pinctrl_of_match);
|
MODULE_DEVICE_TABLE(of, spear320_pinctrl_of_match);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Driver for the ST Microelectronics SPEAr3xx pinmux
|
* Driver for the ST Microelectronics SPEAr3xx pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* Header file for the ST Microelectronics SPEAr3xx pinmux
|
* Header file for the ST Microelectronics SPEAr3xx pinmux
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Watchdog driver for ARM SP805 watchdog module
|
* Watchdog driver for ARM SP805 watchdog module
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010 ST Microelectronics
|
* 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
|
* 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
|
* 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_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_DESCRIPTION("ARM SP805 Watchdog Driver");
|
||||||
MODULE_LICENSE("GPL");
|
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 */
|
/* Notify parent that we're no longer interested in the old VM */
|
||||||
tsk = current;
|
tsk = current;
|
||||||
old_mm = current->mm;
|
old_mm = current->mm;
|
||||||
sync_mm_rss(old_mm);
|
|
||||||
mm_release(tsk, old_mm);
|
mm_release(tsk, old_mm);
|
||||||
|
|
||||||
if (old_mm) {
|
if (old_mm) {
|
||||||
|
sync_mm_rss(old_mm);
|
||||||
/*
|
/*
|
||||||
* Make sure that if there is a core dump in progress
|
* Make sure that if there is a core dump in progress
|
||||||
* for the old mm, we get out and die instead of going
|
* 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)) {
|
while (!list_empty(head)) {
|
||||||
ii = list_first_entry(head, struct nilfs_inode_info, i_dirty);
|
ii = list_first_entry(head, struct nilfs_inode_info, i_dirty);
|
||||||
list_del_init(&ii->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);
|
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))
|
if (!test_bit(NILFS_I_UPDATED, &ii->i_state))
|
||||||
continue;
|
continue;
|
||||||
list_del_init(&ii->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);
|
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 barrier will stabilize the pmdval in a register or on
|
||||||
* the stack so that it will stop changing under the code.
|
* 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
|
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||||
barrier();
|
barrier();
|
||||||
|
|
|
@ -57,8 +57,18 @@ struct page {
|
||||||
};
|
};
|
||||||
|
|
||||||
union {
|
union {
|
||||||
|
#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \
|
||||||
|
defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE)
|
||||||
/* Used for cmpxchg_double in slub */
|
/* Used for cmpxchg_double in slub */
|
||||||
unsigned long counters;
|
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 {
|
struct {
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* SDHCI declarations specific to ST SPEAr platform
|
* SDHCI declarations specific to ST SPEAr platform
|
||||||
*
|
*
|
||||||
* Copyright (C) 2010 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* License version 2. This program is licensed "as is" without any
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* Arasan Compact Flash host controller platform data header file
|
* Arasan Compact Flash host controller platform data header file
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 ST Microelectronics
|
* 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
|
* This file is licensed under the terms of the GNU General Public
|
||||||
* License version 2. This program is licensed "as is" without any
|
* 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_rcu(&p->tasks);
|
||||||
list_del_init(&p->sibling);
|
list_del_init(&p->sibling);
|
||||||
__this_cpu_dec(process_counts);
|
__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);
|
list_del_rcu(&p->thread_group);
|
||||||
}
|
}
|
||||||
|
@ -643,6 +655,7 @@ static void exit_mm(struct task_struct * tsk)
|
||||||
mm_release(tsk, mm);
|
mm_release(tsk, mm);
|
||||||
if (!mm)
|
if (!mm)
|
||||||
return;
|
return;
|
||||||
|
sync_mm_rss(mm);
|
||||||
/*
|
/*
|
||||||
* Serialize with any possible pending coredump.
|
* Serialize with any possible pending coredump.
|
||||||
* We must hold mmap_sem around checking core_state
|
* 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);
|
zap_pid_ns_processes(pid_ns);
|
||||||
write_lock_irq(&tasklist_lock);
|
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) {
|
} else if (father->signal->has_child_subreaper) {
|
||||||
struct task_struct *reaper;
|
struct task_struct *reaper;
|
||||||
|
|
||||||
|
|
|
@ -184,11 +184,31 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns)
|
||||||
}
|
}
|
||||||
read_unlock(&tasklist_lock);
|
read_unlock(&tasklist_lock);
|
||||||
|
|
||||||
|
/* Firstly reap the EXIT_ZOMBIE children we may have. */
|
||||||
do {
|
do {
|
||||||
clear_thread_flag(TIF_SIGPENDING);
|
clear_thread_flag(TIF_SIGPENDING);
|
||||||
rc = sys_wait4(-1, NULL, __WALL, NULL);
|
rc = sys_wait4(-1, NULL, __WALL, NULL);
|
||||||
} while (rc != -ECHILD);
|
} 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)
|
if (pid_ns->reboot)
|
||||||
current->signal->group_exit_code = 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
|
else
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
break;
|
break;
|
||||||
case PR_GET_TID_ADDRESS:
|
|
||||||
error = prctl_get_tid_address(me, (int __user **)arg2);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -2147,6 +2144,9 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
|
||||||
case PR_SET_MM:
|
case PR_SET_MM:
|
||||||
error = prctl_set_mm(arg2, arg3, arg4, arg5);
|
error = prctl_set_mm(arg2, arg3, arg4, arg5);
|
||||||
break;
|
break;
|
||||||
|
case PR_GET_TID_ADDRESS:
|
||||||
|
error = prctl_get_tid_address(me, (int __user **)arg2);
|
||||||
|
break;
|
||||||
case PR_SET_CHILD_SUBREAPER:
|
case PR_SET_CHILD_SUBREAPER:
|
||||||
me->signal->is_child_subreaper = !!arg2;
|
me->signal->is_child_subreaper = !!arg2;
|
||||||
error = 0;
|
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)
|
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))
|
if (attr->task_filter && !fail_task(attr, current))
|
||||||
return false;
|
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;
|
struct memblock_region *new_array, *old_array;
|
||||||
phys_addr_t old_size, new_size, addr;
|
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);
|
new_array = kmalloc(new_size, GFP_KERNEL);
|
||||||
addr = new_array ? __pa(new_array) : 0;
|
addr = new_array ? __pa(new_array) : 0;
|
||||||
} else {
|
} 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;
|
new_array = addr ? __va(addr) : 0;
|
||||||
}
|
}
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
|
@ -399,7 +427,7 @@ repeat:
|
||||||
*/
|
*/
|
||||||
if (!insert) {
|
if (!insert) {
|
||||||
while (type->cnt + nr_new > type->max)
|
while (type->cnt + nr_new > type->max)
|
||||||
if (memblock_double_array(type) < 0)
|
if (memblock_double_array(type, obase, size) < 0)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
insert = true;
|
insert = true;
|
||||||
goto repeat;
|
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 */
|
/* we'll create at most two more regions */
|
||||||
while (type->cnt + 2 > type->max)
|
while (type->cnt + 2 > type->max)
|
||||||
if (memblock_double_array(type) < 0)
|
if (memblock_double_array(type, base, size) < 0)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
for (i = 0; i < type->cnt; i++) {
|
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()
|
* __next_free_mem_range - next function for for_each_free_mem_range()
|
||||||
* @idx: pointer to u64 loop variable
|
* @idx: pointer to u64 loop variable
|
||||||
* @nid: nid: node selector, %MAX_NUMNODES for all nodes
|
* @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
|
* @out_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
|
* @out_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_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
|
* 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
|
* 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()
|
* __next_free_mem_range_rev - next function for for_each_free_mem_range_reverse()
|
||||||
* @idx: pointer to u64 loop variable
|
* @idx: pointer to u64 loop variable
|
||||||
* @nid: nid: node selector, %MAX_NUMNODES for all nodes
|
* @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
|
* @out_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
|
* @out_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_nid: ptr to int for nid of the range, can be %NULL
|
||||||
*
|
*
|
||||||
* Reverse of __next_free_mem_range().
|
* 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)
|
if (root_memcg == memcg)
|
||||||
return true;
|
return true;
|
||||||
if (!root_memcg->use_hierarchy)
|
if (!root_memcg->use_hierarchy || !memcg)
|
||||||
return false;
|
return false;
|
||||||
return css_is_ancestor(&memcg->css, &root_memcg->css);
|
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_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
|
* Returns the maximum amount of memory @mem can be charged with, in
|
||||||
* pages.
|
* pages.
|
||||||
|
@ -1508,7 +1508,7 @@ static unsigned long mem_cgroup_reclaim(struct mem_cgroup *memcg,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test_mem_cgroup_node_reclaimable
|
* test_mem_cgroup_node_reclaimable
|
||||||
* @mem: the target memcg
|
* @memcg: the target memcg
|
||||||
* @nid: the node ID to be checked.
|
* @nid: the node ID to be checked.
|
||||||
* @noswap : specify true here if the user wants flle only information.
|
* @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);
|
next = pmd_addr_end(addr, end);
|
||||||
if (pmd_trans_huge(*pmd)) {
|
if (pmd_trans_huge(*pmd)) {
|
||||||
if (next - addr != HPAGE_PMD_SIZE) {
|
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);
|
split_huge_page_pmd(vma->vm_mm, pmd);
|
||||||
} else if (zap_huge_pmd(tlb, vma, pmd, addr))
|
} else if (zap_huge_pmd(tlb, vma, pmd, addr))
|
||||||
goto next;
|
goto next;
|
||||||
|
@ -1366,7 +1374,7 @@ void unmap_vmas(struct mmu_gather *tlb,
|
||||||
/**
|
/**
|
||||||
* zap_page_range - remove user pages in a given range
|
* zap_page_range - remove user pages in a given range
|
||||||
* @vma: vm_area_struct holding the applicable pages
|
* @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
|
* @size: number of bytes to zap
|
||||||
* @details: details of nonlinear truncation or shared cache invalidation
|
* @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)
|
const nodemask_t *nodemask, unsigned long totalpages)
|
||||||
{
|
{
|
||||||
long points;
|
long points;
|
||||||
|
long adj;
|
||||||
|
|
||||||
if (oom_unkillable_task(p, memcg, nodemask))
|
if (oom_unkillable_task(p, memcg, nodemask))
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -192,7 +193,8 @@ unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg,
|
||||||
if (!p)
|
if (!p)
|
||||||
return 0;
|
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);
|
task_unlock(p);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -210,14 +212,11 @@ unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg,
|
||||||
* implementation used by LSMs.
|
* implementation used by LSMs.
|
||||||
*/
|
*/
|
||||||
if (has_capability_noaudit(p, CAP_SYS_ADMIN))
|
if (has_capability_noaudit(p, CAP_SYS_ADMIN))
|
||||||
points -= 30 * totalpages / 1000;
|
adj -= 30;
|
||||||
|
|
||||||
/*
|
/* Normalize to oom_score_adj units */
|
||||||
* /proc/pid/oom_score_adj ranges from -1000 to +1000 such that it may
|
adj *= totalpages / 1000;
|
||||||
* either completely disable oom killing or always prefer a certain
|
points += adj;
|
||||||
* task.
|
|
||||||
*/
|
|
||||||
points += p->signal->oom_score_adj * totalpages / 1000;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Never return 0 for an eligible task regardless of the root bonus and
|
* 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
|
* 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
|
* @nodemask: nodemask passed to page allocator for mempolicy ooms
|
||||||
*
|
*
|
||||||
* Dumps the current memory state of all eligible tasks. Tasks not in the same
|
* 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.
|
* 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
|
* @old: old id
|
||||||
* @new: new 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.
|
* swap_cgroup_record - record mem_cgroup for this swp_entry.
|
||||||
* @ent: swap entry to be recorded into
|
* @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.
|
* Returns old value at success, 0 at failure.
|
||||||
* (Of course, old value can be 0.)
|
* (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
|
* walk_page_range - walk a memory map's page tables with a callback
|
||||||
* @mm: memory map to walk
|
|
||||||
* @addr: starting address
|
* @addr: starting address
|
||||||
* @end: ending address
|
* @end: ending address
|
||||||
* @walk: set of callbacks to invoke for each level of the tree
|
* @walk: set of callbacks to invoke for each level of the tree
|
||||||
|
|
|
@ -360,7 +360,6 @@ err_free:
|
||||||
* @chunk: chunk to depopulate
|
* @chunk: chunk to depopulate
|
||||||
* @off: offset to the area to depopulate
|
* @off: offset to the area to depopulate
|
||||||
* @size: size of the area to depopulate in bytes
|
* @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)
|
* For each cpu, depopulate and unmap pages [@page_start,@page_end)
|
||||||
* from @chunk. If @flush is true, vcache is flushed before unmapping
|
* 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, "Reviewed-by:");
|
||||||
push(@signature_tags, "Acked-by:");
|
push(@signature_tags, "Acked-by:");
|
||||||
|
|
||||||
|
my $signature_pattern = "\(" . join("|", @signature_tags) . "\)";
|
||||||
|
|
||||||
# rfc822 email address - preloaded methods go here.
|
# rfc822 email address - preloaded methods go here.
|
||||||
my $rfc822_lwsp = "(?:(?:\\r\\n)?[ \\t])";
|
my $rfc822_lwsp = "(?:(?:\\r\\n)?[ \\t])";
|
||||||
my $rfc822_char = '[\\000-\\377]';
|
my $rfc822_char = '[\\000-\\377]';
|
||||||
|
@ -473,7 +475,6 @@ my @subsystem = ();
|
||||||
my @status = ();
|
my @status = ();
|
||||||
my %deduplicate_name_hash = ();
|
my %deduplicate_name_hash = ();
|
||||||
my %deduplicate_address_hash = ();
|
my %deduplicate_address_hash = ();
|
||||||
my $signature_pattern;
|
|
||||||
|
|
||||||
my @maintainers = get_maintainers();
|
my @maintainers = get_maintainers();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue