rem: acquire_spinlock(&io_vectors[vector].vector_lock);
add: io = io_vectors[vector].handler_list; while (io != NULL) { temp_ret = io->func(io->data); if (temp_ret == INT_RESCHEDULE) ret = INT_RESCHEDULE; io = io->next; } }
context: int int_io_interrupt_handler(int vector) {         int ret = INT_NO_RESCHEDULE;         acquire_spinlock(&io_vectors[vector].vector_lock);         if(io_vectors[vector].handler_list == NULL) {                 dprintf("unhandled io interrupt %d\n", vector);         } else {                 struct io_handler *io;                 int temp_ret;                 io = io_vectors[vector].handler_list;                 while(io != NULL) {                         temp_ret = io->func(io->data);                         if(temp_ret == INT_RESCHEDULE)                                 ret = INT_RESCHEDULE;                         io = io->next;                 }         }         release_spinlock(&io_vectors[vector].vector_lock);         return ret; }