* Re: Please pull 'next' branch of 5xxx tree
From: Benjamin Herrenschmidt @ 2014-01-28 6:00 UTC (permalink / raw)
To: Anatolij Gustschin; +Cc: linuxppc-dev
In-Reply-To: <20140128064614.511d36be@crub>
On Tue, 2014-01-28 at 06:46 +0100, Anatolij Gustschin wrote:
> Hi Ben !
>
> On Wed, 15 Jan 2014 22:18:59 +0100
> Anatolij Gustschin <agust@denx.de> wrote:
>
> > Hi Ben !
> >
> > please pull mpc5xxx patches for v3.14:
>
> Ping.
Oops, you sent that while I was on vacation and I missed it.
Next time, try to send your pull request earlier if possible, I'd like
to have most stuff together before -rc5. I'll try to send this one to
Linus after he has pulled my current one.
Cheers,
Ben.
> > Switch mpc512x to the common clock framework and adapt mpc512x
> > drivers to use the new clock driver. Old PPC_CLOCK code is
> > removed entirely since there are no users any more.
> >
> > All these patches have been in linux-next for more then
> > two weeks now.
> >
> > Thanks,
> > Anatolij
> >
> > The following changes since commit dece8ada993e1764a115bdff0f1effffaa5fc8dc:
> >
> > Merge branch 'merge' into next (2013-12-30 15:19:31 +1100)
> >
> > are available in the git repository at:
> >
> >
> > git://git.denx.de/linux-2.6-agust.git next
> >
> > for you to fetch changes up to bc75059422338197ce487d338ac9c898761e1e61:
> >
> > powerpc/512x: dts: add MPC5125 clock specs (2014-01-12 18:59:50 +0100)
> >
> > ----------------------------------------------------------------
> > Gerhard Sittig (20):
> > dts: mpc512x: introduce dt-bindings/clock/ header
> > dts: mpc512x: add clock related device tree specs
> > clk: mpc512x: introduce COMMON_CLK for MPC512x (disabled)
> > clk: mpc512x: add backwards compat to the CCF code
> > dts: mpc512x: add clock specs for client lookups
> > clk: mpc5xxx: switch to COMMON_CLK, retire PPC_CLOCK
> > spi: mpc512x: adjust to OF based clock lookup
> > serial: mpc512x: adjust for OF based clock lookup
> > serial: mpc512x: setup the PSC FIFO clock as well
> > USB: fsl-mph-dr-of: adjust for OF based clock lookup
> > mtd: mpc5121_nfc: adjust for OF based clock lookup
> > fsl-viu: adjust for OF based clock lookup
> > net: can: mscan: adjust to common clock support for mpc512x
> > net: can: mscan: remove non-CCF code for MPC512x
> > powerpc/mpc512x: improve DIU related clock setup
> > clk: mpc512x: remove migration support workarounds
> > powerpc/512x: clk: minor comment updates
> > powerpc/512x: clk: enforce even SDHC divider values
> > powerpc/512x: clk: support MPC5121/5123/5125 SoC variants
> > powerpc/512x: dts: add MPC5125 clock specs
> >
> > arch/powerpc/Kconfig | 5 -
> > arch/powerpc/boot/dts/ac14xx.dts | 7 +
> > arch/powerpc/boot/dts/mpc5121.dtsi | 113 ++-
> > arch/powerpc/boot/dts/mpc5125twr.dts | 53 +-
> > arch/powerpc/include/asm/clk_interface.h | 20 -
> > arch/powerpc/include/asm/mpc5121.h | 7 +-
> > arch/powerpc/kernel/Makefile | 1 -
> > arch/powerpc/kernel/clock.c | 82 --
> > arch/powerpc/platforms/512x/Kconfig | 2 +-
> > arch/powerpc/platforms/512x/Makefile | 3 +-
> > arch/powerpc/platforms/512x/clock-commonclk.c | 1221 +++++++++++++++++++++++++
> > arch/powerpc/platforms/512x/clock.c | 754 ---------------
> > arch/powerpc/platforms/512x/mpc512x_shared.c | 169 ++--
> > arch/powerpc/platforms/52xx/Kconfig | 2 +-
> > drivers/media/platform/fsl-viu.c | 2 +-
> > drivers/mtd/nand/mpc5121_nfc.c | 2 +-
> > drivers/net/can/mscan/mpc5xxx_can.c | 270 +++---
> > drivers/spi/spi-mpc512x-psc.c | 26 +-
> > drivers/tty/serial/mpc52xx_uart.c | 90 +-
> > drivers/usb/host/fsl-mph-dr-of.c | 13 +-
> > include/dt-bindings/clock/mpc512x-clock.h | 76 ++
> > include/linux/clk-provider.h | 16 +
> > 22 files changed, 1840 insertions(+), 1094 deletions(-)
> > delete mode 100644 arch/powerpc/include/asm/clk_interface.h
> > delete mode 100644 arch/powerpc/kernel/clock.c
> > create mode 100644 arch/powerpc/platforms/512x/clock-commonclk.c
> > delete mode 100644 arch/powerpc/platforms/512x/clock.c
> > create mode 100644 include/dt-bindings/clock/mpc512x-clock.h
^ permalink raw reply
* Re: Please pull 'next' branch of 5xxx tree
From: Anatolij Gustschin @ 2014-01-28 5:46 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev
In-Reply-To: <20140115221859.50866e87@crub>
Hi Ben !
On Wed, 15 Jan 2014 22:18:59 +0100
Anatolij Gustschin <agust@denx.de> wrote:
> Hi Ben !
>
> please pull mpc5xxx patches for v3.14:
Ping.
> Switch mpc512x to the common clock framework and adapt mpc512x
> drivers to use the new clock driver. Old PPC_CLOCK code is
> removed entirely since there are no users any more.
>
> All these patches have been in linux-next for more then
> two weeks now.
>
> Thanks,
> Anatolij
>
> The following changes since commit dece8ada993e1764a115bdff0f1effffaa5fc8dc:
>
> Merge branch 'merge' into next (2013-12-30 15:19:31 +1100)
>
> are available in the git repository at:
>
>
> git://git.denx.de/linux-2.6-agust.git next
>
> for you to fetch changes up to bc75059422338197ce487d338ac9c898761e1e61:
>
> powerpc/512x: dts: add MPC5125 clock specs (2014-01-12 18:59:50 +0100)
>
> ----------------------------------------------------------------
> Gerhard Sittig (20):
> dts: mpc512x: introduce dt-bindings/clock/ header
> dts: mpc512x: add clock related device tree specs
> clk: mpc512x: introduce COMMON_CLK for MPC512x (disabled)
> clk: mpc512x: add backwards compat to the CCF code
> dts: mpc512x: add clock specs for client lookups
> clk: mpc5xxx: switch to COMMON_CLK, retire PPC_CLOCK
> spi: mpc512x: adjust to OF based clock lookup
> serial: mpc512x: adjust for OF based clock lookup
> serial: mpc512x: setup the PSC FIFO clock as well
> USB: fsl-mph-dr-of: adjust for OF based clock lookup
> mtd: mpc5121_nfc: adjust for OF based clock lookup
> fsl-viu: adjust for OF based clock lookup
> net: can: mscan: adjust to common clock support for mpc512x
> net: can: mscan: remove non-CCF code for MPC512x
> powerpc/mpc512x: improve DIU related clock setup
> clk: mpc512x: remove migration support workarounds
> powerpc/512x: clk: minor comment updates
> powerpc/512x: clk: enforce even SDHC divider values
> powerpc/512x: clk: support MPC5121/5123/5125 SoC variants
> powerpc/512x: dts: add MPC5125 clock specs
>
> arch/powerpc/Kconfig | 5 -
> arch/powerpc/boot/dts/ac14xx.dts | 7 +
> arch/powerpc/boot/dts/mpc5121.dtsi | 113 ++-
> arch/powerpc/boot/dts/mpc5125twr.dts | 53 +-
> arch/powerpc/include/asm/clk_interface.h | 20 -
> arch/powerpc/include/asm/mpc5121.h | 7 +-
> arch/powerpc/kernel/Makefile | 1 -
> arch/powerpc/kernel/clock.c | 82 --
> arch/powerpc/platforms/512x/Kconfig | 2 +-
> arch/powerpc/platforms/512x/Makefile | 3 +-
> arch/powerpc/platforms/512x/clock-commonclk.c | 1221 +++++++++++++++++++++++++
> arch/powerpc/platforms/512x/clock.c | 754 ---------------
> arch/powerpc/platforms/512x/mpc512x_shared.c | 169 ++--
> arch/powerpc/platforms/52xx/Kconfig | 2 +-
> drivers/media/platform/fsl-viu.c | 2 +-
> drivers/mtd/nand/mpc5121_nfc.c | 2 +-
> drivers/net/can/mscan/mpc5xxx_can.c | 270 +++---
> drivers/spi/spi-mpc512x-psc.c | 26 +-
> drivers/tty/serial/mpc52xx_uart.c | 90 +-
> drivers/usb/host/fsl-mph-dr-of.c | 13 +-
> include/dt-bindings/clock/mpc512x-clock.h | 76 ++
> include/linux/clk-provider.h | 16 +
> 22 files changed, 1840 insertions(+), 1094 deletions(-)
> delete mode 100644 arch/powerpc/include/asm/clk_interface.h
> delete mode 100644 arch/powerpc/kernel/clock.c
> create mode 100644 arch/powerpc/platforms/512x/clock-commonclk.c
> delete mode 100644 arch/powerpc/platforms/512x/clock.c
> create mode 100644 include/dt-bindings/clock/mpc512x-clock.h
^ permalink raw reply
* [PATCH 2/2][v7] powerpc/config: Enable memory driver
From: Prabhakar Kushwaha @ 2014-01-28 5:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: scottwood, Prabhakar Kushwaha
As Freescale IFC controller has been moved to driver to driver/memory.
So enable memory driver in powerpc config
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
---
Based upon git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
Branch next
Changes for v2: Sending as it is
Changes for v3: Sending as it is
Changes for v4: Rebased to
git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
changes for v5:
- Rebased to branch next of
git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
Changes for v6: Sending as it is
Changes for v7: Sending as it is
arch/powerpc/configs/corenet32_smp_defconfig | 1 +
arch/powerpc/configs/corenet64_smp_defconfig | 1 +
arch/powerpc/configs/mpc85xx_defconfig | 1 +
arch/powerpc/configs/mpc85xx_smp_defconfig | 1 +
4 files changed, 4 insertions(+)
diff --git a/arch/powerpc/configs/corenet32_smp_defconfig b/arch/powerpc/configs/corenet32_smp_defconfig
index bbd794d..087d437 100644
--- a/arch/powerpc/configs/corenet32_smp_defconfig
+++ b/arch/powerpc/configs/corenet32_smp_defconfig
@@ -142,6 +142,7 @@ CONFIG_RTC_DRV_DS3232=y
CONFIG_RTC_DRV_CMOS=y
CONFIG_UIO=y
CONFIG_STAGING=y
+CONFIG_MEMORY=y
CONFIG_VIRT_DRIVERS=y
CONFIG_FSL_HV_MANAGER=y
CONFIG_EXT2_FS=y
diff --git a/arch/powerpc/configs/corenet64_smp_defconfig b/arch/powerpc/configs/corenet64_smp_defconfig
index 63508dd..25b03f8 100644
--- a/arch/powerpc/configs/corenet64_smp_defconfig
+++ b/arch/powerpc/configs/corenet64_smp_defconfig
@@ -129,6 +129,7 @@ CONFIG_EDAC=y
CONFIG_EDAC_MM_EDAC=y
CONFIG_DMADEVICES=y
CONFIG_FSL_DMA=y
+CONFIG_MEMORY=y
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_ISO9660_FS=m
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index 83d3550..cba638c 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -216,6 +216,7 @@ CONFIG_RTC_DRV_CMOS=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_DMADEVICES=y
CONFIG_FSL_DMA=y
+CONFIG_MEMORY=y
# CONFIG_NET_DMA is not set
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig
index 4b68629..e315b8a 100644
--- a/arch/powerpc/configs/mpc85xx_smp_defconfig
+++ b/arch/powerpc/configs/mpc85xx_smp_defconfig
@@ -217,6 +217,7 @@ CONFIG_RTC_DRV_CMOS=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_DMADEVICES=y
CONFIG_FSL_DMA=y
+CONFIG_MEMORY=y
# CONFIG_NET_DMA is not set
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
--
1.7.9.5
^ permalink raw reply related
* [PATCH 1/2][v7] driver/memory:Move Freescale IFC driver to a common driver
From: Prabhakar Kushwaha @ 2014-01-28 5:29 UTC (permalink / raw)
To: linuxppc-dev; +Cc: scottwood, Prabhakar Kushwaha
Freescale IFC controller has been used for mpc8xxx. It will be used
for ARM-based SoC as well. This patch moves the driver to driver/memory
and fix the header file includes.
Also remove module_platform_driver() and instead call
platform_driver_register() from subsys_initcall() to make sure this module
has been loaded before MTD partition parsing starts.
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---
Based upon git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
Branch next
Changes for v2:
- Move fsl_ifc in driver/memory
Changes for v3:
- move device tree bindings to memory
Changes for v4: Rebased to
git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
Changes for v5:
- Moved powerpc/Kconfig option to driver/memory
Changes for v6:
- Update Kconfig details
Changes for v7:
- Update Kconfig
.../{powerpc => memory-controllers}/fsl/ifc.txt | 0
arch/powerpc/Kconfig | 4 ----
arch/powerpc/sysdev/Makefile | 1 -
drivers/memory/Kconfig | 8 ++++++++
drivers/memory/Makefile | 1 +
{arch/powerpc/sysdev => drivers/memory}/fsl_ifc.c | 8 ++++++--
drivers/mtd/nand/fsl_ifc_nand.c | 2 +-
.../include/asm => include/linux}/fsl_ifc.h | 0
8 files changed, 16 insertions(+), 8 deletions(-)
rename Documentation/devicetree/bindings/{powerpc => memory-controllers}/fsl/ifc.txt (100%)
rename {arch/powerpc/sysdev => drivers/memory}/fsl_ifc.c (98%)
rename {arch/powerpc/include/asm => include/linux}/fsl_ifc.h (100%)
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt b/Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt
similarity index 100%
rename from Documentation/devicetree/bindings/powerpc/fsl/ifc.txt
rename to Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 6ca5d5c..3f868f5 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -728,10 +728,6 @@ config FSL_LBC
controller. Also contains some common code used by
drivers for specific local bus peripherals.
-config FSL_IFC
- bool
- depends on FSL_SOC
-
config FSL_GTM
bool
depends on PPC_83xx || QUICC_ENGINE || CPM2
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index f67ac90..afbcc37 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -21,7 +21,6 @@ obj-$(CONFIG_FSL_SOC) += fsl_soc.o fsl_mpic_err.o
obj-$(CONFIG_FSL_PCI) += fsl_pci.o $(fsl-msi-obj-y)
obj-$(CONFIG_FSL_PMC) += fsl_pmc.o
obj-$(CONFIG_FSL_LBC) += fsl_lbc.o
-obj-$(CONFIG_FSL_IFC) += fsl_ifc.o
obj-$(CONFIG_FSL_GTM) += fsl_gtm.o
obj-$(CONFIG_FSL_85XX_CACHE_SRAM) += fsl_85xx_l2ctlr.o fsl_85xx_cache_sram.o
obj-$(CONFIG_SIMPLE_GPIO) += simple_gpio.o
diff --git a/drivers/memory/Kconfig b/drivers/memory/Kconfig
index 29a11db..3176866 100644
--- a/drivers/memory/Kconfig
+++ b/drivers/memory/Kconfig
@@ -50,4 +50,12 @@ config TEGRA30_MC
analysis, especially for IOMMU/SMMU(System Memory Management
Unit) module.
+config FSL_IFC
+ bool "Freescale Integrated Flash Controller"
+ depends on FSL_SOC
+ help
+ This driver is for the Integrated Flash Controller Controller(IFC)
+ module available in Freescale SoCs. This controller allows to handle flash
+ devices such as NOR, NAND, FPGA and ASIC etc
+
endif
diff --git a/drivers/memory/Makefile b/drivers/memory/Makefile
index 969d923..f2bf25c 100644
--- a/drivers/memory/Makefile
+++ b/drivers/memory/Makefile
@@ -6,6 +6,7 @@ ifeq ($(CONFIG_DDR),y)
obj-$(CONFIG_OF) += of_memory.o
endif
obj-$(CONFIG_TI_EMIF) += emif.o
+obj-$(CONFIG_FSL_IFC) += fsl_ifc.o
obj-$(CONFIG_MVEBU_DEVBUS) += mvebu-devbus.o
obj-$(CONFIG_TEGRA20_MC) += tegra20-mc.o
obj-$(CONFIG_TEGRA30_MC) += tegra30-mc.o
diff --git a/arch/powerpc/sysdev/fsl_ifc.c b/drivers/memory/fsl_ifc.c
similarity index 98%
rename from arch/powerpc/sysdev/fsl_ifc.c
rename to drivers/memory/fsl_ifc.c
index fbc885b..3d5d792 100644
--- a/arch/powerpc/sysdev/fsl_ifc.c
+++ b/drivers/memory/fsl_ifc.c
@@ -29,8 +29,8 @@
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
+#include <linux/fsl_ifc.h>
#include <asm/prom.h>
-#include <asm/fsl_ifc.h>
struct fsl_ifc_ctrl *fsl_ifc_ctrl_dev;
EXPORT_SYMBOL(fsl_ifc_ctrl_dev);
@@ -298,7 +298,11 @@ static struct platform_driver fsl_ifc_ctrl_driver = {
.remove = fsl_ifc_ctrl_remove,
};
-module_platform_driver(fsl_ifc_ctrl_driver);
+static int __init fsl_ifc_init(void)
+{
+ return platform_driver_register(&fsl_ifc_ctrl_driver);
+}
+subsys_initcall(fsl_ifc_init);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Freescale Semiconductor");
diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
index 4335577..865b323 100644
--- a/drivers/mtd/nand/fsl_ifc_nand.c
+++ b/drivers/mtd/nand/fsl_ifc_nand.c
@@ -30,7 +30,7 @@
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>
#include <linux/mtd/nand_ecc.h>
-#include <asm/fsl_ifc.h>
+#include <linux/fsl_ifc.h>
#define FSL_IFC_V1_1_0 0x01010000
#define ERR_BYTE 0xFF /* Value returned for read
diff --git a/arch/powerpc/include/asm/fsl_ifc.h b/include/linux/fsl_ifc.h
similarity index 100%
rename from arch/powerpc/include/asm/fsl_ifc.h
rename to include/linux/fsl_ifc.h
--
1.7.9.5
^ permalink raw reply related
* [git pull] Please pull powerpc.git merge branch
From: Benjamin Herrenschmidt @ 2014-01-28 4:37 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linuxppc-dev list, Andrew Morton, Linux Kernel list
Hi Linus !
This is the patch that I had sent after -rc8 and which we decided
to wait before merging. It's based on a different tree than my
-next branch (it needs some pre-reqs that were in -rc4 or so while
my -next is based on -rc1) so I left it as a separate branch for
your to pull. It's identical to the request I did 2 or 3 weeks back.
This fixes crashes in mremap with THP on powerpc.
The fix however requires a small change in the generic code. It moves a
condition into a helper we can override from the arch which is harmless,
but it *also* slightly changes the order of the set_pmd and the withdraw
& deposit, which should be fine according to Kirill (who wrote that
code) but I agree -rc8 is a bit late...
It was acked by Kirill and Andrew told me to just merge it via powerpc.
Cheers,
Ben.
The following changes since commit a6da83f98267bc8ee4e34aa899169991eb0ceb93:
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc (2014-01-13 10:59:05 +0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git merge
for you to fetch changes up to b3084f4db3aeb991c507ca774337c7e7893ed04f:
powerpc/thp: Fix crash on mremap (2014-01-15 15:46:38 +1100)
----------------------------------------------------------------
Aneesh Kumar K.V (1):
powerpc/thp: Fix crash on mremap
arch/powerpc/include/asm/pgtable-ppc64.h | 14 ++++++++++++++
include/asm-generic/pgtable.h | 12 ++++++++++++
mm/huge_memory.c | 14 +++++---------
3 files changed, 31 insertions(+), 9 deletions(-)
^ permalink raw reply
* [git pull] Please pull powerpc.git next branch
From: Benjamin Herrenschmidt @ 2014-01-28 4:35 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linuxppc-dev, Linux Kernel list
Hi Linus !
So here's my next branch for powerpc. A bit late as I was on vacation
last week. It's mostly the same stuff that was in next already, I just
added two patches today which are the wiring up of lockref for powerpc,
which for some reason fell through the cracks last time and is trivial.
The merge has conflicts that aren't too nasty but in case you have an
issue resolving them, I've put a resolved branch in "test" of the same
repository for you to look at.
The highlights are, in addition to a bunch of bug fixes:
- Reworked Machine Check handling on kernels running without a
hypervisor (or acting as a hypervisor). Provides hooks to handle
some errors in real mode such as TLB errors, handle SLB errors, etc...
- Support for retrieving memory error information from the service
processor on IBM servers running without a hypervisor and routing
them to the memory poison infrastructure.
- _PAGE_NUMA support on server processors
- 32-bit BookE relocatable kernel support
- FSL e6500 hardware tablewalk support
- A bunch of new/revived board support
- FSL e6500 deeper idle states and altivec powerdown support
I have a remaining fix that is still based on a different branch for
which I will send you a pull request separately (it's the patch that
didn't make it in -rc8 since it might potentially affect x86).
You'll notice a generic mm change here, it has been acked by the
relevant authorities and is a pre-req for our _PAGE_NUMA support.
The following changes since commit f991db1cf1bdca43675b5d2df0af991719727029:
Merge remote-tracking branch 'agust/merge' into merge (2013-12-30 14:48:27 +1100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git next
for you to fetch changes up to 7179ba52889bef7e5e23f72908270e1ab2b7fc6f:
powerpc: Implement arch_spin_is_locked() using arch_spin_value_unlocked() (2014-01-28 14:45:44 +1100)
----------------------------------------------------------------
Alexey Kardashevskiy (1):
PPC: POWERNV: move iommu_add_device earlier
Alistair Popple (3):
powerpc/iommu: Update constant names to reflect their hardcoded page size
powerpc/iommu: Add it_page_shift field to determine iommu page size
powerpc/iommu: Update the generic code to use dynamic iommu page sizes
Andreas Schwab (1):
powerpc: Add vr save/restore functions
Aneesh Kumar K.V (5):
mm: Move change_prot_numa outside CONFIG_ARCH_USES_NUMA_PROT_NONE
powerpc/mm: Use HPTE constants when updating hpte bits
powerpc/mm: Free up _PAGE_COHERENCE for numa fault use later
powerpc/mm: Only check for _PAGE_PRESENT in set_pte/pmd functions
powerpc/mm: Enable _PAGE_NUMA for book3s
Anton Blanchard (2):
powerpc: Fix endian issues in power7/8 machine check handler
drivers/tty: ehv_bytechan fails to build as a module
Benjamin Herrenschmidt (3):
powerpc: Fix races with irq_work
Brian King (1):
powerpc: Increase EEH recovery timeout for SR-IOV
Chen Gang (1):
powerpc: kernel: remove useless code which related with 'max_cpus'
Christian Engelmayer (1):
powerpc/sysdev: Fix a pci section mismatch for Book E
Denis Efremov (1):
powerpc/ps3: Remove inline marking of EXPORT_SYMBOL functions
Diana Craciun (1):
powerpc: Replaced tlbilx with tlbwe in the initialization code
Gavin Shan (9):
powerpc/powernv: Move PHB-diag dump functions around
powerpc/eeh: Output PHB diag-data
powerpc/powernv: Remove unnecessary assignment
powerpc/eeh: Add restore_config operation
powerpc/eeh: Call opal_pci_reinit() on powernv for restoring config space
powerpc/eeh: Hotplug improvement
powerpc/iommu: Don't detach device without IOMMU group
powerpc/eeh: Handle multiple EEH errors
powerpc/eeh: Escalate error on non-existing PE
Geert Uytterhoeven (2):
powerpc/windfarm: Remove superfluous name casts
powerpc: Make add_system_ram_resources() __init
Ian Campbell (3):
powerpc/4xx: Fix warning in kilauea.dtb
powerpc/dts/virtex440: Declare address/size-cells for phy device
powerpc/boot: Ignore .dtb files.
Jeremy Kerr (2):
powerpc: Make slb_shadow a local
powerpc: Dynamically allocate slb_shadow from memblock
Joseph Myers (6):
powerpc: fix exception clearing in e500 SPE float emulation
powerpc: fix e500 SPE float rounding inexactness detection
math-emu: fix floating-point to integer unsigned saturation
math-emu: fix floating-point to integer overflow detection
powerpc: fix e500 SPE float to integer and fixed-point conversions
powerpc: fix e500 SPE float SIGFPE generation
Kevin Hao (14):
powerpc: Move the patch_exception to a common place
powerpc: Use patch_exception to update the debug exception handler
powerpc: purge all the prefetched instructions for the coherent icache flush
powerpc/85xx: don't init the mpic ipi for the SoC which has doorbell support
powerpc/fsl_booke: protect the access to MAS7
powerpc/fsl_booke: introduce get_phys_addr function
powerpc: introduce macro LOAD_REG_ADDR_PIC
powerpc: enable the relocatable support for the fsl booke 32bit kernel
powerpc/fsl_booke: set the tlb entry for the kernel address in AS1
powerpc: introduce early_get_first_memblock_info
powerpc/fsl_booke: introduce map_mem_in_cams_addr
powerpc/fsl_booke: make sure PAGE_OFFSET map to memstart_addr for relocatable kernel
powerpc/fsl_booke: smp support for booting a relocatable kernel above 64M
powerpc/fsl_booke: enable the relocatable for the kdump kernel
LEROY Christophe (1):
powerpc 8xx: defconfig: slice by 4 is more efficient than the default slice by 8 on Powerpc 8xx.
Lijun Pan (1):
powerpc/85xx: Merge 85xx/p1023_defconfig into mpc85xx_smp and mpc85xx
Madhavan Srinivasan (1):
powerpc/kernel/sysfs: Cleanup set up macros for PMC/non-PMC SPRs
Mahesh Salgaonkar (17):
powerpc/book3s: Split the common exception prolog logic into two section.
powerpc/book3s: Introduce exclusive emergency stack for machine check exception.
powerpc/book3s: handle machine check in Linux host.
powerpc/book3s: Return from interrupt if coming from evil context.
powerpc/book3s: Introduce a early machine check hook in cpu_spec.
powerpc/book3s: Add flush_tlb operation in cpu_spec.
powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors on power7.
powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors on power8.
powerpc/book3s: Decode and save machine check event.
powerpc/book3s: Queue up and process delayed MCE events.
powerpc/powernv: Remove machine check handling in OPAL.
powerpc/powernv: Machine check exception handling.
powerpc/powernv: Infrastructure to read opal messages in generic format.
powerpc/powernv: Add config option for hwpoisoning.
powerpc/powernv: Get FSP memory errors and plumb into memory poison infrastructure.
powerpc: Fix "attempt to move .org backwards" error
Move precessing of MCE queued event out from syscall exit path.
Michael Ellerman (5):
powerpc/pseries: CONFIG_PSERIES_MSI should depend on PPC_PSERIES
powerpc/powernv: Replace CONFIG_POWERNV_MSI with just CONFIG_PPC_POWERNV
powerpc: Add real mode cache inhibited IO accessors
powerpc: Add support for the optimised lockref implementation
powerpc: Implement arch_spin_is_locked() using arch_spin_value_unlocked()
Michael Neuling (1):
powernv: Remove get/set_rtc_time when they are not present
Michael Opdenacker (1):
powerpc: Remove unused REDBOOT Kconfig parameter
Mihai Caraman (1):
powerpc/booke64: Add LRAT error exception handler
Nishanth Aravamudan (2):
Revert "powerpc/pseries/iommu: remove default window before attempting DDW manipulation"
Revert "pseries/iommu: Remove DDW on kexec"
Olof Johansson (1):
powerpc: add SATA_MV to ppc64_defconfig
Paul Gortmaker (2):
powerpc: fix 8xx and 6xx final link failures
powerpc: Delete non-required instances of include <linux/init.h>
Paul Mackerras (3):
powerpc: Reclaim two unused thread_info flag bits
powerpc: Don't corrupt transactional state when using FP/VMX in kernel
powerpc: Fix transactional FP/VMX/VSX unavailable handlers
Preeti U Murthy (1):
pseries/cpuidle: Remove redundant call to ppc64_runlatch_off() in cpu idle routines
Scott Wood (5):
powerpc/fsl-booke: Use SPRN_SPRGn rather than mfsprg/mtsprg
powerpc: add barrier after writing kernel PTE
powerpc/e6500: TLB miss handler with hardware tablewalk support
powerpc/fsl-book3e-64: Use paca for hugetlb TLB1 entry selection
powerpc/booke-64: fix tlbsrx. path in bolted tlb handler
Shaohui Xie (1):
powerpc/85xx: handle the eLBC error interrupt if it exists in dts
Shengzhou Liu (2):
powerpc/85xx/dts: add third elo3 dma component
powerpc/fsl_pci: add versionless pci compatible
Srivatsa S. Bhat (2):
powerpc: Fix the setup of CPU-to-Node mappings during CPU online
powerpc: Add debug checks to catch invalid cpu-to-node mappings
Stephen Chivers (1):
powerpc/embedded6xx: Add support for Motorola/Emerson MVME5100
Vasant Hegde (3):
powerpc/powernv: Move SG list structure to header file
powerpc/powernv: Increase candidate fw image size
powerpc/powernv: Call OPAL sync before kexec'ing
Wang Dongsheng (9):
powerpc/fsl: add E6500 PVR and SPRN_PWRMGTCR0 define
powerpc/85xx: add hardware automatically enter altivec idle state
powerpc/85xx: add hardware automatically enter pw20 state
powerpc/85xx: add sysfs for pw20 state and altivec idle
powerpc/p1022ds: fix rtc compatible string
powerpc/p1022ds: add a interrupt for rtc node
powerpc/mpic_timer: fix the time is not accurate caused by GTCRR toggle bit
powerpc/mpic_timer: fix convert ticks to time subtraction overflow
powerpc/dts: fix lbc lack of error interrupt
Xie Xiaobo (2):
powerpc/85xx: Add QE common init function
powerpc/85xx: Add TWR-P1025 board support
Yijing Wang (1):
powerpc/pci: Use dev_is_pci() to check whether it is pci device
Zhao Qiang (3):
powerpc/p1010rdb:update dts to adapt to both old and new p1010rdb
powerpc/p1010rdb:update mtd of nand to adapt to both old and new p1010rdb
powerpc/p1010rdb-pa: modify phy interrupt.
fan.du (1):
powerpc: Make irq_stat.timers_irqs counting more specific
.../devicetree/bindings/video/ssd1289fb.txt | 13 +
arch/powerpc/Kconfig | 15 +-
arch/powerpc/boot/.gitignore | 1 +
arch/powerpc/boot/Makefile | 7 +-
arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi | 82 +++++
arch/powerpc/boot/dts/fsl/p1020si-post.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/p1021si-post.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/p1022si-post.dtsi | 3 +-
arch/powerpc/boot/dts/fsl/p1023si-post.dtsi | 3 +-
arch/powerpc/boot/dts/kilauea.dts | 2 +-
arch/powerpc/boot/dts/mvme5100.dts | 185 ++++++++++
arch/powerpc/boot/dts/p1010rdb-pa.dts | 23 ++
arch/powerpc/boot/dts/p1010rdb-pa.dtsi | 85 +++++
.../dts/{p1010rdb_36b.dts => p1010rdb-pa_36b.dts} | 47 +--
arch/powerpc/boot/dts/p1010rdb-pb.dts | 35 ++
arch/powerpc/boot/dts/p1010rdb-pb_36b.dts | 58 +++
arch/powerpc/boot/dts/p1010rdb.dts | 66 ----
arch/powerpc/boot/dts/p1010rdb.dtsi | 43 +--
arch/powerpc/boot/dts/p1010rdb_32b.dtsi | 79 +++++
arch/powerpc/boot/dts/p1010rdb_36b.dtsi | 79 +++++
arch/powerpc/boot/dts/p1022ds.dtsi | 3 +-
arch/powerpc/boot/dts/p1025twr.dts | 95 +++++
arch/powerpc/boot/dts/p1025twr.dtsi | 280 +++++++++++++++
arch/powerpc/boot/dts/virtex440-ml507.dts | 2 +
arch/powerpc/boot/mvme5100.c | 27 ++
arch/powerpc/boot/wrapper | 4 +
arch/powerpc/configs/85xx/p1023_defconfig | 188 ----------
arch/powerpc/configs/adder875_defconfig | 1 +
arch/powerpc/configs/ep88xc_defconfig | 1 +
arch/powerpc/configs/mpc85xx_defconfig | 3 +
arch/powerpc/configs/mpc85xx_smp_defconfig | 3 +
arch/powerpc/configs/mpc866_ads_defconfig | 1 +
arch/powerpc/configs/mpc885_ads_defconfig | 1 +
arch/powerpc/configs/mvme5100_defconfig | 144 ++++++++
arch/powerpc/configs/ppc64_defconfig | 1 +
arch/powerpc/configs/tqm8xx_defconfig | 1 +
arch/powerpc/include/asm/bitops.h | 5 +
arch/powerpc/include/asm/cache.h | 14 +-
arch/powerpc/include/asm/cmpxchg.h | 1 +
arch/powerpc/include/asm/code-patching.h | 7 +
arch/powerpc/include/asm/cputable.h | 12 +
arch/powerpc/include/asm/eeh.h | 14 +-
arch/powerpc/include/asm/exception-64s.h | 21 +-
arch/powerpc/include/asm/fsl_lbc.h | 2 +-
arch/powerpc/include/asm/hardirq.h | 3 +-
arch/powerpc/include/asm/io.h | 16 +
arch/powerpc/include/asm/iommu.h | 54 ++-
arch/powerpc/include/asm/kvm_asm.h | 1 +
arch/powerpc/include/asm/lppaca.h | 2 -
arch/powerpc/include/asm/mce.h | 197 +++++++++++
arch/powerpc/include/asm/mmu-book3e.h | 13 +
arch/powerpc/include/asm/mmu.h | 21 +-
arch/powerpc/include/asm/opal.h | 108 +++++-
arch/powerpc/include/asm/paca.h | 16 +-
arch/powerpc/include/asm/pgtable.h | 66 +++-
arch/powerpc/include/asm/ppc_asm.h | 14 +-
arch/powerpc/include/asm/processor.h | 8 +-
arch/powerpc/include/asm/ps3.h | 1 -
arch/powerpc/include/asm/pte-hash64.h | 8 +-
arch/powerpc/include/asm/reg.h | 2 +
arch/powerpc/include/asm/reg_booke.h | 10 +
arch/powerpc/include/asm/spinlock.h | 12 +-
arch/powerpc/include/asm/thread_info.h | 9 +-
arch/powerpc/include/asm/tm.h | 1 +
arch/powerpc/include/asm/topology.h | 10 +-
arch/powerpc/include/asm/vio.h | 1 -
arch/powerpc/kernel/Makefile | 1 +
arch/powerpc/kernel/asm-offsets.c | 13 +
arch/powerpc/kernel/cacheinfo.c | 1 -
arch/powerpc/kernel/cpu_setup_fsl_booke.S | 54 +++
arch/powerpc/kernel/cpu_setup_power.S | 38 +-
arch/powerpc/kernel/cputable.c | 16 +
arch/powerpc/kernel/crash.c | 1 -
arch/powerpc/kernel/dma-iommu.c | 4 +-
arch/powerpc/kernel/eeh.c | 17 +-
arch/powerpc/kernel/eeh_driver.c | 162 +++++----
arch/powerpc/kernel/eeh_pe.c | 4 +-
arch/powerpc/kernel/entry_64.S | 12 +-
arch/powerpc/kernel/exceptions-64e.S | 27 +-
arch/powerpc/kernel/exceptions-64s.S | 242 +++++++++++--
arch/powerpc/kernel/fpu.S | 16 +
arch/powerpc/kernel/fsl_booke_entry_mapping.S | 2 +
arch/powerpc/kernel/head_64.S | 1 +
arch/powerpc/kernel/head_fsl_booke.S | 266 ++++++++++++--
arch/powerpc/kernel/hw_breakpoint.c | 1 -
arch/powerpc/kernel/idle_power7.S | 1 +
arch/powerpc/kernel/iomap.c | 1 -
arch/powerpc/kernel/iommu.c | 145 ++++----
arch/powerpc/kernel/irq.c | 12 +-
arch/powerpc/kernel/kgdb.c | 1 -
arch/powerpc/kernel/mce.c | 352 +++++++++++++++++++
arch/powerpc/kernel/mce_power.c | 284 +++++++++++++++
arch/powerpc/kernel/misc_32.S | 4 +-
arch/powerpc/kernel/misc_64.S | 6 +
arch/powerpc/kernel/paca.c | 37 +-
arch/powerpc/kernel/process.c | 177 +++++++++-
arch/powerpc/kernel/prom.c | 41 ++-
arch/powerpc/kernel/setup_64.c | 47 ++-
arch/powerpc/kernel/signal.c | 3 +-
arch/powerpc/kernel/signal_32.c | 21 +-
arch/powerpc/kernel/signal_64.c | 14 +-
arch/powerpc/kernel/smp-tbsync.c | 1 -
arch/powerpc/kernel/smp.c | 9 +-
arch/powerpc/kernel/swsusp_booke.S | 32 +-
arch/powerpc/kernel/syscalls.c | 1 -
arch/powerpc/kernel/sysfs.c | 388 +++++++++++++++++++--
arch/powerpc/kernel/time.c | 14 +-
arch/powerpc/kernel/traps.c | 72 +++-
arch/powerpc/kernel/vdso32/vdso32_wrapper.S | 1 -
arch/powerpc/kernel/vdso64/vdso64_wrapper.S | 1 -
arch/powerpc/kernel/vector.S | 10 +
arch/powerpc/kernel/vio.c | 31 +-
arch/powerpc/kvm/book3s_hv_ras.c | 50 ++-
arch/powerpc/kvm/bookehv_interrupts.S | 2 +
arch/powerpc/lib/code-patching.c | 15 +
arch/powerpc/lib/crtsavres.S | 186 ++++++++++
arch/powerpc/math-emu/math_efp.c | 316 ++++++++++++-----
arch/powerpc/mm/fsl_booke_mmu.c | 80 ++++-
arch/powerpc/mm/hash_low_64.S | 15 +-
arch/powerpc/mm/hash_utils_64.c | 7 +-
arch/powerpc/mm/hugepage-hash64.c | 6 +-
arch/powerpc/mm/hugetlbpage-book3e.c | 54 ++-
arch/powerpc/mm/hugetlbpage-hash64.c | 4 +
arch/powerpc/mm/mem.c | 8 +-
arch/powerpc/mm/mmu_decl.h | 2 +
arch/powerpc/mm/numa.c | 96 ++++-
arch/powerpc/mm/pgtable.c | 3 +-
arch/powerpc/mm/pgtable_32.c | 1 +
arch/powerpc/mm/pgtable_64.c | 15 +-
arch/powerpc/mm/tlb_hash64.c | 1 -
arch/powerpc/mm/tlb_low_64e.S | 174 ++++++++-
arch/powerpc/mm/tlb_nohash.c | 112 +++---
arch/powerpc/mm/tlb_nohash_low.S | 4 +-
arch/powerpc/oprofile/op_model_7450.c | 1 -
arch/powerpc/oprofile/op_model_cell.c | 1 -
arch/powerpc/oprofile/op_model_fsl_emb.c | 1 -
arch/powerpc/oprofile/op_model_pa6t.c | 1 -
arch/powerpc/oprofile/op_model_power4.c | 1 -
arch/powerpc/oprofile/op_model_rs64.c | 1 -
arch/powerpc/platforms/83xx/Kconfig | 1 -
arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c | 1 -
arch/powerpc/platforms/83xx/suspend.c | 1 -
arch/powerpc/platforms/85xx/Kconfig | 6 +
arch/powerpc/platforms/85xx/Makefile | 1 +
arch/powerpc/platforms/85xx/common.c | 38 ++
arch/powerpc/platforms/85xx/mpc85xx.h | 6 +
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 29 +-
arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 25 +-
arch/powerpc/platforms/85xx/sgy_cts1000.c | 1 -
arch/powerpc/platforms/85xx/smp.c | 17 +-
arch/powerpc/platforms/85xx/twr_p102x.c | 147 ++++++++
arch/powerpc/platforms/8xx/Kconfig | 1 -
arch/powerpc/platforms/Kconfig.cputype | 1 +
arch/powerpc/platforms/cell/beat_htab.c | 4 +-
arch/powerpc/platforms/cell/iommu.c | 14 +-
arch/powerpc/platforms/chrp/smp.c | 1 -
arch/powerpc/platforms/embedded6xx/Kconfig | 13 +-
arch/powerpc/platforms/embedded6xx/Makefile | 1 +
arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 1 -
arch/powerpc/platforms/embedded6xx/mvme5100.c | 221 ++++++++++++
arch/powerpc/platforms/pasemi/dma_lib.c | 1 -
arch/powerpc/platforms/pasemi/iommu.c | 5 +-
arch/powerpc/platforms/powermac/pfunc_core.c | 1 -
arch/powerpc/platforms/powernv/Kconfig | 5 -
arch/powerpc/platforms/powernv/Makefile | 1 +
arch/powerpc/platforms/powernv/eeh-ioda.c | 223 +++---------
arch/powerpc/platforms/powernv/eeh-powernv.c | 24 +-
arch/powerpc/platforms/powernv/opal-flash.c | 35 +-
.../powerpc/platforms/powernv/opal-memory-errors.c | 146 ++++++++
arch/powerpc/platforms/powernv/opal-rtc.c | 6 +-
arch/powerpc/platforms/powernv/opal-wrappers.S | 3 +
arch/powerpc/platforms/powernv/opal.c | 267 ++++++++------
arch/powerpc/platforms/powernv/pci-ioda.c | 11 +-
arch/powerpc/platforms/powernv/pci-p5ioc2.c | 2 +-
arch/powerpc/platforms/powernv/pci.c | 230 ++++++++----
arch/powerpc/platforms/powernv/pci.h | 3 +
arch/powerpc/platforms/powernv/setup.c | 6 +-
arch/powerpc/platforms/ps3/spu.c | 2 +-
arch/powerpc/platforms/pseries/Kconfig | 2 +-
arch/powerpc/platforms/pseries/cmm.c | 1 -
arch/powerpc/platforms/pseries/dtl.c | 1 -
arch/powerpc/platforms/pseries/eeh_pseries.c | 4 +-
arch/powerpc/platforms/pseries/iommu.c | 167 +++------
arch/powerpc/platforms/pseries/lpar.c | 5 +-
arch/powerpc/platforms/pseries/processor_idle.c | 3 -
arch/powerpc/platforms/pseries/setup.c | 4 +-
arch/powerpc/platforms/wsp/wsp_pci.c | 11 +-
arch/powerpc/sysdev/Kconfig | 2 +-
arch/powerpc/sysdev/cpm2_pic.c | 1 -
arch/powerpc/sysdev/fsl_ifc.c | 1 -
arch/powerpc/sysdev/fsl_lbc.c | 31 +-
arch/powerpc/sysdev/fsl_pci.c | 5 +-
arch/powerpc/sysdev/ge/ge_pic.h | 1 -
arch/powerpc/sysdev/i8259.c | 1 -
arch/powerpc/sysdev/indirect_pci.c | 6 +-
arch/powerpc/sysdev/mpc8xx_pic.c | 1 -
arch/powerpc/sysdev/mpic_timer.c | 10 +-
arch/powerpc/sysdev/qe_lib/qe_io.c | 1 -
arch/powerpc/sysdev/qe_lib/ucc.c | 1 -
arch/powerpc/sysdev/qe_lib/ucc_fast.c | 1 -
arch/powerpc/sysdev/qe_lib/ucc_slow.c | 1 -
arch/powerpc/sysdev/udbg_memcons.c | 1 -
arch/powerpc/sysdev/xics/icp-hv.c | 1 -
arch/powerpc/xmon/xmon.c | 4 +
drivers/macintosh/windfarm_lm75_sensor.c | 2 +-
drivers/macintosh/windfarm_max6690_sensor.c | 2 +-
drivers/net/ethernet/ibm/ibmveth.c | 12 +-
drivers/tty/Kconfig | 2 +-
drivers/vfio/vfio_iommu_spapr_tce.c | 28 +-
include/linux/mm.h | 2 +-
include/linux/of_fdt.h | 1 +
include/math-emu/op-common.h | 9 +-
mm/mempolicy.c | 5 +-
scripts/mod/modpost.c | 8 +-
214 files changed, 6169 insertions(+), 1647 deletions(-)
create mode 100644 Documentation/devicetree/bindings/video/ssd1289fb.txt
create mode 100644 arch/powerpc/boot/dts/fsl/elo3-dma-2.dtsi
create mode 100644 arch/powerpc/boot/dts/mvme5100.dts
create mode 100644 arch/powerpc/boot/dts/p1010rdb-pa.dts
create mode 100644 arch/powerpc/boot/dts/p1010rdb-pa.dtsi
rename arch/powerpc/boot/dts/{p1010rdb_36b.dts => p1010rdb-pa_36b.dts} (64%)
create mode 100644 arch/powerpc/boot/dts/p1010rdb-pb.dts
create mode 100644 arch/powerpc/boot/dts/p1010rdb-pb_36b.dts
delete mode 100644 arch/powerpc/boot/dts/p1010rdb.dts
create mode 100644 arch/powerpc/boot/dts/p1010rdb_32b.dtsi
create mode 100644 arch/powerpc/boot/dts/p1010rdb_36b.dtsi
create mode 100644 arch/powerpc/boot/dts/p1025twr.dts
create mode 100644 arch/powerpc/boot/dts/p1025twr.dtsi
create mode 100644 arch/powerpc/boot/mvme5100.c
delete mode 100644 arch/powerpc/configs/85xx/p1023_defconfig
create mode 100644 arch/powerpc/configs/mvme5100_defconfig
create mode 100644 arch/powerpc/include/asm/mce.h
create mode 100644 arch/powerpc/kernel/mce.c
create mode 100644 arch/powerpc/kernel/mce_power.c
create mode 100644 arch/powerpc/platforms/85xx/twr_p102x.c
create mode 100644 arch/powerpc/platforms/embedded6xx/mvme5100.c
create mode 100644 arch/powerpc/platforms/powernv/opal-memory-errors.c
^ permalink raw reply
* Re: [PATCH RFC 00/73] tree-wide: clean up some no longer required #include <linux/init.h>
From: Benjamin Herrenschmidt @ 2014-01-28 3:13 UTC (permalink / raw)
To: Paul Gortmaker
Cc: linux-arch, Stephen Rothwell, linux-m68k, x86, linux-ia64, kvm,
linux-mips, linux-s390, rusty, linux-kernel, linuxppc-dev,
linux-alpha, gregkh, netdev, sparclinux, akpm, torvalds,
linux-arm-kernel
In-Reply-To: <20140123003838.GA10182@windriver.com>
On Wed, 2014-01-22 at 19:38 -0500, Paul Gortmaker wrote:
> Thanks, it was a great help as it uncovered a few issues in fringe arch
> that I didn't have toolchains for, and I've fixed all of those up.
>
> I've noticed that powerpc has been un-buildable for a while now; I have
> used this hack patch locally so I could run the ppc defconfigs to check
> that I didn't break anything. Maybe useful for linux-next in the
> interim? It is a hack patch -- Not-Signed-off-by: Paul Gortmaker. :)
Can you and/or Aneesh submit that as a proper patch (with S-O-B
etc...) ?
Thanks !
Cheers,
Ben.
> Paul.
> --
>
> diff --git a/arch/powerpc/include/asm/pgtable-ppc64.h b/arch/powerpc/include/asm/pgtable-ppc64.h
> index d27960c89a71..d0f070a2b395 100644
> --- a/arch/powerpc/include/asm/pgtable-ppc64.h
> +++ b/arch/powerpc/include/asm/pgtable-ppc64.h
> @@ -560,9 +560,9 @@ extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
> pmd_t *pmdp);
>
> #define pmd_move_must_withdraw pmd_move_must_withdraw
> -typedef struct spinlock spinlock_t;
> -static inline int pmd_move_must_withdraw(spinlock_t *new_pmd_ptl,
> - spinlock_t *old_pmd_ptl)
> +struct spinlock;
> +static inline int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl,
> + struct spinlock *old_pmd_ptl)
> {
> /*
> * Archs like ppc64 use pgtable to store per pmd
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
^ permalink raw reply
* [PATCH 2/2] Fix coding style errors
From: Brandon Stewart @ 2014-01-28 3:07 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev, linux-kernel
I corrected several coding errors.
Signed-off-by: Brandon Stewart <stewartb2@gmail.com>
---
drivers/macintosh/adb.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c
index 53611de..dd3f49a 100644
--- a/drivers/macintosh/adb.c
+++ b/drivers/macintosh/adb.c
@@ -623,7 +623,7 @@ do_adb_query(struct adb_request *req)
{
int ret = -EINVAL;
- switch(req->data[1]) {
+ switch (req->data[1]) {
case ADB_QUERY_GETDEVINFO:
if (req->nbytes < 3)
break;
@@ -792,8 +792,9 @@ static ssize_t adb_write(struct file *file, const char __user *buf,
}
/* Special case for ADB_BUSRESET request, all others are sent to
the controller */
- else if ((req->data[0] == ADB_PACKET) && (count > 1)
- && (req->data[1] == ADB_BUSRESET)) {
+ else if (req->data[0] == ADB_PACKET &&
+ req->data[1] == ADB_BUSRESET &&
+ count > 1) {
ret = do_adb_reset_bus();
up(&adb_probe_mutex);
atomic_dec(&state->n_pending);
--
1.8.5.3
^ permalink raw reply related
* Re: [PATCH 1/1] Fixed some coding style problems
From: Joe Perches @ 2014-01-28 1:52 UTC (permalink / raw)
To: Brandon Stewart; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <1390873397-4470-1-git-send-email-stewartb2@gmail.com>
On Mon, 2014-01-27 at 19:43 -0600, Brandon Stewart wrote:
[]
> diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c
[]
> @@ -624,8 +623,7 @@ do_adb_query(struct adb_request *req)
> {
> int ret = -EINVAL;
>
> - switch(req->data[1])
> - {
> + switch(req->data[1]) {
switch (req->data[1]) {
> @@ -794,8 +792,8 @@ static ssize_t adb_write(struct file *file, const char __user *buf,
> }
> /* Special case for ADB_BUSRESET request, all others are sent to
> the controller */
> - else if ((req->data[0] == ADB_PACKET)&&(count > 1)
> - &&(req->data[1] == ADB_BUSRESET)) {
> + else if ((req->data[0] == ADB_PACKET) && (count > 1)
> + && (req->data[1] == ADB_BUSRESET)) {
else if (req->data[0] == ADB_PACKET &&
req->data[1] == ADB_BUSRESET &&
count > 1) {
^ permalink raw reply
* [PATCH 1/1] Fixed some coding style problems
From: Brandon Stewart @ 2014-01-28 1:43 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev, linux-kernel
Signed-off-by: Brandon Stewart <stewartb2@gmail.com>
---
drivers/macintosh/adb.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c
index 04a5049..53611de 100644
--- a/drivers/macintosh/adb.c
+++ b/drivers/macintosh/adb.c
@@ -38,7 +38,7 @@
#include <linux/platform_device.h>
#include <linux/mutex.h>
-#include <asm/uaccess.h>
+#include <linux/uaccess.h>
#ifdef CONFIG_PPC
#include <asm/prom.h>
#include <asm/machdep.h>
@@ -193,8 +193,7 @@ static int adb_scan_bus(void)
break;
noMovement = 0;
- }
- else {
+ } else {
/*
* No devices left at address i; move the
* one(s) we moved to `highFree' back to i.
@@ -502,7 +501,7 @@ void
adb_input(unsigned char *buf, int nb, int autopoll)
{
int i, id;
- static int dump_adb_input = 0;
+ static int dump_adb_input;
unsigned long flags;
void (*handler)(unsigned char *, int, int);
@@ -624,8 +623,7 @@ do_adb_query(struct adb_request *req)
{
int ret = -EINVAL;
- switch(req->data[1])
- {
+ switch(req->data[1]) {
case ADB_QUERY_GETDEVINFO:
if (req->nbytes < 3)
break;
@@ -697,7 +695,7 @@ static ssize_t adb_read(struct file *file, char __user *buf,
int ret = 0;
struct adbdev_state *state = file->private_data;
struct adb_request *req;
- DECLARE_WAITQUEUE(wait,current);
+ DECLARE_WAITQUEUE(wait, current);
unsigned long flags;
if (count < 2)
@@ -794,8 +792,8 @@ static ssize_t adb_write(struct file *file, const char __user *buf,
}
/* Special case for ADB_BUSRESET request, all others are sent to
the controller */
- else if ((req->data[0] == ADB_PACKET)&&(count > 1)
- &&(req->data[1] == ADB_BUSRESET)) {
+ else if ((req->data[0] == ADB_PACKET) && (count > 1)
+ && (req->data[1] == ADB_BUSRESET)) {
ret = do_adb_reset_bus();
up(&adb_probe_mutex);
atomic_dec(&state->n_pending);
--
1.8.5.3
^ permalink raw reply related
* Re: [PATCH 1/2][v6] driver/memory:Move Freescale IFC driver to a common driver
From: Scott Wood @ 2014-01-27 23:04 UTC (permalink / raw)
To: Prabhakar Kushwaha; +Cc: linuxppc-dev
In-Reply-To: <1390651572-24468-1-git-send-email-prabhakar@freescale.com>
On Sat, 2014-01-25 at 17:36 +0530, Prabhakar Kushwaha wrote:
> diff --git a/drivers/memory/Kconfig b/drivers/memory/Kconfig
> index 29a11db..555d26f 100644
> --- a/drivers/memory/Kconfig
> +++ b/drivers/memory/Kconfig
> @@ -50,4 +50,13 @@ config TEGRA30_MC
> analysis, especially for IOMMU/SMMU(System Memory Management
> Unit) module.
>
> +config FSL_IFC
> + bool "Freescale Integrated Flash Controller"
> + default y
Don't use "default y".
-Scott
^ permalink raw reply
* Re: [PATCH 1/2][v6] driver/memory:Move Freescale IFC driver to a common driver
From: Kumar Gala @ 2014-01-27 22:06 UTC (permalink / raw)
To: Prabhakar Kushwaha; +Cc: Scott Wood, linuxppc-dev
In-Reply-To: <1390651572-24468-1-git-send-email-prabhakar@freescale.com>
On Jan 25, 2014, at 6:06 AM, Prabhakar Kushwaha =
<prabhakar@freescale.com> wrote:
> Freescale IFC controller has been used for mpc8xxx. It will be used
> for ARM-based SoC as well. This patch moves the driver to =
driver/memory
> and fix the header file includes.
>=20
> Also remove module_platform_driver() and instead call
> platform_driver_register() from subsys_initcall() to make sure this =
module
> has been loaded before MTD partition parsing starts.
>=20
> Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> ---
> Based upon =
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git
> Branch next
>=20
> Changes for v2:
> - Move fsl_ifc in driver/memory
>=20
> Changes for v3:
> - move device tree bindings to memory
>=20
> Changes for v4: Rebased to=20
> =
git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git
>=20
> Changes for v5:=20
> - Moved powerpc/Kconfig option to driver/memory
>=20
> Changes for v6:
> - Update Kconfig details
>=20
> .../{powerpc =3D> memory-controllers}/fsl/ifc.txt | 0
> arch/powerpc/Kconfig | 4 ----
> arch/powerpc/sysdev/Makefile | 1 -
> drivers/memory/Kconfig | 9 +++++++++
> drivers/memory/Makefile | 1 +
> {arch/powerpc/sysdev =3D> drivers/memory}/fsl_ifc.c | 8 ++++++--
> drivers/mtd/nand/fsl_ifc_nand.c | 2 +-
> .../include/asm =3D> include/linux}/fsl_ifc.h | 0
> 8 files changed, 17 insertions(+), 8 deletions(-)
> rename Documentation/devicetree/bindings/{powerpc =3D> =
memory-controllers}/fsl/ifc.txt (100%)
> rename {arch/powerpc/sysdev =3D> drivers/memory}/fsl_ifc.c (98%)
> rename {arch/powerpc/include/asm =3D> include/linux}/fsl_ifc.h (100%)
>=20
> diff --git a/Documentation/devicetree/bindings/powerpc/fsl/ifc.txt =
b/Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt
> similarity index 100%
> rename from Documentation/devicetree/bindings/powerpc/fsl/ifc.txt
> rename to =
Documentation/devicetree/bindings/memory-controllers/fsl/ifc.txt
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index fa39517..91dc43c 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -727,10 +727,6 @@ config FSL_LBC
> controller. Also contains some common code used by
> drivers for specific local bus peripherals.
>=20
> -config FSL_IFC
> - bool
> - depends on FSL_SOC
> -
> config FSL_GTM
> bool
> depends on PPC_83xx || QUICC_ENGINE || CPM2
> diff --git a/arch/powerpc/sysdev/Makefile =
b/arch/powerpc/sysdev/Makefile
> index f67ac90..afbcc37 100644
> --- a/arch/powerpc/sysdev/Makefile
> +++ b/arch/powerpc/sysdev/Makefile
> @@ -21,7 +21,6 @@ obj-$(CONFIG_FSL_SOC) +=3D fsl_soc.o =
fsl_mpic_err.o
> obj-$(CONFIG_FSL_PCI) +=3D fsl_pci.o $(fsl-msi-obj-y)
> obj-$(CONFIG_FSL_PMC) +=3D fsl_pmc.o
> obj-$(CONFIG_FSL_LBC) +=3D fsl_lbc.o
> -obj-$(CONFIG_FSL_IFC) +=3D fsl_ifc.o
> obj-$(CONFIG_FSL_GTM) +=3D fsl_gtm.o
> obj-$(CONFIG_FSL_85XX_CACHE_SRAM) +=3D fsl_85xx_l2ctlr.o =
fsl_85xx_cache_sram.o
> obj-$(CONFIG_SIMPLE_GPIO) +=3D simple_gpio.o
> diff --git a/drivers/memory/Kconfig b/drivers/memory/Kconfig
> index 29a11db..555d26f 100644
> --- a/drivers/memory/Kconfig
> +++ b/drivers/memory/Kconfig
> @@ -50,4 +50,13 @@ config TEGRA30_MC
> analysis, especially for IOMMU/SMMU(System Memory Management
> Unit) module.
>=20
> +config FSL_IFC
> + bool "Freescale Integrated Flash Controller"
> + default y
> + depends on FSL_SOC
minor white space nit (spaces instead of tab)
> + help
> + This driver is for the Integrated Flash Controller =
Controller(IFC)=20
> + module available in Freescale SoCs. This controller allows to =
handle flash
> + devices such as NOR, NAND, FPGA and ASIC etc
> +
> endif
- k
^ permalink raw reply
* Re: [PATCH 1/9] ARM: get rid of arch_cpu_idle_prepare()
From: Nicolas Pitre @ 2014-01-27 17:36 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: linaro-kernel, linux-sh, Peter Zijlstra, Catalin Marinas,
linux-pm, Daniel Lezcano, Rafael J. Wysocki, linux-kernel,
Paul Mundt, Thomas Gleixner, linuxppc-dev, Ingo Molnar,
linux-arm-kernel
In-Reply-To: <20140127160654.GO15937@n2100.arm.linux.org.uk>
On Mon, 27 Jan 2014, Russell King - ARM Linux wrote:
> On Mon, Jan 27, 2014 at 10:45:59AM -0500, Nicolas Pitre wrote:
> > On Mon, 27 Jan 2014, Russell King - ARM Linux wrote:
> >
> > > On Mon, Jan 27, 2014 at 01:08:16AM -0500, Nicolas Pitre wrote:
> > > > ARM and ARM64 are the only two architectures implementing
> > > > arch_cpu_idle_prepare() simply to call local_fiq_enable().
> > > >
> > > > We have secondary_start_kernel() already calling local_fiq_enable() and
> > > > this is done a second time in arch_cpu_idle_prepare() in that case. And
> > > > enabling FIQs has nothing to do with idling the CPU to start with.
> > > >
> > > > So let's introduce init_fiq_boot_cpu() to take care of FIQs on the boot
> > > > CPU and remove arch_cpu_idle_prepare(). This is now done a bit earlier
> > > > at late_initcall time but this shouldn't make a difference in practice
> > > > i.e. when FIQs are actually used.
> > > >
> > > > Signed-off-by: Nicolas Pitre <nico@linaro.org>
> > > > ---
> > > > arch/arm/kernel/process.c | 5 -----
> > > > arch/arm/kernel/setup.c | 7 +++++++
> > > > 2 files changed, 7 insertions(+), 5 deletions(-)
> > > >
> > > > diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
> > > > index 92f7b15dd2..725b8c95e0 100644
> > > > --- a/arch/arm/kernel/process.c
> > > > +++ b/arch/arm/kernel/process.c
> > > > @@ -142,11 +142,6 @@ static void default_idle(void)
> > > > local_irq_enable();
> > > > }
> > > >
> > > > -void arch_cpu_idle_prepare(void)
> > > > -{
> > > > - local_fiq_enable();
> > > > -}
> > > > -
> > > > void arch_cpu_idle_enter(void)
> > > > {
> > > > ledtrig_cpu(CPU_LED_IDLE_START);
> > > > diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
> > > > index 987a7f5bce..d027b1a6fe 100644
> > > > --- a/arch/arm/kernel/setup.c
> > > > +++ b/arch/arm/kernel/setup.c
> > > > @@ -789,6 +789,13 @@ static int __init init_machine_late(void)
> > > > }
> > > > late_initcall(init_machine_late);
> > > >
> > > > +static int __init init_fiq_boot_cpu(void)
> > > > +{
> > > > + local_fiq_enable();
> > > > + return 0;
> > > > +}
> > > > +late_initcall(init_fiq_boot_cpu);
> > >
> > > arch_cpu_idle_prepare() gets called from the swapper thread, and changes
> > > the swapper thread's CPSR. init_fiq_boot_cpu() gets called from PID1, the
> > > init thread, and changes the init thread's CPSR, which will already have
> > > FIQs enabled by way of how kernel threads are created.
> > >
> > > Hence, the above code fragment has no effect what so ever, and those
> > > platforms using FIQs will not have FIQs delivered if they're idle
> > > (because the swapper will have FIQs masked at the CPU.)
> >
> > You're right.
> >
> > What about moving local_fiq_enable() to trap_init() then?
>
> That's potentially unsafe, as we haven't touched any of the IRQ
> controllers at that point - we can't guarantee what state they'd be
> in. Given that the default FIQ is to just return, a FIQ being raised
> at that point will end up with an infinite loop re-entering the FIQ
> handler.
Okay... I don't see any obvious way to work around that besides adding
another explicit hook, which arch_cpu_idle_prepare() incidentally
already is. So, unless you have a better idea, I'll drop this patch and
leave ARM as the only user of arch_cpu_idle_prepare().
Nicolas
^ permalink raw reply
* Re: [PATCH 1/9] ARM: get rid of arch_cpu_idle_prepare()
From: Peter Zijlstra @ 2014-01-27 17:35 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Nicolas Pitre, linaro-kernel, linux-sh, Catalin Marinas, linux-pm,
Daniel Lezcano, Rafael J. Wysocki, linux-kernel, Paul Mundt,
Thomas Gleixner, linuxppc-dev, Ingo Molnar, linux-arm-kernel
In-Reply-To: <20140127172110.GR15937@n2100.arm.linux.org.uk>
On Mon, Jan 27, 2014 at 05:21:10PM +0000, Russell King - ARM Linux wrote:
> A reviewed-by tag on its own doesn't mean much, as it could mean that
> you've just glanced over the code and decided "yea, it looks okay", or
> it could mean that you've spent all day verifying that the code change
> is indeed correct.
One should use Acked-by for the 'yea, it looks okay' thing.
^ permalink raw reply
* Re: [PATCH 1/9] ARM: get rid of arch_cpu_idle_prepare()
From: Daniel Lezcano @ 2014-01-27 17:30 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Nicolas Pitre, linaro-kernel, linux-sh, Peter Zijlstra,
Catalin Marinas, linux-pm, Rafael J. Wysocki, linux-kernel,
Paul Mundt, Thomas Gleixner, linuxppc-dev, Ingo Molnar,
linux-arm-kernel
In-Reply-To: <20140127172110.GR15937@n2100.arm.linux.org.uk>
On 01/27/2014 06:21 PM, Russell King - ARM Linux wrote:
> On Mon, Jan 27, 2014 at 06:12:53PM +0100, Daniel Lezcano wrote:
>> On 01/27/2014 05:07 PM, Russell King - ARM Linux wrote:
>>> On Mon, Jan 27, 2014 at 09:22:55AM +0100, Daniel Lezcano wrote:
>>>> On 01/27/2014 07:08 AM, Nicolas Pitre wrote:
>>>>> ARM and ARM64 are the only two architectures implementing
>>>>> arch_cpu_idle_prepare() simply to call local_fiq_enable().
>>>>>
>>>>> We have secondary_start_kernel() already calling local_fiq_enable() and
>>>>> this is done a second time in arch_cpu_idle_prepare() in that case. And
>>>>> enabling FIQs has nothing to do with idling the CPU to start with.
>>>>>
>>>>> So let's introduce init_fiq_boot_cpu() to take care of FIQs on the boot
>>>>> CPU and remove arch_cpu_idle_prepare(). This is now done a bit earlier
>>>>> at late_initcall time but this shouldn't make a difference in practice
>>>>> i.e. when FIQs are actually used.
>>>>>
>>>>> Signed-off-by: Nicolas Pitre <nico@linaro.org>
>>>>
>>>> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>>>
>>> What kind of review did you do when giving that attributation?
>>
>> I did the review to the best of my knowledge and with good will.
>>
>> I read your comment on this patch and I learnt one more thing.
>>
>> Today, I am smarter than yesterday and dumber than tomorrow :)
>
> Just be aware that putting a comment along with the reviewed-by tag
> is always a good idea. I know that's a little more work, but this has
> been raised a number of times by various people over the years.
>
> A reviewed-by tag on its own doesn't mean much, as it could mean that
> you've just glanced over the code and decided "yea, it looks okay", or
> it could mean that you've spent all day verifying that the code change
> is indeed correct.
>
> Consequently, some will ignore emails which just contain a reviewed-by
> attributation.
Thanks for the clarification. I will take care of giving a comment next
time.
-- Daniel
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply
* Re: [PATCH 1/9] ARM: get rid of arch_cpu_idle_prepare()
From: Russell King - ARM Linux @ 2014-01-27 17:21 UTC (permalink / raw)
To: Daniel Lezcano
Cc: Nicolas Pitre, linaro-kernel, linux-sh, Peter Zijlstra,
Catalin Marinas, linux-pm, Rafael J. Wysocki, linux-kernel,
Paul Mundt, Thomas Gleixner, linuxppc-dev, Ingo Molnar,
linux-arm-kernel
In-Reply-To: <52E69395.9020004@linaro.org>
On Mon, Jan 27, 2014 at 06:12:53PM +0100, Daniel Lezcano wrote:
> On 01/27/2014 05:07 PM, Russell King - ARM Linux wrote:
>> On Mon, Jan 27, 2014 at 09:22:55AM +0100, Daniel Lezcano wrote:
>>> On 01/27/2014 07:08 AM, Nicolas Pitre wrote:
>>>> ARM and ARM64 are the only two architectures implementing
>>>> arch_cpu_idle_prepare() simply to call local_fiq_enable().
>>>>
>>>> We have secondary_start_kernel() already calling local_fiq_enable() and
>>>> this is done a second time in arch_cpu_idle_prepare() in that case. And
>>>> enabling FIQs has nothing to do with idling the CPU to start with.
>>>>
>>>> So let's introduce init_fiq_boot_cpu() to take care of FIQs on the boot
>>>> CPU and remove arch_cpu_idle_prepare(). This is now done a bit earlier
>>>> at late_initcall time but this shouldn't make a difference in practice
>>>> i.e. when FIQs are actually used.
>>>>
>>>> Signed-off-by: Nicolas Pitre <nico@linaro.org>
>>>
>>> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>>
>> What kind of review did you do when giving that attributation?
>
> I did the review to the best of my knowledge and with good will.
>
> I read your comment on this patch and I learnt one more thing.
>
> Today, I am smarter than yesterday and dumber than tomorrow :)
Just be aware that putting a comment along with the reviewed-by tag
is always a good idea. I know that's a little more work, but this has
been raised a number of times by various people over the years.
A reviewed-by tag on its own doesn't mean much, as it could mean that
you've just glanced over the code and decided "yea, it looks okay", or
it could mean that you've spent all day verifying that the code change
is indeed correct.
Consequently, some will ignore emails which just contain a reviewed-by
attributation.
--
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up. Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".
^ permalink raw reply
* Re: [PATCH 1/9] ARM: get rid of arch_cpu_idle_prepare()
From: Daniel Lezcano @ 2014-01-27 17:12 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Nicolas Pitre, linaro-kernel, linux-sh, Peter Zijlstra,
Catalin Marinas, linux-pm, Rafael J. Wysocki, linux-kernel,
Paul Mundt, Thomas Gleixner, linuxppc-dev, Ingo Molnar,
linux-arm-kernel
In-Reply-To: <20140127160736.GP15937@n2100.arm.linux.org.uk>
On 01/27/2014 05:07 PM, Russell King - ARM Linux wrote:
> On Mon, Jan 27, 2014 at 09:22:55AM +0100, Daniel Lezcano wrote:
>> On 01/27/2014 07:08 AM, Nicolas Pitre wrote:
>>> ARM and ARM64 are the only two architectures implementing
>>> arch_cpu_idle_prepare() simply to call local_fiq_enable().
>>>
>>> We have secondary_start_kernel() already calling local_fiq_enable() and
>>> this is done a second time in arch_cpu_idle_prepare() in that case. And
>>> enabling FIQs has nothing to do with idling the CPU to start with.
>>>
>>> So let's introduce init_fiq_boot_cpu() to take care of FIQs on the boot
>>> CPU and remove arch_cpu_idle_prepare(). This is now done a bit earlier
>>> at late_initcall time but this shouldn't make a difference in practice
>>> i.e. when FIQs are actually used.
>>>
>>> Signed-off-by: Nicolas Pitre <nico@linaro.org>
>>
>> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>
> What kind of review did you do when giving that attributation?
I did the review to the best of my knowledge and with good will.
I read your comment on this patch and I learnt one more thing.
Today, I am smarter than yesterday and dumber than tomorrow :)
-- Daniel
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply
* [PATCH] powerpc/pseries Use remove_memory() to remove memory
From: Nathan Fontenot @ 2014-01-27 16:54 UTC (permalink / raw)
To: linuxppc-dev@lists.ozlabs.org
The memory remove code for powerpc/pseries should call remove_memory()
so that we are holding the hotplug_memory lock during memory remove
operations.
This patch updates the memory node remove handler to call remove_memory()
and adds a ppc_md.remove_memory() entry to handle pseries specific work
that is called from arch_remove_memory().
During memory remove in pseries_remove_memblock() we have to stay with
removing memory one section at a time. This is needed because of how memory
resources are handled. During memory add for pseries (via the probe file in
sysfs) we add memory one section at a time which gives us a memory resource
for each section. Future patches will aim to address this so will not have
to remove memory one section at a time.
Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
---
arch/powerpc/include/asm/machdep.h | 4 +
arch/powerpc/mm/mem.c | 7 +
arch/powerpc/platforms/pseries/hotplug-memory.c | 85 +++++++++++-------------
3 files changed, 50 insertions(+), 46 deletions(-)
Index: powerpc/arch/powerpc/platforms/pseries/hotplug-memory.c
===================================================================
--- powerpc.orig/arch/powerpc/platforms/pseries/hotplug-memory.c 2014-01-27 08:47:19.000000000 -0600
+++ powerpc/arch/powerpc/platforms/pseries/hotplug-memory.c 2014-01-27 09:21:54.000000000 -0600
@@ -14,6 +14,7 @@
#include <linux/memblock.h>
#include <linux/vmalloc.h>
#include <linux/memory.h>
+#include <linux/memory_hotplug.h>
#include <asm/firmware.h>
#include <asm/machdep.h>
@@ -75,13 +76,27 @@
}
#ifdef CONFIG_MEMORY_HOTREMOVE
-static int pseries_remove_memblock(unsigned long base, unsigned int memblock_size)
+static int pseries_remove_memory(u64 start, u64 size)
{
- unsigned long start, start_pfn;
- struct zone *zone;
int ret;
- unsigned long section;
- unsigned long sections_to_remove;
+
+ /* Remove htab bolted mappings for this section of memory */
+ start = (unsigned long)__va(start);
+ ret = remove_section_mapping(start, start + size);
+
+ /* Ensure all vmalloc mappings are flushed in case they also
+ * hit that section of memory
+ */
+ vm_unmap_aliases();
+
+ return ret;
+}
+
+static int pseries_remove_memblock(unsigned long base, unsigned int memblock_size)
+{
+ unsigned long block_sz, start_pfn;
+ int sections_per_block;
+ int i, nid;
start_pfn = base >> PAGE_SHIFT;
@@ -90,45 +105,21 @@
return 0;
}
- zone = page_zone(pfn_to_page(start_pfn));
-
- /*
- * Remove section mappings and sysfs entries for the
- * section of the memory we are removing.
- *
- * NOTE: Ideally, this should be done in generic code like
- * remove_memory(). But remove_memory() gets called by writing
- * to sysfs "state" file and we can't remove sysfs entries
- * while writing to it. So we have to defer it to here.
- */
- sections_to_remove = (memblock_size >> PAGE_SHIFT) / PAGES_PER_SECTION;
- for (section = 0; section < sections_to_remove; section++) {
- unsigned long pfn = start_pfn + section * PAGES_PER_SECTION;
- ret = __remove_pages(zone, pfn, PAGES_PER_SECTION);
- if (ret)
- return ret;
+ block_sz = memory_block_size_bytes();
+ sections_per_block = block_sz / MIN_MEMORY_BLOCK_SIZE;
+ nid = memory_add_physaddr_to_nid(base);
+
+ for (i = 0; i < sections_per_block; i++) {
+ remove_memory(nid, base, MIN_MEMORY_BLOCK_SIZE);
+ base += MIN_MEMORY_BLOCK_SIZE;
}
- /*
- * Update memory regions for memory remove
- */
+ /* Update memory regions for memory remove */
memblock_remove(base, memblock_size);
-
- /*
- * Remove htab bolted mappings for this section of memory
- */
- start = (unsigned long)__va(base);
- ret = remove_section_mapping(start, start + memblock_size);
-
- /* Ensure all vmalloc mappings are flushed in case they also
- * hit that section of memory
- */
- vm_unmap_aliases();
-
- return ret;
+ return 0;
}
-static int pseries_remove_memory(struct device_node *np)
+static int pseries_remove_mem_node(struct device_node *np)
{
const char *type;
const unsigned int *regs;
@@ -153,8 +144,8 @@
base = *(unsigned long *)regs;
lmb_size = regs[3];
- ret = pseries_remove_memblock(base, lmb_size);
- return ret;
+ pseries_remove_memblock(base, lmb_size);
+ return 0;
}
#else
static inline int pseries_remove_memblock(unsigned long base,
@@ -162,13 +153,13 @@
{
return -EOPNOTSUPP;
}
-static inline int pseries_remove_memory(struct device_node *np)
+static inline int pseries_remove_mem_node(struct device_node *np)
{
return -EOPNOTSUPP;
}
#endif /* CONFIG_MEMORY_HOTREMOVE */
-static int pseries_add_memory(struct device_node *np)
+static int pseries_add_mem_node(struct device_node *np)
{
const char *type;
const unsigned int *regs;
@@ -254,10 +245,10 @@
switch (action) {
case OF_RECONFIG_ATTACH_NODE:
- err = pseries_add_memory(node);
+ err = pseries_add_mem_node(node);
break;
case OF_RECONFIG_DETACH_NODE:
- err = pseries_remove_memory(node);
+ err = pseries_remove_mem_node(node);
break;
case OF_RECONFIG_UPDATE_PROPERTY:
pr = (struct of_prop_reconfig *)node;
@@ -277,6 +268,10 @@
if (firmware_has_feature(FW_FEATURE_LPAR))
of_reconfig_notifier_register(&pseries_mem_nb);
+#ifdef CONFIG_MEMORY_HOTREMOVE
+ ppc_md.remove_memory = pseries_remove_memory;
+#endif
+
return 0;
}
machine_device_initcall(pseries, pseries_memory_hotplug_init);
Index: powerpc/arch/powerpc/include/asm/machdep.h
===================================================================
--- powerpc.orig/arch/powerpc/include/asm/machdep.h 2014-01-27 08:47:18.000000000 -0600
+++ powerpc/arch/powerpc/include/asm/machdep.h 2014-01-27 08:48:31.000000000 -0600
@@ -279,6 +279,10 @@
#ifdef CONFIG_ARCH_RANDOM
int (*get_random_long)(unsigned long *v);
#endif
+
+#ifdef CONFIG_MEMORY_HOTREMOVE
+ int (*remove_memory)(u64, u64);
+#endif
};
extern void e500_idle(void);
Index: powerpc/arch/powerpc/mm/mem.c
===================================================================
--- powerpc.orig/arch/powerpc/mm/mem.c 2014-01-27 08:47:18.000000000 -0600
+++ powerpc/arch/powerpc/mm/mem.c 2014-01-27 08:48:31.000000000 -0600
@@ -139,9 +139,14 @@
unsigned long start_pfn = start >> PAGE_SHIFT;
unsigned long nr_pages = size >> PAGE_SHIFT;
struct zone *zone;
+ int ret;
zone = page_zone(pfn_to_page(start_pfn));
- return __remove_pages(zone, start_pfn, nr_pages);
+ ret = __remove_pages(zone, start_pfn, nr_pages);
+ if (!ret && (ppc_md.remove_memory))
+ ret = ppc_md.remove_memory(start, size);
+
+ return ret;
}
#endif
#endif /* CONFIG_MEMORY_HOTPLUG */
^ permalink raw reply
* Re: [PATCH] slub: Don't throw away partial remote slabs if there is no local memory
From: Christoph Lameter @ 2014-01-27 16:24 UTC (permalink / raw)
To: Nishanth Aravamudan
Cc: Han Pingtian, mpm, penberg, linux-mm, paulus, Anton Blanchard,
David Rientjes, Joonsoo Kim, linuxppc-dev, Wanpeng Li
In-Reply-To: <20140125001643.GA25344@linux.vnet.ibm.com>
On Fri, 24 Jan 2014, Nishanth Aravamudan wrote:
> What I find odd is that there are only 2 nodes on this system, node 0
> (empty) and node 1. So won't numa_mem_id() always be 1? And every page
> should be coming from node 1 (thus node_match() should always be true?)
Well yes that occurs if you specify the node or just always use the
default memory allocation policy.
In order to spread the allocatios over both node you would have to set the
tasks memory allocation policy to MPOL_INTERLEAVE.
^ permalink raw reply
* Re: [PATCH] slub: Don't throw away partial remote slabs if there is no local memory
From: Christoph Lameter @ 2014-01-27 16:16 UTC (permalink / raw)
To: David Rientjes
Cc: Han Pingtian, Nishanth Aravamudan, penberg, linux-mm, paulus,
Anton Blanchard, mpm, Joonsoo Kim, linuxppc-dev, Wanpeng Li
In-Reply-To: <alpine.DEB.2.02.1401241543100.18620@chino.kir.corp.google.com>
On Fri, 24 Jan 2014, David Rientjes wrote:
> kmalloc_node(nid) and kmem_cache_alloc_node(nid) should fallback to nodes
> other than nid when memory can't be allocated, these functions only
> indicate a preference.
The nid passed indicated a preference unless __GFP_THIS_NODE is specified.
Then the allocation must occur on that node.
^ permalink raw reply
* Re: [PATCH] slub: Don't throw away partial remote slabs if there is no local memory
From: Christoph Lameter @ 2014-01-27 16:18 UTC (permalink / raw)
To: Nishanth Aravamudan
Cc: Han Pingtian, mpm, penberg, linux-mm, paulus, Anton Blanchard,
David Rientjes, Joonsoo Kim, linuxppc-dev, Wanpeng Li
In-Reply-To: <20140125011041.GB25344@linux.vnet.ibm.com>
On Fri, 24 Jan 2014, Nishanth Aravamudan wrote:
> As to cpu_to_node() being passed to kmalloc_node(), I think an
> appropriate fix is to change that to cpu_to_mem()?
Yup.
> > Yeah, the default policy should be to fallback to local memory if the node
> > passed is memoryless.
>
> Thanks!
I would suggest to use NUMA_NO_NODE instead. That will fit any slab that
we may be currently allocating from or can get a hold of and is mosty
efficient.
^ permalink raw reply
* Re: [PATCH 1/9] ARM: get rid of arch_cpu_idle_prepare()
From: Russell King - ARM Linux @ 2014-01-27 16:07 UTC (permalink / raw)
To: Daniel Lezcano
Cc: Nicolas Pitre, linaro-kernel, linux-sh, Peter Zijlstra,
Catalin Marinas, linux-pm, Rafael J. Wysocki, linux-kernel,
Paul Mundt, Thomas Gleixner, linuxppc-dev, Ingo Molnar,
linux-arm-kernel
In-Reply-To: <52E6175F.1050401@linaro.org>
On Mon, Jan 27, 2014 at 09:22:55AM +0100, Daniel Lezcano wrote:
> On 01/27/2014 07:08 AM, Nicolas Pitre wrote:
>> ARM and ARM64 are the only two architectures implementing
>> arch_cpu_idle_prepare() simply to call local_fiq_enable().
>>
>> We have secondary_start_kernel() already calling local_fiq_enable() and
>> this is done a second time in arch_cpu_idle_prepare() in that case. And
>> enabling FIQs has nothing to do with idling the CPU to start with.
>>
>> So let's introduce init_fiq_boot_cpu() to take care of FIQs on the boot
>> CPU and remove arch_cpu_idle_prepare(). This is now done a bit earlier
>> at late_initcall time but this shouldn't make a difference in practice
>> i.e. when FIQs are actually used.
>>
>> Signed-off-by: Nicolas Pitre <nico@linaro.org>
>
> Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
What kind of review did you do when giving that attributation?
--
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up. Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".
^ permalink raw reply
* Re: [PATCH 1/9] ARM: get rid of arch_cpu_idle_prepare()
From: Russell King - ARM Linux @ 2014-01-27 16:06 UTC (permalink / raw)
To: Nicolas Pitre
Cc: linaro-kernel, linux-sh, Peter Zijlstra, Catalin Marinas,
linux-pm, Daniel Lezcano, Rafael J. Wysocki, linux-kernel,
Paul Mundt, Thomas Gleixner, linuxppc-dev, Ingo Molnar,
linux-arm-kernel
In-Reply-To: <alpine.LFD.2.11.1401271004060.1652@knanqh.ubzr>
On Mon, Jan 27, 2014 at 10:45:59AM -0500, Nicolas Pitre wrote:
> On Mon, 27 Jan 2014, Russell King - ARM Linux wrote:
>
> > On Mon, Jan 27, 2014 at 01:08:16AM -0500, Nicolas Pitre wrote:
> > > ARM and ARM64 are the only two architectures implementing
> > > arch_cpu_idle_prepare() simply to call local_fiq_enable().
> > >
> > > We have secondary_start_kernel() already calling local_fiq_enable() and
> > > this is done a second time in arch_cpu_idle_prepare() in that case. And
> > > enabling FIQs has nothing to do with idling the CPU to start with.
> > >
> > > So let's introduce init_fiq_boot_cpu() to take care of FIQs on the boot
> > > CPU and remove arch_cpu_idle_prepare(). This is now done a bit earlier
> > > at late_initcall time but this shouldn't make a difference in practice
> > > i.e. when FIQs are actually used.
> > >
> > > Signed-off-by: Nicolas Pitre <nico@linaro.org>
> > > ---
> > > arch/arm/kernel/process.c | 5 -----
> > > arch/arm/kernel/setup.c | 7 +++++++
> > > 2 files changed, 7 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
> > > index 92f7b15dd2..725b8c95e0 100644
> > > --- a/arch/arm/kernel/process.c
> > > +++ b/arch/arm/kernel/process.c
> > > @@ -142,11 +142,6 @@ static void default_idle(void)
> > > local_irq_enable();
> > > }
> > >
> > > -void arch_cpu_idle_prepare(void)
> > > -{
> > > - local_fiq_enable();
> > > -}
> > > -
> > > void arch_cpu_idle_enter(void)
> > > {
> > > ledtrig_cpu(CPU_LED_IDLE_START);
> > > diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
> > > index 987a7f5bce..d027b1a6fe 100644
> > > --- a/arch/arm/kernel/setup.c
> > > +++ b/arch/arm/kernel/setup.c
> > > @@ -789,6 +789,13 @@ static int __init init_machine_late(void)
> > > }
> > > late_initcall(init_machine_late);
> > >
> > > +static int __init init_fiq_boot_cpu(void)
> > > +{
> > > + local_fiq_enable();
> > > + return 0;
> > > +}
> > > +late_initcall(init_fiq_boot_cpu);
> >
> > arch_cpu_idle_prepare() gets called from the swapper thread, and changes
> > the swapper thread's CPSR. init_fiq_boot_cpu() gets called from PID1, the
> > init thread, and changes the init thread's CPSR, which will already have
> > FIQs enabled by way of how kernel threads are created.
> >
> > Hence, the above code fragment has no effect what so ever, and those
> > platforms using FIQs will not have FIQs delivered if they're idle
> > (because the swapper will have FIQs masked at the CPU.)
>
> You're right.
>
> What about moving local_fiq_enable() to trap_init() then?
That's potentially unsafe, as we haven't touched any of the IRQ
controllers at that point - we can't guarantee what state they'd be
in. Given that the default FIQ is to just return, a FIQ being raised
at that point will end up with an infinite loop re-entering the FIQ
handler.
--
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up. Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".
^ permalink raw reply
* Re: [PATCH 2/9] ARM64: get rid of arch_cpu_idle_prepare()
From: Catalin Marinas @ 2014-01-27 15:57 UTC (permalink / raw)
To: Nicolas Pitre
Cc: linaro-kernel@lists.linaro.org, Russell King,
linux-sh@vger.kernel.org, Peter Zijlstra,
linux-pm@vger.kernel.org, Daniel Lezcano, Rafael J. Wysocki,
linux-kernel@vger.kernel.org, Paul Mundt, Thomas Gleixner,
linuxppc-dev@lists.ozlabs.org, Ingo Molnar,
linux-arm-kernel@lists.infradead.org
In-Reply-To: <alpine.LFD.2.11.1401271047240.1652@knanqh.ubzr>
On Mon, Jan 27, 2014 at 03:51:02PM +0000, Nicolas Pitre wrote:
> On Mon, 27 Jan 2014, Catalin Marinas wrote:
>
> > On Mon, Jan 27, 2014 at 06:08:17AM +0000, Nicolas Pitre wrote:
> > > ARM and ARM64 are the only two architectures implementing
> > > arch_cpu_idle_prepare() simply to call local_fiq_enable().
> > >
> > > We have secondary_start_kernel() already calling local_fiq_enable() and
> > > this is done a second time in arch_cpu_idle_prepare() in that case. And
> > > enabling FIQs has nothing to do with idling the CPU to start with.
> > >
> > > So let's introduce init_fiq_boot_cpu() to take care of FIQs on the boot
> > > CPU and remove arch_cpu_idle_prepare(). This is now done a bit earlier
> > > at late_initcall time but this shouldn't make a difference in practice
> > > given that FIQs are not currently used on ARM64.
> > >
> > > Signed-off-by: Nicolas Pitre <nico@linaro.org>
> >
> > For arm64, we could simply remove any reference to FIQs. I'm not aware
> > of anyone using them.
>
> OK. What if I sumply remove arch_cpu_idle_prepare() and let you do the
> remove the rest?
>
> IMHO I'd simply remove local_fiq_{enable/disable}() from
> arm64/kernel/smp.c and leave the infrastructure in place in case someone
> needs it eventually. In which case I could include that into my patch
> as well.
Sounds good. We can keep the local_fiq_*() functions but remove about 4
calling sites (process.c and smp.c) until needed.
Thanks.
--
Catalin
^ permalink raw reply
* Re: [PATCH v2] powernv: kvm: make _PAGE_NUMA take effect
From: Aneesh Kumar K.V @ 2014-01-27 15:57 UTC (permalink / raw)
To: Alexander Graf
Cc: kvm-devel, kvm-ppc, Paul Mackerras, Liu Ping Fan, linuxppc-dev
In-Reply-To: <72133741-22DA-4477-B89F-E9C978FA294F@suse.de>
Alexander Graf <agraf@suse.de> writes:
> On 27.01.2014, at 11:28, Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> wrote:
>
>> Alexander Graf <agraf@suse.de> writes:
>>
>>> On 21.01.2014, at 10:42, Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> wrote:
>>>
>>>> Liu Ping Fan <kernelfans@gmail.com> writes:
>>>>
>>>>> To make sure that on host, the pages marked with _PAGE_NUMA result in a fault
>>>>> when guest access them, we should force the checking when guest uses hypercall
>>>>> to setup hpte.
>>>>>
>>>>> Signed-off-by: Liu Ping Fan <pingfank@linux.vnet.ibm.com>
>>>>
>>>> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>>>>
>>>> When we mark pte with _PAGE_NUMA we already call mmu_notifier_invalidate_range_start and
>>>> mmu_notifier_invalidate_range_end, which will mark existing guest hpte
>>>> entry as HPTE_V_ABSENT. Now we need to do that when we are inserting new
>>>> guest hpte entries. This patch does that.
>>>
>>> So what happens next? We insert a page into the HTAB without
>>> HPTE_V_VALID set, so the guest will fail to use it. If the guest does
>>> an H_READ on it it will suddenly turn to V_VALID though?
>>
>> As per the guest the entry is valid, so yes an hread should return a
>> valid entry. But in real hpte we would mark it not valid.
>
> Ah, yes.
>
>>
>>>
>>> I might need a crash course in the use of HPTE_V_ABSENT.
>>
>> When guest tries to access the address, the host will handle the fault.
>>
>> kvmppc_hpte_hv_fault should give more info
>
> Thanks for the pointer. So we fault it in lazily. Is there any
> particular reason we can't do that on h_enter already? After all this
> just means an additional roundtrip because the guest is pretty likely
> to use the page it just entered, no?
We could get wrong numa fault information if we didn't do h_enter from
the right node from which we faulted.
-aneesh
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox