qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 78e9dd: hw/intc/arm_gicv3_common: Give no-mig


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 78e9dd: hw/intc/arm_gicv3_common: Give no-migration-shift-...
Date: Mon, 06 Aug 2018 09:07:54 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 78e9ddd75e79159ccb5f3506ac0359ce0df28183
      
https://github.com/qemu/qemu/commit/78e9ddd75e79159ccb5f3506ac0359ce0df28183
  Author: Peter Maydell <address@hidden>
  Date:   2018-08-06 (Mon, 06 Aug 2018)

  Changed paths:
    M hw/intc/arm_gicv3_common.c

  Log Message:
  -----------
  hw/intc/arm_gicv3_common: Give no-migration-shift-bug subsection a needed 
function

Currently the migration code incorrectly treats a subsection with
no .needed function pointer as if it was the subsection list
terminator -- it is ignored and so is everything after it.
Work around this by giving vmstate_gicv3_gicd_no_migration_shift_bug
a 'needed' function that always returns true.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden


  Commit: adc4fda6d564a9a7e3fff4bdafcee131fdac133a
      
https://github.com/qemu/qemu/commit/adc4fda6d564a9a7e3fff4bdafcee131fdac133a
  Author: Peter Maydell <address@hidden>
  Date:   2018-08-06 (Mon, 06 Aug 2018)

  Changed paths:
    M hw/intc/arm_gicv3_common.c

  Log Message:
  -----------
  hw/intc/arm_gicv3_common: Combine duplicate .subsections in vmstate_gicv3_cpu

Commit 6692aac411199064 accidentally introduced a second initialization
of the .subsections field of vmstate_gicv3_cpu, instead of adding
the new subsection to the existing list. The effect of this was
probably that migration of GICv3 with virtualization enabled was
broken (or alternatively that migration of ICC_SRE_EL1 was broken,
depending on which of the two initializers the compiler used).
Combine the two into a single list.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden


  Commit: 7b69454a12510dc84b71c292214c364e499609e7
      
https://github.com/qemu/qemu/commit/7b69454a12510dc84b71c292214c364e499609e7
  Author: Peter Maydell <address@hidden>
  Date:   2018-08-06 (Mon, 06 Aug 2018)

  Changed paths:
    M target/arm/machine.c

  Log Message:
  -----------
  target/arm: Add dummy needed functions to M profile vmstate subsections

Currently the migration code incorrectly treats a subsection with
no .needed function pointer as if it was the subsection list
terminator -- it is ignored and so is everything after it.
Work around this by giving various M profile vmstate structs
a 'needed' function that always returns true.
We reuse m_needed() for this, since it's always true here.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Message-id: address@hidden


  Commit: 326049cc8e6079d1ea49dc4b415b8112f0c995bd
      
https://github.com/qemu/qemu/commit/326049cc8e6079d1ea49dc4b415b8112f0c995bd
  Author: Peter Maydell <address@hidden>
  Date:   2018-08-06 (Mon, 06 Aug 2018)

  Changed paths:
    M hw/intc/arm_gicv3_common.c

  Log Message:
  -----------
  hw/intc/arm_gicv3_common: Move post_load hooks to top-level VMSD

Contrary to the the impression given in docs/devel/migration.rst,
the migration code does not run the pre_load hook for a
subsection unless the subsection appears on the wire, and so
this is not a place where you can set the default value for
state for the "subsection not present" case. Instead this needs
to be done in a pre_load hook for whatever is the parent VMSD
of the subsection.

We got this wrong in two of the subsection definitions in
the GICv3 migration structs; fix this.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-id: address@hidden


  Commit: 341823c172168a6d2765937aaea635f5136c5aa9
      
https://github.com/qemu/qemu/commit/341823c172168a6d2765937aaea635f5136c5aa9
  Author: Peter Maydell <address@hidden>
  Date:   2018-08-06 (Mon, 06 Aug 2018)

  Changed paths:
    M hw/intc/arm_gicv3_common.c

  Log Message:
  -----------
  hw/intc/arm_gicv3_common: Move gicd shift bug handling to gicv3_post_load

The code currently in gicv3_gicd_no_migration_shift_bug_post_load()
that handles migration from older QEMU versions with a particular
bug is misplaced. We need to run this after migration in all cases,
not just the cases where the "arm_gicv3/gicd_no_migration_shift_bug"
subsection is present, so it must go in a post_load hook for the
top level VMSD, not for the subsection. Move it.

Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Message-id: address@hidden


Compare: https://github.com/qemu/qemu/compare/1fb57da72ae0...341823c17216
      **NOTE:** This service has been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]