summaryrefslogtreecommitdiffstats
path: root/sys/dev/uart/uart_cpu_powerpc.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-04-08 22:19:39 +0000
committermarcel <marcel@FreeBSD.org>2009-04-08 22:19:39 +0000
commit241f791e9c068a9bb07d67ab52a166b990dfc23f (patch)
treeabb826181af09c6c4382c0d706cc090ae0117c91 /sys/dev/uart/uart_cpu_powerpc.c
parent3728505c2189533e980312a1e8e9870af0f68890 (diff)
downloadFreeBSD-src-241f791e9c068a9bb07d67ab52a166b990dfc23f.zip
FreeBSD-src-241f791e9c068a9bb07d67ab52a166b990dfc23f.tar.gz
Don't use pmap_kextact() when comparing bus handles for Book-E.
We typically wire translation to devices with TLB1 entries and pmap_kextract() does not know about those and returns 0. This causes false positives (read: all serial ports suddenly become the console).
Diffstat (limited to 'sys/dev/uart/uart_cpu_powerpc.c')
-rw-r--r--sys/dev/uart/uart_cpu_powerpc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/uart/uart_cpu_powerpc.c b/sys/dev/uart/uart_cpu_powerpc.c
index 682cab9..f97eda0 100644
--- a/sys/dev/uart/uart_cpu_powerpc.c
+++ b/sys/dev/uart/uart_cpu_powerpc.c
@@ -55,7 +55,11 @@ bus_space_tag_t uart_bus_space_mem = &bs_le_tag;
int
uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
{
+#ifdef MPC85XX
+ return ((b1->bsh == b2->bsh) ? 1 : 0);
+#else
return ((pmap_kextract(b1->bsh) == pmap_kextract(b2->bsh)) ? 1 : 0);
+#endif
}
#ifdef MPC85XX
OpenPOWER on IntegriCloud