x86: machine_restart() must not call acpi_dmar_reinstate() twice
authorJan Beulich <jbeulich@suse.com>
Fri, 13 Sep 2013 12:27:34 +0000 (14:27 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 13 Sep 2013 12:27:34 +0000 (14:27 +0200)
commita54dc5f4fe1eae6b1beb21326ef0338cd3969cd1
tree71f7dd6efa7790887a0f4a052d782140ceff2162
parent11a63a1660453269ddd1893c15d0a98133b33ca7
x86: machine_restart() must not call acpi_dmar_reinstate() twice

.. as that function is not idempotent (it always alters the table
checksum). The (generally) duplicate call was a result from it being
made before machine_restart() re-invoking itself on the boot CPU.

Considering that no problem arose so far from the table corruption I
doubt that we need to restore the correct table signature on the
reboot path in general. The only case I can see this as potentially
necessary is the tboot one, hence do the call just in that case.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/arch/x86/shutdown.c