Print this page
5042 stop using deprecated atomic functions

*** 942,952 **** hat_kmap_init((uintptr_t)segmap_start, size); } /* * On 32 bit PAE mode, PTE's are 64 bits, but ordinary atomic memory references ! * are 32 bit, so for safety we must use cas64() to install these. */ #ifdef __i386 static void reload_pae32(hat_t *hat, cpu_t *cpu) { --- 942,952 ---- hat_kmap_init((uintptr_t)segmap_start, size); } /* * On 32 bit PAE mode, PTE's are 64 bits, but ordinary atomic memory references ! * are 32 bit, so for safety we must use atomic_cas_64() to install these. */ #ifdef __i386 static void reload_pae32(hat_t *hat, cpu_t *cpu) {
*** 965,975 **** for (i = 0; i < VLP_NUM_PTES; ++i) { for (;;) { pte = dest[i]; if (pte == src[i]) break; ! if (cas64(dest + i, pte, src[i]) != src[i]) break; } } } #endif --- 965,975 ---- for (i = 0; i < VLP_NUM_PTES; ++i) { for (;;) { pte = dest[i]; if (pte == src[i]) break; ! if (atomic_cas_64(dest + i, pte, src[i]) != src[i]) break; } } } #endif
*** 1986,2004 **** } #define TLB_CPU_HALTED (01ul) #define TLB_INVAL_ALL (02ul) #define CAS_TLB_INFO(cpu, old, new) \ ! caslong((ulong_t *)&(cpu)->cpu_m.mcpu_tlb_info, (old), (new)) /* * Record that a CPU is going idle */ void tlb_going_idle(void) { ! atomic_or_long((ulong_t *)&CPU->cpu_m.mcpu_tlb_info, TLB_CPU_HALTED); } /* * Service a delayed TLB flush if coming out of being idle. * It will be called from cpu idle notification with interrupt disabled. --- 1986,2004 ---- } #define TLB_CPU_HALTED (01ul) #define TLB_INVAL_ALL (02ul) #define CAS_TLB_INFO(cpu, old, new) \ ! atomic_cas_ulong((ulong_t *)&(cpu)->cpu_m.mcpu_tlb_info, (old), (new)) /* * Record that a CPU is going idle */ void tlb_going_idle(void) { ! atomic_or_ulong((ulong_t *)&CPU->cpu_m.mcpu_tlb_info, TLB_CPU_HALTED); } /* * Service a delayed TLB flush if coming out of being idle. * It will be called from cpu idle notification with interrupt disabled.