xive: Move xive_provision_cpu() around
More logical organisation of the code.
@@ -2848,41 +2848,6 @@ static void xive_setup_hw_for_emu(struct xive_cpu_state *xs)
0, 8, &vp, false, true);
}
-static void xive_provision_cpu(struct xive_cpu_state *xs, struct cpu_thread *c)
-{
- struct xive *x;
- void *p;
-
- /* Physical VPs are pre-allocated */
- xs->vp_blk = PIR2VP_BLK(c->pir);
- xs->vp_idx = PIR2VP_IDX(c->pir);
-
- /* For now we use identical block IDs for VC and PC but that might
- * change. We allocate the EQs on the same XIVE as the VP.
- */
- xs->eq_blk = xs->vp_blk;
-
- /* Grab the XIVE where the EQ resides. It could be different from
- * the local chip XIVE if not using block group mode
- */
- x = xive_from_vc_blk(xs->eq_blk);
- assert(x);
-
- /* Allocate a set of EQs for that VP */
- xs->eq_idx = xive_alloc_eq_set(x, true);
- assert(!XIVE_ALLOC_IS_ERR(xs->eq_idx));
-
- /* Provision one of the queues. Allocate the memory on the
- * chip where the CPU resides
- */
- p = local_alloc(c->chip_id, 0x10000, 0x10000);
- if (!p) {
- xive_err(x, "Failed to allocate EQ backing store\n");
- assert(false);
- }
- xs->eq_page = p;
-}
-
static void xive_init_cpu_emulation(struct xive_cpu_state *xs,
struct cpu_thread *cpu)
{
@@ -2955,6 +2920,41 @@ static void xive_configure_ex_special_bar(struct xive *x, struct cpu_thread *c)
}
}
+static void xive_provision_cpu(struct xive_cpu_state *xs, struct cpu_thread *c)
+{
+ struct xive *x;
+ void *p;
+
+ /* Physical VPs are pre-allocated */
+ xs->vp_blk = PIR2VP_BLK(c->pir);
+ xs->vp_idx = PIR2VP_IDX(c->pir);
+
+ /* For now we use identical block IDs for VC and PC but that might
+ * change. We allocate the EQs on the same XIVE as the VP.
+ */
+ xs->eq_blk = xs->vp_blk;
+
+ /* Grab the XIVE where the EQ resides. It could be different from
+ * the local chip XIVE if not using block group mode
+ */
+ x = xive_from_vc_blk(xs->eq_blk);
+ assert(x);
+
+ /* Allocate a set of EQs for that VP */
+ xs->eq_idx = xive_alloc_eq_set(x, true);
+ assert(!XIVE_ALLOC_IS_ERR(xs->eq_idx));
+
+ /* Provision one of the queues. Allocate the memory on the
+ * chip where the CPU resides
+ */
+ p = local_alloc(c->chip_id, 0x10000, 0x10000);
+ if (!p) {
+ xive_err(x, "Failed to allocate EQ backing store\n");
+ assert(false);
+ }
+ xs->eq_page = p;
+}
+
static void xive_init_cpu(struct cpu_thread *c)
{
struct proc_chip *chip = get_chip(c->chip_id);
