Fix premature usage of loom_get_cpu()
When loading CPUs for the loom, we cannot use loom_get_cpu() to access the CPUs of the loom by their logical index, as it is not yet populated. The check comes from load_cpus() which tries to prevent duplicated entries in CPU logical indices, but this check is already performed when building the cpus_array, so it is not needed. Tested-by: Arnau Cinca <arnau.cinca@bsc.es>
This commit is contained in:
parent
ce01675e9e
commit
4778b8c9ab
@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix a bug in ovniemu when loading loom CPUs from multiple threads.
|
||||
|
||||
## [1.12.0] - 2025-05-08
|
||||
|
||||
### Changed
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2021-2024 Barcelona Supercomputing Center (BSC)
|
||||
/* Copyright (c) 2021-2025 Barcelona Supercomputing Center (BSC)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later */
|
||||
|
||||
#include "loom.h"
|
||||
@ -117,14 +117,6 @@ load_cpus(struct loom *loom, JSON_Object *meta)
|
||||
continue;
|
||||
}
|
||||
|
||||
/* If we reach this point, there shouldn't be a CPU with the
|
||||
* same index either, as otherwise the phyid should have matched
|
||||
* before. So it is an error. */
|
||||
if (loom_get_cpu(loom, index) != NULL) {
|
||||
err("cpu index %d redefined with another phyid", index);
|
||||
return -1;
|
||||
}
|
||||
|
||||
cpu = calloc(1, sizeof(struct cpu));
|
||||
if (cpu == NULL) {
|
||||
err("calloc failed:");
|
||||
@ -189,6 +181,9 @@ loom_find_cpu(struct loom *loom, int phyid)
|
||||
struct cpu *
|
||||
loom_get_cpu(struct loom *loom, int index)
|
||||
{
|
||||
if (loom->cpus_array == NULL)
|
||||
die("cpus_array not yet populated");
|
||||
|
||||
if (index == -1)
|
||||
return &loom->vcpu;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user