* linux-next: manual merge of the vfs tree with the powerpc tree
From: Stephen Rothwell @ 2013-04-29 1:35 UTC (permalink / raw)
To: Al Viro; +Cc: Vasant Hegde, linux-kernel, David Howells, linux-next,
linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 1427 bytes --]
Hi Al,
Today's linux-next merge of the vfs tree got a conflict in
arch/powerpc/kernel/rtas_flash.c between commit ad18a364f186
("powerpc/rtas_flash: Free kmem upon module exit"), from the powerpc
tree and commit 5c0333c00ff6 ("ppc: Clean up rtas_flash driver somewhat")
from the vfs tree.
I fixed it up (see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc arch/powerpc/kernel/rtas_flash.c
index a3e4034,8196bfb..0000000
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
@@@ -806,20 -740,17 +758,22 @@@ enomem_buf
static void __exit rtas_flash_cleanup(void)
{
+ int i;
+
rtas_flash_term_hook = NULL;
+ if (rtas_firmware_flash_list) {
+ free_flash_list(rtas_firmware_flash_list);
+ rtas_firmware_flash_list = NULL;
+ }
+
- if (flash_block_cache)
- kmem_cache_destroy(flash_block_cache);
+ for (i = 0; i < ARRAY_SIZE(rtas_flash_files); i++) {
+ const struct rtas_flash_file *f = &rtas_flash_files[i];
+ remove_proc_entry(f->filename, NULL);
+ }
- remove_flash_pde(firmware_flash_pde);
- remove_flash_pde(firmware_update_pde);
- remove_flash_pde(validate_pde);
- remove_flash_pde(manage_pde);
+ kmem_cache_destroy(flash_block_cache);
+ kfree(rtas_validate_flash_data.buf);
}
module_init(rtas_flash_init);
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* [PATCH] powerpc: Align p_toc
From: Anton Blanchard @ 2013-04-29 1:52 UTC (permalink / raw)
To: benh, paulus; +Cc: linuxppc-dev
p_toc is an 8 byte relative offset to the TOC that we place in the
text section. This means it is only 4 byte aligned where it should
be 8 byte aligned. Add an explicit alignment.
Signed-off-by: Anton Blanchard <anton@samba.org>
---
Index: b/arch/powerpc/kernel/head_64.S
===================================================================
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -703,6 +703,7 @@ _GLOBAL(relative_toc)
mtlr r0
blr
+.balign 8
p_toc: .llong __toc_start + 0x8000 - 0b
/*
^ permalink raw reply
* Re: linux-next: manual merge of the vfs tree with the powerpc tree
From: Benjamin Herrenschmidt @ 2013-04-29 3:40 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Vasant Hegde, linux-kernel, David Howells, linux-next, Al Viro,
linuxppc-dev
In-Reply-To: <20130429113540.55b2593d303bc2a9142919fc@canb.auug.org.au>
On Mon, 2013-04-29 at 11:35 +1000, Stephen Rothwell wrote:
> Today's linux-next merge of the vfs tree got a conflict in
> arch/powerpc/kernel/rtas_flash.c between commit ad18a364f186
> ("powerpc/rtas_flash: Free kmem upon module exit"), from the powerpc
> tree and commit 5c0333c00ff6 ("ppc: Clean up rtas_flash driver
> somewhat")
> from the vfs tree.
>
> I fixed it up (see below) and can carry the fix as necessary (no
> action
> is required).
Please don't merge Dave's rework until it's been acked & fully tested by
us. AFAIK, there are outstanding comments from my guys who
reviewed/tested the first pass.
Cheers,
Ben.
^ permalink raw reply
* [PATCH 0/2] powerpc: Early debug console configuration clean up
From: Alistair Popple @ 2013-04-29 3:42 UTC (permalink / raw)
To: linuxppc-dev
This patch series (based on v3.9) adds a configuration option to
enable the use of BootX or OpenFirmware console for early debug
console support.
Previously the use of BootX/OpenFirmware as an early debug console was
selected by CONFIG_BOOTX. However this left the ability to select a
different early debug console under the "Early debugging" menu which
was not supported by udbg.c. Instead the actual console selected when
both CONFIG_BOOTX and another early debug console is conifigured was
based on the arbitrary order of a series of #if/#elif's in udbg.c.
This patch replaces the previously sent "[PATCH] Make CONFIG_BOOTX an
exclusive early debug option".
^ permalink raw reply
* [PATCH 1/2] powerpc: Add a configuration option for early BootX/OpenFirmware debug
From: Alistair Popple @ 2013-04-29 3:42 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Alistair Popple
In-Reply-To: <1367206964-6319-1-git-send-email-alistair@popple.id.au>
Signed-off-by: Alistair Popple <alistair@popple.id.au>
---
arch/powerpc/Kconfig.debug | 7 +++++++
arch/powerpc/kernel/udbg.c | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
index 5416e28..e826853 100644
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
@@ -147,6 +147,13 @@ choice
enable debugging for the wrong type of machine your kernel
_will not boot_.
+config PPC_EARLY_DEBUG_BOOTX
+ bool "BootX or OpenFirmware"
+ depends on BOOTX_TEXT
+ help
+ Select this to enable early debugging for a machine using BootX
+ or OpenFirmware.
+
config PPC_EARLY_DEBUG_LPAR
bool "LPAR HV Console"
depends on PPC_PSERIES
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c
index f974849..9bbf07b 100644
--- a/arch/powerpc/kernel/udbg.c
+++ b/arch/powerpc/kernel/udbg.c
@@ -50,7 +50,7 @@ void __init udbg_early_init(void)
udbg_init_debug_beat();
#elif defined(CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE)
udbg_init_pas_realmode();
-#elif defined(CONFIG_BOOTX_TEXT)
+#elif defined(CONFIG_PPC_EARLY_DEBUG_BOOTX)
udbg_init_btext();
#elif defined(CONFIG_PPC_EARLY_DEBUG_44x)
/* PPC44x debug */
--
1.7.10.4
^ permalink raw reply related
* [PATCH 2/2] powerpc: Update default configurations
From: Alistair Popple @ 2013-04-29 3:42 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Alistair Popple
In-Reply-To: <1367206964-6319-1-git-send-email-alistair@popple.id.au>
Update default configurations for systems with CONFIG_BOOTX_TEXT
selected so that they continue to print early debug messages as is
currently the case.
Signed-off-by: Alistair Popple <alistair@popple.id.au>
---
arch/powerpc/configs/c2k_defconfig | 2 ++
arch/powerpc/configs/g5_defconfig | 2 ++
arch/powerpc/configs/maple_defconfig | 2 ++
arch/powerpc/configs/pmac32_defconfig | 2 ++
arch/powerpc/configs/ppc64_defconfig | 2 ++
arch/powerpc/configs/ppc6xx_defconfig | 2 ++
6 files changed, 12 insertions(+)
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 2a84fd7..671a8f9 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_defconfig
@@ -423,6 +423,8 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_BOOTX_TEXT=y
+CONFIG_PPC_EARLY_DEBUG=y
+CONFIG_PPC_EARLY_DEBUG_BOOTX=y
CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index 07b7f2a..1ea22fc 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -284,6 +284,8 @@ CONFIG_DEBUG_MUTEXES=y
CONFIG_LATENCYTOP=y
CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_BOOTX_TEXT=y
+CONFIG_PPC_EARLY_DEBUG=y
+CONFIG_PPC_EARLY_DEBUG_BOOTX=y
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ECB=m
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 02ac96b..2a5afac 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -138,6 +138,8 @@ CONFIG_DEBUG_STACK_USAGE=y
CONFIG_XMON=y
CONFIG_XMON_DEFAULT=y
CONFIG_BOOTX_TEXT=y
+CONFIG_PPC_EARLY_DEBUG=y
+CONFIG_PPC_EARLY_DEBUG_BOOTX=y
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 29767a8..a73626b 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -350,6 +350,8 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_XMON=y
CONFIG_XMON_DEFAULT=y
CONFIG_BOOTX_TEXT=y
+CONFIG_PPC_EARLY_DEBUG=y
+CONFIG_PPC_EARLY_DEBUG_BOOTX=y
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_MD4=m
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index aef3f71..c86fcb9 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -398,6 +398,8 @@ CONFIG_FTR_FIXUP_SELFTEST=y
CONFIG_MSI_BITMAP_SELFTEST=y
CONFIG_XMON=y
CONFIG_BOOTX_TEXT=y
+CONFIG_PPC_EARLY_DEBUG=y
+CONFIG_PPC_EARLY_DEBUG_BOOTX=y
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_PCBC=m
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index be1cb6e..20ebfaf 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1264,6 +1264,8 @@ CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_XMON=y
CONFIG_BOOTX_TEXT=y
+CONFIG_PPC_EARLY_DEBUG=y
+CONFIG_PPC_EARLY_DEBUG_BOOTX=y
CONFIG_KEYS=y
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY=y
--
1.7.10.4
^ permalink raw reply related
* linux-next: build failure after merge of the cgroup tree
From: Stephen Rothwell @ 2013-04-29 4:04 UTC (permalink / raw)
To: Tejun Heo
Cc: linux-kernel, Li Zefan, linux-next, Nathan Fontenot, linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 2216 bytes --]
Hi Tejun,
After merging the cgroup tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:
arch/powerpc/mm/numa.c: In function 'arch_update_cpu_topology':
arch/powerpc/mm/numa.c:1465:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
arch/powerpc/mm/numa.c:1465:10: error: assignment makes pointer from integer without a cast [-Werror]
arch/powerpc/mm/numa.c:1497:2: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
Caused by commit 30c05350c39d ("powerpc/pseries: Use stop machine to
update cpu maps") from the powerpc tree interacting with (probably)
commit ff794dea52ea ("cpuset: remove include of cgroup.h from cpuset.h")
from the cgroup tree. Removing includes from header files is fraught
with danger ...
The former should have added an include of linux/slab.h to
arch/powerpc/mm/numa.c.
I have added the following merge fix patch for today (but it should be
applied to the powerpc tree ASAP).
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Mon, 29 Apr 2013 14:01:44 +1000
Subject: [PATCH] powerpc: numa.c: using kzalloc/kfree requires including
slab.h
fixes these build errors:
arch/powerpc/mm/numa.c: In function 'arch_update_cpu_topology':
arch/powerpc/mm/numa.c:1465:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
arch/powerpc/mm/numa.c:1465:10: error: assignment makes pointer from integer without a cast [-Werror]
arch/powerpc/mm/numa.c:1497:2: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
arch/powerpc/mm/numa.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 2d13f90..490e39c 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -26,6 +26,7 @@
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/uaccess.h>
+#include <linux/slab.h>
#include <asm/sparsemem.h>
#include <asm/prom.h>
#include <asm/smp.h>
--
1.8.1
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply related
* [PATCH] powerpc/rtas_flash: Fix bad memory access
From: Vasant Hegde @ 2013-04-29 4:43 UTC (permalink / raw)
To: linuxppc-dev; +Cc: paulus, linux-kernel
We use kmem_cache_alloc() to allocate memory to hold the new firmware
which will be flashed. kmem_cache_alloc() calls rtas_block_ctor() to
set memory to NULL. But these constructor is called only for newly
allocated slabs.
If we run below command multiple time without rebooting, allocator may
allocate memory from the area which was free'd by kmem_cache_free and
it will not call constructor. In this situation we may hit kernel oops.
dd if=<fw image> of=/proc/ppc64/rtas/firmware_flash bs=4096
oops message:
-------------
[ 1602.399755] Oops: Kernel access of bad area, sig: 11 [#1]
[ 1602.399772] SMP NR_CPUS=1024 NUMA pSeries
[ 1602.399779] Modules linked in: rtas_flash nfsd lockd auth_rpcgss nfs_acl sunrpc fuse loop dm_mod sg ipv6 ses enclosure ehea ehci_pci ohci_hcd ehci_hcd usbcore sd_mod usb_common crc_t10dif scsi_dh_alua scsi_dh_emc scsi_dh_hp_sw scsi_dh_rdac scsi_dh ipr libata scsi_mod
[ 1602.399817] NIP: d00000000a170b9c LR: d00000000a170b64 CTR: c00000000079cd58
[ 1602.399823] REGS: c0000003b9937930 TRAP: 0300 Not tainted (3.9.0-rc4-0.27-ppc64)
[ 1602.399828] MSR: 8000000000009032 <SF,EE,ME,IR,DR,RI> CR: 22000428 XER: 20000000
[ 1602.399841] SOFTE: 1
[ 1602.399844] CFAR: c000000000005f24
[ 1602.399848] DAR: 8c2625a820631fef, DSISR: 40000000
[ 1602.399852] TASK = c0000003b4520760[3655] 'dd' THREAD: c0000003b9934000 CPU: 3
GPR00: 8c2625a820631fe7 c0000003b9937bb0 d00000000a179f28 d00000000a171f08
GPR04: 0000000010040000 0000000000001000 c0000003b9937df0 c0000003b5fb2080
GPR08: c0000003b58f7200 d00000000a179f28 c0000003b40058d4 c00000000079cd58
GPR12: d00000000a171450 c000000007f40900 0000000000000005 0000000010178d20
GPR16: 00000000100cb9d8 000000000000001d 0000000000000000 000000001003ffff
GPR20: 0000000000000001 0000000000000000 00003fffa0b50d30 000000001001f010
GPR24: 0000000010020888 0000000010040000 d00000000a171f08 d00000000a172808
GPR28: 0000000000001000 0000000010040000 c0000003b4005880 8c2625a820631fe7
[ 1602.399924] NIP [d00000000a170b9c] .rtas_flash_write+0x7c/0x1e8 [rtas_flash]
[ 1602.399930] LR [d00000000a170b64] .rtas_flash_write+0x44/0x1e8 [rtas_flash]
[ 1602.399934] Call Trace:
[ 1602.399939] [c0000003b9937bb0] [d00000000a170b64] .rtas_flash_write+0x44/0x1e8 [rtas_flash] (unreliable)
[ 1602.399948] [c0000003b9937c60] [c000000000282830] .proc_reg_write+0x90/0xe0
[ 1602.399955] [c0000003b9937ce0] [c0000000001ff374] .vfs_write+0x114/0x238
[ 1602.399961] [c0000003b9937d80] [c0000000001ff5d8] .SyS_write+0x70/0xe8
[ 1602.399968] [c0000003b9937e30] [c000000000009cdc] syscall_exit+0x0/0xa0
[ 1602.399973] Instruction dump:
[ 1602.399977] eb698010 801b0028 2f80dcd6 419e00a4 2fbc0000 419e009c ebfb0030 2fbf0000
[ 1602.399989] 409e0010 480000d8 60000000 7c1f0378 <e81f0008> 2fa00000 409efff4 e81f0000
[ 1602.400012] ---[ end trace b4136d115dc31dac ]---
[ 1602.402178]
[ 1602.402185] Sending IPI to other CPUs
[ 1602.403329] IPI complete
This patch uses kmem_cache_zalloc() instead of kmem_cache_alloc() to
allocate memory, which makes sure memory is set to 0 before using.
Also removes rtas_block_ctor(), which is no longer required.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
arch/powerpc/kernel/rtas_flash.c | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c
index 0a08c3b..d61a94c 100644
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
@@ -286,12 +286,6 @@ static ssize_t rtas_flash_read(struct file *file, char __user *buf,
return simple_read_from_buffer(buf, count, ppos, msg, strlen(msg));
}
-/* constructor for flash_block_cache */
-void rtas_block_ctor(void *ptr)
-{
- memset(ptr, 0, RTAS_BLK_SIZE);
-}
-
/* We could be much more efficient here. But to keep this function
* simple we allocate a page to the block list no matter how small the
* count is. If the system is low on memory it will be just as well
@@ -316,7 +310,7 @@ static ssize_t rtas_flash_write(struct file *file, const char __user *buffer,
* proc file
*/
if (uf->flist == NULL) {
- uf->flist = kmem_cache_alloc(flash_block_cache, GFP_KERNEL);
+ uf->flist = kmem_cache_zalloc(flash_block_cache, GFP_KERNEL);
if (!uf->flist)
return -ENOMEM;
}
@@ -327,7 +321,7 @@ static ssize_t rtas_flash_write(struct file *file, const char __user *buffer,
next_free = fl->num_blocks;
if (next_free == FLASH_BLOCKS_PER_NODE) {
/* Need to allocate another block_list */
- fl->next = kmem_cache_alloc(flash_block_cache, GFP_KERNEL);
+ fl->next = kmem_cache_zalloc(flash_block_cache, GFP_KERNEL);
if (!fl->next)
return -ENOMEM;
fl = fl->next;
@@ -336,7 +330,7 @@ static ssize_t rtas_flash_write(struct file *file, const char __user *buffer,
if (count > RTAS_BLK_SIZE)
count = RTAS_BLK_SIZE;
- p = kmem_cache_alloc(flash_block_cache, GFP_KERNEL);
+ p = kmem_cache_zalloc(flash_block_cache, GFP_KERNEL);
if (!p)
return -ENOMEM;
@@ -789,7 +783,7 @@ static int __init rtas_flash_init(void)
flash_block_cache = kmem_cache_create("rtas_flash_cache",
RTAS_BLK_SIZE, RTAS_BLK_SIZE, 0,
- rtas_block_ctor);
+ NULL);
if (!flash_block_cache) {
printk(KERN_ERR "%s: failed to create block cache\n",
__func__);
^ permalink raw reply related
* [PATCH] powerpc: Add an in memory udbg console
From: Alistair Popple @ 2013-04-29 6:24 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Alistair Popple
This patch adds a new udbg early debug console which utilises
statically defined input and output buffers stored within the kernel
BSS. It is primarily designed to assist with bring up of new hardware
which may not have a working console but which has a method of
reading/writing kernel memory.
Signed-off-by: Alistair Popple <alistair@popple.id.au>
---
arch/powerpc/Kconfig.debug | 23 ++++++++++
arch/powerpc/include/asm/udbg.h | 1 +
arch/powerpc/kernel/udbg.c | 3 ++
arch/powerpc/sysdev/Makefile | 2 +
arch/powerpc/sysdev/udbg_memcons.c | 85 ++++++++++++++++++++++++++++++++++++
5 files changed, 114 insertions(+)
create mode 100644 arch/powerpc/sysdev/udbg_memcons.c
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
index 5416e28..863d877 100644
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
@@ -262,8 +262,31 @@ config PPC_EARLY_DEBUG_OPAL_HVSI
Select this to enable early debugging for the PowerNV platform
using an "hvsi" console
+config PPC_EARLY_DEBUG_MEMCONS
+ bool "In memory console"
+ help
+ Select this to enable early debugging using an in memory console.
+ This console provides input and output buffers stored within the
+ kernel BSS and should be safe to select on any system. A debugger
+ can then be used to read kernel output or send input to the console.
endchoice
+config PPC_MEMCONS_OUTPUT_SIZE
+ int "In memory console output buffer size"
+ depends on PPC_EARLY_DEBUG_MEMCONS
+ default 4096
+ help
+ Selects the size of the output buffer (in bytes) of the in memory
+ console.
+
+config PPC_MEMCONS_INPUT_SIZE
+ int "In memory console input buffer size"
+ depends on PPC_EARLY_DEBUG_MEMCONS
+ default 128
+ help
+ Selects the size of the input buffer (in bytes) of the in memory
+ console.
+
config PPC_EARLY_DEBUG_OPAL
def_bool y
depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI
diff --git a/arch/powerpc/include/asm/udbg.h b/arch/powerpc/include/asm/udbg.h
index 5a7510e..dc59091 100644
--- a/arch/powerpc/include/asm/udbg.h
+++ b/arch/powerpc/include/asm/udbg.h
@@ -52,6 +52,7 @@ extern void __init udbg_init_40x_realmode(void);
extern void __init udbg_init_cpm(void);
extern void __init udbg_init_usbgecko(void);
extern void __init udbg_init_wsp(void);
+extern void __init udbg_init_memcons(void);
extern void __init udbg_init_ehv_bc(void);
extern void __init udbg_init_ps3gelic(void);
extern void __init udbg_init_debug_opal_raw(void);
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c
index f974849..efa5c93 100644
--- a/arch/powerpc/kernel/udbg.c
+++ b/arch/powerpc/kernel/udbg.c
@@ -64,6 +64,9 @@ void __init udbg_early_init(void)
udbg_init_usbgecko();
#elif defined(CONFIG_PPC_EARLY_DEBUG_WSP)
udbg_init_wsp();
+#elif defined(CONFIG_PPC_EARLY_DEBUG_MEMCONS)
+ /* In memory console */
+ udbg_init_memcons();
#elif defined(CONFIG_PPC_EARLY_DEBUG_EHV_BC)
udbg_init_ehv_bc();
#elif defined(CONFIG_PPC_EARLY_DEBUG_PS3GELIC)
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
index b0a518e..99464a7 100644
--- a/arch/powerpc/sysdev/Makefile
+++ b/arch/powerpc/sysdev/Makefile
@@ -64,6 +64,8 @@ endif
obj-$(CONFIG_PPC_SCOM) += scom.o
+obj-$(CONFIG_PPC_EARLY_DEBUG_MEMCONS) += udbg_memcons.o
+
subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
obj-$(CONFIG_PPC_XICS) += xics/
diff --git a/arch/powerpc/sysdev/udbg_memcons.c b/arch/powerpc/sysdev/udbg_memcons.c
new file mode 100644
index 0000000..36f5c44
--- /dev/null
+++ b/arch/powerpc/sysdev/udbg_memcons.c
@@ -0,0 +1,85 @@
+/*
+ * A udbg backend which logs messages and reads input from in memory
+ * buffers.
+ *
+ * Copyright (C) 2003-2005 Anton Blanchard and Milton Miller, IBM Corp
+ * Copyright (C) 2013 Alistair Popple, IBM Corp
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ */
+
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <asm/page.h>
+#include <asm/processor.h>
+#include <asm/udbg.h>
+
+struct memcons {
+ char *output_start;
+ char *output_pos;
+ char *output_end;
+ char *input_start;
+ char *input_pos;
+ char *input_end;
+};
+
+static char memcons_output[CONFIG_PPC_MEMCONS_OUTPUT_SIZE];
+static char memcons_input[CONFIG_PPC_MEMCONS_INPUT_SIZE];
+
+struct memcons memcons = {
+ .output_start = memcons_output,
+ .output_pos = memcons_output,
+ .output_end = &memcons_output[CONFIG_PPC_MEMCONS_OUTPUT_SIZE],
+ .input_start = memcons_input,
+ .input_pos = memcons_input,
+ .input_end = &memcons_input[CONFIG_PPC_MEMCONS_INPUT_SIZE],
+};
+
+void memcons_putc(char c)
+{
+ *memcons.output_pos++ = c;
+ if (memcons.output_pos >= memcons.output_end)
+ memcons.output_pos = memcons.output_start;
+}
+
+int memcons_getc_poll(void)
+{
+ char c;
+
+ if (*memcons.input_pos) {
+ c = *memcons.input_pos;
+ *memcons.input_pos++ = 0;
+
+ if (*memcons.input_pos == '\0' || memcons.input_pos >= memcons.input_end)
+ memcons.input_pos = memcons.input_start;
+
+ return c;
+ }
+
+ return -1;
+}
+
+int memcons_getc(void)
+{
+ int c;
+
+ while (1) {
+ c = memcons_getc_poll();
+ if (c == -1)
+ cpu_relax();
+ else
+ break;
+ }
+
+ return c;
+}
+
+void udbg_init_memcons(void)
+{
+ udbg_putc = memcons_putc;
+ udbg_getc = memcons_getc;
+ udbg_getc_poll = memcons_getc_poll;
+}
--
1.7.10.4
^ permalink raw reply related
* [PATCH] powerpc: Fix missing doorbell IPIs during nap power saving
From: Ian Munsie @ 2013-04-29 8:17 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: Michael Neuling, linuxppc-dev, Ian Munsie, stable
From: Ian Munsie <imunsie@au1.ibm.com>
If a doorbell IPI comes in while a thread is in nap power saving, the
doorbell interrupt won't be replayed by the hardware since it is edge
sensitive. Currently we are not replaying these interrupts in software,
which can cause threads to miss IPIs that come in during power saving
and eventually will result in an RCU warning from rcu_sched that it has
detected a stalled CPU.
This patch fixes the issue by testing if a doorbell caused the thread to
come out of power saving and sets the corresponding bit in the paca to
indicate a doorbell happened, which will then be handled by the existing
interrupt replay code.
This is not an issue with other interrupts that can wake a thread
(external, decrementer) as they are level sensitive and will continue to
be asserted by the hardware.
Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
---
arch/powerpc/include/asm/reg.h | 5 ++++-
arch/powerpc/kernel/idle_power7.S | 23 +++++++++++++++++++----
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index 5c6fbe2..dd8a071 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -549,14 +549,17 @@
#define SRR1_ISI_NOPT 0x40000000 /* ISI: Not found in hash */
#define SRR1_ISI_N_OR_G 0x10000000 /* ISI: Access is no-exec or G */
#define SRR1_ISI_PROT 0x08000000 /* ISI: Other protection fault */
-#define SRR1_WAKEMASK 0x00380000 /* reason for wakeup */
+#define SRR1_WAKEMASK 0x003c0000 /* reason for wakeup [42:45] */
+#define SRR1_WAKESHIFT 18
#define SRR1_WAKESYSERR 0x00300000 /* System error */
#define SRR1_WAKEEE 0x00200000 /* External interrupt */
#define SRR1_WAKEMT 0x00280000 /* mtctrl */
#define SRR1_WAKEHMI 0x00280000 /* Hypervisor maintenance */
#define SRR1_WAKEDEC 0x00180000 /* Decrementer interrupt */
+#define SRR1_WAKEDBELLP 0x00140000 /* Privileged Doorbell */
#define SRR1_WAKETHERM 0x00100000 /* Thermal management interrupt */
#define SRR1_WAKERESET 0x00100000 /* System reset */
+#define SRR1_WAKEDBELLH 0x000c0000 /* Hypervisor Doorbell */
#define SRR1_WAKESTATE 0x00030000 /* Powersave exit mask [46:47] */
#define SRR1_WS_DEEPEST 0x00030000 /* Some resources not maintained,
* may not be recoverable */
diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
index e11863f..c80bb4b 100644
--- a/arch/powerpc/kernel/idle_power7.S
+++ b/arch/powerpc/kernel/idle_power7.S
@@ -108,9 +108,7 @@ _GLOBAL(power7_wakeup_loss)
ld r5,_NIP(r1)
addi r1,r1,INT_FRAME_SIZE
mtcr r3
- mtspr SPRN_SRR1,r4
- mtspr SPRN_SRR0,r5
- rfid
+ b power7_wakeup_common
_GLOBAL(power7_wakeup_noloss)
lbz r0,PACA_NAPSTATELOST(r13)
@@ -120,6 +118,23 @@ _GLOBAL(power7_wakeup_noloss)
ld r4,_MSR(r1)
ld r5,_NIP(r1)
addi r1,r1,INT_FRAME_SIZE
- mtspr SPRN_SRR1,r4
+ /* Fall through */
+
+power7_wakeup_common:
+BEGIN_FTR_SECTION
+ mfspr r3,SPRN_SRR1
+ extrdi r3,r3,4,42 /* Extract SRR1_WAKEMASK */
+ cmpwi r3,SRR1_WAKEDBELLH >> SRR1_WAKESHIFT
+ beq 1f
+ cmpwi r3,SRR1_WAKEDBELLP >> SRR1_WAKESHIFT
+ bne 2f
+
+1: /* Woken by a doorbell, set doorbell happened in paca */
+ lbz r3,PACAIRQHAPPENED(r13)
+ ori r3,r3,PACA_IRQ_DBELL
+ stb r3,PACAIRQHAPPENED(r13)
+END_FTR_SECTION_IFSET(CPU_FTR_DBELL)
+
+2: mtspr SPRN_SRR1,r4
mtspr SPRN_SRR0,r5
rfid
--
1.7.10.4
^ permalink raw reply related
* Re: [PATCH] powerpc: Fix missing doorbell IPIs during nap power saving
From: Benjamin Herrenschmidt @ 2013-04-29 9:05 UTC (permalink / raw)
To: Ian Munsie; +Cc: Michael Neuling, linuxppc-dev, stable
In-Reply-To: <1367223460-4931-1-git-send-email-imunsie@au1.ibm.com>
On Mon, 2013-04-29 at 18:17 +1000, Ian Munsie wrote:
> This is not an issue with other interrupts that can wake a thread
> (external, decrementer) as they are level sensitive and will continue to
> be asserted by the hardware.
However, it might be worth experimenting setting the corresponding
bits in the PACA as well, as this will diminish the latency of
processing them.
IE. local_irq_enable() will see the bit, generate an interrupt
frame and call the handler which is a faster path than re-enabling
MSR:EE and then taking an external interrupt.
Cheers,
Ben.
^ permalink raw reply
* Re: [PATCH] powerpc: Add an in memory udbg console
From: Benjamin Herrenschmidt @ 2013-04-29 9:07 UTC (permalink / raw)
To: Alistair Popple; +Cc: linuxppc-dev
In-Reply-To: <1367216662-16872-1-git-send-email-alistair@popple.id.au>
On Mon, 2013-04-29 at 16:24 +1000, Alistair Popple wrote:
> This patch adds a new udbg early debug console which utilises
> statically defined input and output buffers stored within the kernel
> BSS. It is primarily designed to assist with bring up of new hardware
> which may not have a working console but which has a method of
> reading/writing kernel memory.
This probably need some memory barriers :-)
Cheers,
Ben.
> Signed-off-by: Alistair Popple <alistair@popple.id.au>
> ---
> arch/powerpc/Kconfig.debug | 23 ++++++++++
> arch/powerpc/include/asm/udbg.h | 1 +
> arch/powerpc/kernel/udbg.c | 3 ++
> arch/powerpc/sysdev/Makefile | 2 +
> arch/powerpc/sysdev/udbg_memcons.c | 85 ++++++++++++++++++++++++++++++++++++
> 5 files changed, 114 insertions(+)
> create mode 100644 arch/powerpc/sysdev/udbg_memcons.c
>
> diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
> index 5416e28..863d877 100644
> --- a/arch/powerpc/Kconfig.debug
> +++ b/arch/powerpc/Kconfig.debug
> @@ -262,8 +262,31 @@ config PPC_EARLY_DEBUG_OPAL_HVSI
> Select this to enable early debugging for the PowerNV platform
> using an "hvsi" console
>
> +config PPC_EARLY_DEBUG_MEMCONS
> + bool "In memory console"
> + help
> + Select this to enable early debugging using an in memory console.
> + This console provides input and output buffers stored within the
> + kernel BSS and should be safe to select on any system. A debugger
> + can then be used to read kernel output or send input to the console.
> endchoice
>
> +config PPC_MEMCONS_OUTPUT_SIZE
> + int "In memory console output buffer size"
> + depends on PPC_EARLY_DEBUG_MEMCONS
> + default 4096
> + help
> + Selects the size of the output buffer (in bytes) of the in memory
> + console.
> +
> +config PPC_MEMCONS_INPUT_SIZE
> + int "In memory console input buffer size"
> + depends on PPC_EARLY_DEBUG_MEMCONS
> + default 128
> + help
> + Selects the size of the input buffer (in bytes) of the in memory
> + console.
> +
> config PPC_EARLY_DEBUG_OPAL
> def_bool y
> depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI
> diff --git a/arch/powerpc/include/asm/udbg.h b/arch/powerpc/include/asm/udbg.h
> index 5a7510e..dc59091 100644
> --- a/arch/powerpc/include/asm/udbg.h
> +++ b/arch/powerpc/include/asm/udbg.h
> @@ -52,6 +52,7 @@ extern void __init udbg_init_40x_realmode(void);
> extern void __init udbg_init_cpm(void);
> extern void __init udbg_init_usbgecko(void);
> extern void __init udbg_init_wsp(void);
> +extern void __init udbg_init_memcons(void);
> extern void __init udbg_init_ehv_bc(void);
> extern void __init udbg_init_ps3gelic(void);
> extern void __init udbg_init_debug_opal_raw(void);
> diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c
> index f974849..efa5c93 100644
> --- a/arch/powerpc/kernel/udbg.c
> +++ b/arch/powerpc/kernel/udbg.c
> @@ -64,6 +64,9 @@ void __init udbg_early_init(void)
> udbg_init_usbgecko();
> #elif defined(CONFIG_PPC_EARLY_DEBUG_WSP)
> udbg_init_wsp();
> +#elif defined(CONFIG_PPC_EARLY_DEBUG_MEMCONS)
> + /* In memory console */
> + udbg_init_memcons();
> #elif defined(CONFIG_PPC_EARLY_DEBUG_EHV_BC)
> udbg_init_ehv_bc();
> #elif defined(CONFIG_PPC_EARLY_DEBUG_PS3GELIC)
> diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile
> index b0a518e..99464a7 100644
> --- a/arch/powerpc/sysdev/Makefile
> +++ b/arch/powerpc/sysdev/Makefile
> @@ -64,6 +64,8 @@ endif
>
> obj-$(CONFIG_PPC_SCOM) += scom.o
>
> +obj-$(CONFIG_PPC_EARLY_DEBUG_MEMCONS) += udbg_memcons.o
> +
> subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
>
> obj-$(CONFIG_PPC_XICS) += xics/
> diff --git a/arch/powerpc/sysdev/udbg_memcons.c b/arch/powerpc/sysdev/udbg_memcons.c
> new file mode 100644
> index 0000000..36f5c44
> --- /dev/null
> +++ b/arch/powerpc/sysdev/udbg_memcons.c
> @@ -0,0 +1,85 @@
> +/*
> + * A udbg backend which logs messages and reads input from in memory
> + * buffers.
> + *
> + * Copyright (C) 2003-2005 Anton Blanchard and Milton Miller, IBM Corp
> + * Copyright (C) 2013 Alistair Popple, IBM Corp
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version
> + * 2 of the License, or (at your option) any later version.
> + */
> +
> +#include <linux/init.h>
> +#include <linux/kernel.h>
> +#include <asm/page.h>
> +#include <asm/processor.h>
> +#include <asm/udbg.h>
> +
> +struct memcons {
> + char *output_start;
> + char *output_pos;
> + char *output_end;
> + char *input_start;
> + char *input_pos;
> + char *input_end;
> +};
> +
> +static char memcons_output[CONFIG_PPC_MEMCONS_OUTPUT_SIZE];
> +static char memcons_input[CONFIG_PPC_MEMCONS_INPUT_SIZE];
> +
> +struct memcons memcons = {
> + .output_start = memcons_output,
> + .output_pos = memcons_output,
> + .output_end = &memcons_output[CONFIG_PPC_MEMCONS_OUTPUT_SIZE],
> + .input_start = memcons_input,
> + .input_pos = memcons_input,
> + .input_end = &memcons_input[CONFIG_PPC_MEMCONS_INPUT_SIZE],
> +};
> +
> +void memcons_putc(char c)
> +{
> + *memcons.output_pos++ = c;
> + if (memcons.output_pos >= memcons.output_end)
> + memcons.output_pos = memcons.output_start;
> +}
> +
> +int memcons_getc_poll(void)
> +{
> + char c;
> +
> + if (*memcons.input_pos) {
> + c = *memcons.input_pos;
> + *memcons.input_pos++ = 0;
> +
> + if (*memcons.input_pos == '\0' || memcons.input_pos >= memcons.input_end)
> + memcons.input_pos = memcons.input_start;
> +
> + return c;
> + }
> +
> + return -1;
> +}
> +
> +int memcons_getc(void)
> +{
> + int c;
> +
> + while (1) {
> + c = memcons_getc_poll();
> + if (c == -1)
> + cpu_relax();
> + else
> + break;
> + }
> +
> + return c;
> +}
> +
> +void udbg_init_memcons(void)
> +{
> + udbg_putc = memcons_putc;
> + udbg_getc = memcons_getc;
> + udbg_getc_poll = memcons_getc_poll;
> +}
^ permalink raw reply
* Please pull 'next' branch of 5xxx tree
From: Anatolij Gustschin @ 2013-04-29 9:42 UTC (permalink / raw)
To: Benjamin Herrenschmidt, linuxppc-dev
Hi Ben !
Please pull mpc5xxx patches for v3.10. There are some changes
for mpc5121 generic platform code to support mpc5125 SoC and DTS
files for ac14xx and MPC5125-TWR boards.
All these patches have already been in linux-next for a while.
Thanks,
Anatolij
The following changes since commit 07961ac7c0ee8b546658717034fe692fd12eefa9:
Linux 3.9-rc5 (2013-03-31 15:12:43 -0700)
are available in the git repository at:
git://git.denx.de/linux-2.6-agust.git next
for you to fetch changes up to fdeaf0e20e9f3999c5cb129e821595fe927bf259:
powerpc/512x: add ifm ac14xx board (2013-04-10 20:48:44 +0200)
----------------------------------------------------------------
Anatolij Gustschin (2):
powerpc/mpc512x: create SoC devices for more nodes
powerpc/512x: add ifm ac14xx board
Matteo Facchinetti (2):
powerpc/512x: move mpc5121_generic platform to mpc512x_generic.
powerpc/mpc512x: add platform code for MPC5125.
arch/powerpc/boot/dts/ac14xx.dts | 392 ++++++++++++++++++++
arch/powerpc/boot/dts/mpc5121.dtsi | 2 +-
arch/powerpc/boot/dts/mpc5121ads.dts | 2 +-
arch/powerpc/boot/dts/mpc5125twr.dts | 233 ++++++++++++
arch/powerpc/boot/dts/pdm360ng.dts | 2 +-
arch/powerpc/configs/mpc512x_defconfig | 2 +-
arch/powerpc/platforms/512x/Kconfig | 8 +-
arch/powerpc/platforms/512x/Makefile | 2 +-
arch/powerpc/platforms/512x/clock.c | 9 +-
arch/powerpc/platforms/512x/mpc512x.h | 1 +
.../512x/{mpc5121_generic.c => mpc512x_generic.c} | 12 +-
arch/powerpc/platforms/512x/mpc512x_shared.c | 33 +-
12 files changed, 674 insertions(+), 24 deletions(-)
create mode 100644 arch/powerpc/boot/dts/ac14xx.dts
create mode 100644 arch/powerpc/boot/dts/mpc5125twr.dts
rename arch/powerpc/platforms/512x/{mpc5121_generic.c => mpc512x_generic.c} (83%)
^ permalink raw reply
* [PATCH] powerpc/booke: remove obsolete macro FINISH_EXCEPTION
From: Kevin Hao @ 2013-04-29 10:59 UTC (permalink / raw)
To: Kumar Gala, Benjamin Herrenschmidt; +Cc: linuxppc
This is stale and not used by anyone now.
Signed-off-by: Kevin Hao <haokexin@gmail.com>
---
This passed the build test with the ppc44x_defconfig, corenet32_smp_defconfig.
arch/powerpc/kernel/head_booke.h | 5 -----
1 file changed, 5 deletions(-)
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
index 5f051ee..b385350 100644
--- a/arch/powerpc/kernel/head_booke.h
+++ b/arch/powerpc/kernel/head_booke.h
@@ -199,11 +199,6 @@
.align 5; \
label:
-#define FINISH_EXCEPTION(func) \
- bl transfer_to_handler_full; \
- .long func; \
- .long ret_from_except_full
-
#define EXCEPTION(n, intno, label, hdlr, xfer) \
START_EXCEPTION(label); \
NORMAL_EXCEPTION_PROLOG(intno); \
--
1.8.1.4
^ permalink raw reply related
* RE: [PATCH 1/3] rapidio: make enumeration/discovery configurable
From: Bounine, Alexandre @ 2013-04-29 12:08 UTC (permalink / raw)
To: Andrew Morton
Cc: Micha Nelissen, linux-kernel@vger.kernel.org, Andre van Herk,
linuxppc-dev@lists.ozlabs.org
In-Reply-To: <20130426155325.09fbad8c382dc8c549d503d0@linux-foundation.org>
On Fri, 26 Apr 2013 6:53 PM Andrew Morton <akpm@linux-foundation.org> wrote=
:
> Subject: Re: [PATCH 1/3] rapidio: make enumeration/discovery
> configurable
>=20
> This Kconfig change makes my kbuild do Weird Things.
>=20
> make mrproper ; yes "" | make allmodconfig ; make 2>/tmp/x
... skip ...=20
> : DMA Engine support for RapidIO (RAPIDIO_DMA_ENGINE) [Y/n/?] y
> : RapidIO subsystem debug messages (RAPIDIO_DEBUG) [Y/n/?] y
> : Enumeration method [M/y/?] (NEW) aborted!
> :
> : Console input/output is redirected. Run 'make oldconfig' to update conf=
iguration.
> :
> : SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
> : SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
> : SYSHDR
> arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
>=20
>=20
> See the "Enumeration method [M/y/?] (NEW) aborted!"
>=20
> Note that this only happens when make's stderr is redirected.
>=20
> I've no idea what's going on here. This appears to fix things:
>=20
> --- a/drivers/rapidio/Kconfig~rapidio-make-enumeration-discovery-
> configurable-fix
> +++ a/drivers/rapidio/Kconfig
> @@ -59,7 +59,7 @@ choice
> If unsure, select Basic built-in.
>=20
> config RAPIDIO_ENUM_BASIC
> - tristate "Basic"
> + bool "Basic"
> help
> This option includes basic RapidIO fabric enumeration and
> discovery
> mechanism similar to one described in RapidIO specification
> Annex 1.
>=20
> but doesn't appear to be what you intended.
Goal is to build enumerator as a module or built-in.
I will retest v2 of patches for this issue.
There are some changes to Kconfig (removed AUTO_ENUM option).
^ permalink raw reply
* [PATCH] powerpc/pseries: correct builds break when CONFIG_SMP not defined
From: Nathan Fontenot @ 2013-04-29 13:45 UTC (permalink / raw)
To: linuxppc-dev
Correct build failure for powerpc/pseries builds with CONFIG_SMP not defined.
The function cpu_sibling_mask has no meaning (or definition) when CONFIG_SMP
is not defined. Additionally, the updating of NUMA affinity for a CPU in a UP
system doesn't really make sense.
This patch ifdef's out the code making the affinity updates for PRRN events to
fix the following build break.
arch/powerpc/mm/numa.c: In function ‘stage_topology_update’:
arch/powerpc/mm/numa.c:1535: error: implicit declaration of function ‘cpu_sibling_mask’
arch/powerpc/mm/numa.c:1535: warning: passing argument 3 of ‘cpumask_or’ makes pointer from integer without a cast
make[1]: *** [arch/powerpc/mm/numa.o] Error 1
Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
---
arch/powerpc/mm/numa.c | 8 ++++++++
1 file changed, 8 insertions(+)
Index: ppc-next/arch/powerpc/mm/numa.c
===================================================================
--- ppc-next.orig/arch/powerpc/mm/numa.c 2013-04-29 07:16:00.000000000 -0500
+++ ppc-next/arch/powerpc/mm/numa.c 2013-04-29 07:21:35.000000000 -0500
@@ -1529,6 +1529,8 @@
mod_timer(&topology_timer, topology_timer.expires);
}
+#ifdef CONFIG_SMP
+
static void stage_topology_update(int core_id)
{
cpumask_or(&cpu_associativity_changes_mask,
@@ -1562,6 +1564,8 @@
.notifier_call = dt_update_callback,
};
+#endif
+
/*
* Start polling for associativity changes.
*/
@@ -1573,7 +1577,9 @@
if (!prrn_enabled) {
prrn_enabled = 1;
vphn_enabled = 0;
+#ifdef CONFIG_SMP
rc = of_reconfig_notifier_register(&dt_update_nb);
+#endif
}
} else if (firmware_has_feature(FW_FEATURE_VPHN) &&
get_lppaca()->shared_proc) {
@@ -1598,7 +1604,9 @@
if (prrn_enabled) {
prrn_enabled = 0;
+#ifdef CONFIG_SMP
rc = of_reconfig_notifier_unregister(&dt_update_nb);
+#endif
} else if (vphn_enabled) {
vphn_enabled = 0;
rc = del_timer_sync(&topology_timer);
^ permalink raw reply
* Re: [PATCH] powerpc: Fix missing doorbell IPIs during nap power saving
From: Greg KH @ 2013-04-29 14:06 UTC (permalink / raw)
To: Ian Munsie; +Cc: Michael Neuling, linuxppc-dev, stable
In-Reply-To: <1367223460-4931-1-git-send-email-imunsie@au1.ibm.com>
On Mon, Apr 29, 2013 at 06:17:40PM +1000, Ian Munsie wrote:
> From: Ian Munsie <imunsie@au1.ibm.com>
>
> If a doorbell IPI comes in while a thread is in nap power saving, the
> doorbell interrupt won't be replayed by the hardware since it is edge
> sensitive. Currently we are not replaying these interrupts in software,
> which can cause threads to miss IPIs that come in during power saving
> and eventually will result in an RCU warning from rcu_sched that it has
> detected a stalled CPU.
>
> This patch fixes the issue by testing if a doorbell caused the thread to
> come out of power saving and sets the corresponding bit in the paca to
> indicate a doorbell happened, which will then be handled by the existing
> interrupt replay code.
>
> This is not an issue with other interrupts that can wake a thread
> (external, decrementer) as they are level sensitive and will continue to
> be asserted by the hardware.
>
> Signed-off-by: Ian Munsie <imunsie@au1.ibm.com>
<formletter>
This is not the correct way to submit patches for inclusion in the
stable kernel tree. Please read Documentation/stable_kernel_rules.txt
for how to do this properly.
</formletter>
^ permalink raw reply
* Re: [PATCH] powerpc/fsl-pci: don't unmap the PCI SoC controller registers in setup_pci_atmu
From: Kumar Gala @ 2013-04-29 19:46 UTC (permalink / raw)
To: Kevin Hao; +Cc: linuxppc
In-Reply-To: <1365837281-27002-1-git-send-email-haokexin@gmail.com>
On Apr 13, 2013, at 2:14 AM, Kevin Hao wrote:
> In patch 34642bbb (powerpc/fsl-pci: Keep PCI SoC controller registers =
in
> pci_controller) we choose to keep the map of the PCI SoC controller
> registers. But we missed to delete the unmap in setup_pci_atmu
> function. This will cause the following call trace once we access
> the PCI SoC controller registers later.
>=20
> Unable to handle kernel paging request for data at address =
0x8000080080040f14
> Faulting instruction address: 0xc00000000002ea58
> Oops: Kernel access of bad area, sig: 11 [#1]
> SMP NR_CPUS=3D24 T4240 QDS
> Modules linked in:
> NIP: c00000000002ea58 LR: c00000000002eaf4 CTR: c00000000002eac0
> REGS: c00000017e10b4a0 TRAP: 0300 Not tainted =
(3.9.0-rc1-00052-gfa3529f-dirty)
> MSR: 0000000080029000 <CE,EE,ME> CR: 28adbe22 XER: 00000000
> SOFTE: 0
> DEAR: 8000080080040f14, ESR: 0000000000000000
> TASK =3D c00000017e100000[1] 'swapper/0' THREAD: c00000017e108000 CPU: =
2
> GPR00: 0000000000000000 c00000017e10b720 c0000000009928d8 =
c00000017e578e00
> GPR04: 0000000000000000 000000000000000c 0000000000000001 =
c00000017e10bb40
> GPR08: 0000000000000000 8000080080040000 0000000000000000 =
0000000000000016
> GPR12: 0000000088adbe22 c00000000fffa800 c000000000001ba0 =
0000000000000000
> GPR16: 0000000000000000 0000000000000000 0000000000000000 =
0000000000000000
> GPR20: 0000000000000000 0000000000000000 0000000000000000 =
c0000000008a5b70
> GPR24: c0000000008af938 c0000000009a28d8 c0000000009bb5dc =
c00000017e10bb40
> GPR28: c00000017e32a400 c00000017e10bc00 c00000017e32a400 =
c00000017e578e00
> NIP [c00000000002ea58] .fsl_pcie_check_link+0x88/0xf0
> LR [c00000000002eaf4] .fsl_indirect_read_config+0x34/0xb0
> Call Trace:
> [c00000017e10b720] [c00000017e10b7a0] 0xc00000017e10b7a0 (unreliable)
> [c00000017e10ba30] [c00000000002eaf4] =
.fsl_indirect_read_config+0x34/0xb0
> [c00000017e10bad0] [c00000000033aa08] =
.pci_bus_read_config_byte+0x88/0xd0
> [c00000017e10bb90] [c00000000088d708] =
.pci_apply_final_quirks+0x9c/0x18c
> [c00000017e10bc40] [c0000000000013dc] .do_one_initcall+0x5c/0x1f0
> [c00000017e10bcf0] [c00000000086ebac] =
.kernel_init_freeable+0x180/0x26c
> [c00000017e10bdb0] [c000000000001bbc] .kernel_init+0x1c/0x460
> [c00000017e10be30] [c000000000000880] =
.ret_from_kernel_thread+0x64/0xe4
> Instruction dump:
> 38210310 2b800015 4fdde842 7c600026 5463fffe e8010010 7c0803a6 =
4e800020
> 60000000 60000000 e92301d0 7c0004ac <80690f14> 0c030000 4c00012c =
38210310
> ---[ end trace 7a8fe0cbccb7d992 ]---
>=20
> Kernel panic - not syncing: Attempted to kill init! =
exitcode=3D0x0000000b
>=20
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
> ---
> This is based on Kumar's next branch.
>=20
> arch/powerpc/sysdev/fsl_pci.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
applied to next
- k=
^ permalink raw reply
* Re: [PATCH] powerpc/fsl-booke: add the reg property for pci bridge device node for t4/b4xx boards
From: Kumar Gala @ 2013-04-29 19:50 UTC (permalink / raw)
To: Kevin Hao; +Cc: linuxppc
In-Reply-To: <1365918013-12190-1-git-send-email-haokexin@gmail.com>
On Apr 14, 2013, at 12:40 AM, Kevin Hao wrote:
> The reg property in the pci bridge device node is used to bind this
> device node to the pci bridge device. Then all the pci devices under
> this bridge could use the interrupt maps defined in this device node
> to do the irq translation. So if this property is missed, the pci
> traditional irq mechanism will not work.
>
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
> ---
> arch/powerpc/boot/dts/fsl/b4si-post.dtsi | 1 +
> arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 4 ++++
> 2 files changed, 5 insertions(+)
applied to next
- k
^ permalink raw reply
* Re: [PATCH v2] powerpc/dts: Fix the dts for p1025rdb 36bit
From: Kumar Gala @ 2013-04-29 19:51 UTC (permalink / raw)
To: Zhicheng Fan; +Cc: linuxppc-dev
In-Reply-To: <1364174586-26158-1-git-send-email-B32736@freescale.com>
On Mar 24, 2013, at 8:23 PM, Zhicheng Fan wrote:
> fix the following errors:
> Error: arch/powerpc/boot/dts/p1025rdb.dtsi:326.2-3 label or =
path, 'qe', not found
> Error: arch/powerpc/boot/dts/fsl/p1021si-post.dtsi:242.2-3 label =
or path, 'qe', not found
> FATAL ERROR: Syntax error parsing input tree
>=20
> Signed-off-by: Zhicheng Fan <B32736@freescale.com>
> ---
> arch/powerpc/boot/dts/p1025rdb_36b.dts | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
applied to next
- k=
^ permalink raw reply
* [git pull] Please pull powerpc.git next branch
From: Kumar Gala @ 2013-04-29 19:56 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc list
Ben,
Add support for T4 and B4 SoC families from Freescale, e6500 altivec =
support, some various board fixes and other minor cleanups.
- k
The following changes since commit =
54c9b2253d34e8998e4bff9ac2d7a3ba0b861d52:
powerpc: Set DSCR bit in FSCR setup (2013-03-05 16:56:30 +1100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git next
for you to fetch changes up to 9e2ecdbba3b0745f9ed454ab86961e3ccf9dc224:
powerpc/fsl-booke: add the reg prop for pci bridge device node for =
T4/B4 (2013-04-29 14:47:25 -0500)
----------------------------------------------------------------
Ben Collins (1):
powerpc/85xx: sgy-cts1000 - Remove __dev* attributes
Chen-Hui Zhao (1):
powerpc/85xx: fix a bug with the parameter of mpic_reset_core()
Jia Hongtao (1):
powerpc/85xx: Add platform_device declaration to fsl_pci.h
Jiucheng Xu (1):
powerpc/85xx: Reserve a partition of NOR flash for QE ucode =
firmware
Kevin Hao (2):
powerpc/fsl-pci: don't unmap the PCI SoC controller registers in =
setup_pci_atmu
powerpc/fsl-booke: add the reg prop for pci bridge device node for =
T4/B4
Kumar Gala (11):
powerpc/fsl-booke: Support detection of page sizes on e6500
powerpc/85xx: Add AltiVec support for e6500
powerpc/fsl-booke: Add initial silicon device tree for T4240
powerpc/fsl-booke: Add initial T4240QDS board device tree
powerpc/fsl-booke: Add initial T4240QDS board support
powerpc/85xx: Update corenet64_smp_defconfig for T4240
powerpc/qe: Fix Kconfig enablement of QE_USB support
powerpc/fsl-booke: Update T4240 device config node in device tree
powerpc/fsl-booke: Minor fixes to T4240 Si device tree
powerpc/fsl-pci: Keep PCI SoC controller registers in =
pci_controller
powerpc/85xx: Fix MPC8536DS 36-bit device tree
Paul Bolle (2):
powerpc: remove "config 8260_PCI9"
powerpc: remove "config MPC10X_OPENPIC"
Prabhakar Kushwaha (1):
powerpc: add CONFIG(s) require for using flash controller
Ramneek Mehresh (1):
powerpc/85xx: Add first usb controller node for Qonverge platforms
Rojhalat Ibrahim (1):
powerpc/fsl-pci Make PCIe hotplug work with Freescale PCIe =
controllers
Roy ZANG (2):
powerpc/85xx: Add support for FSL PCIe controller v3.0
powerpc/85xx: enable Silicon image 3132 PCIe to SATA controller
Roy Zang (2):
powerpc/85xx: enable E1000 NIC to mpc85xx_defconfig
powerpc/fsl_pci: fix 64 bit pci size issue
Scott Wood (1):
powerpc/85xx: add CONFIG_E1000E to corenet64_smp_defconfig
Sebastian Andrzej Siewior (1):
powerpc/fsl-msi: use a different lockclass for the cascade =
interrupt
Shaveta Leekha (5):
powerpc/85xx: add SEC-5.3 device tree
powerpc/fsl-booke: Add initial silicon device tree files for B4860 =
and B4420
powerpc/fsl-booke: Add initial B4860QDS and B4420QDS board device =
tree
powerpc/fsl-booke: Add B4_QDS board support
powerpc/85xx: Update corenet64_smp_defconfig for B4_QDS
Stephen George (2):
powerpc/fsl-booke: Added device tree DCSR entries for T4240 =
Chassis v2 Debug IP
powerpc/fsl-booke: Update DCSR EPU device tree entries for =
existing SoCs
Stuart Yoder (3):
powerpc/e6500: Add architecture categories for e6500 cores
powerpc: add missing deo arch category to e500mc/e5500 dts
powerpc: Add paravirt idle loop for 64-bit Book-E
Tang Yuantian (1):
powerpc/fsl: remove the PPC_CLOCK dependency
Vakul Garg (3):
powerpc/85xx: Added SEC-5.0 device tree.
powerpc/fsl: removed qoriq-sec4.1-0.dtsi.
powerpc/fsl: Add property for 'era' in SEC dts crypto node
Zhicheng Fan (1):
powerpc/dts: Fix the dts for p1025rdb 36bit
.../devicetree/bindings/powerpc/fsl/cpus.txt | 22 +
arch/powerpc/Kconfig | 6 -
arch/powerpc/boot/dts/b4420qds.dts | 50 +++
arch/powerpc/boot/dts/b4860qds.dts | 61 +++
arch/powerpc/boot/dts/b4qds.dts | 169 ++++++++
arch/powerpc/boot/dts/fsl/b4420si-post.dtsi | 98 +++++
arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi | 73 ++++
arch/powerpc/boot/dts/fsl/b4860si-post.dtsi | 142 +++++++
arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi | 83 ++++
arch/powerpc/boot/dts/fsl/b4si-post.dtsi | 268 +++++++++++++
arch/powerpc/boot/dts/fsl/e500mc_power_isa.dtsi | 1 +
arch/powerpc/boot/dts/fsl/e5500_power_isa.dtsi | 1 +
arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi | 65 +++
arch/powerpc/boot/dts/fsl/p1023si-post.dtsi | 1 +
arch/powerpc/boot/dts/fsl/p2041si-post.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/p3041si-post.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/p5020si-post.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/p5040si-post.dtsi | 2 +-
arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi | 1 +
arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi | 41 ++
arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi | 41 ++
arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi | 41 ++
arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi | 41 ++
arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi | 1 +
arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi | 1 +
.../{qoriq-sec4.1-0.dtsi =3D> qoriq-sec5.0-0.dtsi} | 27 +-
arch/powerpc/boot/dts/fsl/qoriq-sec5.2-0.dtsi | 1 +
arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi | 119 ++++++
arch/powerpc/boot/dts/fsl/t4240si-post.dtsi | 442 =
+++++++++++++++++++++
arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi | 128 ++++++
arch/powerpc/boot/dts/mpc8536ds_36b.dts | 6 +-
arch/powerpc/boot/dts/p1021rdb-pc.dtsi | 12 +-
arch/powerpc/boot/dts/p1025rdb_36b.dts | 5 +
arch/powerpc/boot/dts/t4240qds.dts | 224 +++++++++++
arch/powerpc/configs/corenet64_smp_defconfig | 46 ++-
arch/powerpc/configs/mpc85xx_defconfig | 40 +-
arch/powerpc/configs/mpc85xx_smp_defconfig | 32 ++
arch/powerpc/include/asm/cputable.h | 2 +-
arch/powerpc/include/asm/kvm_asm.h | 4 +
arch/powerpc/include/asm/pci-bridge.h | 11 +-
arch/powerpc/kernel/cpu_setup_fsl_booke.S | 16 +
arch/powerpc/kernel/cputable.c | 9 +-
arch/powerpc/kernel/epapr_hcalls.S | 2 +
arch/powerpc/kernel/exceptions-64e.S | 47 +++
arch/powerpc/kernel/idle_book3e.S | 32 +-
arch/powerpc/mm/tlb_nohash.c | 18 +-
arch/powerpc/platforms/85xx/Kconfig | 34 ++
arch/powerpc/platforms/85xx/Makefile | 2 +
arch/powerpc/platforms/85xx/b4_qds.c | 102 +++++
arch/powerpc/platforms/85xx/corenet_ds.c | 5 +-
arch/powerpc/platforms/85xx/sgy_cts1000.c | 6 +-
arch/powerpc/platforms/85xx/smp.c | 2 +-
arch/powerpc/platforms/85xx/t4240_qds.c | 98 +++++
arch/powerpc/platforms/Kconfig | 1 -
arch/powerpc/platforms/Kconfig.cputype | 2 +-
arch/powerpc/platforms/embedded6xx/Kconfig | 5 -
arch/powerpc/sysdev/fsl_msi.c | 4 +-
arch/powerpc/sysdev/fsl_pci.c | 112 ++++--
arch/powerpc/sysdev/fsl_pci.h | 13 +
arch/powerpc/sysdev/indirect_pci.c | 10 +-
arch/powerpc/sysdev/qe_lib/Kconfig | 2 +-
62 files changed, 2738 insertions(+), 100 deletions(-)
create mode 100644 =
Documentation/devicetree/bindings/powerpc/fsl/cpus.txt
create mode 100644 arch/powerpc/boot/dts/b4420qds.dts
create mode 100644 arch/powerpc/boot/dts/b4860qds.dts
create mode 100644 arch/powerpc/boot/dts/b4qds.dts
create mode 100644 arch/powerpc/boot/dts/fsl/b4420si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/b4si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/e6500_power_isa.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-gpio-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-gpio-2.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-gpio-3.dtsi
rename arch/powerpc/boot/dts/fsl/{qoriq-sec4.1-0.dtsi =3D> =
qoriq-sec5.0-0.dtsi} (83%)
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sec5.3-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/t4240qds.dts
create mode 100644 arch/powerpc/platforms/85xx/b4_qds.c
create mode 100644 arch/powerpc/platforms/85xx/t4240_qds.c=
^ permalink raw reply
* Re: [PATCH v2 12/15] powerpc/85xx: add time base sync support for e6500
From: Scott Wood @ 2013-04-29 20:18 UTC (permalink / raw)
To: Zhao Chenhui; +Cc: linuxppc-dev, linux-kernel, r58472
In-Reply-To: <20130428095634.GA27100@localhost.localdomain>
On 04/28/2013 04:56:34 AM, Zhao Chenhui wrote:
> On Thu, Apr 25, 2013 at 07:07:24PM -0500, Scott Wood wrote:
> > On 04/24/2013 07:28:18 PM, Zhao Chenhui wrote:
> > >On Wed, Apr 24, 2013 at 05:38:16PM -0500, Scott Wood wrote:
> > >> We shouldn't base it on CPU_FTR_SMT. For example, e6500 doesn't
> > >> claim that feature yet, except in our SDK kernel. That doesn't
> > >> change the topology of CPU numbering.
> > >>
> > >
> > >Then, where can I get the thread information? dts?
> > >Or, wait for upstream of the thread suppport of e6500.
> >
> > It's an inherent property of e6500 (outside of some virtualization
> > scenarios, but you wouldn't run this code under a hypervisor) that
> > you have two threads per core (whether Linux uses them or not). Or
> > you could read TMCFG0[NTHRD] if you know you're on a chip that has
> > TMRs but aren't positive it's an e6500, but I wouldn't bother. If
> > we do ever have such a chip, there are probably other things that
> > will need updating.
> >
>=20
> But how to know that there are TMRs on a chip except by CPU_FTR_SMT.
I don't know. I said I wouldn't bother. :-)
Just assume there are 2 threads per core on e6500. Then you won't have =20
a dependency on the threading patches, and you won't break if =20
CPU_FTR_SMT gets disabled for some other reason, or if the threads are =20
missing from the device tree for some reason (I've seen some people =20
remove them manually in an attempt to disable threading -- I tell them =20
not to when I see it, but eventually others will do it again).
-Scott=
^ permalink raw reply
* Re: [PATCH 2/2 V7] powerpc/85xx: Add machine check handler to fix PCIe erratum on mpc85xx
From: Scott Wood @ 2013-04-29 20:29 UTC (permalink / raw)
To: Jia Hongtao-B38951; +Cc: Wood Scott-B07421, linuxppc-dev@lists.ozlabs.org
In-Reply-To: <412C8208B4A0464FA894C5F0C278CD5D01C4C76D@039-SN1MPN1-002.039d.mgd.msft.net>
On 04/26/2013 09:26:26 PM, Jia Hongtao-B38951 wrote:
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Friday, April 26, 2013 12:58 AM
> > To: Segher Boessenkool
> > Cc: Jia Hongtao-B38951; linuxppc-dev@lists.ozlabs.org;
> > galak@kernel.crashing.org; Wood Scott-B07421
> > Subject: Re: [PATCH 2/2 V7] powerpc/85xx: Add machine check handler =20
> to
> > fix PCIe erratum on mpc85xx
> >
> > On 04/25/2013 10:31:51 AM, Segher Boessenkool wrote:
> > >> * Remove A variant of load instruction emulation
> > >
> > > Why is this? You handle all other simple load insns, there is =20
> nothing
> > > special about LHA. (I reviewed the V4 email thread, no reason =20
> for the
> > > chance is given there).
> >
> > The LHA implementation in V5 was incorrect (didn't sign-extend).
> >
> > -Scott
>=20
> In former email you doubt whether we need A variant or not.
> Any particular reason for that?
> If not should I emulate all the A ARX AU AUX and AX variant?
I was just noting that the variants you left out from the earlier =20
revisions (e.g. BRX) were much more likely to be used for I/O than some =20
of the ones you included (e.g. "A"). Implementing all the normal =20
load/store instructions would be better, if they're done correctly.
-Scott=
^ permalink raw reply
* Re: linux-next: build failure after merge of the cgroup tree
From: Tejun Heo @ 2013-04-29 22:55 UTC (permalink / raw)
To: Stephen Rothwell
Cc: linux-kernel, Li Zefan, linux-next, Nathan Fontenot, linuxppc-dev
In-Reply-To: <20130429140433.92d05cd48b66ac323616d572@canb.auug.org.au>
Hello,
On Mon, Apr 29, 2013 at 02:04:33PM +1000, Stephen Rothwell wrote:
> I have added the following merge fix patch for today (but it should be
> applied to the powerpc tree ASAP).
>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Mon, 29 Apr 2013 14:01:44 +1000
> Subject: [PATCH] powerpc: numa.c: using kzalloc/kfree requires including
> slab.h
>
> fixes these build errors:
>
> arch/powerpc/mm/numa.c: In function 'arch_update_cpu_topology':
> arch/powerpc/mm/numa.c:1465:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
> arch/powerpc/mm/numa.c:1465:10: error: assignment makes pointer from integer without a cast [-Werror]
> arch/powerpc/mm/numa.c:1497:2: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: Tejun Heo <tj@kernel.org>
Benjamin, can you please pick this up?
Thanks a lot and sorry about the trouble.
--
tejun
^ permalink raw reply
* Re: [PATCH] powerpc: fix usage of setup_pci_atmu()
From: Stephen Rothwell @ 2013-04-29 23:06 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev, Michael Neuling, linux-next
In-Reply-To: <5881.1366004521@ale.ozlabs.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 1209 bytes --]
Hi Kumar,
On Mon, 15 Apr 2013 15:42:01 +1000 Michael Neuling <mikey@neuling.org> wrote:
>
> Linux next is currently failing to compile mpc85xx_defconfig with:
> arch/powerpc/sysdev/fsl_pci.c:944:2: error: too many arguments to function 'setup_pci_atmu'
>
> This is caused by (from Kumar's next branch):
> commit 34642bbb3d12121333efcf4ea7dfe66685e403a1
> Author: Kumar Gala <galak@kernel.crashing.org>
> powerpc/fsl-pci: Keep PCI SoC controller registers in pci_controller
>
> Which changed definition of setup_pci_atmu() but didn't update one of
> the callers. Below fixes this.
>
> Signed-off-by: Michael Neuling <mikey@neuling.org>
> ---
> Kumar: this is for your next tree
>
> diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
> index 83918c3..a10a036 100644
> --- a/arch/powerpc/sysdev/fsl_pci.c
> +++ b/arch/powerpc/sysdev/fsl_pci.c
> @@ -941,7 +941,7 @@ static int fsl_pci_resume(struct device *dev)
> return -ENODEV;
> }
>
> - setup_pci_atmu(hose, &pci_rsrc);
> + setup_pci_atmu(hose);
>
> return 0;
> }
>
This is still not in your tree ...
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ 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