Date: Fri, 10 Sep 1999 21:33:53 +0900 From: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> To: stable@FreeBSD.ORG Cc: smp@FreeBSD.ORG, jkh@FreeBSD.org, iwasaki@jp.FreeBSD.ORG Subject: URGENT! HEADS UP: 3.3-RC SMP + APM -> FIX Message-ID: <199909101230.VAA12112@tasogare.imasy.or.jp>
index | next in thread | raw e-mail
Hi,
If you have problems on 3.3-RC SMP system with APM enabled,
please test the attached patch and give feedback to me ASAP.
The problem I was reported is that a lot of userland programs get
signal 11 and core dumped on startup. It seems my bad MCF (8/24)
breaks extra GDT entries for SMP.
The following patch was already tested among folks in Japan, I
want fix this before 3.3-RELEASE.
<To Release Coordinator>
My I commit this for RELENG_3 if somebody reports `fixed!' ?
</To Release Coordinator>
Index: i386/apm/apm.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/apm/apm.c,v
retrieving revision 1.77.2.6
diff -u -r1.77.2.6 apm.c
--- apm.c 1999/08/29 16:04:32 1.77.2.6
+++ apm.c 1999/09/10 11:57:40
@@ -20,7 +20,6 @@
#include "opt_devfs.h"
#include "opt_vm86.h"
-#include "opt_smp.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -53,10 +52,6 @@
#include <machine/vm86.h>
#endif
-#ifdef SMP
-#include <machine/smp.h>
-#endif
-
static int apm_display __P((int newstate));
static int apm_int __P((u_long *eax, u_long *ebx, u_long *ecx, u_long *edx));
static void apm_resume __P((void));
@@ -127,10 +122,6 @@
static void
setup_apm_gdt(u_int code32_base, u_int code16_base, u_int data_base, u_int code32_limit, u_int code16_limit, u_int data_limit)
{
-#ifdef SMP
- int x;
-#endif
-
/* setup 32bit code segment */
gdt_segs[GAPMCODE32_SEL].ssd_base = code32_base;
gdt_segs[GAPMCODE32_SEL].ssd_limit = code32_limit;
@@ -147,14 +138,6 @@
ssdtosd(gdt_segs + GAPMCODE32_SEL, &gdt[GAPMCODE32_SEL].sd);
ssdtosd(gdt_segs + GAPMCODE16_SEL, &gdt[GAPMCODE16_SEL].sd);
ssdtosd(gdt_segs + GAPMDATA_SEL , &gdt[GAPMDATA_SEL ].sd);
-
-#ifdef SMP
- for (x = 1; x < NCPU; x++) {
- gdt[x * NGDT + GAPMCODE32_SEL].sd = gdt[GAPMCODE32_SEL].sd;
- gdt[x * NGDT + GAPMCODE16_SEL].sd = gdt[GAPMCODE16_SEL].sd;
- gdt[x * NGDT + GAPMDATA_SEL ].sd = gdt[GAPMDATA_SEL ].sd;
- }
-#endif
}
/* 48bit far pointer. Do not staticize - used from apm_setup.s */
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909101230.VAA12112>
