diff options
author | Vivek Gavaskar <vivek.gavaskar@oracle.COM> | 2010-05-20 14:40:56 -0700 |
---|---|---|
committer | Vivek Gavaskar <vivek.gavaskar@oracle.COM> | 2010-05-20 14:40:56 -0700 |
commit | 5ab67823875344e1e405d8c9048b48143aa184fb (patch) | |
tree | 6d23911850f821adca441a65c564cc5a4daf18be /usr/src/uts/common/fs | |
parent | 1214df40ce31103bc34df4ccf5b54897ac8288d4 (diff) | |
download | illumos-gate-5ab67823875344e1e405d8c9048b48143aa184fb.tar.gz |
6937191 SUNWtetos door_bench testcase is failing for 64KB with timer failure
Diffstat (limited to 'usr/src/uts/common/fs')
-rw-r--r-- | usr/src/uts/common/fs/doorfs/door_sys.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/usr/src/uts/common/fs/doorfs/door_sys.c b/usr/src/uts/common/fs/doorfs/door_sys.c index 78c4febb85..a1a285dc76 100644 --- a/usr/src/uts/common/fs/doorfs/door_sys.c +++ b/usr/src/uts/common/fs/doorfs/door_sys.c @@ -20,8 +20,7 @@ */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. */ /* @@ -62,6 +61,7 @@ #include <vm/seg.h> #include <vm/seg_vn.h> #include <vm/seg_vn.h> +#include <vm/seg_kpm.h> #include <sys/modctl.h> #include <sys/syscall.h> @@ -3043,7 +3043,11 @@ door_copy(struct as *as, caddr_t src, caddr_t dest, uint_t len) /* * Map destination page into kernel address */ - kaddr = (caddr_t)ppmapin(pp, PROT_READ | PROT_WRITE, (caddr_t)-1); + if (kpm_enable) + kaddr = (caddr_t)hat_kpm_mapin(pp, (struct kpme *)NULL); + else + kaddr = (caddr_t)ppmapin(pp, PROT_READ | PROT_WRITE, + (caddr_t)-1); /* * Copy from src to dest @@ -3053,7 +3057,10 @@ door_copy(struct as *as, caddr_t src, caddr_t dest, uint_t len) /* * Unmap destination page from kernel */ - ppmapout(kaddr); + if (kpm_enable) + hat_kpm_mapout(pp, (struct kpme *)NULL, kaddr); + else + ppmapout(kaddr); /* * Unlock destination page */ |