* Fixed bug relating to nested locking in interrupt handlers. The nested lock
caused interrupts to be reenabled (due to unlock), which caused a race. The problems were especially visible on slower machines. * Relocated free memory parsing to process manager. This saved quite some code at the kernel level. Text size was reduced by about 650 bytes. * Removed locks for updating the realtime in the clock's main loop and the get_uptime function. Interrupts are no longer reentrant, so realtime is immediately updated.
This commit is contained in:
@@ -105,11 +105,6 @@ register message *m_ptr; /* pointer to request message */
|
||||
src_phys = vir2phys(irq_hooks);
|
||||
break;
|
||||
}
|
||||
case GET_MEMCHUNKS: {
|
||||
length = sizeof(struct memory) * NR_MEMS;
|
||||
src_phys = vir2phys(mem);
|
||||
break;
|
||||
}
|
||||
case GET_SCHEDINFO: {
|
||||
/* This is slightly complicated because we need two data structures
|
||||
* at once, otherwise the scheduling information may be incorrect.
|
||||
|
||||
Reference in New Issue
Block a user