mirror of
https://github.com/freebsd/freebsd-src
synced 2024-11-05 18:22:52 +00:00
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:
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
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue