From owner-freebsd-smp Fri Sep 10 5:31:13 1999 Delivered-To: freebsd-smp@freebsd.org Received: from tasogare.imasy.or.jp (tasogare.imasy.or.jp [202.227.24.5]) by hub.freebsd.org (Postfix) with ESMTP id 3CBA314DB5; Fri, 10 Sep 1999 05:31:07 -0700 (PDT) (envelope-from iwasaki@jp.FreeBSD.org) Received: from localhost (isdnb10.imasy.or.jp [202.227.24.138]) by tasogare.imasy.or.jp (8.9.3+3.2W/3.7W-tasogare/smtpfeed 1.01) with ESMTP id VAA12112; Fri, 10 Sep 1999 21:30:45 +0900 (JST) (envelope-from iwasaki@jp.FreeBSD.org) Message-Id: <199909101230.VAA12112@tasogare.imasy.or.jp> 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 X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Fri, 10 Sep 1999 21:33:53 +0900 From: Mitsuru IWASAKI X-Dispatcher: imput version 980905(IM100) Lines: 68 Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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. My I commit this for RELENG_3 if somebody reports `fixed!' ? 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 #include @@ -53,10 +52,6 @@ #include #endif -#ifdef SMP -#include -#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-smp" in the body of the message