Skip site navigation (1)Skip section navigation (2)
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>