Attempt to work around a bug in the previous commit related to

non-reentrancy of SMP clock locking.  Depend on the giant lock
protecting clkintr().
This commit is contained in:
Bruce Evans 1998-09-20 19:56:28 +00:00
parent 80db5fd640
commit 6ed49410a5
5 changed files with 15 additions and 15 deletions

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.125 1998/09/06 22:41:41 tegge Exp $
* $Id: clock.c,v 1.126 1998/09/20 03:47:54 bde Exp $
*/
/*
@ -208,7 +208,7 @@ clkintr(struct clockframe frame)
* hardware counter must be read to ensure monotonicity
* despite multiple rollovers and misbehaving hardware.
*/
disable_intr();
(disable_intr)(); /* XXX avoid clock locking */
if (i8254_ticked) {
i8254_get_timecount(NULL);
i8254_ticked = 0;
@ -216,7 +216,7 @@ clkintr(struct clockframe frame)
i8254_offset += timer0_max_count;
i8254_lastcount = 0;
}
enable_intr();
(enable_intr)(); /* XXX avoid clock locking */
}
timer_func(&frame);
switch (timer0_state) {

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.125 1998/09/06 22:41:41 tegge Exp $
* $Id: clock.c,v 1.126 1998/09/20 03:47:54 bde Exp $
*/
/*
@ -208,7 +208,7 @@ clkintr(struct clockframe frame)
* hardware counter must be read to ensure monotonicity
* despite multiple rollovers and misbehaving hardware.
*/
disable_intr();
(disable_intr)(); /* XXX avoid clock locking */
if (i8254_ticked) {
i8254_get_timecount(NULL);
i8254_ticked = 0;
@ -216,7 +216,7 @@ clkintr(struct clockframe frame)
i8254_offset += timer0_max_count;
i8254_lastcount = 0;
}
enable_intr();
(enable_intr)(); /* XXX avoid clock locking */
}
timer_func(&frame);
switch (timer0_state) {

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.125 1998/09/06 22:41:41 tegge Exp $
* $Id: clock.c,v 1.126 1998/09/20 03:47:54 bde Exp $
*/
/*
@ -208,7 +208,7 @@ clkintr(struct clockframe frame)
* hardware counter must be read to ensure monotonicity
* despite multiple rollovers and misbehaving hardware.
*/
disable_intr();
(disable_intr)(); /* XXX avoid clock locking */
if (i8254_ticked) {
i8254_get_timecount(NULL);
i8254_ticked = 0;
@ -216,7 +216,7 @@ clkintr(struct clockframe frame)
i8254_offset += timer0_max_count;
i8254_lastcount = 0;
}
enable_intr();
(enable_intr)(); /* XXX avoid clock locking */
}
timer_func(&frame);
switch (timer0_state) {

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.125 1998/09/06 22:41:41 tegge Exp $
* $Id: clock.c,v 1.126 1998/09/20 03:47:54 bde Exp $
*/
/*
@ -208,7 +208,7 @@ clkintr(struct clockframe frame)
* hardware counter must be read to ensure monotonicity
* despite multiple rollovers and misbehaving hardware.
*/
disable_intr();
(disable_intr)(); /* XXX avoid clock locking */
if (i8254_ticked) {
i8254_get_timecount(NULL);
i8254_ticked = 0;
@ -216,7 +216,7 @@ clkintr(struct clockframe frame)
i8254_offset += timer0_max_count;
i8254_lastcount = 0;
}
enable_intr();
(enable_intr)(); /* XXX avoid clock locking */
}
timer_func(&frame);
switch (timer0_state) {

View File

@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)clock.c 7.2 (Berkeley) 5/12/91
* $Id: clock.c,v 1.125 1998/09/06 22:41:41 tegge Exp $
* $Id: clock.c,v 1.126 1998/09/20 03:47:54 bde Exp $
*/
/*
@ -208,7 +208,7 @@ clkintr(struct clockframe frame)
* hardware counter must be read to ensure monotonicity
* despite multiple rollovers and misbehaving hardware.
*/
disable_intr();
(disable_intr)(); /* XXX avoid clock locking */
if (i8254_ticked) {
i8254_get_timecount(NULL);
i8254_ticked = 0;
@ -216,7 +216,7 @@ clkintr(struct clockframe frame)
i8254_offset += timer0_max_count;
i8254_lastcount = 0;
}
enable_intr();
(enable_intr)(); /* XXX avoid clock locking */
}
timer_func(&frame);
switch (timer0_state) {