cpu: change _cpu()->thread calls to current_thread() to fix smp race

This commit is contained in:
Matheus
2024-09-15 17:47:26 -03:00
parent d1c0f2a5fd
commit e058d62261
65 changed files with 196 additions and 190 deletions
+1 -1
View File
@@ -324,7 +324,7 @@ static void enqueueandwait(queuepair_t *queuepair, entrypair_t *entries) {
*queuepair->submission.doorbell = queuepair->submission.index;
sched_preparesleep(false);
entries->thread = _cpu()->thread;
entries->thread = current_thread();
spinlock_release(&queuepair->lock);
sched_yield();
interrupt_set(intstatus);
+1 -1
View File
@@ -88,7 +88,7 @@ static void vioblk_enqueue(vioblkdev_t *blkdev, requestheader_t *headerphys, voi
VIO_QUEUE_DRV_RING(&blkdev->queue)[driveridx % blkdev->queue.size] = idx;
sched_preparesleep(false);
blkdev->queuewaiting[idx / 3] = _cpu()->thread;
blkdev->queuewaiting[idx / 3] = current_thread();
++VIO_QUEUE_DRV_IDX(&blkdev->queue);
*blkdev->queue.notify = 0;