pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/emulators/tme Fix logic to determine whether destinati...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/f619b5bbca55
branches:  trunk
changeset: 425110:f619b5bbca55
user:      rin <rin%pkgsrc.org@localhost>
date:      Thu Mar 19 02:27:21 2020 +0000

description:
Fix logic to determine whether destination EA for cas lies b/w page
boundary or not; casl was mistakenly treated as an illegal instruction
when destination is the highest long word in a page. This results in
kernel panic in supervisor mode.

Bump revision.

Now, NetBSD/sun3 boots multiuser again. Have fun!

diffstat:

 emulators/tme/Makefile                          |   4 ++--
 emulators/tme/distinfo                          |   4 ++--
 emulators/tme/patches/patch-ic_m68k_m68k-misc.c |  22 +++++++++++++++++-----
 3 files changed, 21 insertions(+), 9 deletions(-)

diffs (70 lines):

diff -r 2c35d066c3d1 -r f619b5bbca55 emulators/tme/Makefile
--- a/emulators/tme/Makefile    Wed Mar 18 23:04:21 2020 +0000
+++ b/emulators/tme/Makefile    Thu Mar 19 02:27:21 2020 +0000
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.76 2020/03/10 22:09:48 wiz Exp $
+# $NetBSD: Makefile,v 1.77 2020/03/19 02:27:21 rin Exp $
 #
 
 DISTNAME=              tme-0.8
-PKGREVISION=           43
+PKGREVISION=           44
 CATEGORIES=            emulators
 MASTER_SITES=          http://csail.mit.edu/~fredette/tme/
 
diff -r 2c35d066c3d1 -r f619b5bbca55 emulators/tme/distinfo
--- a/emulators/tme/distinfo    Wed Mar 18 23:04:21 2020 +0000
+++ b/emulators/tme/distinfo    Thu Mar 19 02:27:21 2020 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.25 2020/03/05 14:55:16 thorpej Exp $
+$NetBSD: distinfo,v 1.26 2020/03/19 02:27:21 rin Exp $
 
 SHA1 (tme-0.8.tar.gz) = dd4f3421c20ceed548c5328a21dbb26e80f46b9c
 RMD160 (tme-0.8.tar.gz) = 6bd505c5fa7810d37f436883383c4ba655df2ded
@@ -18,7 +18,7 @@
 SHA1 (patch-ic_m68k_m6888x.c) = fe42dce7bf5abc69e2c9e15967d5e862ef651a0e
 SHA1 (patch-ic_m68k_m68k-insns-auto.sh) = c493b4c6b066135e093abd7482e0a1e99294848b
 SHA1 (patch-ic_m68k_m68k-m68k-insns.c) = 1a9d8e3d4e11c5710d1f67b65954d6e3de68d99f
-SHA1 (patch-ic_m68k_m68k-misc.c) = 7aeef098631196fe60b9940600cf90c86d1be375
+SHA1 (patch-ic_m68k_m68k-misc.c) = a5d5f5dfdd0331d30b19815687ead49554a771f1
 SHA1 (patch-ic_mm58167.c) = 1c35c599f56f6a13a9dfc85dc5154f094bd8c0d0
 SHA1 (patch-libtme_memory-auto.sh) = f7d989831b2468d1288faabc10b6fc53ce5bd0f4
 SHA1 (patch-machine_sun2_SUN2-MULTIBUS) = cf9f55fcc15e2d977823dd54b9a10c42b11a6666
diff -r 2c35d066c3d1 -r f619b5bbca55 emulators/tme/patches/patch-ic_m68k_m68k-misc.c
--- a/emulators/tme/patches/patch-ic_m68k_m68k-misc.c   Wed Mar 18 23:04:21 2020 +0000
+++ b/emulators/tme/patches/patch-ic_m68k_m68k-misc.c   Thu Mar 19 02:27:21 2020 +0000
@@ -1,10 +1,13 @@
-$NetBSD: patch-ic_m68k_m68k-misc.c,v 1.1 2013/12/28 19:16:48 martin Exp $
+$NetBSD: patch-ic_m68k_m68k-misc.c,v 1.2 2020/03/19 02:27:21 rin Exp $
+
+- Fix from upstream CVS: fix sequencing and fault handling for
+  read-modify-write instructions.
 
-Fix from upstream CVS: fix sequencing and fault handling for read-modify-write
-instructions.
+- Fix logic to determine whether destination EA for cas lies b/w page
+  boundary or not.
 
---- ic/m68k/m68k-misc.c.orig   2009-08-29 21:47:52.000000000 +0200
-+++ ic/m68k/m68k-misc.c        2013-12-23 13:12:54.000000000 +0100
+--- ic/m68k/m68k-misc.c.orig   2009-08-30 04:47:52.000000000 +0900
++++ ic/m68k/m68k-misc.c        2020-03-18 23:15:56.877341698 +0900
 @@ -1441,6 +1441,9 @@ tme_m68k_rmw_start(struct tme_m68k *ic,
    tme_uint32_t *buffer_reg;
    int supported;
@@ -15,6 +18,15 @@
    /* if the user reran the cycle: */
    if (TME_M68K_SEQUENCE_RESTARTING
        && (ic->_tme_m68k_group0_buffer_read_softrr > 0
+@@ -1690,7 +1693,7 @@ tme_m68k_rmw_start(struct tme_m68k *ic,
+       tlb = rmw->tme_m68k_rmw_tlbs[address_i];
+ 
+       /* if this TLB entry doesn't cover the entire operand: */
+-      if ((((tme_bus_addr32_t) tlb->tme_m68k_tlb_linear_last) - address) < rmw->tme_m68k_rmw_size) {
++      if ((((tme_bus_addr32_t) tlb->tme_m68k_tlb_linear_last + 1) - address) < rmw->tme_m68k_rmw_size) {
+ 
+       /* we can't support this instruction on this memory, because
+          we can't split an atomic operation across TLB entries.  on
 @@ -1754,9 +1757,6 @@ tme_m68k_rmw_start(struct tme_m68k *ic,
          tlbs_busy[!tlb_i] = FALSE;
        }



Home | Main Index | Thread Index | Old Index