Don't forget to update the pmap associated with aio daemons when adding

new page directory entries for a growing kernel virtual address space.
This commit is contained in:
Tor Egge 1998-11-27 01:14:21 +00:00
parent e95a493b62
commit 18830dba83
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=41370
3 changed files with 18 additions and 4 deletions

View file

@ -39,7 +39,7 @@
* SUCH DAMAGE.
*
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
* $Id: pmap.c,v 1.212 1998/11/08 02:26:14 msmith Exp $
* $Id: pmap.c,v 1.213 1998/11/24 20:25:52 eivind Exp $
*/
/*
@ -189,6 +189,9 @@ struct msgbuf *msgbufp=0;
*/
struct ppro_vmtrr PPro_vmtrr[NPPROVMTRR];
/* AIO support */
extern struct vmspace *aiovmspace;
#ifdef SMP
extern char prv_CPAGE1[], prv_CPAGE2[], prv_CPAGE3[];
extern pt_entry_t *prv_CMAP1, *prv_CMAP2, *prv_CMAP3;
@ -1568,6 +1571,10 @@ pmap_growkernel(vm_offset_t addr)
*pmap_pde(pmap, kernel_vm_end) = newpdir;
}
}
if (aiovmspace != NULL) {
pmap = &aiovmspace->vm_pmap;
*pmap_pde(pmap, kernel_vm_end) = newpdir;
}
*pmap_pde(kernel_pmap, kernel_vm_end) = newpdir;
kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1);
}

View file

@ -39,7 +39,7 @@
* SUCH DAMAGE.
*
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
* $Id: pmap.c,v 1.212 1998/11/08 02:26:14 msmith Exp $
* $Id: pmap.c,v 1.213 1998/11/24 20:25:52 eivind Exp $
*/
/*
@ -189,6 +189,9 @@ struct msgbuf *msgbufp=0;
*/
struct ppro_vmtrr PPro_vmtrr[NPPROVMTRR];
/* AIO support */
extern struct vmspace *aiovmspace;
#ifdef SMP
extern char prv_CPAGE1[], prv_CPAGE2[], prv_CPAGE3[];
extern pt_entry_t *prv_CMAP1, *prv_CMAP2, *prv_CMAP3;
@ -1568,6 +1571,10 @@ pmap_growkernel(vm_offset_t addr)
*pmap_pde(pmap, kernel_vm_end) = newpdir;
}
}
if (aiovmspace != NULL) {
pmap = &aiovmspace->vm_pmap;
*pmap_pde(pmap, kernel_vm_end) = newpdir;
}
*pmap_pde(kernel_pmap, kernel_vm_end) = newpdir;
kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1);
}

View file

@ -13,7 +13,7 @@
* bad that happens because of using this software isn't the responsibility
* of the author. This software is distributed AS-IS.
*
* $Id: vfs_aio.c,v 1.33 1998/08/17 17:28:10 bde Exp $
* $Id: vfs_aio.c,v 1.34 1998/10/25 17:44:52 phk Exp $
*/
/*
@ -245,7 +245,7 @@ static vm_zone_t kaio_zone=0, aiop_zone=0,
/*
* Single AIOD vmspace shared amongst all of them
*/
static struct vmspace *aiovmspace = NULL;
struct vmspace *aiovmspace = NULL;
/*
* Startup initialization