Date: Fri, 10 Sep 1999 09:54:29 -0400 (EDT) From: Luoqi Chen <luoqi@watermarkgroup.com> To: iwasaki@jp.FreeBSD.ORG, stable@FreeBSD.ORG Cc: jkh@FreeBSD.ORG, smp@FreeBSD.ORG Subject: Re: URGENT! HEADS UP: 3.3-RC SMP + APM -> FIX Message-ID: <199909101354.JAA12917@lor.watermarkgroup.com>
next in thread | raw e-mail | index | archive | help
Hmm, this change doesn't belong in -stable. I remember I committed it to the head of the branch, how does it end up in -stable? It should definitely be taken out. -lq > 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909101354.JAA12917>