2. Fixing segfaults that may happen in some corner cases when VT switching
and during int10 initialization (Egbert Eich).
This commit is contained in:
parent
453a0743eb
commit
e90274c2bb
|
@ -1,4 +1,5 @@
|
||||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.79 2003/11/03 05:11:01 tsi Exp $ */
|
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.79 2003/11/03 05:11:01 tsi Exp $ */
|
||||||
|
/* $XdotOrg$ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
|
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
|
||||||
*
|
*
|
||||||
|
@ -525,14 +526,14 @@ disableAccess(void)
|
||||||
for (i = 0; i < xf86NumScreens; i++) {
|
for (i = 0; i < xf86NumScreens; i++) {
|
||||||
peacc = xf86Screens[i]->CurrentAccess->pIoAccess;
|
peacc = xf86Screens[i]->CurrentAccess->pIoAccess;
|
||||||
while (peacc) {
|
while (peacc) {
|
||||||
if (peacc->pAccess->AccessDisable)
|
if (peacc->pAccess && peacc->pAccess->AccessDisable)
|
||||||
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
||||||
peacc = peacc->next;
|
peacc = peacc->next;
|
||||||
}
|
}
|
||||||
xf86Screens[i]->CurrentAccess->pIoAccess = NULL;
|
xf86Screens[i]->CurrentAccess->pIoAccess = NULL;
|
||||||
peacc = xf86Screens[i]->CurrentAccess->pMemAccess;
|
peacc = xf86Screens[i]->CurrentAccess->pMemAccess;
|
||||||
while (peacc) {
|
while (peacc) {
|
||||||
if (peacc->pAccess->AccessDisable)
|
if (peacc->pAccess && peacc->pAccess->AccessDisable)
|
||||||
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
||||||
peacc = peacc->next;
|
peacc = peacc->next;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.31 2003/09/24 02:43:35 dawes Exp $ */
|
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.31 2003/09/24 02:43:35 dawes Exp $ */
|
||||||
|
/* $XdotOrg$ */
|
||||||
/*
|
/*
|
||||||
* linux specific part of the int10 module
|
* linux specific part of the int10 module
|
||||||
* Copyright 1999 Egbert Eich
|
* Copyright 1999, 2000, 2001, 2002, 2003, 2004 Egbert Eich
|
||||||
*/
|
*/
|
||||||
#include "xf86.h"
|
#include "xf86.h"
|
||||||
#include "xf86_OSproc.h"
|
#include "xf86_OSproc.h"
|
||||||
|
@ -212,7 +213,9 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
|
||||||
} else
|
} else
|
||||||
((linuxInt10Priv*)pInt->private)->base_high = NULL;
|
((linuxInt10Priv*)pInt->private)->base_high = NULL;
|
||||||
|
|
||||||
MapCurrentInt10(pInt);
|
if (!MapCurrentInt10(pInt))
|
||||||
|
goto error3;
|
||||||
|
|
||||||
Int10Current = pInt;
|
Int10Current = pInt;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
|
Loading…
Reference in New Issue