struct x86_legacy_features {
        enum x86_legacy_i8042_state i8042;
        int rtc;
+       int warm_reset;
        int no_vga;
        int reserve_bios_regions;
        struct x86_legacy_devices devices;
 
        } else if (!strcmp(oem_table_id, "UVH")) {
                /* Only UV1 systems: */
                uv_system_type = UV_NON_UNIQUE_APIC;
+               x86_platform.legacy.warm_reset = 0;
                __this_cpu_write(x2apic_extra_bits, pnodeid << uvh_apicid.s.pnode_shift);
                uv_set_apicid_hibit();
                uv_apic = 1;
 
 {
        x86_platform.legacy.i8042 = X86_LEGACY_I8042_EXPECTED_PRESENT;
        x86_platform.legacy.rtc = 1;
+       x86_platform.legacy.warm_reset = 1;
        x86_platform.legacy.reserve_bios_regions = 0;
        x86_platform.legacy.devices.pnpbios = 1;
 
 
         * the targeted processor.
         */
 
-       if (get_uv_system_type() != UV_NON_UNIQUE_APIC) {
+       if (x86_platform.legacy.warm_reset) {
 
                pr_debug("Setting warm reset code and vector.\n");
 
        /* mark "stuck" area as not stuck */
        *trampoline_status = 0;
 
-       if (get_uv_system_type() != UV_NON_UNIQUE_APIC) {
+       if (x86_platform.legacy.warm_reset) {
                /*
                 * Cleanup possible dangling ends...
                 */