Module Name: src Committed By: rmind Date: Tue Mar 8 23:27:50 UTC 2011
Modified Files: src/sys/arch/x86/include [rmind-uvmplock]: pmap.h Log Message: struct pmap_tlb_mailbox: make tm_pending and tm_gen volatile. To generate a diff of this commit: cvs rdiff -u -r1.29.2.7 -r1.29.2.8 src/sys/arch/x86/include/pmap.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x86/include/pmap.h diff -u src/sys/arch/x86/include/pmap.h:1.29.2.7 src/sys/arch/x86/include/pmap.h:1.29.2.8 --- src/sys/arch/x86/include/pmap.h:1.29.2.7 Sat Mar 5 20:52:28 2011 +++ src/sys/arch/x86/include/pmap.h Tue Mar 8 23:27:50 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.29.2.7 2011/03/05 20:52:28 rmind Exp $ */ +/* $NetBSD: pmap.h,v 1.29.2.8 2011/03/08 23:27:50 rmind Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -465,23 +465,25 @@ struct pmap_tlb_packet { #ifdef _LP64 - uintptr_t tp_va[14]; /* whole struct: 128 bytes */ + uintptr_t tp_va[14]; /* whole struct: 128 bytes */ #else - uintptr_t tp_va[13]; /* whole struct: 64 bytes */ + uintptr_t tp_va[13]; /* whole struct: 64 bytes */ #endif - uint16_t tp_count; - uint16_t tp_pte; - uint32_t tp_cpumask; - uint32_t tp_usermask; + uint16_t tp_count; + uint16_t tp_pte; + uint32_t tp_cpumask; + uint32_t tp_usermask; }; -#define TP_MAXVA 6 /* no more than N seperate invlpg */ + +/* No more than N seperate invlpg. */ +#define TP_MAXVA 6 struct pmap_tlb_mailbox { - uint32_t tm_pending; - uint32_t tm_gen; - uint32_t tm_usergen; - uint32_t tm_globalgen; - char tm_pad[64 - sizeof(uintptr_t) * 4]; + volatile uint32_t tm_pending; + volatile uint32_t tm_gen; + uint32_t tm_usergen; + uint32_t tm_globalgen; + char tm_pad[64 - sizeof(uintptr_t) * 4]; }; #endif /* _KERNEL */