diff options
author | marcel <marcel@FreeBSD.org> | 2009-04-08 22:19:39 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2009-04-08 22:19:39 +0000 |
commit | 241f791e9c068a9bb07d67ab52a166b990dfc23f (patch) | |
tree | abb826181af09c6c4382c0d706cc090ae0117c91 | |
parent | 3728505c2189533e980312a1e8e9870af0f68890 (diff) | |
download | FreeBSD-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).
-rw-r--r-- | sys/dev/uart/uart_cpu_powerpc.c | 4 |
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 |