Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/evbarm/ifpga Add barriers to prevent scheduling of ...
details: https://anonhg.NetBSD.org/src/rev/8b4888f9c135
branches: trunk
changeset: 568996:8b4888f9c135
user: rearnsha <rearnsha%NetBSD.org@localhost>
date: Sat Aug 07 11:08:58 2004 +0000
description:
Add barriers to prevent scheduling of critical code outside of the
SPL-protected region.
diffstat:
sys/arch/evbarm/ifpga/ifpga_intr.h | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diffs (29 lines):
diff -r d06ee4312c80 -r 8b4888f9c135 sys/arch/evbarm/ifpga/ifpga_intr.h
--- a/sys/arch/evbarm/ifpga/ifpga_intr.h Sat Aug 07 11:00:06 2004 +0000
+++ b/sys/arch/evbarm/ifpga/ifpga_intr.h Sat Aug 07 11:08:58 2004 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ifpga_intr.h,v 1.2 2003/09/21 19:33:13 matt Exp $ */
+/* $NetBSD: ifpga_intr.h,v 1.3 2004/08/07 11:08:58 rearnsha Exp $ */
/*
* Copyright (c) 2001, 2002 Wasabi Systems, Inc.
@@ -76,6 +76,8 @@
extern void ifpga_do_pending(void);
int oldirqstate, hwpend;
+ __insn_barrier();
+
oldirqstate = disable_interrupts(I32_bit);
current_spl_level = new;
@@ -99,7 +101,9 @@
int old;
old = current_spl_level;
- current_spl_level |= ifpga_imask[ipl];
+ current_spl_level = old | ifpga_imask[ipl];
+
+ __insn_barrier();
return (old);
}
Home |
Main Index |
Thread Index |
Old Index