rpms/kernel-xen-2.6/devel linux-2.6-xen-0084-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch, NONE, 1.1 linux-2.6-xen-0085-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch, NONE, 1.1 linux-2.6-xen-0086-Implement-asm-xen_iret.patch, NONE, 1.1 linux-2.6-xen-0087-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch, NONE, 1.1 linux-2.6-xen-0088-Implement-xen_irqenable_syscall_ret.patch, NONE, 1.1 linux-2.6-xen-0089-DEBUG-xen_iret-always-return-through-the-hyperviso.patch, NONE, 1.1 linux-2.6-xen-0090-Implement-some-xen-callbacks-on-xen-entry_64.S.patch, NONE, 1.1 linux-2.6-xen-0091-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch, NONE, 1.1 linux-2.6-xen-0092-Disable-syscall32-code-temporarily-FIXME.patch, NONE, 1.1 linux-2.6-xen-0093-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch, NONE, 1.1 linux-2.6-xen-0094-Use-apic_xen-on-genapic-by-default-FIXME.patch, NONE, 1.1 linux-2.6-xen-0095-irq-vector-ifdef-chainsaw-FIXME.patch, NONE, 1.1 linux-2.6-xen-0096-ifdef-chainsaw-on-syscall_init-FIXME.patch, NONE, 1.1 linux-2.6-xen-0097-Pull-xen-genapic-implementation-from-upstream-Xen.patch, NONE, 1.1 linux-2.6-xen-0098-Debugging-printk-s.patch, NONE, 1.1 linux-2.6-xen-0099-Leave-lazy_cpu_mode-on-__switch_to.patch, NONE, 1.1 linux-2.6-xen-0100-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch, NONE, 1.1 linux-2.6-xen-0101-Disable-vcpu_info_placement-temporarily-FIXME.patch, NONE, 1.1 linux-2.6-xen-0102-Fix-typo-on-ifdef-again.patch, NONE, 1.1 linux-2.6-xen-0103-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch, NONE, 1.1 linux-2.6-xen-0104-Make-load_gs_index-a-paravirt-operation.patch, NONE, 1.1 linux-2.6-xen-0105-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch, NONE, 1.1 linux-2.6-xen-0106-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch, NONE, 1.1 linux-2.6-xen-0107-xen-pgd_walk-accept-start-parameter.patch, NONE, 1.1 linux-2.6-xen-0108-xen-64-reserve_bootmem-xen_start_info-area.patch, NONE, 1.1 linux-2.6-xen-0109-pvops-64-call-paravirt_post_allocator_init-on-set.patch, NONE, 1.1 linux-2.6-xen-0110-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch, NONE, 1.1 linux-2.6-xen-0111-xen-64-implement-xen_load_gs_index.patch, NONE, 1.1 linux-2.6-xen-0112-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch, NONE, 1.1 linux-2.6-xen-0113-Multi-pagetable-write_cr3-implementation-FIXME.patch, NONE, 1.1 linux-2.6-xen-0114-Disable-the-weird-count-loop-on-kcons_write_dom0.patch, NONE, 1.1 linux-2.6-xen-0115-Make-xen_start_info-read-only.patch, NONE, 1.1 linux-2.6-xen-0116-Hack-to-implement-return-to-userspace-without-SWAPGS.patch, NONE, 1.1 linux-2.6-xen-0117-Xen-SEGBASE_-defines.patch, NONE, 1.1 linux-2.6-xen-0118-Xen-HYPERVISOR_set_segment_base-implementation.patch, NONE, 1.1 linux-2.6-xen-0119-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch, NONE, 1.1 linux-2.6-xen-0120-Comment-e820_print_map-call-TEMPORARY.patch, NONE, 1.1 linux-2.6-xen-0121-Xen-missing-includes.patch, NONE, 1.1 linux-2.6-xen-0122-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch, NONE, 1.1 linux-2.6-xen-0123-asm-x86-pgtable.h-include-asm-page.h.patch, NONE, 1.1 linux-2.6-xen-0124-fix-pxxval_t-usage-on-mm-init_64.c.patch, NONE, 1.1 linux-2.6-xen-0125-Missing-Xen-include.patch, NONE, 1.1 linux-2.6-xen-0126-un-static-ipi_to_irq.patch, NONE, 1.1 linux-2.6-xen-0127-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch, NONE, 1.1 linux-2.6-xen-0128-Trying-to-organize-the-xen-bootmem-allocation-mess.patch, NONE, 1.1 linux-2.6-xen-0129-Xen-reserve_bootmem-xenstore-and-console-interfac.patch, NONE, 1.1 linux-2.6-xen-0130-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch, NONE, 1.1 linux-2.6-xen-0131-Xen-64-bit-support-on-xen_pgd_pin.patch, NONE, 1.1 linux-2.6-xen-0132-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch, NONE, 1.1 linux-2.6-xen-0133-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch, NONE, 1.1 linux-2.6-xen-0134-Xen-Add-a-order-parameter-to-pgd_walk.patch, NONE, 1.1 linux-2.6-xen-0135-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch, NONE, 1.1 linux-2.6-xen-0136-Use-un-pin_page-when-un-pinning-pgd.patch, NONE, 1.1 linux-2.6-xen-0137-Allow-enabling-Xen-on-x86_64.patch, NONE, 1.1 linux-2.6-xen-0138-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch, NONE, 1.1 linux-2.6-xen-0139-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch, NONE, 1.1 linux-2.6-xen-0140-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch, NONE, 1.1 linux-2.6-xen-0141-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch, NONE, 1.1 linux-2.6-xen-0142-Create-xen-specific-syscall-entry.patch, NONE, 1.1 linux-2.6-xen-0143-syscall-related-Xen-ifdefs-FIXME.patch, NONE, 1.1 linux-2.6-xen-0144-Point-set_pte-to-xen_set_pte-since-the-beginning.patch, NONE, 1.1 linux-2.6-xen-0145-DEBUG-slab-debugging.patch, NONE, 1.1 linux-2.6-xen-0146-pvops-64-Include-rsi-on-the-register-clobber-list.patch, NONE, 1.1 linux-2.6-xen-0147-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch, NONE, 1.1 linux-2.6-xen-0148-Add-missing-acpi-include-to-xen-setup.c.patch, NONE, 1.1 linux-2.6-xen-0149-Don-t-use-FIX_VDSO-on-64-bit.patch, NONE, 1.1 linux-2.6-xen-0150-Mark-init-pages-read-write-again-on-free_init_pages.patch, NONE, 1.1 linux-2.6-xen-0151-reserve_early-kernel-text-and-data-segments.patch, NONE, 1.1 linux-2.6-xen-0152-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch, NONE, 1.1 Makefile, 1.16, 1.17 Makefile.config, 1.16, 1.17 kernel.spec, 1.38, 1.39 linux-2.6-xen-0018-xen-expose-set_pte_vaddr-and-make-xen-use-it.patch, 1.1, 1.2 linux-2.6-xen-0019-xen-dom0-Add-set_fixmap-pv_mmu_ops.patch, 1.1, 1.2 linux-2.6-xen-0020-x86_64-Expose-set_pte_vaddr.patch, 1.1, 1.2 linux-2.6-xen-0021-x86_64-Split-set_pte_vaddr.patch, 1.1, 1.2 linux-2.6-xen-0022-x86_64-Add-clear_fixmap.patch, 1.1, 1.2 linux-2.6-xen-0023-xen-x86_64-Make-set_fixmap-a-paravirt-op-on-64-bi.patch, 1.1, 1.2 linux-2.6-xen-0024-xen-x86_64-Hack-to-set-vsyscall-pages-on-user-space.patch, 1.1, 1.2 linux-2.6-xen-0025-Handle-VSYSCALL_FIRST_PAGE-on-xen_set_pte.patch, 1.1, 1.2 linux-2.6-xen-0026-DMI-Define-dmi_scan_machine-as-no-op-if-CONFIG_DM.patch, 1.1, 1.2 linux-2.6-xen-0027-ACPI-thermal-Compile-without-CONFIG_DMI.patch, 1.1, 1.2 linux-2.6-xen-0028-xen-x86_64-Remove-the-640K-1M-hole-and-disable-DMI.patch, 1.1, 1.2 linux-2.6-xen-0029-xen-x86_64-Add-update_va_mapping-64-bit-code.patch, 1.1, 1.2 linux-2.6-xen-0030-x86_64-Add-sync_cmpxchg.patch, 1.1, 1.2 linux-2.6-xen-0031-xen-x86_64-Implement-HYPERVISOR-MULTI-_update_desc.patch, 1.1, 1.2 linux-2.6-xen-0032-xen-x86_64-Add-hacky-64-bit-x86_-read-write-_percpu.patch, 1.1, 1.2 linux-2.6-xen-0033-xen-x86_64-Use-x86_read_percpu-only-to-refer-to-a.patch, 1.1, 1.2 linux-2.6-xen-0034-Better-implementation-of-pte-functions.patch, 1.1, 1.2 linux-2.6-xen-0035-Add-FIX_PARAVIRT_BOOTAP-to-fixmap_64.h-too.patch, 1.1, 1.2 linux-2.6-xen-0036-Add-gate_offset-and-gate_segment-macros.patch, 1.1, 1.2 linux-2.6-xen-0037-xen_write_idt_entry-and-cvt_gate_to_trap.patch, 1.1, 1.2 linux-2.6-xen-0038-typedefs-for-pte_val-and-friends.patch, 1.1, 1.2 linux-2.6-xen-0039-x86_64-implementation-of-some-page.h-macros.patch, 1.1, 1.2 linux-2.6-xen-0040-Chainsaw-style-ifdefs.patch, 1.1, 1.2 linux-2.6-xen-0041-xen-Make-xen_pte_val-generic.patch, 1.1, 1.2 linux-2.6-xen-0042-More-chainsaw-ifdefs.patch, 1.1, 1.2 linux-2.6-xen-0043-Chainsaw-ifdefs-on-assembly-percpu-handling.patch, 1.1, 1.2 linux-2.6-xen-0044-x86_64-percpu-assembly-macros.patch, 1.1, 1.2 linux-2.6-xen-0045-Some-xen-asm.S-x86_64-code.patch, 1.1, 1.2 linux-2.6-xen-0046-Chainsaw-party-SPLITME.patch, 1.1, 1.2 linux-2.6-xen-0047-xen-asm.S-x86_64-notes.patch, 1.1, 1.2 linux-2.6-xen-0048-xen-x86_64-Make-hypercall-assembly-code-work.patch, 1.1, 1.2 linux-2.6-xen-0049-xen-x86_64-pda-initialization.patch, 1.1, 1.2 linux-2.6-xen-0050-Disable-discover_ebda-under-paravirt.patch, 1.1, 1.2 linux-2.6-xen-0051-Disable-early_printk-by-default.patch, 1.1, 1.2 linux-2.6-xen-0052-xen-Set-__HYPERVISOR_VIRT_START-for-x86_64.patch, 1.1, 1.2 linux-2.6-xen-0053-Set-__PAGE_OFFSET-as-required-by-Xen.patch, 1.1, 1.2 linux-2.6-xen-0054-DEBUG-Add-xprintk-to-log-directly-via-hypercall-fo.patch, 1.1, 1.2 linux-2.6-xen-0055-DEBUG-Add-xprintk-debugging-printk-prototype-to-hvc.patch, 1.1, 1.2 linux-2.6-xen-0056-Use-__pgd-on-mk_kernel_pgd.patch, 1.2, 1.3 linux-2.6-xen-0057-Include-user-page-tables-on-head_64.S.patch, 1.2, 1.3 linux-2.6-xen-0058-Avoid-using-mk_unsigned_long.patch, 1.2, 1.3 linux-2.6-xen-0059-Lots-of-unrelated-changes.patch, 1.2, 1.3 linux-2.6-xen-0060-Hack-disable-vsmp.patch, 1.2, 1.3 linux-2.6-xen-0061-Export-early_make_page_readonly.patch, 1.2, 1.3 linux-2.6-xen-0062-Disable-multicalls.c-too-verbose-debugging.patch, 1.2, 1.3 linux-2.6-xen-0063-Xen-64-bit-ready-MMU-operations.patch, 1.2, 1.3 linux-2.6-xen-0064-Some-xen-mmu-pv-ops-implemented.patch, 1.2, 1.3 linux-2.6-xen-0065-Trying-to-make-the-pagetable-initialization-code-wor.patch, 1.2, 1.3 linux-2.6-xen-0066-Xen-specific-find_early_table_space-FIXME.patch, 1.2, 1.3 linux-2.6-xen-0067-Xen-call-e820_print_map-when-setting-up-memory.patch, 1.2, 1.3 linux-2.6-xen-0068-Comment-debugging-msgs.patch, 1.2, 1.3 linux-2.6-xen-0069-Try-to-make-pagetables-read-only.patch, 1.2, 1.3 linux-2.6-xen-0070-Debug-dump-pgtables-on-make_page_readonly.patch, 1.2, 1.3 linux-2.6-xen-0071-Disable-apic-at-compile-time-FIXME.patch, 1.2, 1.3 linux-2.6-xen-0072-Parse-early-params-after-init_memory_mapping.patch, 1.2, 1.3 linux-2.6-xen-0073-xen-Move-addr_to_page-to-init.h.patch, 1.2, 1.3 linux-2.6-xen-0074-Make-xen_pxx_val-and-xen_make_pxx-handle-attr-bi.patch, 1.2, 1.3 linux-2.6-xen-0075-Pull-xen_finish_init_mappin-from-XS-upstream.patch, 1.2, 1.3 linux-2.6-xen-0076-Pull-spp_getpage-changes-from-XS-upstream-REVIEWM.patch, 1.2, 1.3 linux-2.6-xen-0077-Pull-xen_extend_init_mapping-from-XS-upstream-FIX.patch, 1.2, 1.3 linux-2.6-xen-0078-New-enum-fixed_addresses-values-REVIEWME.patch, 1.2, 1.3 linux-2.6-xen-0079-Reserve-bootmem-areas-used-by-Xen-FIXME.patch, 1.2, 1.3 linux-2.6-xen-0080-xen_convert_trap_info-use-sizeof-struct-gate_desc.patch, 1.2, 1.3 linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch, 1.2, 1.3 linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch, 1.2, 1.3 linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch, 1.2, 1.3 linux-2.6-xen-0084-Make-hvc_xen-console-use-xprintk-TEMPORARY.patch, 1.2, NONE linux-2.6-xen-0085-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch, 1.2, NONE linux-2.6-xen-0086-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch, 1.2, NONE linux-2.6-xen-0087-Implement-asm-xen_iret.patch, 1.2, NONE linux-2.6-xen-0088-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch, 1.2, NONE linux-2.6-xen-0089-Implement-xen_irqenable_syscall_ret.patch, 1.2, NONE linux-2.6-xen-0090-DEBUG-xen_iret-always-return-through-the-hyperviso.patch, 1.2, NONE linux-2.6-xen-0091-Implement-some-xen-callbacks-on-xen-entry_64.S.patch, 1.2, NONE linux-2.6-xen-0092-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch, 1.2, NONE linux-2.6-xen-0093-Disable-syscall32-code-temporarily-FIXME.patch, 1.2, NONE linux-2.6-xen-0094-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch, 1.2, NONE linux-2.6-xen-0095-Use-apic_xen-on-genapic-by-default-FIXME.patch, 1.2, NONE linux-2.6-xen-0096-irq-vector-ifdef-chainsaw-FIXME.patch, 1.2, NONE linux-2.6-xen-0097-ifdef-chainsaw-on-syscall_init-FIXME.patch, 1.2, NONE linux-2.6-xen-0098-Pull-xen-genapic-implementation-from-upstream-Xen.patch, 1.2, NONE linux-2.6-xen-0099-Debugging-printk-s.patch, 1.2, NONE linux-2.6-xen-0100-Leave-lazy_cpu_mode-on-__switch_to.patch, 1.2, NONE linux-2.6-xen-0101-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch, 1.2, NONE linux-2.6-xen-0102-Disable-vcpu_info_placement-temporarily-FIXME.patch, 1.2, NONE linux-2.6-xen-0103-Fix-typo-on-ifdef-again.patch, 1.2, NONE linux-2.6-xen-0104-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch, 1.2, NONE linux-2.6-xen-0105-Make-load_gs_index-a-paravirt-operation.patch, 1.2, NONE linux-2.6-xen-0106-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch, 1.2, NONE linux-2.6-xen-0107-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch, 1.2, NONE linux-2.6-xen-0108-xen-pgd_walk-accept-start-parameter.patch, 1.2, NONE linux-2.6-xen-0109-xen-64-reserve_bootmem-xen_start_info-area.patch, 1.2, NONE linux-2.6-xen-0110-pvops-64-call-paravirt_post_allocator_init-on-set.patch, 1.2, NONE linux-2.6-xen-0111-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch, 1.2, NONE linux-2.6-xen-0112-xen-64-implement-xen_load_gs_index.patch, 1.2, NONE linux-2.6-xen-0113-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch, 1.2, NONE linux-2.6-xen-0114-Multi-pagetable-write_cr3-implementation-FIXME.patch, 1.2, NONE linux-2.6-xen-0115-Make-kcons_write_dom0-non-static-TEMPORARY.patch, 1.2, NONE linux-2.6-xen-0116-Disable-the-weird-count-loop-on-kcons_write_dom0.patch, 1.2, NONE linux-2.6-xen-0117-Make-xen_start_info-read-only.patch, 1.2, NONE linux-2.6-xen-0118-Hack-to-implement-return-to-userspace-without-SWAPGS.patch, 1.2, NONE linux-2.6-xen-0119-Xen-SEGBASE_-defines.patch, 1.2, NONE linux-2.6-xen-0120-Xen-HYPERVISOR_set_segment_base-implementation.patch, 1.2, NONE linux-2.6-xen-0121-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch, 1.2, NONE linux-2.6-xen-0122-Comment-e820_print_map-call-TEMPORARY.patch, 1.2, NONE linux-2.6-xen-0123-Xen-missing-includes.patch, 1.2, NONE linux-2.6-xen-0124-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch, 1.2, NONE linux-2.6-xen-0125-asm-x86-pgtable.h-include-asm-page.h.patch, 1.2, NONE linux-2.6-xen-0126-fix-pxxval_t-usage-on-mm-init_64.c.patch, 1.2, NONE linux-2.6-xen-0127-Missing-Xen-include.patch, 1.2, NONE linux-2.6-xen-0128-un-static-ipi_to_irq.patch, 1.2, NONE linux-2.6-xen-0129-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch, 1.2, NONE linux-2.6-xen-0130-Trying-to-organize-the-xen-bootmem-allocation-mess.patch, 1.2, NONE linux-2.6-xen-0131-Don-t-call-xprintk-when-writing-to-hvc-console.patch, 1.2, NONE linux-2.6-xen-0132-Xen-reserve_bootmem-xenstore-and-console-interfac.patch, 1.2, NONE linux-2.6-xen-0133-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch, 1.2, NONE linux-2.6-xen-0134-Xen-64-bit-support-on-xen_pgd_pin.patch, 1.2, NONE linux-2.6-xen-0135-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch, 1.2, NONE linux-2.6-xen-0136-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch, 1.2, NONE linux-2.6-xen-0137-Xen-Add-a-order-parameter-to-pgd_walk.patch, 1.2, NONE linux-2.6-xen-0138-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch, 1.2, NONE linux-2.6-xen-0139-Use-un-pin_page-when-un-pinning-pgd.patch, 1.2, NONE linux-2.6-xen-0140-Allow-enabling-Xen-on-x86_64.patch, 1.2, NONE linux-2.6-xen-0141-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch, 1.2, NONE linux-2.6-xen-0142-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch, 1.2, NONE linux-2.6-xen-0143-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch, 1.2, NONE linux-2.6-xen-0144-DEBUG-write-to-HV-console-on-printk.patch, 1.2, NONE linux-2.6-xen-0145-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch, 1.2, NONE linux-2.6-xen-0146-Create-xen-specific-syscall-entry.patch, 1.2, NONE linux-2.6-xen-0147-syscall-related-Xen-ifdefs-FIXME.patch, 1.2, NONE linux-2.6-xen-0148-Point-set_pte-to-xen_set_pte-since-the-beginning.patch, 1.2, NONE linux-2.6-xen-0149-DEBUG-slab-debugging.patch, 1.2, NONE linux-2.6-xen-0150-pvops-64-Include-rsi-on-the-register-clobber-list.patch, 1.2, NONE linux-2.6-xen-0151-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch, 1.2, NONE linux-2.6-xen-0152-Add-missing-acpi-include-to-xen-setup.c.patch, 1.2, NONE linux-2.6-xen-0153-Don-t-use-FIX_VDSO-on-64-bit.patch, 1.2, NONE linux-2.6-xen-0154-Mark-init-pages-read-write-again-on-free_init_pages.patch, 1.2, NONE linux-2.6-xen-0155-reserve_early-kernel-text-and-data-segments.patch, 1.2, NONE linux-2.6-xen-0156-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch, 1.1, NONE linux-2.6-xen-0157-Xen-64-Unpin-and-mark-PGD-as-read-write-on-pgd_free.patch, 1.1, NONE

Mark McLoughlin (markmc) fedora-extras-commits at redhat.com
Wed Apr 16 10:17:34 UTC 2008


Author: markmc

Update of /cvs/pkgs/rpms/kernel-xen-2.6/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19039

Modified Files:
	Makefile Makefile.config kernel.spec 
	linux-2.6-xen-0018-xen-expose-set_pte_vaddr-and-make-xen-use-it.patch 
	linux-2.6-xen-0019-xen-dom0-Add-set_fixmap-pv_mmu_ops.patch 
	linux-2.6-xen-0020-x86_64-Expose-set_pte_vaddr.patch 
	linux-2.6-xen-0021-x86_64-Split-set_pte_vaddr.patch 
	linux-2.6-xen-0022-x86_64-Add-clear_fixmap.patch 
	linux-2.6-xen-0023-xen-x86_64-Make-set_fixmap-a-paravirt-op-on-64-bi.patch 
	linux-2.6-xen-0024-xen-x86_64-Hack-to-set-vsyscall-pages-on-user-space.patch 
	linux-2.6-xen-0025-Handle-VSYSCALL_FIRST_PAGE-on-xen_set_pte.patch 
	linux-2.6-xen-0026-DMI-Define-dmi_scan_machine-as-no-op-if-CONFIG_DM.patch 
	linux-2.6-xen-0027-ACPI-thermal-Compile-without-CONFIG_DMI.patch 
	linux-2.6-xen-0028-xen-x86_64-Remove-the-640K-1M-hole-and-disable-DMI.patch 
	linux-2.6-xen-0029-xen-x86_64-Add-update_va_mapping-64-bit-code.patch 
	linux-2.6-xen-0030-x86_64-Add-sync_cmpxchg.patch 
	linux-2.6-xen-0031-xen-x86_64-Implement-HYPERVISOR-MULTI-_update_desc.patch 
	linux-2.6-xen-0032-xen-x86_64-Add-hacky-64-bit-x86_-read-write-_percpu.patch 
	linux-2.6-xen-0033-xen-x86_64-Use-x86_read_percpu-only-to-refer-to-a.patch 
	linux-2.6-xen-0034-Better-implementation-of-pte-functions.patch 
	linux-2.6-xen-0035-Add-FIX_PARAVIRT_BOOTAP-to-fixmap_64.h-too.patch 
	linux-2.6-xen-0036-Add-gate_offset-and-gate_segment-macros.patch 
	linux-2.6-xen-0037-xen_write_idt_entry-and-cvt_gate_to_trap.patch 
	linux-2.6-xen-0038-typedefs-for-pte_val-and-friends.patch 
	linux-2.6-xen-0039-x86_64-implementation-of-some-page.h-macros.patch 
	linux-2.6-xen-0040-Chainsaw-style-ifdefs.patch 
	linux-2.6-xen-0041-xen-Make-xen_pte_val-generic.patch 
	linux-2.6-xen-0042-More-chainsaw-ifdefs.patch 
	linux-2.6-xen-0043-Chainsaw-ifdefs-on-assembly-percpu-handling.patch 
	linux-2.6-xen-0044-x86_64-percpu-assembly-macros.patch 
	linux-2.6-xen-0045-Some-xen-asm.S-x86_64-code.patch 
	linux-2.6-xen-0046-Chainsaw-party-SPLITME.patch 
	linux-2.6-xen-0047-xen-asm.S-x86_64-notes.patch 
	linux-2.6-xen-0048-xen-x86_64-Make-hypercall-assembly-code-work.patch 
	linux-2.6-xen-0049-xen-x86_64-pda-initialization.patch 
	linux-2.6-xen-0050-Disable-discover_ebda-under-paravirt.patch 
	linux-2.6-xen-0051-Disable-early_printk-by-default.patch 
	linux-2.6-xen-0052-xen-Set-__HYPERVISOR_VIRT_START-for-x86_64.patch 
	linux-2.6-xen-0053-Set-__PAGE_OFFSET-as-required-by-Xen.patch 
	linux-2.6-xen-0054-DEBUG-Add-xprintk-to-log-directly-via-hypercall-fo.patch 
	linux-2.6-xen-0055-DEBUG-Add-xprintk-debugging-printk-prototype-to-hvc.patch 
	linux-2.6-xen-0056-Use-__pgd-on-mk_kernel_pgd.patch 
	linux-2.6-xen-0057-Include-user-page-tables-on-head_64.S.patch 
	linux-2.6-xen-0058-Avoid-using-mk_unsigned_long.patch 
	linux-2.6-xen-0059-Lots-of-unrelated-changes.patch 
	linux-2.6-xen-0060-Hack-disable-vsmp.patch 
	linux-2.6-xen-0061-Export-early_make_page_readonly.patch 
	linux-2.6-xen-0062-Disable-multicalls.c-too-verbose-debugging.patch 
	linux-2.6-xen-0063-Xen-64-bit-ready-MMU-operations.patch 
	linux-2.6-xen-0064-Some-xen-mmu-pv-ops-implemented.patch 
	linux-2.6-xen-0065-Trying-to-make-the-pagetable-initialization-code-wor.patch 
	linux-2.6-xen-0066-Xen-specific-find_early_table_space-FIXME.patch 
	linux-2.6-xen-0067-Xen-call-e820_print_map-when-setting-up-memory.patch 
	linux-2.6-xen-0068-Comment-debugging-msgs.patch 
	linux-2.6-xen-0069-Try-to-make-pagetables-read-only.patch 
	linux-2.6-xen-0070-Debug-dump-pgtables-on-make_page_readonly.patch 
	linux-2.6-xen-0071-Disable-apic-at-compile-time-FIXME.patch 
	linux-2.6-xen-0072-Parse-early-params-after-init_memory_mapping.patch 
	linux-2.6-xen-0073-xen-Move-addr_to_page-to-init.h.patch 
	linux-2.6-xen-0074-Make-xen_pxx_val-and-xen_make_pxx-handle-attr-bi.patch 
	linux-2.6-xen-0075-Pull-xen_finish_init_mappin-from-XS-upstream.patch 
	linux-2.6-xen-0076-Pull-spp_getpage-changes-from-XS-upstream-REVIEWM.patch 
	linux-2.6-xen-0077-Pull-xen_extend_init_mapping-from-XS-upstream-FIX.patch 
	linux-2.6-xen-0078-New-enum-fixed_addresses-values-REVIEWME.patch 
	linux-2.6-xen-0079-Reserve-bootmem-areas-used-by-Xen-FIXME.patch 
	linux-2.6-xen-0080-xen_convert_trap_info-use-sizeof-struct-gate_desc.patch 
	linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch 
	linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch 
	linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch 
Added Files:
	linux-2.6-xen-0084-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch 
	linux-2.6-xen-0085-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch 
	linux-2.6-xen-0086-Implement-asm-xen_iret.patch 
	linux-2.6-xen-0087-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch 
	linux-2.6-xen-0088-Implement-xen_irqenable_syscall_ret.patch 
	linux-2.6-xen-0089-DEBUG-xen_iret-always-return-through-the-hyperviso.patch 
	linux-2.6-xen-0090-Implement-some-xen-callbacks-on-xen-entry_64.S.patch 
	linux-2.6-xen-0091-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch 
	linux-2.6-xen-0092-Disable-syscall32-code-temporarily-FIXME.patch 
	linux-2.6-xen-0093-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch 
	linux-2.6-xen-0094-Use-apic_xen-on-genapic-by-default-FIXME.patch 
	linux-2.6-xen-0095-irq-vector-ifdef-chainsaw-FIXME.patch 
	linux-2.6-xen-0096-ifdef-chainsaw-on-syscall_init-FIXME.patch 
	linux-2.6-xen-0097-Pull-xen-genapic-implementation-from-upstream-Xen.patch 
	linux-2.6-xen-0098-Debugging-printk-s.patch 
	linux-2.6-xen-0099-Leave-lazy_cpu_mode-on-__switch_to.patch 
	linux-2.6-xen-0100-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch 
	linux-2.6-xen-0101-Disable-vcpu_info_placement-temporarily-FIXME.patch 
	linux-2.6-xen-0102-Fix-typo-on-ifdef-again.patch 
	linux-2.6-xen-0103-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch 
	linux-2.6-xen-0104-Make-load_gs_index-a-paravirt-operation.patch 
	linux-2.6-xen-0105-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch 
	linux-2.6-xen-0106-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch 
	linux-2.6-xen-0107-xen-pgd_walk-accept-start-parameter.patch 
	linux-2.6-xen-0108-xen-64-reserve_bootmem-xen_start_info-area.patch 
	linux-2.6-xen-0109-pvops-64-call-paravirt_post_allocator_init-on-set.patch 
	linux-2.6-xen-0110-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch 
	linux-2.6-xen-0111-xen-64-implement-xen_load_gs_index.patch 
	linux-2.6-xen-0112-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch 
	linux-2.6-xen-0113-Multi-pagetable-write_cr3-implementation-FIXME.patch 
	linux-2.6-xen-0114-Disable-the-weird-count-loop-on-kcons_write_dom0.patch 
	linux-2.6-xen-0115-Make-xen_start_info-read-only.patch 
	linux-2.6-xen-0116-Hack-to-implement-return-to-userspace-without-SWAPGS.patch 
	linux-2.6-xen-0117-Xen-SEGBASE_-defines.patch 
	linux-2.6-xen-0118-Xen-HYPERVISOR_set_segment_base-implementation.patch 
	linux-2.6-xen-0119-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch 
	linux-2.6-xen-0120-Comment-e820_print_map-call-TEMPORARY.patch 
	linux-2.6-xen-0121-Xen-missing-includes.patch 
	linux-2.6-xen-0122-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch 
	linux-2.6-xen-0123-asm-x86-pgtable.h-include-asm-page.h.patch 
	linux-2.6-xen-0124-fix-pxxval_t-usage-on-mm-init_64.c.patch 
	linux-2.6-xen-0125-Missing-Xen-include.patch 
	linux-2.6-xen-0126-un-static-ipi_to_irq.patch 
	linux-2.6-xen-0127-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch 
	linux-2.6-xen-0128-Trying-to-organize-the-xen-bootmem-allocation-mess.patch 
	linux-2.6-xen-0129-Xen-reserve_bootmem-xenstore-and-console-interfac.patch 
	linux-2.6-xen-0130-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch 
	linux-2.6-xen-0131-Xen-64-bit-support-on-xen_pgd_pin.patch 
	linux-2.6-xen-0132-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch 
	linux-2.6-xen-0133-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch 
	linux-2.6-xen-0134-Xen-Add-a-order-parameter-to-pgd_walk.patch 
	linux-2.6-xen-0135-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch 
	linux-2.6-xen-0136-Use-un-pin_page-when-un-pinning-pgd.patch 
	linux-2.6-xen-0137-Allow-enabling-Xen-on-x86_64.patch 
	linux-2.6-xen-0138-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch 
	linux-2.6-xen-0139-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch 
	linux-2.6-xen-0140-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch 
	linux-2.6-xen-0141-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch 
	linux-2.6-xen-0142-Create-xen-specific-syscall-entry.patch 
	linux-2.6-xen-0143-syscall-related-Xen-ifdefs-FIXME.patch 
	linux-2.6-xen-0144-Point-set_pte-to-xen_set_pte-since-the-beginning.patch 
	linux-2.6-xen-0145-DEBUG-slab-debugging.patch 
	linux-2.6-xen-0146-pvops-64-Include-rsi-on-the-register-clobber-list.patch 
	linux-2.6-xen-0147-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch 
	linux-2.6-xen-0148-Add-missing-acpi-include-to-xen-setup.c.patch 
	linux-2.6-xen-0149-Don-t-use-FIX_VDSO-on-64-bit.patch 
	linux-2.6-xen-0150-Mark-init-pages-read-write-again-on-free_init_pages.patch 
	linux-2.6-xen-0151-reserve_early-kernel-text-and-data-segments.patch 
	linux-2.6-xen-0152-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch 
Removed Files:
	linux-2.6-xen-0084-Make-hvc_xen-console-use-xprintk-TEMPORARY.patch 
	linux-2.6-xen-0085-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch 
	linux-2.6-xen-0086-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch 
	linux-2.6-xen-0087-Implement-asm-xen_iret.patch 
	linux-2.6-xen-0088-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch 
	linux-2.6-xen-0089-Implement-xen_irqenable_syscall_ret.patch 
	linux-2.6-xen-0090-DEBUG-xen_iret-always-return-through-the-hyperviso.patch 
	linux-2.6-xen-0091-Implement-some-xen-callbacks-on-xen-entry_64.S.patch 
	linux-2.6-xen-0092-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch 
	linux-2.6-xen-0093-Disable-syscall32-code-temporarily-FIXME.patch 
	linux-2.6-xen-0094-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch 
	linux-2.6-xen-0095-Use-apic_xen-on-genapic-by-default-FIXME.patch 
	linux-2.6-xen-0096-irq-vector-ifdef-chainsaw-FIXME.patch 
	linux-2.6-xen-0097-ifdef-chainsaw-on-syscall_init-FIXME.patch 
	linux-2.6-xen-0098-Pull-xen-genapic-implementation-from-upstream-Xen.patch 
	linux-2.6-xen-0099-Debugging-printk-s.patch 
	linux-2.6-xen-0100-Leave-lazy_cpu_mode-on-__switch_to.patch 
	linux-2.6-xen-0101-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch 
	linux-2.6-xen-0102-Disable-vcpu_info_placement-temporarily-FIXME.patch 
	linux-2.6-xen-0103-Fix-typo-on-ifdef-again.patch 
	linux-2.6-xen-0104-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch 
	linux-2.6-xen-0105-Make-load_gs_index-a-paravirt-operation.patch 
	linux-2.6-xen-0106-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch 
	linux-2.6-xen-0107-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch 
	linux-2.6-xen-0108-xen-pgd_walk-accept-start-parameter.patch 
	linux-2.6-xen-0109-xen-64-reserve_bootmem-xen_start_info-area.patch 
	linux-2.6-xen-0110-pvops-64-call-paravirt_post_allocator_init-on-set.patch 
	linux-2.6-xen-0111-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch 
	linux-2.6-xen-0112-xen-64-implement-xen_load_gs_index.patch 
	linux-2.6-xen-0113-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch 
	linux-2.6-xen-0114-Multi-pagetable-write_cr3-implementation-FIXME.patch 
	linux-2.6-xen-0115-Make-kcons_write_dom0-non-static-TEMPORARY.patch 
	linux-2.6-xen-0116-Disable-the-weird-count-loop-on-kcons_write_dom0.patch 
	linux-2.6-xen-0117-Make-xen_start_info-read-only.patch 
	linux-2.6-xen-0118-Hack-to-implement-return-to-userspace-without-SWAPGS.patch 
	linux-2.6-xen-0119-Xen-SEGBASE_-defines.patch 
	linux-2.6-xen-0120-Xen-HYPERVISOR_set_segment_base-implementation.patch 
	linux-2.6-xen-0121-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch 
	linux-2.6-xen-0122-Comment-e820_print_map-call-TEMPORARY.patch 
	linux-2.6-xen-0123-Xen-missing-includes.patch 
	linux-2.6-xen-0124-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch 
	linux-2.6-xen-0125-asm-x86-pgtable.h-include-asm-page.h.patch 
	linux-2.6-xen-0126-fix-pxxval_t-usage-on-mm-init_64.c.patch 
	linux-2.6-xen-0127-Missing-Xen-include.patch 
	linux-2.6-xen-0128-un-static-ipi_to_irq.patch 
	linux-2.6-xen-0129-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch 
	linux-2.6-xen-0130-Trying-to-organize-the-xen-bootmem-allocation-mess.patch 
	linux-2.6-xen-0131-Don-t-call-xprintk-when-writing-to-hvc-console.patch 
	linux-2.6-xen-0132-Xen-reserve_bootmem-xenstore-and-console-interfac.patch 
	linux-2.6-xen-0133-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch 
	linux-2.6-xen-0134-Xen-64-bit-support-on-xen_pgd_pin.patch 
	linux-2.6-xen-0135-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch 
	linux-2.6-xen-0136-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch 
	linux-2.6-xen-0137-Xen-Add-a-order-parameter-to-pgd_walk.patch 
	linux-2.6-xen-0138-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch 
	linux-2.6-xen-0139-Use-un-pin_page-when-un-pinning-pgd.patch 
	linux-2.6-xen-0140-Allow-enabling-Xen-on-x86_64.patch 
	linux-2.6-xen-0141-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch 
	linux-2.6-xen-0142-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch 
	linux-2.6-xen-0143-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch 
	linux-2.6-xen-0144-DEBUG-write-to-HV-console-on-printk.patch 
	linux-2.6-xen-0145-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch 
	linux-2.6-xen-0146-Create-xen-specific-syscall-entry.patch 
	linux-2.6-xen-0147-syscall-related-Xen-ifdefs-FIXME.patch 
	linux-2.6-xen-0148-Point-set_pte-to-xen_set_pte-since-the-beginning.patch 
	linux-2.6-xen-0149-DEBUG-slab-debugging.patch 
	linux-2.6-xen-0150-pvops-64-Include-rsi-on-the-register-clobber-list.patch 
	linux-2.6-xen-0151-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch 
	linux-2.6-xen-0152-Add-missing-acpi-include-to-xen-setup.c.patch 
	linux-2.6-xen-0153-Don-t-use-FIX_VDSO-on-64-bit.patch 
	linux-2.6-xen-0154-Mark-init-pages-read-write-again-on-free_init_pages.patch 
	linux-2.6-xen-0155-reserve_early-kernel-text-and-data-segments.patch 
	linux-2.6-xen-0156-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch 
	linux-2.6-xen-0157-Xen-64-Unpin-and-mark-PGD-as-read-write-on-pgd_free.patch 
Log Message:
* Wed Apr 16 2008 Mark McLoughlin <markmc at redhat.com>
- Remove debugging printk/xen console hack


linux-2.6-xen-0084-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch:

--- NEW FILE linux-2.6-xen-0084-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch ---
>From 0de817c5e31a18817157c74aa8ea336ff4454248 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 26 Dec 2007 15:51:34 -0200
Subject: [PATCH] Implement 64-bit version of HYPERVISOR_set_callbacks() (IFDEF?)

HYPERVISOR_set_callbacks() interface is different on x86_64.

(More #ifdef abuse).

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/setup.c            |    6 ++++++
 include/asm-x86/xen/hypercall.h |   12 ++++++++++++
 2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 2216e44..99b7463 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -94,8 +94,14 @@ void __init xen_arch_setup(void)
 	if (!xen_feature(XENFEAT_auto_translated_physmap))
 		HYPERVISOR_vm_assist(VMASST_CMD_enable, VMASST_TYPE_pae_extended_cr3);
 
+#ifdef CONFIG_X86_32
 	HYPERVISOR_set_callbacks(__KERNEL_CS, (unsigned long)xen_hypervisor_callback,
 				 __KERNEL_CS, (unsigned long)xen_failsafe_callback);
+#else
+	HYPERVISOR_set_callbacks((unsigned long)xen_hypervisor_callback,
+				 (unsigned long)xen_failsafe_callback,
+				 (unsigned long)system_call);
+#endif
 
 	set_iopl.iopl = 1;
 	rc = HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
diff --git a/include/asm-x86/xen/hypercall.h b/include/asm-x86/xen/hypercall.h
index 605775e..0588d6d 100644
--- a/include/asm-x86/xen/hypercall.h
+++ b/include/asm-x86/xen/hypercall.h
@@ -226,6 +226,7 @@ HYPERVISOR_stack_switch(unsigned long ss, unsigned long esp)
 	return _hypercall2(int, stack_switch, ss, esp);
 }
 
+#ifdef CONFIG_X86_32
 static inline int
 HYPERVISOR_set_callbacks(unsigned long event_selector,
 			 unsigned long event_address,
@@ -236,6 +237,17 @@ HYPERVISOR_set_callbacks(unsigned long event_selector,
 			   event_selector, event_address,
 			   failsafe_selector, failsafe_address);
 }
+#else  /* CONFIG_X86_64 */
+static inline int
+HYPERVISOR_set_callbacks(unsigned long event_address,
+			unsigned long failsafe_address,
+			unsigned long syscall_address)
+{
+	return _hypercall3(int, set_callbacks,
+			   event_address, failsafe_address,
+			   syscall_address);
+}
+#endif  /* CONFIG_X86_{32,64} */
 
 static inline int
 HYPERVISOR_fpu_taskswitch(int set)
-- 
1.5.4.1


linux-2.6-xen-0085-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch:

--- NEW FILE linux-2.6-xen-0085-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch ---
>From 9c9e86f8a48f847c4964e1145d6b06416326fb16 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Thu, 27 Dec 2007 17:33:32 -0200
Subject: [PATCH] Make arch_vcpu_info be of the right size on both 32 and 64 bits

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/xen/interface.h |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/include/asm-x86/xen/interface.h b/include/asm-x86/xen/interface.h
index 881d1b3..ab69adb 100644
--- a/include/asm-x86/xen/interface.h
+++ b/include/asm-x86/xen/interface.h
@@ -171,8 +171,16 @@ struct arch_shared_info {
 };
 
 struct arch_vcpu_info {
-    unsigned long cr2;
-    unsigned long pad[5]; /* sizeof(struct vcpu_info) == 64 */
+    union {
+        struct {
+            /* The "real" struct */
+            unsigned long cr2;
+        };
+        struct {
+            /* force struct size to 16 bytes */
+            char fill[16];
+        };
+    };
 };
 
 #endif /* !__ASSEMBLY__ */
-- 
1.5.4.1


linux-2.6-xen-0086-Implement-asm-xen_iret.patch:

--- NEW FILE linux-2.6-xen-0086-Implement-asm-xen_iret.patch ---
>From 63a3e847960b64f318d2ef3f5ee8f848a639bdec Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 11 Feb 2008 11:59:29 -0200
Subject: [PATCH] Implement asm xen_iret

Not optimized yet. Always return through the hypervisor.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c  |    4 ++++
 arch/x86/xen/xen-asm_64.S |    7 +++++++
 arch/x86/xen/xen-ops.h    |    1 +
 3 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index fcf0554..90d732d 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1105,7 +1105,11 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
 	.read_tsc = native_read_tsc,
 	.read_pmc = native_read_pmc,
 
+#ifdef CONFIG_X86_32
 	.iret = (void *)&hypercall_page[__HYPERVISOR_iret],
+#else
+	.iret = xen_iret,
+#endif
 	.irq_enable_syscall_ret = NULL,  /* never called */
 
 	.load_tr_desc = paravirt_nop,
diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S
index 38443b8..8f28a91 100644
--- a/arch/x86/xen/xen-asm_64.S
+++ b/arch/x86/xen/xen-asm_64.S
@@ -6,3 +6,10 @@ check_events:
 ENTRY(xen_iret_direct)
 	/*FIXME: implement me! */
 	ud2a
+
+ENTRY(xen_iret)
+	/*FIXME: the VGCF_in_syscall flag need to be handled here */
+	pushq $0
+	jmp hypercall_page + (__HYPERVISOR_iret * 32)
+END(xen_iret)
+
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index f062eab..e52bb4c 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -71,4 +71,5 @@ DECL_ASM(unsigned long, xen_save_fl_direct, void);
 DECL_ASM(void, xen_restore_fl_direct, unsigned long);
 
 void xen_iret_direct(void);
+void xen_iret(void);
 #endif /* XEN_OPS_H */
-- 
1.5.4.1


linux-2.6-xen-0087-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch:

--- NEW FILE linux-2.6-xen-0087-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch ---
>From a1c08f14914f9d4a2cbb041954f7a3e91cabdce1 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:54:37 -0200
Subject: [PATCH] xen-64: xen_iret() use iretq directly if returning to kernel-space

Optimization pulled from upstream Xen.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/xen-asm.S    |    5 ++++
 arch/x86/xen/xen-asm_64.S |   49 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
index 1c3c0ac..c7356c0 100644
--- a/arch/x86/xen/xen-asm.S
+++ b/arch/x86/xen/xen-asm.S
@@ -21,6 +21,11 @@
 #include <asm/asm-hack.h>
 
 #include <xen/interface/xen.h>
+#include <xen/interface/features.h>
+
+#include <asm/calling.h>
+#include <asm/processor-flags.h>
+
 
 #define RELOC(x, v)	.globl x##_reloc; x##_reloc=v
 #define ENDPATCH(x)	.globl x##_end; x##_end=.
diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S
index 8f28a91..85c235c 100644
--- a/arch/x86/xen/xen-asm_64.S
+++ b/arch/x86/xen/xen-asm_64.S
@@ -7,7 +7,56 @@ ENTRY(xen_iret_direct)
 	/*FIXME: implement me! */
 	ud2a
 
+//FIXME: move to calling.h?
+#define IRETOFFSET RIP
+
 ENTRY(xen_iret)
+	/* Are we returning to kernel space? */
+	testb $3,CS-IRETOFFSET(%rsp)
+	jnz xen_iret_slow
+
+#if 0
+	/*FIXME: handle NMI callbacks */
+	testl $NMI_MASK,EFLAGS-IRETOFFSET(%rsp)
+	jnz xen_iret_slow
+#endif
+
+	/* If we are going to restore interrupts, we need to
+	 * return through the hypervisor, too.
+	 *
+	 * We may set evtchn_upcall_mask ourselves, but things get complicated
+	 * because we would need to avoid a stack overflow if we get
+	 * interrupts between upcall_mask being cleared and iret being
+	 * executed.
+	 */
+	testl $X86_EFLAGS_IF,EFLAGS-IRETOFFSET(%rsp)
+	jnz xen_iret_slow
+
+
+
+	/* Returning to kernel (RING0).
+	 * Use direct iret to kernel space after correcting CS and SS
+	 */
+
+	cmpb  $0,(xen_features+XENFEAT_supervisor_mode_kernel)(%rip)
+	/* supervisor_mode_kernel -> no need to correct CS and SS */
+	jne   xen_iretq
+
+	/* Direct iret to kernel space. Correct CS and SS. */
+	orl   $3,CS-IRETOFFSET(%rsp)
+	orl   $3,SS-IRETOFFSET(%rsp)
+xen_iretq:
+	iretq
+
+xen_iret_slow:
+	/* Slow iret via hypervisor */
+
+#if 0
+	/*FIXME: handle NMI callbacks */
+	andl  $~NMI_MASK, 2*8(%rsp)
+#endif
+
+	/* Xen has an additional value in the stack for iret */
 	/*FIXME: the VGCF_in_syscall flag need to be handled here */
 	pushq $0
 	jmp hypercall_page + (__HYPERVISOR_iret * 32)
-- 
1.5.4.1


linux-2.6-xen-0088-Implement-xen_irqenable_syscall_ret.patch:

--- NEW FILE linux-2.6-xen-0088-Implement-xen_irqenable_syscall_ret.patch ---
>From c32fe1c2186f663235d8774cd95822da26d0e9a6 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 4 Feb 2008 18:06:53 -0200
Subject: [PATCH] Implement xen_irqenable_syscall_ret()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c  |    3 ++-
 arch/x86/xen/xen-asm_64.S |    8 ++++++++
 arch/x86/xen/xen-ops.h    |    2 ++
 3 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 90d732d..7633851 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1107,10 +1107,11 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
 
 #ifdef CONFIG_X86_32
 	.iret = (void *)&hypercall_page[__HYPERVISOR_iret],
+	.irq_enable_syscall_ret = NULL,  /* never called */
 #else
 	.iret = xen_iret,
+	.irq_enable_syscall_ret = xen_irqenable_syscall_ret,
 #endif
-	.irq_enable_syscall_ret = NULL,  /* never called */
 
 	.load_tr_desc = paravirt_nop,
 	.set_ldt = xen_set_ldt,
diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S
index 85c235c..9ceaeab 100644
--- a/arch/x86/xen/xen-asm_64.S
+++ b/arch/x86/xen/xen-asm_64.S
@@ -62,3 +62,11 @@ xen_iret_slow:
 	jmp hypercall_page + (__HYPERVISOR_iret * 32)
 END(xen_iret)
 
+#define VGCF_in_syscall (1<<8)
+
+ENTRY(xen_irqenable_syscall_ret)
+	orl $X86_EFLAGS_IF,EFLAGS-IRETOFFSET(%rsp)
+
+	pushq $VGCF_in_syscall
+	jmp hypercall_page + (__HYPERVISOR_iret * 32)
+END(xen_irqenable_syscall_ret)
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index e52bb4c..b523062 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -72,4 +72,6 @@ DECL_ASM(void, xen_restore_fl_direct, unsigned long);
 
 void xen_iret_direct(void);
 void xen_iret(void);
+void xen_irqenable_syscall_ret(void);
+
 #endif /* XEN_OPS_H */
-- 
1.5.4.1


linux-2.6-xen-0089-DEBUG-xen_iret-always-return-through-the-hyperviso.patch:

--- NEW FILE linux-2.6-xen-0089-DEBUG-xen_iret-always-return-through-the-hyperviso.patch ---
>From cb19acd2ac5a97bb3e7fccf74edc4ae7440c23dd Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 4 Feb 2008 18:11:05 -0200
Subject: [PATCH] DEBUG: xen_iret: always return through the hypervisor

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/xen-asm_64.S |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/xen-asm_64.S b/arch/x86/xen/xen-asm_64.S
index 9ceaeab..95b3554 100644
--- a/arch/x86/xen/xen-asm_64.S
+++ b/arch/x86/xen/xen-asm_64.S
@@ -11,6 +11,9 @@ ENTRY(xen_iret_direct)
 #define IRETOFFSET RIP
 
 ENTRY(xen_iret)
+	/*FIXME: for debugging */
+	jmp xen_iret_slow
+
 	/* Are we returning to kernel space? */
 	testb $3,CS-IRETOFFSET(%rsp)
 	jnz xen_iret_slow
-- 
1.5.4.1


linux-2.6-xen-0090-Implement-some-xen-callbacks-on-xen-entry_64.S.patch:

--- NEW FILE linux-2.6-xen-0090-Implement-some-xen-callbacks-on-xen-entry_64.S.patch ---
>From 4f165c88878c6e1eae22980c5930ee2fa86b6385 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 11 Feb 2008 12:00:28 -0200
Subject: [PATCH] Implement some xen callbacks on xen/entry_64.S

hypervisor callback and failsafe callback. Not tested yet.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/entry_64.S |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/entry_64.S b/arch/x86/xen/entry_64.S
index c8c1473..927108c 100644
--- a/arch/x86/xen/entry_64.S
+++ b/arch/x86/xen/entry_64.S
@@ -1 +1,43 @@
-#error foo
+ENTRY(xen_hypervisor_callback)
+	zeroentry do_hypervisor_callback
+ENDPROC(xen_hypervisor_callback)
+
+ENTRY(xen_failsafe_callback)
+	/*FIXME: implement me! */
+	ud2a
+ENDPROC(xen_failsafe_callback)
+
+
+/*
+ * Copied from arch/xen/i386/kernel/entry.S
+ */               
+# A note on the "critical region" in our callback handler.
+# We want to avoid stacking callback handlers due to events occurring
+# during handling of the last event. To do this, we keep events disabled
+# until we've done all processing. HOWEVER, we must enable events before
+# popping the stack frame (can't be done atomically) and so it would still
+# be possible to get enough handler activations to overflow the stack.
+# Although unlikely, bugs of that kind are hard to track down, so we'd
+# like to avoid the possibility.
+# So, on entry to the handler we detect whether we interrupted an
+# existing activation in its critical region -- if so, we pop the current
+# activation and restart the handler using the previous one.
+ENTRY(do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
+	CFI_STARTPROC
+# Since we don't modify %rdi, evtchn_do_upall(struct *pt_regs) will
+# see the correct pointer to the pt_regs
+	movq %rdi, %rsp            # we don't return, adjust the stack frame
+	CFI_ENDPROC
+	CFI_DEFAULT_STACK
+11:	incl %gs:pda_irqcount
+	movq %rsp,%rbp
+	CFI_DEF_CFA_REGISTER rbp
+	cmovzq %gs:pda_irqstackptr,%rsp
+	pushq %rbp			# backlink for old unwinder
+	call xen_evtchn_do_upcall
+	popq %rsp
+	CFI_DEF_CFA_REGISTER rsp
+	decl %gs:pda_irqcount
+	jmp  error_exit
+	CFI_ENDPROC
+END(do_hypervisor_callback)
-- 
1.5.4.1


linux-2.6-xen-0091-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch:

--- NEW FILE linux-2.6-xen-0091-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch ---
>From 310e80a78377ca7f5967632aca9a7fd248d47aa6 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 11 Feb 2008 12:02:07 -0200
Subject: [PATCH] Xen-specific #ifdef hacks on kernel/entry_64.S (FIXME)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/entry_64.S |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index d026834..db76caa 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -922,13 +922,22 @@ error_sti:
 	call *%rax
 	/* ebx:	no swapgs flag (1: don't need swapgs, 0: need it) */
 error_exit:
+#ifndef CONFIG_XEN
+	/*FIXME: select at runtime */
 	movl %ebx,%eax
+#endif
 	RESTORE_REST
 	DISABLE_INTERRUPTS(CLBR_NONE)
 	TRACE_IRQS_OFF
 	GET_THREAD_INFO(%rcx)	
+#ifndef CONFIG_XEN
+	/*FIXME: select at runtime */
 	testl %eax,%eax
 	jne  retint_kernel
+#else
+	testb $3,CS-ARGOFFSET(%rsp)
+	jz retint_kernel
+#endif
 	LOCKDEP_SYS_EXIT_IRQ
 	movl  threadinfo_flags(%rcx),%edx
 	movl  $_TIF_WORK_MASK,%edi
-- 
1.5.4.1


linux-2.6-xen-0092-Disable-syscall32-code-temporarily-FIXME.patch:

--- NEW FILE linux-2.6-xen-0092-Disable-syscall32-code-temporarily-FIXME.patch ---
>From 575ef91094fd527ce01d7081f1992d8a754590bf Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:30:17 -0200
Subject: [PATCH] Disable syscall32 code temporarily (FIXME)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/vdso/vdso32-setup.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
index 0bd5f44..4a0ae65 100644
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -210,6 +210,9 @@ static int use_sysenter __read_mostly = -1;
 /* May not be __init: called during resume */
 void syscall32_cpu_init(void)
 {
+#ifndef CONFIG_XEN
+	/*FIXME: handle using pvops */
+
 	if (use_sysenter < 0)
 		use_sysenter = (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL);
 
@@ -220,6 +223,7 @@ void syscall32_cpu_init(void)
 	checking_wrmsrl(MSR_IA32_SYSENTER_EIP, (u64)ia32_sysenter_target);
 
 	wrmsrl(MSR_CSTAR, ia32_cstar_target);
+#endif
 }
 
 #define compat_uses_vma		1
-- 
1.5.4.1


linux-2.6-xen-0093-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch:

--- NEW FILE linux-2.6-xen-0093-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch ---
>From 0c2ce30127419903b59caf7e71a17cf880c20275 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:35:15 -0200
Subject: [PATCH] Use __KERNEL_DS as SS when returning to a kernel thread (VERIFY)

This is needed when the kernel is running on RING3, such as under Xen.
x86_64 has a weird feature that makes it #GP on iret when SS is a null
descriptor.

This need to be tested on bare metal to make sure it doesn't cause any
problems. AMD specs say SS is always ignored (except on iret?).

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/entry_64.S |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index db76caa..9f31c00 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -104,7 +104,8 @@ ENTRY(native_irq_enable_syscall_ret)
 	.macro FAKE_STACK_FRAME child_rip
 	/* push in order ss, rsp, eflags, cs, rip */
 	xorl %eax, %eax
-	pushq %rax /* ss */
+	/*FIXME: check if this causes problems on bare metal */
+	pushq $__KERNEL_DS /* ss */
 	CFI_ADJUST_CFA_OFFSET	8
 	/*CFI_REL_OFFSET	ss,0*/
 	pushq %rax /* rsp */
-- 
1.5.4.1


linux-2.6-xen-0094-Use-apic_xen-on-genapic-by-default-FIXME.patch:

--- NEW FILE linux-2.6-xen-0094-Use-apic_xen-on-genapic-by-default-FIXME.patch ---
>From bb92314bed98ba470107b1b16149c28bfb48fa43 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 13:37:35 -0200
Subject: [PATCH] Use apic_xen on genapic, by default (FIXME)

Needs to be handled at runtime.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/genapic_64.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/genapic_64.c b/arch/x86/kernel/genapic_64.c
index 4ae7b64..d983406 100644
--- a/arch/x86/kernel/genapic_64.c
+++ b/arch/x86/kernel/genapic_64.c
@@ -31,13 +31,24 @@ void *x86_cpu_to_apicid_early_ptr;
 DEFINE_PER_CPU(u16, x86_cpu_to_apicid) = BAD_APICID;
 EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid);
 
+
+#ifdef CONFIG_XEN
+/*FIXME: move to the proper header file */
+extern struct genapic apic_xen;
+struct genapic __read_mostly *genapic = &apic_xen;
+#else
 struct genapic __read_mostly *genapic = &apic_flat;
+#endif
 
 /*
  * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
  */
 void __init setup_apic_routing(void)
 {
+#ifdef CONFIG_XEN
+	/*FIXME: handle this at runtime */
+	genapic = &apic_xen;
+#else
 #ifdef CONFIG_ACPI
 	/*
 	 * Quirk: some x86_64 machines can only use physical APIC mode
@@ -55,6 +66,7 @@ void __init setup_apic_routing(void)
 	else
 		genapic = &apic_physflat;
 
+#endif  /* CONFIG_XEN else */
 	printk(KERN_INFO "Setting APIC routing to %s\n", genapic->name);
 }
 
-- 
1.5.4.1


linux-2.6-xen-0095-irq-vector-ifdef-chainsaw-FIXME.patch:

--- NEW FILE linux-2.6-xen-0095-irq-vector-ifdef-chainsaw-FIXME.patch ---
>From a6585319ca8dffc33ebc307bf5998ff736c1398e Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:36:34 -0200
Subject: [PATCH] irq<->vector #ifdef chainsaw (FIXME)

Xen doesn't need the vector<->irq translation.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/irq_64.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index 3aac154..f5e486c 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -167,7 +167,12 @@ asmlinkage unsigned int do_IRQ(struct pt_regs *regs)
 
 	exit_idle();
 	irq_enter();
+#ifdef CONFIG_XEN
+	/*FIXME: make vector_irq[] make sense, at runtime */
+	irq = vector;
+#else
 	irq = __get_cpu_var(vector_irq)[vector];
+#endif
 
 #ifdef CONFIG_DEBUG_STACKOVERFLOW
 	stack_overflow_check(regs);
-- 
1.5.4.1


linux-2.6-xen-0096-ifdef-chainsaw-on-syscall_init-FIXME.patch:

--- NEW FILE linux-2.6-xen-0096-ifdef-chainsaw-on-syscall_init-FIXME.patch ---
>From 013ce9c376cdf01e1d8652cdf47fc45caf9e8694 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:39:15 -0200
Subject: [PATCH] ifdef chainsaw on syscall_init() (FIXME)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/setup64.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/setup64.c b/arch/x86/kernel/setup64.c
index 2cb06bf..7d06197 100644
--- a/arch/x86/kernel/setup64.c
+++ b/arch/x86/kernel/setup64.c
@@ -163,6 +163,8 @@ extern asmlinkage void ignore_sysret(void);
 /* May not be marked __init: used by software suspend */
 void syscall_init(void)
 {
+#ifndef CONFIG_XEN
+	/*FIXME: handle this using pvops */
 	/* 
 	 * LSTAR and STAR live in a bit strange symbiosis.
 	 * They both write to the same internal register. STAR allows to set CS/DS
@@ -171,14 +173,17 @@ void syscall_init(void)
 	wrmsrl(MSR_STAR,  ((u64)__USER32_CS)<<48  | ((u64)__KERNEL_CS)<<32); 
 	wrmsrl(MSR_LSTAR, system_call); 
 	wrmsrl(MSR_CSTAR, ignore_sysret);
+#endif
 
 #ifdef CONFIG_IA32_EMULATION   		
 	syscall32_cpu_init ();
 #endif
 
+#ifndef CONFIG_XEN
 	/* Flags to clear on syscall */
 	wrmsrl(MSR_SYSCALL_MASK,
 	       X86_EFLAGS_TF|X86_EFLAGS_DF|X86_EFLAGS_IF|X86_EFLAGS_IOPL);
+#endif
 }
 
 void __cpuinit check_efer(void)
-- 
1.5.4.1


linux-2.6-xen-0097-Pull-xen-genapic-implementation-from-upstream-Xen.patch:

--- NEW FILE linux-2.6-xen-0097-Pull-xen-genapic-implementation-from-upstream-Xen.patch ---
>From 79529735885e2ebfaf0ced8d4cb0956ae7cced2f Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:40:38 -0200
Subject: [PATCH] Pull xen genapic implementation from upstream Xen

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/Makefile  |    2 +-
 arch/x86/xen/genapic.c |  190 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 191 insertions(+), 1 deletions(-)
 create mode 100644 arch/x86/xen/genapic.c

diff --git a/arch/x86/xen/Makefile b/arch/x86/xen/Makefile
index e2dc9c1..147dde2 100644
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -4,7 +4,7 @@ obj-y		:= enlighten.o setup.o features.o multicalls.o mmu.o \
 ifeq ($(CONFIG_X86_32),y)
 obj-y 	+= init_32.o
 else
-obj-y	+= init_64.o
+obj-y	+= init_64.o genapic.o
 endif
 
 obj-$(CONFIG_SMP)	+= smp.o
diff --git a/arch/x86/xen/genapic.c b/arch/x86/xen/genapic.c
new file mode 100644
index 0000000..0b9e74e
--- /dev/null
+++ b/arch/x86/xen/genapic.c
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2004 James Cleverdon, IBM.
+ * Subject to the GNU Public License, v.2
+ *
+ * Xen APIC subarch code.  Maximum 8 CPUs, logical delivery.
+ *
+ * Hacked for x86-64 by James Cleverdon from i386 architecture code by
+ * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
+ * James Cleverdon.
+ *
+ * Hacked to pieces for Xen by Chris Wright.
+ */
+#include <linux/threads.h>
+#include <linux/cpumask.h>
+#include <linux/string.h>
+#include <linux/kernel.h>
+#include <linux/ctype.h>
+#include <linux/init.h>
+#ifdef CONFIG_XEN_PRIVILEGED_GUEST
+#include <asm/smp.h>
+#include <asm/ipi.h>
+#else
+#include <asm/apic.h>
+#include <asm/apicdef.h>
+#endif
+#include <asm/genapic.h>
+#include <xen/events.h>
+
+DECLARE_PER_CPU(int, ipi_to_irq[XEN_NR_IPIS]);
+
+static inline void __send_IPI_one(unsigned int cpu, int vector)
+{
+	int irq = per_cpu(ipi_to_irq, cpu)[vector];
+	BUG_ON(irq < 0);
+	notify_remote_via_irq(irq);
+}
+
+void xen_send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest)
+{
+	int cpu;
+
+	switch (shortcut) {
+	case APIC_DEST_SELF:
+		__send_IPI_one(smp_processor_id(), vector);
+		break;
+	case APIC_DEST_ALLBUT:
+		for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+			if (cpu == smp_processor_id())
+				continue;
+			if (cpu_isset(cpu, cpu_online_map)) {
+				__send_IPI_one(cpu, vector);
+			}
+		}
+		break;
+	case APIC_DEST_ALLINC:
+		for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+			if (cpu_isset(cpu, cpu_online_map)) {
+				__send_IPI_one(cpu, vector);
+			}
+		}
+		break;
+	default:
+		printk("XXXXXX __send_IPI_shortcut %08x vector %d\n", shortcut,
+		       vector);
+		break;
+	}
+}
+
+static cpumask_t xen_target_cpus(void)
+{
+	return cpu_online_map;
+}
+
+static cpumask_t xen_vector_allocation_domain(int cpu)
+{
+	/* Careful. Some cpus do not strictly honor the set of cpus
+	 * specified in the interrupt destination when using lowest
+	 * priority interrupt delivery mode.
+	 *
+	 * In particular there was a hyperthreading cpu observed to
+	 * deliver interrupts to the wrong hyperthread when only one
+	 * hyperthread was specified in the interrupt desitination.
+	 */
+	cpumask_t domain = { { [0] = APIC_ALL_CPUS, } };
+	return domain;
+}
+
+/*
+ * Set up the logical destination ID.
+ * Do nothing, not called now.
+ */
+static void xen_init_apic_ldr(void)
+{
+	Dprintk("%s\n", __FUNCTION__);
+	return;
+}
+
+static void xen_send_IPI_mask(cpumask_t cpumask, int vector)
+{
+	unsigned long mask = cpus_addr(cpumask)[0];
+	unsigned int cpu;
+	unsigned long flags;
+
+	Dprintk("%s\n", __FUNCTION__);
+	local_irq_save(flags);
+	WARN_ON(mask & ~cpus_addr(cpu_online_map)[0]);
+
+	for (cpu = 0; cpu < NR_CPUS; ++cpu) {
+		if (cpu_isset(cpu, cpumask)) {
+			__send_IPI_one(cpu, vector);
+		}
+	}
+	local_irq_restore(flags);
+}
+
+static void xen_send_IPI_allbutself(int vector)
+{
+#ifdef	CONFIG_HOTPLUG_CPU
+	int hotplug = 1;
+#else
+	int hotplug = 0;
+#endif
+	/*
+	 * if there are no other CPUs in the system then
+	 * we get an APIC send error if we try to broadcast.
+	 * thus we have to avoid sending IPIs in this case.
+	 */
+	Dprintk("%s\n", __FUNCTION__);
+	if (hotplug || vector == NMI_VECTOR) {
+		cpumask_t allbutme = cpu_online_map;
+
+		cpu_clear(smp_processor_id(), allbutme);
+
+		if (!cpus_empty(allbutme))
+			xen_send_IPI_mask(allbutme, vector);
+	} else if (num_online_cpus() > 1) {
+		xen_send_IPI_shortcut(APIC_DEST_ALLBUT, vector, APIC_DEST_LOGICAL);
+	}
+}
+
+static void xen_send_IPI_all(int vector)
+{
+	Dprintk("%s\n", __FUNCTION__);
+	if (vector == NMI_VECTOR)
+		xen_send_IPI_mask(cpu_online_map, vector);
+	else
+		xen_send_IPI_shortcut(APIC_DEST_ALLINC, vector, APIC_DEST_LOGICAL);
+}
+
+#ifdef CONFIG_XEN_PRIVILEGED_GUEST
+static int xen_apic_id_registered(void)
+{
+	/* better be set */
+	Dprintk("%s\n", __FUNCTION__);
+	return physid_isset(smp_processor_id(), phys_cpu_present_map);
+}
+#endif
+
+static unsigned int xen_cpu_mask_to_apicid(cpumask_t cpumask)
+{
+	Dprintk("%s\n", __FUNCTION__);
+	return cpus_addr(cpumask)[0] & APIC_ALL_CPUS;
+}
+
+static unsigned int phys_pkg_id(int index_msb)
+{
+	int ebx;
+	Dprintk("%s\n", __FUNCTION__);
+	ebx = cpuid_ebx(1);
+	return ((ebx >> 24) & 0xFF) >> index_msb;
+}
+
+struct genapic apic_xen =  {
+	.name = "xen",
+#ifdef CONFIG_XEN_PRIVILEGED_GUEST
+	.int_delivery_mode = dest_LowestPrio,
+#endif
+	.int_dest_mode = (APIC_DEST_LOGICAL != 0),
+	.target_cpus = xen_target_cpus,
+	.vector_allocation_domain = xen_vector_allocation_domain,
+#ifdef CONFIG_XEN_PRIVILEGED_GUEST
+	.apic_id_registered = xen_apic_id_registered,
+#endif
+	.init_apic_ldr = xen_init_apic_ldr,
+	.send_IPI_all = xen_send_IPI_all,
+	.send_IPI_allbutself = xen_send_IPI_allbutself,
+	.send_IPI_mask = xen_send_IPI_mask,
+	.cpu_mask_to_apicid = xen_cpu_mask_to_apicid,
+	.phys_pkg_id = phys_pkg_id,
+};
-- 
1.5.4.1


linux-2.6-xen-0098-Debugging-printk-s.patch:

--- NEW FILE linux-2.6-xen-0098-Debugging-printk-s.patch ---
>From 1b45e98efb5a9526025a3e34c5691151547bc536 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:41:38 -0200
Subject: [PATCH] Debugging printk()s

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 init/main.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/init/main.c b/init/main.c
index 4aad2d4..df6f3ed 100644
--- a/init/main.c
+++ b/init/main.c
@@ -580,17 +580,25 @@ asmlinkage void __init start_kernel(void)
 	rcu_init();
 	init_IRQ();
 	pidhash_init();
+	printk("init_timers:\n");
 	init_timers();
 	hrtimers_init();
 	softirq_init();
+	printk("timekeeping:\n");
 	timekeeping_init();
+	printk("time:\n");
 	time_init();
+	printk("profile:\n");
 	profile_init();
+	printk("irqs_disabled:\n");
 	if (!irqs_disabled())
 		printk("start_kernel(): bug: interrupts were enabled early\n");
+	printk("early_boot_irqs_on:\n");
 	early_boot_irqs_on();
+	printk("local_irq_enable:\n");
 	local_irq_enable();
 
+	printk("console_init:\n");
 	/*
 	 * HACK ALERT! This is early. We're enabling the console before
 	 * we've done PCI setups etc, and console_init() must be aware of
@@ -627,7 +635,9 @@ asmlinkage void __init start_kernel(void)
 	numa_policy_init();
 	if (late_time_init)
 		late_time_init();
+	printk("calibrate_delay:\n");
 	calibrate_delay();
+	printk("pidmap_init:\n");
 	pidmap_init();
 	pgtable_cache_init();
 	prio_tree_init();
-- 
1.5.4.1


linux-2.6-xen-0099-Leave-lazy_cpu_mode-on-__switch_to.patch:

--- NEW FILE linux-2.6-xen-0099-Leave-lazy_cpu_mode-on-__switch_to.patch ---
>From 4d282634bd9e0cd0b7ffc744d02e2d32faf0483f Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:43:40 -0200
Subject: [PATCH] Leave lazy_cpu_mode() on __switch_to()

Just like it is done on i386.

Note, We must leave lazy mode before switching the %fs and %gs
selectors.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/process_64.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 46c4c54..cf9ff51 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -628,6 +628,15 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
 
 	load_TLS(next, cpu);
 
+	/*
+	 * Leave lazy mode, flushing any hypercalls made here.
+	 * This must be done before restoring TLS segments so
+	 * the GDT and LDT are properly updated, and must be
+	 * done before math_state_restore, so the TS bit is up
+	 * to date.
+	 */
+	arch_leave_lazy_cpu_mode();
+
 	/* 
 	 * Switch FS and GS.
 	 */
-- 
1.5.4.1


linux-2.6-xen-0100-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch:

--- NEW FILE linux-2.6-xen-0100-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch ---
>From 8d263a5807b50125bc3b80fedf495592e214c288 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:45:33 -0200
Subject: [PATCH] xen-64: Handle %fs and %gs on xen_load_tls() properly

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 7633851..2bec24f 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -391,6 +391,7 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
 
 	xen_mc_issue(PARAVIRT_LAZY_CPU);
 
+#ifdef CONFIG_X86_32
 	/*
 	 * XXX sleazy hack: If we're being called in a lazy-cpu zone,
 	 * it means we're in a context switch, and %gs has just been
@@ -399,9 +400,21 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
 	 * Either way, it has been saved, and the new value will get
 	 * loaded properly.  This will go away as soon as Xen has been
 	 * modified to not save/restore %gs for normal hypercalls.
+	 *
+	 * This hack is not used on x86_64, because:
+	 * - For %gs: x86_64 gs points to KERNEL_GS_BASE (and uses it for PDA
+	 *   references), so we must not zero %gs on x86_64
+	 * - For %fs: x86_64 may have %fs pointing to TLS descriptors, but
+	 *   __switch_to() reads %fs after load_TLS(). We can't clear it
+	 *
+	 * FIXME: we need to be sure we don't _need_ the hack on x86_64.
+	 * Can we get a #GP when switch back from the hypervisor if
+	 * TLS descriptor is cleared but %fs still points to it?
 	 */
-	if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU)
+	if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) {
 		loadsegment(gs, 0);
+	}
+#endif
 }
 
 static void xen_write_ldt_entry(struct desc_struct *dt, int entrynum,
-- 
1.5.4.1


linux-2.6-xen-0101-Disable-vcpu_info_placement-temporarily-FIXME.patch:

--- NEW FILE linux-2.6-xen-0101-Disable-vcpu_info_placement-temporarily-FIXME.patch ---
>From 651e0bf749b6f717615fc4abf65b6e861515ba18 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 11:46:49 -0200
Subject: [PATCH] Disable vcpu_info_placement temporarily (FIXME)

We are trying to make it work without it, first.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 2bec24f..53a07f6 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -121,6 +121,9 @@ static void __init xen_vcpu_setup(int cpu)
 	printk(KERN_DEBUG "trying to map vcpu_info %d at %p, mfn %llx, offset %d\n",
 	       cpu, vcpup, info.mfn, info.offset);
 
+#ifdef CONFIG_x86_32
+	/*FIXME: implement this support on x86_64 */
+
 	/* Check to see if the hypervisor will put the vcpu_info
 	   structure where we want it, which allows direct access via
 	   a percpu-variable. */
@@ -137,6 +140,10 @@ static void __init xen_vcpu_setup(int cpu)
 		printk(KERN_DEBUG "cpu %d using vcpu_info at %p\n",
 		       cpu, vcpup);
 	}
+#else
+	have_vcpu_info_placement = 0;
+#endif
+
 }
 
 static void kcons_write_dom0(const char *s, unsigned int count)
-- 
1.5.4.1


linux-2.6-xen-0102-Fix-typo-on-ifdef-again.patch:

--- NEW FILE linux-2.6-xen-0102-Fix-typo-on-ifdef-again.patch ---
>From 8ba34befb0a786ec2de0c48aecda02f58ee05872 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 19:13:01 -0200
Subject: [PATCH] Fix typo on #ifdef (again)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 53a07f6..627d8b6 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -121,7 +121,7 @@ static void __init xen_vcpu_setup(int cpu)
 	printk(KERN_DEBUG "trying to map vcpu_info %d at %p, mfn %llx, offset %d\n",
 	       cpu, vcpup, info.mfn, info.offset);
 
-#ifdef CONFIG_x86_32
+#ifdef CONFIG_X86_32
 	/*FIXME: implement this support on x86_64 */
 
 	/* Check to see if the hypervisor will put the vcpu_info
-- 
1.5.4.1


linux-2.6-xen-0103-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch:

--- NEW FILE linux-2.6-xen-0103-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch ---
>From c04850a2eef13808f61cea921ebb9cfee636ec8f Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 12:23:34 -0200
Subject: [PATCH] (DEBUG) Don't try to actually read the page on show_pgtable1()

It is crashing.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 9df9ee4..48f9912 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -91,7 +91,7 @@ void show_pgtable1(pte_t *tbl, unsigned long addr)
 	page = vvva(pv & PHYSICAL_PAGE_MASK);
 
 	xprintk("\npage: %p\n", page);
-	xprintk("\npage val: %lx\n", *page);
+	//xprintk("\npage val: %lx\n", *page);
 }
 
 void show_pgtable2(pmd_t *tbl, unsigned long addr)
-- 
1.5.4.1


linux-2.6-xen-0104-Make-load_gs_index-a-paravirt-operation.patch:

--- NEW FILE linux-2.6-xen-0104-Make-load_gs_index-a-paravirt-operation.patch ---
>From 38894839e6001c3b55a516815b55791c7a917750 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 4 Jan 2008 12:33:43 -0200
Subject: [PATCH] Make load_gs_index() a paravirt operation

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/entry_64.S |    4 ++--
 arch/x86/kernel/paravirt.c |    3 +++
 include/asm-x86/paravirt.h |   10 +++++++++-
 include/asm-x86/system.h   |    3 ++-
 4 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 9f31c00..9952c3f 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -967,7 +967,7 @@ KPROBE_END(error_entry)
 	
        /* Reload gs selector with exception handling */
        /* edi:  new selector */ 
-ENTRY(load_gs_index)
+ENTRY(native_load_gs_index)
 	CFI_STARTPROC
 	pushf
 	CFI_ADJUST_CFA_OFFSET 8
@@ -981,7 +981,7 @@ gs_change:
 	CFI_ADJUST_CFA_OFFSET -8
         ret
 	CFI_ENDPROC
-ENDPROC(load_gs_index)
+ENDPROC(native_load_gs_index)
        
         .section __ex_table,"a"
         .align 8
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 47f42bf..3f75e88 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -340,6 +340,9 @@ struct pv_cpu_ops pv_cpu_ops = {
 	.store_idt = native_store_idt,
 	.store_tr = native_store_tr,
 	.load_tls = native_load_tls,
+#ifdef CONFIG_X86_64
+	.load_gs_index = native_load_gs_index,
+#endif
 	.write_ldt_entry = native_write_ldt_entry,
 	.write_gdt_entry = native_write_gdt_entry,
 	.write_idt_entry = native_write_idt_entry,
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index 7edbeda..292db13 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -118,6 +118,9 @@ struct pv_cpu_ops {
 #endif
 	unsigned long (*store_tr)(void);
 	void (*load_tls)(struct thread_struct *t, unsigned int cpu);
+#ifdef CONFIG_X86_64
+	void (*load_gs_index)(unsigned int idx);
+#endif
 	void (*write_ldt_entry)(struct desc_struct *ldt, int entrynum,
 				const void *desc);
 	void (*write_gdt_entry)(struct desc_struct *,
@@ -798,7 +801,12 @@ static inline void load_TLS(struct thread_struct *t, unsigned cpu)
 {
 	PVOP_VCALL2(pv_cpu_ops.load_tls, t, cpu);
 }
-
+#ifdef CONFIG_X86_64
+static inline void load_gs_index(unsigned int idx)
+{
+	PVOP_VCALL1(pv_cpu_ops.load_gs_index, idx);
+}
+#endif
 static inline void write_ldt_entry(struct desc_struct *dt, int entry,
 				   const void *desc)
 {
diff --git a/include/asm-x86/system.h b/include/asm-x86/system.h
index 9cff02f..d6623cb 100644
--- a/include/asm-x86/system.h
+++ b/include/asm-x86/system.h
@@ -114,7 +114,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
 #define set_base(ldt, base) _set_base(((char *)&(ldt)) , (base))
 #define set_limit(ldt, limit) _set_limit(((char *)&(ldt)) , ((limit)-1))
 
-extern void load_gs_index(unsigned);
+extern void native_load_gs_index(unsigned); 
 
 /*
  * Load a segment. Fall back on loading the zero
@@ -260,6 +260,7 @@ static inline void native_wbinvd(void)
 #ifdef CONFIG_X86_64
 #define read_cr8()	(native_read_cr8())
 #define write_cr8(x)	(native_write_cr8(x))
+#define load_gs_index   native_load_gs_index
 #endif
 
 /* Clear the 'TS' bit */
-- 
1.5.4.1


linux-2.6-xen-0105-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch:

--- NEW FILE linux-2.6-xen-0105-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch ---
>From d2c4a3137df81e58ca146c5cffac3f94ba3f9976 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 7 Jan 2008 19:06:06 -0200
Subject: [PATCH] xen pgd_walk: use 'limit' argument instead of FIXADDR_TOP constant

Eliminating the usage of FIXADDR_TOP inside of pgd_walk(), so it
can become 64-bit-ready.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |   11 +++--------
 1 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 16020ec..1fbc3ce 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -361,11 +361,11 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 	if (xen_feature(XENFEAT_auto_translated_physmap))
 		return 0;
 
-	for (; addr != FIXADDR_TOP; pgd++, addr = pgd_next) {
+	for (; addr != limit; pgd++, addr = pgd_next) {
 		pud_t *pud;
 		unsigned long pud_limit, pud_next;
 
-		pgd_next = pud_limit = pgd_addr_end(addr, FIXADDR_TOP);
+		pgd_next = pud_limit = pgd_addr_end(addr, limit);
 
 		if (!pgd_val(*pgd))
 			continue;
@@ -379,12 +379,7 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 			pmd_t *pmd;
 			unsigned long pmd_limit;
 
-			pud_next = pud_addr_end(addr, pud_limit);
-
-			if (pud_next < limit)
-				pmd_limit = pud_next;
-			else
-				pmd_limit = limit;
+			pud_next = pmd_limit = pud_addr_end(addr, pud_limit);
 
 			if (pud_none(*pud))
 				continue;
-- 
1.5.4.1


linux-2.6-xen-0106-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch:

--- NEW FILE linux-2.6-xen-0106-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch ---
>From f10d59e649100bec2ea1fb30c5cbd49f4ce20bdd Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 7 Jan 2008 19:07:26 -0200
Subject: [PATCH] xen pgd_walk: Eliminate BUG_ON(limit > FIXADDR_TOP)

This BUG_ON() is 32-bit-specific.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 1fbc3ce..4f8ab26 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -356,8 +356,6 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 	unsigned long addr = 0;
 	unsigned long pgd_next;
 
-	BUG_ON(limit > FIXADDR_TOP);
-
 	if (xen_feature(XENFEAT_auto_translated_physmap))
 		return 0;
 
-- 
1.5.4.1


linux-2.6-xen-0107-xen-pgd_walk-accept-start-parameter.patch:

--- NEW FILE linux-2.6-xen-0107-xen-pgd_walk-accept-start-parameter.patch ---
>From d20e10cc95e6553c48b5e3670f9346070e85528b Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 7 Jan 2008 19:15:35 -0200
Subject: [PATCH] xen pgd_walk: accept 'start' parameter

Change usage of pgd_walk() to work under x86_64 also.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 4f8ab26..eaf9652 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -349,16 +349,17 @@ void xen_set_pte(pte_t *ptep, pte_t pte)
   there, because then we start getting into Xen's ptes.
 */
 static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
-		    unsigned long limit)
+		    unsigned long start, unsigned long limit)
 {
-	pgd_t *pgd = pgd_base;
+	pgd_t *pgd;
 	int flush = 0;
-	unsigned long addr = 0;
+	unsigned long addr = start;
 	unsigned long pgd_next;
 
 	if (xen_feature(XENFEAT_auto_translated_physmap))
 		return 0;
 
+	pgd = pgd_base + pgd_index(addr);
 	for (; addr != limit; pgd++, addr = pgd_next) {
 		pud_t *pud;
 		unsigned long pud_limit, pud_next;
@@ -486,7 +487,7 @@ void xen_pgd_pin(pgd_t *pgd)
 
 	xen_mc_batch();
 
-	if (pgd_walk(pgd, pin_page, TASK_SIZE)) {
+	if (pgd_walk(pgd, pin_page, 0, TASK_SIZE)) {
 		/* re-enable interrupts for kmap_flush_unused */
 		xen_mc_issue(0);
 		kmap_flush_unused();
@@ -513,9 +514,19 @@ static __init int mark_pinned(struct page *page, enum pt_level level)
 	return 0;
 }
 
+/* Addresses that will be walked on xen_mark_init_mm_pinned()
+ */
+#ifdef CONFIG_X86_32
+#  define INIT_MM_WALK_BEGIN 0
+#  define INIT_MM_WALK_END   FIXADDR_TOP
+#else
+#  define INIT_MM_WALK_BEGIN __START_KERNEL_map
+#  define INIT_MM_WALK_END   (__START_KERNEL_map + PGDIR_SIZE)
+#endif
+
 void __init xen_mark_init_mm_pinned(void)
 {
-	pgd_walk(init_mm.pgd, mark_pinned, FIXADDR_TOP);
+	pgd_walk(init_mm.pgd, mark_pinned, INIT_MM_WALK_BEGIN, INIT_MM_WALK_END);
 }
 
 static int unpin_page(struct page *page, enum pt_level level)
@@ -556,7 +567,7 @@ static void xen_pgd_unpin(pgd_t *pgd)
 
 	xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
 
-	pgd_walk(pgd, unpin_page, TASK_SIZE);
+	pgd_walk(pgd, unpin_page, 0, TASK_SIZE);
 
 	xen_mc_issue(0);
 }
-- 
1.5.4.1


linux-2.6-xen-0108-xen-64-reserve_bootmem-xen_start_info-area.patch:

--- NEW FILE linux-2.6-xen-0108-xen-64-reserve_bootmem-xen_start_info-area.patch ---
>From 0dd91001a4ade26bd5412acc08fa96074fda61a3 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 14 Jan 2008 19:51:36 -0200
Subject: [PATCH] xen-64: reserve_bootmem() xen_start_info area

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/setup_64.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 5c44c2e..03a22e5 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -419,6 +419,11 @@ void __init setup_arch(char **cmdline_p)
 	reserve_bootmem(__pa(xen_start_info->pt_base),
 			xen_start_info->nr_pt_frames*PAGE_SIZE,
 			BOOTMEM_DEFAULT);
+
+	/* Reserve xen_start_info area */
+	reserve_bootmem(__pa(xen_start_info),
+			sizeof(*xen_start_info),
+			BOOTMEM_DEFAULT);
 #endif
 
        /*
-- 
1.5.4.1


linux-2.6-xen-0109-pvops-64-call-paravirt_post_allocator_init-on-set.patch:

--- NEW FILE linux-2.6-xen-0109-pvops-64-call-paravirt_post_allocator_init-on-set.patch ---
>From 65ed1b7ad44bd05e3cde8b6471325c9e14797146 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 14 Jan 2008 19:52:23 -0200
Subject: [PATCH] pvops-64: call paravirt_post_allocator_init() on setup_arch()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/setup_64.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 03a22e5..479c782 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -455,6 +455,8 @@ void __init setup_arch(char **cmdline_p)
 	paravirt_pagetable_setup_start(swapper_pg_dir);
 	paging_init();
 	paravirt_pagetable_setup_done(swapper_pg_dir);
+	paravirt_post_allocator_init();
+
 	map_vsyscall();
 
 	early_quirks();
-- 
1.5.4.1


linux-2.6-xen-0110-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch:

--- NEW FILE linux-2.6-xen-0110-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch ---
>From 9dd798dd27060f4f92a31379a0e8c7c2d5bc8d05 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 14 Jan 2008 19:53:14 -0200
Subject: [PATCH] use write_gdt_entry() on vsyscall_set_cpu() (CLEANME)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/vsyscall_64.c |   29 +++++++++++++++++++++++------
 1 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c
index edff4c9..49273b9 100644
--- a/arch/x86/kernel/vsyscall_64.c
+++ b/arch/x86/kernel/vsyscall_64.c
@@ -249,7 +249,8 @@ static ctl_table kernel_root_table2[] = {
    doesn't violate that. We'll find out if it does. */
 static void __cpuinit vsyscall_set_cpu(int cpu)
 {
-	unsigned long *d;
+	unsigned long v;
+	struct desc_struct *d;
 	unsigned long node = 0;
 #ifdef CONFIG_NUMA
 	node = cpu_to_node(cpu);
@@ -260,11 +261,27 @@ static void __cpuinit vsyscall_set_cpu(int cpu)
 	/* Store cpu number in limit so that it can be loaded quickly
 	   in user space in vgetcpu.
 	   12 bits for the CPU and 8 bits for the node. */
-	d = (unsigned long *)(get_cpu_gdt_table(cpu) + GDT_ENTRY_PER_CPU);
-	*d = 0x0f40000000000ULL;
-	*d |= cpu;
-	*d |= (node & 0xf) << 12;
-	*d |= (node >> 4) << 48;
+#if 0
+	d = (struct desc_struct*)&v;
+	d.limit0 = 0;
+	d.base0 = 0;
+	d.base1 = 0;
+	d.type = 4; //FIXME: constant?
+	d.s = 1;
+	d.dpl = 3;
+	d.p = 1;
+	d.limit = 0;
+	d.avl = d.l = d.d = d.g = 0;
+#else
+	v = 0x0000f40000000000ULL;
+#endif
+	v |= cpu;
+	v |= (node & 0xf) << 12;
+	v |= (node >> 4) << 48;
+
+	//printk("limit0: %lx, base0: %lx, base1: %lx, type: %lx, s: %d, dpl: %d, p: %d, limit: %lx, avl: %d, l: %d, d: %d, g: %d, base2: %lx\n", d->limit0, d->base0, d->base1, d->type, d->s, d->dpl, d->p, d->limit, d->avl, d->l, d->d, d->g, d->base2);
+
+	write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_PER_CPU, &v, sizeof(v));
 }
 
 static void __cpuinit cpu_vsyscall_init(void *arg)
-- 
1.5.4.1


linux-2.6-xen-0111-xen-64-implement-xen_load_gs_index.patch:

--- NEW FILE linux-2.6-xen-0111-xen-64-implement-xen_load_gs_index.patch ---
>From fb06f3f900befc5d25fe6afebc3271dc478f7f16 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 14 Jan 2008 19:56:21 -0200
Subject: [PATCH] xen-64: implement xen_load_gs_index()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 627d8b6..b383376 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -424,6 +424,13 @@ static void xen_load_tls(struct thread_struct *t, unsigned int cpu)
 #endif
 }
 
+#ifdef CONFIG_X86_64
+static void xen_load_gs_index(unsigned int idx)
+{
+	HYPERVISOR_set_segment_base(SEGBASE_GS_USER_SEL, idx);
+}
+#endif
+
 static void xen_write_ldt_entry(struct desc_struct *dt, int entrynum,
 				const void *ptr)
 {
@@ -1141,6 +1148,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
 	.load_gdt = xen_load_gdt,
 	.load_idt = xen_load_idt,
 	.load_tls = xen_load_tls,
+#ifdef CONFIG_X86_64
+	.load_gs_index = xen_load_gs_index,
+#endif
 
 	.store_gdt = native_store_gdt,
 	.store_idt = native_store_idt,
-- 
1.5.4.1


linux-2.6-xen-0112-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch:

--- NEW FILE linux-2.6-xen-0112-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch ---
>From 601b633d4f0cd744c9ecab2b74d42566c02ba97f Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 14 Jan 2008 20:01:22 -0200
Subject: [PATCH] include/asm-x86/pgalloc_64.h pvops hacks (SPLITME)

- Xen-specific:
  - Create __user_pgd()
  - Change pgd allocation to allocate two pages
  - Unpin and mark PGD as read-write on pgd_free()

- Not xen-specific:
  - pagetable allocation hooks

- Maybe other stuff

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c           |    2 +-
 arch/x86/xen/mmu.h           |    2 +
 include/asm-x86/pgalloc_64.h |   79 +++++++++++++++++++++++++++++++++++------
 include/xen/page.h           |    3 ++
 4 files changed, 73 insertions(+), 13 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index eaf9652..e545dee 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -561,7 +561,7 @@ static int unpin_page(struct page *page, enum pt_level level)
 }
 
 /* Release a pagetables pages back as normal RW */
-static void xen_pgd_unpin(pgd_t *pgd)
+void xen_pgd_unpin(pgd_t *pgd)
 {
 	xen_mc_batch();
 
diff --git a/arch/x86/xen/mmu.h b/arch/x86/xen/mmu.h
index b25b8e4..28e5225 100644
--- a/arch/x86/xen/mmu.h
+++ b/arch/x86/xen/mmu.h
@@ -63,4 +63,6 @@ void xen_pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
 void xen_pmd_clear(pmd_t *pmdp);
 #endif
 
+void xen_pgd_unpin(pgd_t *pgd);
+
 #endif	/* _XEN_MMU_H */
diff --git a/include/asm-x86/pgalloc_64.h b/include/asm-x86/pgalloc_64.h
index b9835d6..94f42d4 100644
--- a/include/asm-x86/pgalloc_64.h
+++ b/include/asm-x86/pgalloc_64.h
@@ -13,17 +13,39 @@
 #define arch_remove_exec_range(mm, limit) \
 		do { (void)(mm), (void)(limit); } while (0)
 
-#define pmd_populate_kernel(mm, pmd, pte) \
-		set_pmd(pmd, __pmd(_PAGE_TABLE | __pa(pte)))
-#define pud_populate(mm, pud, pmd) \
-		set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)))
-#define pgd_populate(mm, pgd, pud) \
-		set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)))
+#ifdef CONFIG_XEN
+
+#include <xen/page.h>
+
+extern pud_t level3_user_pgt[512];
+
+/*FIXME: use pvops */
+static pgd_t *__user_pgd(pgd_t *pgd)
+{
+	return pgd + PTRS_PER_PGD;
+}
+
+#endif
+
+#define pmd_populate_kernel(mm, pmd, pte) do { \
+		paravirt_alloc_pt(mm, __pa(pte) >> PAGE_SHIFT); \
+		set_pmd(pmd, __pmd(_PAGE_TABLE | __pa(pte))); \
+		} while (0)
+#define pud_populate(mm, pud, pmd) do { \
+		paravirt_alloc_pd(mm, __pa(pmd) >> PAGE_SHIFT); \
+		set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd))); \
+		} while (0)
+#define pgd_populate(mm, pgd, pud) do {\
+		paravirt_alloc_pd(mm, __pa(pud) >> PAGE_SHIFT); \
+		set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud))); \
+		set_pgd(__user_pgd(pgd), __pgd(_PAGE_TABLE | __pa(pud))); \
+		} while (0)
 
 #define pmd_pgtable(pmd) pmd_page(pmd)
 
 static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *pte)
 {
+	paravirt_alloc_pt(mm, page_to_pfn(pte)); \
 	set_pmd(pmd, __pmd(_PAGE_TABLE | (page_to_pfn(pte) << PAGE_SHIFT)));
 }
 
@@ -35,12 +57,16 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
 
 static inline pmd_t *pmd_alloc_one (struct mm_struct *mm, unsigned long addr)
 {
-	return (pmd_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
+	pmd_t *pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
+	paravirt_alloc_pd(mm, __pa(pmd) >> PAGE_SHIFT);
+	return pmd;
 }
 
 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
 {
-	return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
+	pud_t *pud = (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
+	paravirt_alloc_pd(mm, __pa(pud) >> PAGE_SHIFT);
+	return pud;
 }
 
 static inline void pud_free(struct mm_struct *mm, pud_t *pud)
@@ -72,7 +98,7 @@ static inline void pgd_list_del(pgd_t *pgd)
 static inline pgd_t *pgd_alloc(struct mm_struct *mm)
 {
 	unsigned boundary;
-	pgd_t *pgd = (pgd_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT);
+	pgd_t *pgd = (pgd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT, 1);
 	if (!pgd)
 		return NULL;
 	pgd_list_add(pgd);
@@ -86,6 +112,14 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm)
 	memcpy(pgd + boundary,
 	       init_level4_pgt + boundary,
 	       (PTRS_PER_PGD - boundary) * sizeof(pgd_t));
+
+	memset(__user_pgd(pgd), 0, PAGE_SIZE); /* clean up user pgd */
+	/*
+	 * Set level3_user_pgt for vsyscall area
+	 */
+	set_pgd(__user_pgd(pgd) + pgd_index(VSYSCALL_START), 
+		mk_kernel_pgd(__pa_symbol(level3_user_pgt)));
+
 	return pgd;
 }
 
@@ -93,7 +127,18 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
 {
 	BUG_ON((unsigned long)pgd & (PAGE_SIZE-1));
 	pgd_list_del(pgd);
-	free_page((unsigned long)pgd);
+
+#ifdef CONFIG_XEN
+	/* Unpin and make it read-write again, in the (likely) case
+	 * it was pinned
+	 *
+	 * FIXME: should be a paravirt_ops hook
+	 */
+	xen_pgd_unpin(pgd);
+	make_lowmem_page_readwrite(pgd);
+#endif
+
+	free_pages((unsigned long)pgd, 1);
 }
 
 static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
@@ -132,10 +177,20 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
 #define __pte_free_tlb(tlb,pte)				\
 do {							\
 	pgtable_page_dtor((pte));				\
+	paravirt_release_pt(page_to_pfn(pte));		\
 	tlb_remove_page((tlb), (pte));			\
 } while (0)
 
-#define __pmd_free_tlb(tlb,x)   tlb_remove_page((tlb),virt_to_page(x))
-#define __pud_free_tlb(tlb,x)   tlb_remove_page((tlb),virt_to_page(x))
+#define __pmd_free_tlb(tlb,x)				\
+do {							\
+	paravirt_release_pd(page_to_pfn(virt_to_page(x)));	\
+	tlb_remove_page((tlb),virt_to_page(x));			\
+} while (0)
+
+#define __pud_free_tlb(tlb,x)				\
+do {							\
+	paravirt_release_pd(page_to_pfn(virt_to_page(x)));	\
+	tlb_remove_page((tlb),virt_to_page(x));			\
+} while (0)
 
 #endif /* _X86_64_PGALLOC_H */
diff --git a/include/xen/page.h b/include/xen/page.h
index 158fb60..1eb4721 100644
--- a/include/xen/page.h
+++ b/include/xen/page.h
@@ -179,4 +179,7 @@ xmaddr_t arbitrary_virt_to_machine(unsigned long address);
 void make_lowmem_page_readonly(void *vaddr);
 void make_lowmem_page_readwrite(void *vaddr);
 
+extern void xen_pgd_unpin(pgd_t *pgd);
+
+
 #endif /* __XEN_PAGE_H */
-- 
1.5.4.1


linux-2.6-xen-0113-Multi-pagetable-write_cr3-implementation-FIXME.patch:

--- NEW FILE linux-2.6-xen-0113-Multi-pagetable-write_cr3-implementation-FIXME.patch ---
>From e9fd64b3e5b81f5aae5522a27ddea84b8236b87f Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 14 Jan 2008 20:02:02 -0200
Subject: [PATCH] Multi-pagetable write_cr3() implementation (FIXME)

x86_64-specific. Needs #ifdefs.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index b383376..83aaa69 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -37,6 +37,7 @@
 
 #include <asm/paravirt.h>
 #include <asm/page.h>
+#include <asm/pgalloc.h>
 #include <asm/xen/hypercall.h>
 #include <asm/xen/hypervisor.h>
 #include <asm/fixmap.h>
@@ -711,7 +712,10 @@ static void xen_write_cr3(unsigned long cr3)
 
 	BUG_ON(preemptible());
 
-	mcs = xen_mc_entry(sizeof(*op));  /* disables interrupts */
+	xen_mc_batch();  /* disables interrupts */
+
+
+	mcs = __xen_mc_entry(sizeof(*op));
 
 	/* Update while interrupts are disabled, so its atomic with
 	   respect to ipis */
@@ -727,9 +731,32 @@ static void xen_write_cr3(unsigned long cr3)
 	   been submitted. */
 	xen_mc_callback(set_current_cr3, (void *)cr3);
 
+#ifdef CONFIG_X86_64
+	{
+	pgd_t *pgd = __va(cr3);
+	unsigned long user_mfn = virt_to_mfn(__user_pgd(pgd));
+
+	mcs = __xen_mc_entry(sizeof(*op));
+
+	op = mcs.args;
+	op->cmd = MMUEXT_NEW_USER_BASEPTR;
+	/* pgd_alloc() allocates two pages for us. the second one is the
+	 * user page table
+	 */
+	op->arg1.mfn = user_mfn;
+
+	MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
+	}
+#endif
+
 	xen_mc_issue(PARAVIRT_LAZY_CPU);  /* interrupts restored */
 }
 
+#ifdef CONFIG_X86_64
+#if 0
+/*
+ * FIXME: unused
+ */
 static void xen_new_user_baseptr(unsigned long pfn)
 {
 	struct mmuext_op *op;
@@ -748,6 +775,8 @@ static void xen_new_user_baseptr(unsigned long pfn)
 
 	xen_mc_issue(PARAVIRT_LAZY_CPU);  /* interrupts restored */
 }
+#endif
+#endif
 
 /* Early in boot, while setting up the initial pagetable, assume
    everything is pinned. */
-- 
1.5.4.1


linux-2.6-xen-0114-Disable-the-weird-count-loop-on-kcons_write_dom0.patch:

--- NEW FILE linux-2.6-xen-0114-Disable-the-weird-count-loop-on-kcons_write_dom0.patch ---
>From f23045f631958643a1121cbb600a43c4c72caf5d Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 15:15:34 -0200
Subject: [PATCH] Disable the weird count loop on kcons_write_dom0()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 83aaa69..b46529a 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -149,6 +149,7 @@ static void __init xen_vcpu_setup(int cpu)
 
 static void kcons_write_dom0(const char *s, unsigned int count)
 {
+#if 0
        int rc;
 
        while ((count > 0) &&
@@ -157,6 +158,9 @@ static void kcons_write_dom0(const char *s, unsigned int count)
                count -= rc;
                s += rc;
        }
+#else
+	HYPERVISOR_console_io(CONSOLEIO_write, count, (char *)s);
+#endif
 }
 
 
-- 
1.5.4.1


linux-2.6-xen-0115-Make-xen_start_info-read-only.patch:

--- NEW FILE linux-2.6-xen-0115-Make-xen_start_info-read-only.patch ---
>From e347ce27528d905f2aa6abac4a79c1fe711d6e04 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 14 Jan 2008 20:20:55 -0200
Subject: [PATCH] Make xen_start_info read-only

It will aid debugging, catching if anybody tries to write to it.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 48f9912..0e017e5 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -495,6 +495,12 @@ static void xen_finish_init_mapping(void)
 			__va(__pa(xen_start_info->mod_start));
 
 	xprintk("messed with start_info.\n");
+	xprintk("making it read-only:\n");
+
+	/* Make it read-only to catch if anybody touches it by accident.
+	 */
+	__make_page_readonly(xen_start_info);
+
 	xprintk("unmapping:\n");
 
 	/* Destroy the Xen-created mappings beyond the kernel image as
-- 
1.5.4.1


linux-2.6-xen-0116-Hack-to-implement-return-to-userspace-without-SWAPGS.patch:

--- NEW FILE linux-2.6-xen-0116-Hack-to-implement-return-to-userspace-without-SWAPGS.patch ---
>From 7db6d5018656b95526d2ab1949372ec0c50669f2 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 18 Jan 2008 17:12:43 -0200
Subject: [PATCH] Hack to implement return to userspace without SWAPGS (CLEANME)

Implementing SWAPGS as nop wouldn't be good, because code using it may
really expect a swapgs operation to be done. It is better to make each
operation that use swapgs to be a paravirt op.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/entry_64.S |   15 ++++++++++++++-
 arch/x86/xen/entry_64.S    |   10 ++++++++++
 2 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 9952c3f..1182250 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -66,6 +66,17 @@ ENTRY(native_irq_enable_syscall_ret)
 #endif /* CONFIG_PARAVIRT */
 
 
+/*FIXME: implement this as a paravirt op */
+#ifdef CONFIG_XEN
+#define retint_swapgs xen_retint_swapgs
+#define error_userspace error_sti
+#else
+#define retint_swapgs native_retint_swapgs
+#define error_userspace error_swapgs
+#endif
+
+
+
 .macro TRACE_IRQS_IRETQ offset=ARGOFFSET
 #ifdef CONFIG_TRACE_IRQFLAGS
 	bt   $9,EFLAGS-\offset(%rsp)	/* interrupts off? */
@@ -564,8 +575,9 @@ retint_check:
 	andl %edi,%edx
 	CFI_REMEMBER_STATE
 	jnz  retint_careful
+	jmp retint_swapgs
 
-retint_swapgs:		/* return to user-space */
+native_retint_swapgs:		/* return to user-space */
 	/*
 	 * The iretq could re-enable interrupts:
 	 */
@@ -912,6 +924,7 @@ KPROBE_ENTRY(error_entry)
 	xorl %ebx,%ebx	
 	testl $3,CS(%rsp)
 	je  error_kernelspace
+	jmp error_userspace
 error_swapgs:	
 	SWAPGS
 error_sti:	
diff --git a/arch/x86/xen/entry_64.S b/arch/x86/xen/entry_64.S
index 927108c..2a2a0a0 100644
--- a/arch/x86/xen/entry_64.S
+++ b/arch/x86/xen/entry_64.S
@@ -41,3 +41,13 @@ ENTRY(do_hypervisor_callback)   # do_hypervisor_callback(struct *pt_regs)
 	jmp  error_exit
 	CFI_ENDPROC
 END(do_hypervisor_callback)
+
+
+ENTRY(xen_retint_swapgs)		/* return to user-space */
+	/*
+	 * The iretq could re-enable interrupts:
+	 */
+	DISABLE_INTERRUPTS(CLBR_ANY)
+	TRACE_IRQS_IRETQ
+	jmp restore_args
+END(xen_retint_swapgs)
-- 
1.5.4.1


linux-2.6-xen-0117-Xen-SEGBASE_-defines.patch:

--- NEW FILE linux-2.6-xen-0117-Xen-SEGBASE_-defines.patch ---
>From 6bc8885762a657b6a9c138c4318257bd207f460c Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 15:36:24 -0200
Subject: [PATCH] Xen: SEGBASE_* defines

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/xen/interface.h |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/xen/interface.h b/include/asm-x86/xen/interface.h
index ab69adb..cb77b3f 100644
--- a/include/asm-x86/xen/interface.h
+++ b/include/asm-x86/xen/interface.h
@@ -96,6 +96,17 @@ DEFINE_GUEST_HANDLE(void);
 #ifndef __ASSEMBLY__
 
 /*
+ * int HYPERVISOR_set_segment_base(unsigned int which, unsigned long base)
+ *  @which == SEGBASE_*  ;  @base == 64-bit base address
+ * Returns 0 on success.
+ */
+#define SEGBASE_FS          0
+#define SEGBASE_GS_USER     1
+#define SEGBASE_GS_KERNEL   2
+#define SEGBASE_GS_USER_SEL 3 /* Set user %gs specified in base[15:0] */
+
+
+/*
  * Send an array of these to HYPERVISOR_set_trap_table()
  */
 #define TI_GET_DPL(_ti)		((_ti)->flags & 3)
-- 
1.5.4.1


linux-2.6-xen-0118-Xen-HYPERVISOR_set_segment_base-implementation.patch:

--- NEW FILE linux-2.6-xen-0118-Xen-HYPERVISOR_set_segment_base-implementation.patch ---
>From e1c1cd2a817e786766aabbeae96a6c2738e7b654 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 15:37:20 -0200
Subject: [PATCH] Xen: HYPERVISOR_set_segment_base() implementation

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/xen/hypercall.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/xen/hypercall.h b/include/asm-x86/xen/hypercall.h
index 0588d6d..965b823 100644
--- a/include/asm-x86/xen/hypercall.h
+++ b/include/asm-x86/xen/hypercall.h
@@ -400,6 +400,16 @@ HYPERVISOR_vcpu_op(int cmd, int vcpuid, void *extra_args)
 	return _hypercall3(int, vcpu_op, cmd, vcpuid, extra_args);
 }
 
+#ifdef CONFIG_X86_64
+static inline int
+HYPERVISOR_set_segment_base(
+	int reg, unsigned long value)
+{
+	return _hypercall2(int, set_segment_base, reg, value);
+}
+#endif
+
+
 static inline int
 HYPERVISOR_suspend(unsigned long srec)
 {
-- 
1.5.4.1


linux-2.6-xen-0119-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch:

--- NEW FILE linux-2.6-xen-0119-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch ---
>From 275711a7407cf238adcb11149cc030fbc1bdea89 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:02:24 -0200
Subject: [PATCH] Change signature of paravirt_alloc_{pt,pd} (REVIEWME)

Use 'unsigned long' instead of u32.

Question: will 'unsigned long' work on 32-bit PAE?

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c   |   17 +++++++++--------
 include/asm-x86/paravirt.h |   18 +++++++++---------
 2 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index b46529a..eb43fac 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -784,7 +784,7 @@ static void xen_new_user_baseptr(unsigned long pfn)
 
 /* Early in boot, while setting up the initial pagetable, assume
    everything is pinned. */
-static __init void xen_alloc_pt_init(struct mm_struct *mm, u32 pfn)
+static __init void xen_alloc_pt_init(struct mm_struct *mm, unsigned long pfn)
 {
 	BUG_ON(mem_map);	/* should only be used early */
 	make_lowmem_page_readonly(__va(PFN_PHYS(pfn)));
@@ -792,7 +792,7 @@ static __init void xen_alloc_pt_init(struct mm_struct *mm, u32 pfn)
 
 /* Early release_pt assumes that all pts are pinned, since there's
    only init_mm and anything attached to that is pinned. */
-static void xen_release_pt_init(u32 pfn)
+static void xen_release_pt_init(unsigned long pfn)
 {
 	make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
 }
@@ -808,7 +808,8 @@ static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
 
 /* This needs to make sure the new pte page is pinned iff its being
    attached to a pinned pagetable. */
-static void xen_alloc_ptpage(struct mm_struct *mm, u32 pfn, unsigned level)
+static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn,
+			     unsigned level)
 {
 	struct page *page = pfn_to_page(pfn);
 
@@ -826,18 +827,18 @@ static void xen_alloc_ptpage(struct mm_struct *mm, u32 pfn, unsigned level)
 	}
 }
 
-static void xen_alloc_pt(struct mm_struct *mm, u32 pfn)
+static void xen_alloc_pt(struct mm_struct *mm, unsigned long pfn)
 {
 	xen_alloc_ptpage(mm, pfn, PT_PTE);
 }
 
-static void xen_alloc_pd(struct mm_struct *mm, u32 pfn)
+static void xen_alloc_pd(struct mm_struct *mm, unsigned long pfn)
 {
 	xen_alloc_ptpage(mm, pfn, PT_PMD);
 }
 
 /* This should never happen until we're OK to use struct page */
-static void xen_release_ptpage(u32 pfn, unsigned level)
+static void xen_release_ptpage(unsigned long pfn, unsigned level)
 {
 	struct page *page = pfn_to_page(pfn);
 
@@ -851,12 +852,12 @@ static void xen_release_ptpage(u32 pfn, unsigned level)
 	}
 }
 
-static void xen_release_pt(u32 pfn)
+static void xen_release_pt(unsigned long pfn)
 {
 	xen_release_ptpage(pfn, PT_PTE);
 }
 
-static void xen_release_pd(u32 pfn)
+static void xen_release_pd(unsigned long pfn)
 {
 	xen_release_ptpage(pfn, PT_PMD);
 }
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index 292db13..20a930f 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -236,11 +236,11 @@ struct pv_mmu_ops {
 				 unsigned long va);
 
 	/* Hooks for allocating/releasing pagetable pages */
-	void (*alloc_pt)(struct mm_struct *mm, u32 pfn);
-	void (*alloc_pd)(struct mm_struct *mm, u32 pfn);
-	void (*alloc_pd_clone)(u32 pfn, u32 clonepfn, u32 start, u32 count);
-	void (*release_pt)(u32 pfn);
-	void (*release_pd)(u32 pfn);
+	void (*alloc_pt)(struct mm_struct *mm, unsigned long pfn);
+	void (*alloc_pd)(struct mm_struct *mm, unsigned long pfn);
+	void (*alloc_pd_clone)(unsigned long pfn, unsigned long clonepfn, unsigned long start, unsigned long count);
+	void (*release_pt)(unsigned long pfn);
+	void (*release_pd)(unsigned long pfn);
 
 	/* Pagetable manipulation functions */
 	void (*set_pte)(pte_t *ptep, pte_t pteval);
@@ -929,11 +929,11 @@ static inline void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm,
 	PVOP_VCALL3(pv_mmu_ops.flush_tlb_others, &cpumask, mm, va);
 }
 
-static inline void paravirt_alloc_pt(struct mm_struct *mm, unsigned pfn)
+static inline void paravirt_alloc_pt(struct mm_struct *mm, unsigned long pfn)
 {
 	PVOP_VCALL2(pv_mmu_ops.alloc_pt, mm, pfn);
 }
-static inline void paravirt_release_pt(unsigned pfn)
+static inline void paravirt_release_pt(unsigned long pfn)
 {
 	PVOP_VCALL1(pv_mmu_ops.release_pt, pfn);
 }
@@ -943,8 +943,8 @@ static inline void paravirt_alloc_pd(struct mm_struct *mm, unsigned pfn)
 	PVOP_VCALL2(pv_mmu_ops.alloc_pd, mm, pfn);
 }
 
-static inline void paravirt_alloc_pd_clone(unsigned pfn, unsigned clonepfn,
-					   unsigned start, unsigned count)
+static inline void paravirt_alloc_pd_clone(unsigned long pfn, unsigned long clonepfn,
+					   unsigned long start, unsigned long count)
 {
 	PVOP_VCALL4(pv_mmu_ops.alloc_pd_clone, pfn, clonepfn, start, count);
 }
-- 
1.5.4.1


linux-2.6-xen-0120-Comment-e820_print_map-call-TEMPORARY.patch:

--- NEW FILE linux-2.6-xen-0120-Comment-e820_print_map-call-TEMPORARY.patch ---
>From 6eb144cf26aa2605cf61fbb132e1c34caf74fad9 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:03:11 -0200
Subject: [PATCH] Comment e820_print_map() call (TEMPORARY)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/setup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 99b7463..1409021 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -50,7 +50,7 @@ char * __init xen_memory_setup(void)
 
 #ifdef CONFIG_X86_64
 	early_printk(KERN_INFO "Xen-provided physical RAM map:\n");
-	e820_print_map("Xen");
+	//e820_print_map("Xen");
 #endif
 	return "Xen";
 }
-- 
1.5.4.1


linux-2.6-xen-0121-Xen-missing-includes.patch:

--- NEW FILE linux-2.6-xen-0121-Xen-missing-includes.patch ---
>From 6b0513689114f2059867ec1aeb7ffa6605a29753 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:13:41 -0200
Subject: [PATCH] Xen: missing #includes

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/xen/events.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/xen/events.h b/include/xen/events.h
index 2bde54d..c18d2bf 100644
--- a/include/xen/events.h
+++ b/include/xen/events.h
@@ -3,6 +3,8 @@
 
 #include <linux/interrupt.h>
 
+#include <asm/xen/interface.h>
+#include <xen/interface/xen.h>
 #include <xen/interface/event_channel.h>
 #include <asm/xen/hypercall.h>
 
-- 
1.5.4.1


linux-2.6-xen-0122-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch:

--- NEW FILE linux-2.6-xen-0122-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch ---
>From a73665b88f77111c8a35bf50f5f08b6282761496 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:14:04 -0200
Subject: [PATCH] asm-x86/pgtable_64.h: #include <linux/spinlock.h>

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/pgtable_64.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h
index d96a272..6c6e29d 100644
--- a/include/asm-x86/pgtable_64.h
+++ b/include/asm-x86/pgtable_64.h
@@ -11,6 +11,7 @@
 #include <asm/processor.h>
 #include <linux/bitops.h>
 #include <linux/threads.h>
+#include <linux/spinlock.h>
 #include <asm/pda.h>
 
 extern pud_t level3_kernel_pgt[512];
-- 
1.5.4.1


linux-2.6-xen-0123-asm-x86-pgtable.h-include-asm-page.h.patch:

--- NEW FILE linux-2.6-xen-0123-asm-x86-pgtable.h-include-asm-page.h.patch ---
>From f5a5d6611fe0045d116c475dc3821b910fb3b0bd Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:14:25 -0200
Subject: [PATCH] asm-x86/pgtable.h: #include <asm/page.h>

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/pgtable.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index 6b3979e..e6e22db 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -1,6 +1,8 @@
 #ifndef _ASM_X86_PGTABLE_H
 #define _ASM_X86_PGTABLE_H
 
+#include <asm/page.h>
+
 #define USER_PTRS_PER_PGD	((TASK_SIZE-1)/PGDIR_SIZE+1)
 #define FIRST_USER_ADDRESS	0
 
-- 
1.5.4.1


linux-2.6-xen-0124-fix-pxxval_t-usage-on-mm-init_64.c.patch:

--- NEW FILE linux-2.6-xen-0124-fix-pxxval_t-usage-on-mm-init_64.c.patch ---
>From 8958fc6f1493a3b45ccbf6937d01fdf92d202778 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:15:55 -0200
Subject: [PATCH] fix pxxval_t usage on mm/init_64.c

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 0e017e5..44bf3fd 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -78,7 +78,7 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
 void show_pgtable1(pte_t *tbl, unsigned long addr)
 {
 	pte_t *pte = tbl + pte_index(addr);
-	pte_val_t pv;
+	pteval_t pv;
 	unsigned long *page;
 
 	xprintk("\npte: %p\n", pte);
@@ -97,7 +97,7 @@ void show_pgtable1(pte_t *tbl, unsigned long addr)
 void show_pgtable2(pmd_t *tbl, unsigned long addr)
 {
 	pmd_t *pmd = tbl + pmd_index(addr);
-	pmd_val_t pv;
+	pmdval_t pv;
 
 	xprintk("\npmd: %p\n", pmd);
 	xprintk("\npmd val: %lx\n", pmd->pmd);
-- 
1.5.4.1


linux-2.6-xen-0125-Missing-Xen-include.patch:

--- NEW FILE linux-2.6-xen-0125-Missing-Xen-include.patch ---
>From 9f69b40deb5bb69cc800b9e3e8f4862f2568970e Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:18:18 -0200
Subject: [PATCH] Missing Xen #include

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 44bf3fd..e151e93 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -53,6 +53,7 @@
 #include <xen/page.h>
 #include <xen/hvc-console.h>
 #include <asm/xen/hypercall.h>
+#include <asm/xen/hypervisor.h>
 #include "../xen/init.h"
 #include "../xen/xen-ops.h"
 #endif
-- 
1.5.4.1


linux-2.6-xen-0126-un-static-ipi_to_irq.patch:

--- NEW FILE linux-2.6-xen-0126-un-static-ipi_to_irq.patch ---
>From 2b53584864c05ed7c3159d6ab4878e5bc9307525 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 16:26:52 -0200
Subject: [PATCH] un-static ipi_to_irq

It is used by xen/genapic.c

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/events.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/events.c b/arch/x86/xen/events.c
index fa67e61..050fa52 100644
--- a/arch/x86/xen/events.c
+++ b/arch/x86/xen/events.c
@@ -49,7 +49,7 @@ static DEFINE_SPINLOCK(irq_mapping_update_lock);
 static DEFINE_PER_CPU(int, virq_to_irq[NR_VIRQS]) = {[0 ... NR_VIRQS-1] = -1};
 
 /* IRQ <-> IPI mapping */
-static DEFINE_PER_CPU(int, ipi_to_irq[XEN_NR_IPIS]) = {[0 ... XEN_NR_IPIS-1] = -1};
+DEFINE_PER_CPU(int, ipi_to_irq[XEN_NR_IPIS]) = {[0 ... XEN_NR_IPIS-1] = -1};
 
 /* Packed IRQ information: binding type, sub-type index, and event channel. */
 struct packed_irq
-- 
1.5.4.1


linux-2.6-xen-0127-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch:

--- NEW FILE linux-2.6-xen-0127-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch ---
>From 30f59c5e2f2c510ffc176e9ec45bcbc2c6bdea11 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 17:26:40 -0200
Subject: [PATCH] Don't use _PAGE_GLOBAL bit under Xen (FIXME)

This needs to be done using pvops.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/pgtable.h |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index e6e22db..4d8d1b9 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -96,7 +96,12 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
 #ifdef CONFIG_X86_32
 # define MAKE_GLOBAL(x)			__pgprot((x))
 #else
-# define MAKE_GLOBAL(x)			__pgprot((x) | _PAGE_GLOBAL)
+# ifdef CONFIG_XEN
+/*FIXME: this need to be handled at runtime using pvops */
+#  define MAKE_GLOBAL(x)			__pgprot((x))
+# else
+#  define MAKE_GLOBAL(x)			__pgprot((x) | _PAGE_GLOBAL)
+# endif
 #endif
 
 #define PAGE_KERNEL			MAKE_GLOBAL(__PAGE_KERNEL)
-- 
1.5.4.1


linux-2.6-xen-0128-Trying-to-organize-the-xen-bootmem-allocation-mess.patch:

--- NEW FILE linux-2.6-xen-0128-Trying-to-organize-the-xen-bootmem-allocation-mess.patch ---
>From 93cf45719978be3028c30871828c76cefddcbb93 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 23 Jan 2008 18:51:58 -0200
Subject: [PATCH] Trying to organize the xen bootmem allocation mess (REVIEWME)

See comments added to code to understand this.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c    |   47 +++++++++++++++++++++++++++++++++------------
 arch/x86/xen/enlighten.c |   15 +++++++++++++-
 arch/x86/xen/init.h      |    2 +-
 3 files changed, 49 insertions(+), 15 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index e151e93..e1a071f 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -275,9 +275,9 @@ static __init void *spp_getpage(void)
 
 	if (after_bootmem)
 		ptr = (void *) get_zeroed_page(GFP_ATOMIC);
-	else if (start_pfn < table_end) {
-		ptr = __va(start_pfn << PAGE_SHIFT);
-		start_pfn++;
+	else if (xen_alloc_pfn < table_end) {
+		ptr = __va(xen_alloc_pfn << PAGE_SHIFT);
+		xen_alloc_pfn++;
 		memset(ptr, 0, PAGE_SIZE);
 	} else
 		ptr = alloc_bootmem_pages(PAGE_SIZE);
@@ -410,7 +410,7 @@ native_set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot)
 
 /*FIXME: this code should be enabled at runtime, somehow */
 
-unsigned long start_pfn;
+unsigned long xen_alloc_pfn;
 
 static __meminit void *alloc_low_page(unsigned long *phys)
 {
@@ -423,7 +423,7 @@ static __meminit void *alloc_low_page(unsigned long *phys)
 		return adr;
 	}
 
-	pfn = start_pfn++;
+	pfn = xen_alloc_pfn++;
 	*phys  = pfn << PAGE_SHIFT;
 
 	/* The address returned by __va() is not available yet.
@@ -456,7 +456,7 @@ int make_readonly(unsigned long paddr)
 	/* Make old page tables read-only. */
 	if (!xen_feature(XENFEAT_writable_page_tables)
 	    && (paddr >= (xen_start_info->pt_base - __START_KERNEL_map))
-	    && (paddr < (start_pfn << PAGE_SHIFT)))
+	    && (paddr < (xen_alloc_pfn << PAGE_SHIFT)))
 		readonly = 1;
 
 	/*
@@ -516,7 +516,7 @@ static void xen_finish_init_mapping(void)
 		WARN_ON(HYPERVISOR_update_va_mapping(
 			start, __pte_ma(0), 0));
 
-	/* Allocate pte's for initial fixmaps from 'start_pfn' allocator. */
+	/* Allocate pte's for initial fixmaps from 'xen_alloc_pfn' allocator. */
 	table_end = ~0UL;
 
 
@@ -551,8 +551,8 @@ static void xen_finish_init_mapping(void)
 					        >> PAGE_SHIFT,
 					    PAGE_KERNEL_RO));
 
-	/* Disable the 'start_pfn' allocator. */
-	table_end = start_pfn;
+	/* Disable the 'xen_alloc_pfn' allocator. */
+	table_end = xen_alloc_pfn;
 
 	xprintk("finished!\n");
 }
@@ -578,7 +578,7 @@ static void __init xen_extend_init_mapping(unsigned long tables_space)
 
 	/* Ensure init mappings cover kernel text/data and initial tables. */
 	while (va < (__START_KERNEL_map
-		     + (start_pfn << PAGE_SHIFT)
+		     + (xen_alloc_pfn << PAGE_SHIFT)
 		     + tables_space)) {
 		pmd = (pmd_t *)&page[pmd_index(va)];
 		if (pmd_none(*pmd)) {
@@ -753,6 +753,7 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end)
 				 */
 				if (make_readonly(address))
 					attrs &= ~_PAGE_RW;
+
 				__set_pte(pte, __pte(address | attrs));
 			}
 			pte = pte_save;
@@ -833,10 +834,10 @@ static void __init find_early_table_space(unsigned long end)
 	/*FIXME: what does this do? */
 	xen_extend_init_mapping(tables);
 
-	table_start = start_pfn;
+	table_start = xen_alloc_pfn;
 	table_end = table_start + (tables>>PAGE_SHIFT);
 
-	early_printk("kernel direct mapping tables up to %lx @ %lx-%lx\n",
+	printk("kernel direct mapping tables up to %lx @ %lx-%lx\n",
 		end, table_start << PAGE_SHIFT,
 		(table_start << PAGE_SHIFT) + tables);
 }
@@ -917,16 +918,36 @@ void __init_refok init_memory_mapping(unsigned long start, unsigned long end)
 
 	if (!after_bootmem) {
 #ifdef CONFIG_XEN
-		BUG_ON(start_pfn != table_end);
+		BUG_ON(xen_alloc_pfn != table_end);
 		xen_finish_init_mapping();
 #endif
 		mmu_cr4_features = read_cr4();
 	}
 	__flush_tlb_all();
 
+	/*FIXME: Xen early allocation is messy-messy-messy:
+	 *
+	 * - memory from spp_getpage() needs to be reserved
+	 * - memory from alloc_low_page() needs to be reserved
+	 * - memory from spp_getpage() is being reserved on
+	 *   xen_pagetable_setup_start(), using xen_alloc_pfn and
+	 *   xen_start_pfn
+	 * - memory from alloc_low_page() should be reserved here,
+	 *   like on non-Xen. But it is already being reserved
+	 *   with the spp_getpage() memory. This is why there is
+	 *   a #ifndef below
+	 *
+	 * - Probably keeping spp_getpage() as-is would work,
+	 *   but first I need to understand how the non-Xen version
+	 *   of it works and why XS upstream has different code
+	 *   - If that works, we may remove lots of xen-specific
+	 *     bootmem reservation
+	 */
+#ifndef CONFIG_XEN
 	if (!after_bootmem)
 		reserve_early(table_start << PAGE_SHIFT,
 				 table_end << PAGE_SHIFT, "PGTABLE");
+#endif
 }
 
 #ifndef CONFIG_NUMA
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index eb43fac..fc2f956 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -898,6 +898,11 @@ static __init void xen_set_pte_init(pte_t *ptep, pte_t pte)
 	xen_set_pte(ptep, pte);
 }
 
+
+#ifdef CONFIG_X86_64
+static unsigned long xen_start_pfn;
+#endif
+
 static __init void xen_pagetable_setup_start(pgd_t *base)
 {
 #ifdef CONFIG_X86_32
@@ -1011,6 +1016,12 @@ static __init void xen_pagetable_setup_done(pgd_t *base)
 		pin_pagetable_pfn(level, PFN_DOWN(__pa(base)));
 	}
 #endif
+
+#ifdef CONFIG_X86_64
+	reserve_bootmem(xen_start_pfn << PAGE_SHIFT,
+			(xen_alloc_pfn - xen_start_pfn) << PAGE_SHIFT,
+			BOOTMEM_DEFAULT);
+#endif
 }
 
 /* This is called once we have the cpu_possible_map */
@@ -1362,6 +1373,8 @@ static void __init xen_reserve_top(void)
 #define xen_reserve_top() do { } while (0)
 #endif
 
+
+
 /* First C function to be called on Xen boot */
 asmlinkage void __init xen_start_kernel(void)
 {
@@ -1420,7 +1433,7 @@ asmlinkage void __init xen_start_kernel(void)
 
 #ifdef CONFIG_X86_64
 	/* used by alloc_low_page() */
-	start_pfn = PFN_UP(__pa_symbol(xen_start_info->pt_base)) + xen_start_info->nr_pt_frames;
+	xen_start_pfn = xen_alloc_pfn = PFN_UP(__pa_symbol(xen_start_info->pt_base)) + xen_start_info->nr_pt_frames;
 #endif
 
 #ifdef CONFIG_X86_32
diff --git a/arch/x86/xen/init.h b/arch/x86/xen/init.h
index fee0c05..6d91d3e 100644
--- a/arch/x86/xen/init.h
+++ b/arch/x86/xen/init.h
@@ -6,7 +6,7 @@ void xen_init_pt(void);
 extern pud_t level3_user_pgt[512];
 extern pgd_t init_level4_user_pgt[];
 
-extern unsigned long start_pfn;
+extern unsigned long xen_alloc_pfn;
 
 void early_make_page_readonly(void *va, unsigned int feature);
 
-- 
1.5.4.1


linux-2.6-xen-0129-Xen-reserve_bootmem-xenstore-and-console-interfac.patch:

--- NEW FILE linux-2.6-xen-0129-Xen-reserve_bootmem-xenstore-and-console-interfac.patch ---
>From c28e6df03c25447b299b0615caf09f743e876420 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 25 Jan 2008 11:16:57 -0200
Subject: [PATCH] Xen: reserve_bootmem() xenstore and console interface pages

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/setup_64.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 479c782..e2ba835 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -424,6 +424,14 @@ void __init setup_arch(char **cmdline_p)
 	reserve_bootmem(__pa(xen_start_info),
 			sizeof(*xen_start_info),
 			BOOTMEM_DEFAULT);
+
+	if (!is_initial_xendomain()) {
+		/* Reserve the xenstore and console interface pages */
+		reserve_bootmem(mfn_to_pfn(xen_start_info->store_mfn) << PAGE_SHIFT,
+				PAGE_SIZE, BOOTMEM_DEFAULT);
+		reserve_bootmem(mfn_to_pfn(xen_start_info->console.domU.mfn) << PAGE_SHIFT,
+				PAGE_SIZE, BOOTMEM_DEFAULT);
+	}
 #endif
 
        /*
-- 
1.5.4.1


linux-2.6-xen-0130-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch:

--- NEW FILE linux-2.6-xen-0130-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch ---
>From e55e00b318be88515b9b7d44b1e806e78997a9e2 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 25 Jan 2008 12:01:11 -0200
Subject: [PATCH] pvops-64: call paravirt_activate_mm() on activate_mm()

This hook was forgotten on 64-bit paravirt_ops.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/mmu_context_64.h |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/asm-x86/mmu_context_64.h b/include/asm-x86/mmu_context_64.h
index ad6dc82..1327119 100644
--- a/include/asm-x86/mmu_context_64.h
+++ b/include/asm-x86/mmu_context_64.h
@@ -65,7 +65,9 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
 } while(0)
 
 #define activate_mm(prev, next) \
-	switch_mm((prev),(next),NULL)
-
+	do {						\
+		paravirt_activate_mm(prev, next);	\
+		switch_mm((prev),(next),NULL);		\
+	} while (0)
 
 #endif
-- 
1.5.4.1


linux-2.6-xen-0131-Xen-64-bit-support-on-xen_pgd_pin.patch:

--- NEW FILE linux-2.6-xen-0131-Xen-64-bit-support-on-xen_pgd_pin.patch ---
>From 8b3903750de5a8f3ecc54b8672005331a9713d8a Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 25 Jan 2008 12:04:10 -0200
Subject: [PATCH] Xen: 64-bit support on xen_pgd_pin()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index e545dee..9920c90 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -494,7 +494,9 @@ void xen_pgd_pin(pgd_t *pgd)
 		xen_mc_batch();
 	}
 
-#ifdef CONFIG_X86_PAE
+#ifdef CONFIG_X86_64
+	level = MMUEXT_PIN_L4_TABLE;
+#elif defined(CONFIG_X86_PAE)
 	level = MMUEXT_PIN_L3_TABLE;
 #else
 	level = MMUEXT_PIN_L2_TABLE;
-- 
1.5.4.1


linux-2.6-xen-0132-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch:

--- NEW FILE linux-2.6-xen-0132-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch ---
>From 03135fcc9e7187c62d49df64a1b27f79171426d1 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 25 Jan 2008 12:05:30 -0200
Subject: [PATCH] Xen-64: pin user PGD on activate_mm() and dup_mmap()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 9920c90..998cfb9 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -578,6 +578,9 @@ void xen_activate_mm(struct mm_struct *prev, struct mm_struct *next)
 {
 	spin_lock(&next->page_table_lock);
 	xen_pgd_pin(next->pgd);
+#ifdef CONFIG_X86_64
+	xen_pgd_pin(__user_pgd(next->pgd));
+#endif
 	spin_unlock(&next->page_table_lock);
 }
 
@@ -585,6 +588,9 @@ void xen_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm)
 {
 	spin_lock(&mm->page_table_lock);
 	xen_pgd_pin(mm->pgd);
+#ifdef CONFIG_X86_64
+	xen_pgd_pin(__user_pgd(mm->pgd));
+#endif
 	spin_unlock(&mm->page_table_lock);
 }
 
-- 
1.5.4.1


linux-2.6-xen-0133-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch:

--- NEW FILE linux-2.6-xen-0133-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch ---
>From 134e6232d899c2031c0afbb10a99b3a7f1b4aa30 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 25 Jan 2008 12:20:28 -0200
Subject: [PATCH] pgd_walk() changes to make pgd pinning work (FIXME)

To be investigated:
- Why walking to TASK_SIZE isn't enough
- The child-first walking probably won't work for unpinning
- Check if lock_pte() usage is correct for x86_64 also

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 998cfb9..1e7d1c9 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -356,12 +356,20 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 	unsigned long addr = start;
 	unsigned long pgd_next;
 
+	/*FIXME: the child-first walk order probably won't work for unpin_page()
+	 */
+
+#ifdef CONFIG_X86_64
+	/*FIXME: investigate why walking to TASK_SIZE isn't enough on x86_64 */
+	limit += PAGE_SIZE;
+#endif
+
 	if (xen_feature(XENFEAT_auto_translated_physmap))
 		return 0;
 
 	pgd = pgd_base + pgd_index(addr);
 	for (; addr != limit; pgd++, addr = pgd_next) {
-		pud_t *pud;
+		pud_t *pud, *pud0;
 		unsigned long pud_limit, pud_next;
 
 		pgd_next = pud_limit = pgd_addr_end(addr, limit);
@@ -369,13 +377,10 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 		if (!pgd_val(*pgd))
 			continue;
 
-		pud = pud_offset(pgd, 0);
-
-		if (PTRS_PER_PUD > 1) /* not folded */
-			flush |= (*func)(virt_to_page(pud), PT_PUD);
+		pud0 = pud = pud_offset(pgd, 0);
 
 		for (; addr != pud_limit; pud++, addr = pud_next) {
-			pmd_t *pmd;
+			pmd_t *pmd, *pmd0;
 			unsigned long pmd_limit;
 
 			pud_next = pmd_limit = pud_addr_end(addr, pud_limit);
@@ -383,10 +388,7 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 			if (pud_none(*pud))
 				continue;
 
-			pmd = pmd_offset(pud, 0);
-
-			if (PTRS_PER_PMD > 1) /* not folded */
-				flush |= (*func)(virt_to_page(pmd), PT_PMD);
+			pmd0 = pmd = pmd_offset(pud, 0);
 
 			for (; addr != pmd_limit; pmd++) {
 				addr += (PAGE_SIZE * PTRS_PER_PTE);
@@ -400,7 +402,15 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 
 				flush |= (*func)(pmd_page(*pmd), PT_PTE);
 			}
+
+			if (PTRS_PER_PMD > 1) /* not folded */
+				flush |= (*func)(virt_to_page(pmd0), PT_PMD);
+
 		}
+
+		if (PTRS_PER_PUD > 1) /* not folded */
+			flush |= (*func)(virt_to_page(pud0), PT_PUD);
+
 	}
 
 	flush |= (*func)(virt_to_page(pgd_base), PT_PGD);
-- 
1.5.4.1


linux-2.6-xen-0134-Xen-Add-a-order-parameter-to-pgd_walk.patch:

--- NEW FILE linux-2.6-xen-0134-Xen-Add-a-order-parameter-to-pgd_walk.patch ---
>From 445743bdb0b4f4e199a83b69c8d3fa996f5a6273 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 8 Feb 2008 13:38:09 -0200
Subject: [PATCH] Xen: Add a order parameter to pgd_walk()

When pinning, we should pin the lower level pagetables first. When
unpinning, we should unpin the higher level pagetables first. The 'order'
parameter for pgd_walk() specifies which order should be used.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |   33 +++++++++++++++++++++++----------
 1 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 1e7d1c9..053ce3e 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -338,6 +338,12 @@ void xen_set_pte(pte_t *ptep, pte_t pte)
 #endif
 
 
+/* pgd_walk() walk order */
+enum walk_order {
+	CHILD_FIRST,
+	PARENT_FIRST,
+};
+
 /*
   (Yet another) pagetable walker.  This one is intended for pinning a
   pagetable.  This means that it walks a pagetable and calls the
@@ -348,7 +354,7 @@ void xen_set_pte(pte_t *ptep, pte_t pte)
   FIXADDR_TOP.  But the important bit is that we don't pin beyond
   there, because then we start getting into Xen's ptes.
 */
-static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
+static int pgd_walk(enum walk_order order, pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 		    unsigned long start, unsigned long limit)
 {
 	pgd_t *pgd;
@@ -356,9 +362,6 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 	unsigned long addr = start;
 	unsigned long pgd_next;
 
-	/*FIXME: the child-first walk order probably won't work for unpin_page()
-	 */
-
 #ifdef CONFIG_X86_64
 	/*FIXME: investigate why walking to TASK_SIZE isn't enough on x86_64 */
 	limit += PAGE_SIZE;
@@ -367,6 +370,9 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 	if (xen_feature(XENFEAT_auto_translated_physmap))
 		return 0;
 
+	if (order == PARENT_FIRST)
+		flush |= (*func)(virt_to_page(pgd_base), PT_PGD);
+
 	pgd = pgd_base + pgd_index(addr);
 	for (; addr != limit; pgd++, addr = pgd_next) {
 		pud_t *pud, *pud0;
@@ -379,6 +385,9 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 
 		pud0 = pud = pud_offset(pgd, 0);
 
+		if (order == PARENT_FIRST && PTRS_PER_PUD > 1) /* not folded */
+			flush |= (*func)(virt_to_page(pud0), PT_PUD);
+
 		for (; addr != pud_limit; pud++, addr = pud_next) {
 			pmd_t *pmd, *pmd0;
 			unsigned long pmd_limit;
@@ -390,6 +399,9 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 
 			pmd0 = pmd = pmd_offset(pud, 0);
 
+			if (order == PARENT_FIRST && PTRS_PER_PMD > 1) /* not folded */
+				flush |= (*func)(virt_to_page(pmd0), PT_PMD);
+
 			for (; addr != pmd_limit; pmd++) {
 				addr += (PAGE_SIZE * PTRS_PER_PTE);
 				if ((pmd_limit-1) < (addr-1)) {
@@ -403,17 +415,18 @@ static int pgd_walk(pgd_t *pgd_base, int (*func)(struct page *, enum pt_level),
 				flush |= (*func)(pmd_page(*pmd), PT_PTE);
 			}
 
-			if (PTRS_PER_PMD > 1) /* not folded */
+			if (order == CHILD_FIRST && PTRS_PER_PMD > 1) /* not folded */
 				flush |= (*func)(virt_to_page(pmd0), PT_PMD);
 
 		}
 
-		if (PTRS_PER_PUD > 1) /* not folded */
+		if (order == CHILD_FIRST && PTRS_PER_PUD > 1) /* not folded */
 			flush |= (*func)(virt_to_page(pud0), PT_PUD);
 
 	}
 
-	flush |= (*func)(virt_to_page(pgd_base), PT_PGD);
+	if (order == CHILD_FIRST)
+		flush |= (*func)(virt_to_page(pgd_base), PT_PGD);
 
 	return flush;
 }
@@ -497,7 +510,7 @@ void xen_pgd_pin(pgd_t *pgd)
 
 	xen_mc_batch();
 
-	if (pgd_walk(pgd, pin_page, 0, TASK_SIZE)) {
+	if (pgd_walk(CHILD_FIRST, pgd, pin_page, 0, TASK_SIZE)) {
 		/* re-enable interrupts for kmap_flush_unused */
 		xen_mc_issue(0);
 		kmap_flush_unused();
@@ -538,7 +551,7 @@ static __init int mark_pinned(struct page *page, enum pt_level level)
 
 void __init xen_mark_init_mm_pinned(void)
 {
-	pgd_walk(init_mm.pgd, mark_pinned, INIT_MM_WALK_BEGIN, INIT_MM_WALK_END);
+	pgd_walk(CHILD_FIRST, init_mm.pgd, mark_pinned, INIT_MM_WALK_BEGIN, INIT_MM_WALK_END);
 }
 
 static int unpin_page(struct page *page, enum pt_level level)
@@ -579,7 +592,7 @@ void xen_pgd_unpin(pgd_t *pgd)
 
 	xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
 
-	pgd_walk(pgd, unpin_page, 0, TASK_SIZE);
+	pgd_walk(PARENT_FIRST, pgd, unpin_page, 0, TASK_SIZE);
 
 	xen_mc_issue(0);
 }
-- 
1.5.4.1


linux-2.6-xen-0135-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch:

--- NEW FILE linux-2.6-xen-0135-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch ---
>From 11a8c592f54b2fb25a4b883cc8f739b9b74bfbcb Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 8 Feb 2008 13:41:33 -0200
Subject: [PATCH] Xen-64: Unpin user pagetable on xen_pgd_unpin()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 053ce3e..3718523 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -590,8 +590,14 @@ void xen_pgd_unpin(pgd_t *pgd)
 {
 	xen_mc_batch();
 
+#ifdef CONFIG_X86_64
+	xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(__user_pgd(pgd))));
+#endif
 	xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
 
+#ifdef CONFIG_X86_64
+	pgd_walk(PARENT_FIRST, __user_pgd(pgd), unpin_page, 0, TASK_SIZE);
+#endif
 	pgd_walk(PARENT_FIRST, pgd, unpin_page, 0, TASK_SIZE);
 
 	xen_mc_issue(0);
-- 
1.5.4.1


linux-2.6-xen-0136-Use-un-pin_page-when-un-pinning-pgd.patch:

--- NEW FILE linux-2.6-xen-0136-Use-un-pin_page-when-un-pinning-pgd.patch ---
>From 1afb97c1c8083ea19496cfccad7753f37760f30a Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 13 Feb 2008 13:24:31 -0200
Subject: [PATCH] Use (un)pin_page() when (un)pinning pgd

This will check the PG_pinned flag, so we avoid unpinning or pinning
pages twice.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/mmu.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 3718523..11a4543 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -525,7 +525,7 @@ void xen_pgd_pin(pgd_t *pgd)
 	level = MMUEXT_PIN_L2_TABLE;
 #endif
 
-	xen_do_pin(level, PFN_DOWN(__pa(pgd)));
+	pin_page(virt_to_page(pgd), PT_PGD);
 
 	xen_mc_issue(0);
 }
@@ -591,9 +591,9 @@ void xen_pgd_unpin(pgd_t *pgd)
 	xen_mc_batch();
 
 #ifdef CONFIG_X86_64
-	xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(__user_pgd(pgd))));
+	unpin_page(virt_to_page(__user_pgd(pgd)), PT_PGD);
 #endif
-	xen_do_pin(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
+	unpin_page(virt_to_page(pgd), PT_PGD);
 
 #ifdef CONFIG_X86_64
 	pgd_walk(PARENT_FIRST, __user_pgd(pgd), unpin_page, 0, TASK_SIZE);
-- 
1.5.4.1


linux-2.6-xen-0137-Allow-enabling-Xen-on-x86_64.patch:

--- NEW FILE linux-2.6-xen-0137-Allow-enabling-Xen-on-x86_64.patch ---
>From 95b18cbbcbae088df20cb06da439df34ebba6710 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 29 Feb 2008 13:07:13 -0300
Subject: [PATCH] Allow enabling Xen on x86_64

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/Kconfig |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index ff6a56a..ef1aaf2 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -5,7 +5,6 @@
 config XEN
 	bool "Xen guest support"
 	select PARAVIRT
-	depends on X86_32
 	depends on X86_CMPXCHG && X86_TSC && !NEED_MULTIPLE_NODES && !(X86_VISWS || X86_VOYAGER)
 	help
 	  This is the Linux Xen port.  Enabling this will allow the
-- 
1.5.4.1


linux-2.6-xen-0138-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch:

--- NEW FILE linux-2.6-xen-0138-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch ---
>From 8db2973f7f8d3f0a9c2aa7531fcd7c7c65fdd78e Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 29 Feb 2008 13:21:11 -0300
Subject: [PATCH] Add #include <linux/spinlock_types.h> to asm-x86/pgtable.h

Needed for spinlock_t type.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/pgtable.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index 4d8d1b9..29824af 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -137,6 +137,8 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
 
 #ifndef __ASSEMBLY__
 
+#include <linux/spinlock_types.h>
+
 /*
  * ZERO_PAGE is a global shared page that is always zero: used
  * for zero-mapped memory areas etc..
-- 
1.5.4.1


linux-2.6-xen-0139-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch:

--- NEW FILE linux-2.6-xen-0139-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch ---
>From 0e3eb2e673995a3d6ff5bb013e2124d122b4c0f0 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 29 Feb 2008 17:29:45 -0300
Subject: [PATCH] Restore some sanity on the initial pagetable bootmem reservation

One less #ifdef!  :)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c    |    8 +++-----
 arch/x86/xen/enlighten.c |    6 ------
 2 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index e1a071f..e21c9a4 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -831,11 +831,11 @@ static void __init find_early_table_space(unsigned long end)
 		round_up(pmds * 8, PAGE_SIZE) + 
 		round_up(ptes * 8, PAGE_SIZE); 
 
-	/*FIXME: what does this do? */
+	table_start = xen_alloc_pfn;
+
 	xen_extend_init_mapping(tables);
 
-	table_start = xen_alloc_pfn;
-	table_end = table_start + (tables>>PAGE_SHIFT);
+	table_end = xen_alloc_pfn + (tables>>PAGE_SHIFT);
 
 	printk("kernel direct mapping tables up to %lx @ %lx-%lx\n",
 		end, table_start << PAGE_SHIFT,
@@ -943,11 +943,9 @@ void __init_refok init_memory_mapping(unsigned long start, unsigned long end)
 	 *   - If that works, we may remove lots of xen-specific
 	 *     bootmem reservation
 	 */
-#ifndef CONFIG_XEN
 	if (!after_bootmem)
 		reserve_early(table_start << PAGE_SHIFT,
 				 table_end << PAGE_SHIFT, "PGTABLE");
-#endif
 }
 
 #ifndef CONFIG_NUMA
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index fc2f956..d51ea4c 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1016,12 +1016,6 @@ static __init void xen_pagetable_setup_done(pgd_t *base)
 		pin_pagetable_pfn(level, PFN_DOWN(__pa(base)));
 	}
 #endif
-
-#ifdef CONFIG_X86_64
-	reserve_bootmem(xen_start_pfn << PAGE_SHIFT,
-			(xen_alloc_pfn - xen_start_pfn) << PAGE_SHIFT,
-			BOOTMEM_DEFAULT);
-#endif
 }
 
 /* This is called once we have the cpu_possible_map */
-- 
1.5.4.1


linux-2.6-xen-0140-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch:

--- NEW FILE linux-2.6-xen-0140-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch ---
>From c68854bb80ef3d1f222d5da31f17da0d672be18c Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 25 Jan 2008 13:05:29 -0200
Subject: [PATCH] Xen: Use system_call_after_swapgs() as the syscall callback

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/setup.c    |    2 +-
 include/asm-x86/proto.h |    1 +
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 1409021..a64385d 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -100,7 +100,7 @@ void __init xen_arch_setup(void)
 #else
 	HYPERVISOR_set_callbacks((unsigned long)xen_hypervisor_callback,
 				 (unsigned long)xen_failsafe_callback,
-				 (unsigned long)system_call);
+				 (unsigned long)system_call_after_swapgs);
 #endif
 
 	set_iopl.iopl = 1;
diff --git a/include/asm-x86/proto.h b/include/asm-x86/proto.h
index 68563c0..b562df5 100644
--- a/include/asm-x86/proto.h
+++ b/include/asm-x86/proto.h
@@ -10,6 +10,7 @@ extern void early_idt_handler(void);
 extern void init_memory_mapping(unsigned long start, unsigned long end);
 
 extern void system_call(void);
+extern void system_call_after_swapgs(void);
 extern void syscall_init(void);
 
 extern void ia32_syscall(void);
-- 
1.5.4.1


linux-2.6-xen-0141-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch:

--- NEW FILE linux-2.6-xen-0141-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch ---
>From 05e7ee7f1aff8529929f3d8ea2b88ce8292ee36d Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 4 Feb 2008 17:26:46 -0200
Subject: [PATCH] Add a system_call_after_saveargs label to entry_64.S

It will be used by Xen syscall entry point.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/entry_64.S |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 1182250..7961d22 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -252,8 +252,11 @@ ENTRY(system_call_after_swapgs)
 	 */
 	ENABLE_INTERRUPTS(CLBR_NONE)
 	SAVE_ARGS 8,1
-	movq  %rax,ORIG_RAX-ARGOFFSET(%rsp) 
 	movq  %rcx,RIP-ARGOFFSET(%rsp)
+
+system_call_after_saveargs:
+
+	movq  %rax,ORIG_RAX-ARGOFFSET(%rsp) 
 	CFI_REL_OFFSET rip,RIP-ARGOFFSET
 	GET_THREAD_INFO(%rcx)
 	testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%rcx)
-- 
1.5.4.1


linux-2.6-xen-0142-Create-xen-specific-syscall-entry.patch:

--- NEW FILE linux-2.6-xen-0142-Create-xen-specific-syscall-entry.patch ---
>From f2a11a2838b5d64d96742570d28fb90cef86ca61 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 4 Feb 2008 17:36:08 -0200
Subject: [PATCH] Create xen-specific syscall entry

The stack and register saving for syscall entry is very different under
xen. xen_system_call_entry just handle the register saving and jumps
to system_call_after_saveargs, inside system_call.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/entry_64.S |   15 +++++++++++++++
 arch/x86/xen/setup.c    |    2 +-
 arch/x86/xen/xen-ops.h  |    1 +
 3 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/entry_64.S b/arch/x86/xen/entry_64.S
index 2a2a0a0..5c8910b 100644
--- a/arch/x86/xen/entry_64.S
+++ b/arch/x86/xen/entry_64.S
@@ -51,3 +51,18 @@ ENTRY(xen_retint_swapgs)		/* return to user-space */
 	TRACE_IRQS_IRETQ
 	jmp restore_args
 END(xen_retint_swapgs)
+
+
+ENTRY(xen_system_call_entry)
+	CFI_STARTPROC	simple
+
+	//FIXME: CFI directives here
+
+	// We need additional space for orig_ax.
+	// That would be SAVE_ARGS 8, but we already have
+	// r11 and rcx saved on the stack
+	SAVE_ARGS -8
+
+	jmp system_call_after_saveargs
+	CFI_ENDPROC
+END(xen_system_call_entry)
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index a64385d..7b0468f 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -100,7 +100,7 @@ void __init xen_arch_setup(void)
 #else
 	HYPERVISOR_set_callbacks((unsigned long)xen_hypervisor_callback,
 				 (unsigned long)xen_failsafe_callback,
-				 (unsigned long)system_call_after_swapgs);
+				 (unsigned long)xen_system_call_entry);
 #endif
 
 	set_iopl.iopl = 1;
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index b523062..4bd901c 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -74,4 +74,5 @@ void xen_iret_direct(void);
 void xen_iret(void);
 void xen_irqenable_syscall_ret(void);
 
+void xen_system_call_entry(void);
 #endif /* XEN_OPS_H */
-- 
1.5.4.1


linux-2.6-xen-0143-syscall-related-Xen-ifdefs-FIXME.patch:

--- NEW FILE linux-2.6-xen-0143-syscall-related-Xen-ifdefs-FIXME.patch ---
>From baa52491ff301a2b5959d59bb55f9cb96bb16b7e Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 4 Feb 2008 17:38:24 -0200
Subject: [PATCH] syscall-related Xen #ifdefs (FIXME)

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/kernel/entry_64.S |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 7961d22..215b16d 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -96,20 +96,29 @@ ENTRY(native_irq_enable_syscall_ret)
 		
 	/* %rsp:at FRAMEEND */ 
 	.macro FIXUP_TOP_OF_STACK tmp
+#ifndef CONFIG_XEN
+	/*FIXME: check this at runtime */
 	movq	%gs:pda_oldrsp,\tmp
 	movq  	\tmp,RSP(%rsp)
+#endif
 	movq    $__USER_DS,SS(%rsp)
 	movq    $__USER_CS,CS(%rsp)
 	movq 	$-1,RCX(%rsp)
+#ifndef CONFIG_XEN
+	/*FIXME: check this at runtime */
 	movq	R11(%rsp),\tmp  /* get eflags */
 	movq	\tmp,EFLAGS(%rsp)
+#endif
 	.endm
 
 	.macro RESTORE_TOP_OF_STACK tmp,offset=0
+#ifndef CONFIG_XEN
+	/*FIXME: check this at runtime */
 	movq   RSP-\offset(%rsp),\tmp
 	movq   \tmp,%gs:pda_oldrsp
 	movq   EFLAGS-\offset(%rsp),\tmp
 	movq   \tmp,R11-\offset(%rsp)
+#endif
 	.endm
 
 	.macro FAKE_STACK_FRAME child_rip
@@ -288,7 +297,12 @@ sysret_check:
 	TRACE_IRQS_ON
 	movq RIP-ARGOFFSET(%rsp),%rcx
 	CFI_REGISTER	rip,rcx
+#ifndef CONFIG_XEN
+	/*FIXME: change this at runtime */
 	RESTORE_ARGS 0,-ARG_SKIP,1
+#else
+	RESTORE_ARGS 0,8,0
+#endif
 	/*CFI_REGISTER	rflags,r11*/
 	ENABLE_INTERRUPTS_SYSCALL_RET
 
-- 
1.5.4.1


linux-2.6-xen-0144-Point-set_pte-to-xen_set_pte-since-the-beginning.patch:

--- NEW FILE linux-2.6-xen-0144-Point-set_pte-to-xen_set_pte-since-the-beginning.patch ---
>From b2a498b4d2d6f2d0c577b970f9df51c260b9903a Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 8 Feb 2008 12:36:28 -0200
Subject: [PATCH] Point set_pte() to xen_set_pte() since the beginning

On x86_64, set_pte() may end up being called before
paravirt_pagetable_setup_start().

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index d51ea4c..9c89197 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1258,7 +1258,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initdata = {
 	.kmap_atomic_pte = xen_kmap_atomic_pte,
 #endif
 
-	.set_pte = NULL,	/* see xen_pagetable_setup_* */
+	.set_pte = xen_set_pte,
 	.set_pte_at = xen_set_pte_at,
 	.set_pmd = xen_set_pmd,
 
-- 
1.5.4.1


linux-2.6-xen-0145-DEBUG-slab-debugging.patch:

--- NEW FILE linux-2.6-xen-0145-DEBUG-slab-debugging.patch ---
>From 7af26104fdaf26b999bae7881f84e8ef5a81d1d7 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Fri, 8 Feb 2008 16:37:16 -0200
Subject: [PATCH] DEBUG: slab debugging

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 mm/slab.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/mm/slab.c b/mm/slab.c
index ed27eb8..d434cc3 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3201,6 +3201,8 @@ static inline void *____cache_alloc(struct kmem_cache *cachep, gfp_t flags)
 		STATS_INC_ALLOCHIT(cachep);
 		ac->touched = 1;
 		objp = ac->entry[--ac->avail];
+		if (!objp)
+			printk("really weird: avail objp for cache %s is null\n", cachep->name);
 	} else {
 		STATS_INC_ALLOCMISS(cachep);
 		objp = cache_alloc_refill(cachep, flags);
@@ -3463,8 +3465,10 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
 	unsigned long save_flags;
 	void *objp;
 
-	if (should_failslab(cachep, flags))
+	if (should_failslab(cachep, flags)) {
+		printk("cache %s should fail\n", cachep->name);
 		return NULL;
+	}
 
 	cache_alloc_debugcheck_before(cachep, flags);
 	local_irq_save(save_flags);
@@ -3476,6 +3480,8 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
 	if (unlikely((flags & __GFP_ZERO) && objp))
 		memset(objp, 0, obj_size(cachep));
 
+	if (!objp)
+		printk("allocation from cache %s failed!!!\n", cachep->name);
 	return objp;
 }
 
-- 
1.5.4.1


linux-2.6-xen-0146-pvops-64-Include-rsi-on-the-register-clobber-list.patch:

--- NEW FILE linux-2.6-xen-0146-pvops-64-Include-rsi-on-the-register-clobber-list.patch ---
>From daba9071bdaf832fb571dadcc93bb2ae063ae6bb Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 20 Feb 2008 19:03:55 -0300
Subject: [PATCH] pvops-64: Include %rsi on the register clobber list for IRQ functions (REVIEWME)

The IRQ functions may be C functions, and they may clobber RSI.

Probably the best option will be saving it to avoid clobbering it after
the IRQ functions' call places are patched. Clobbering too much registers
when most IRQ functions will use none on few of them isn't a good idea.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/paravirt.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index 20a930f..784ea98 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -1291,8 +1291,8 @@ extern struct paravirt_patch_site __parainstructions[],
  * caller saved registers but the argument parameter */
 #define PV_SAVE_REGS "pushq %%rdi;"
 #define PV_RESTORE_REGS "popq %%rdi;"
-#define PV_EXTRA_CLOBBERS EXTRA_CLOBBERS, "rcx" , "rdx"
-#define PV_VEXTRA_CLOBBERS EXTRA_CLOBBERS, "rdi", "rcx" , "rdx"
+#define PV_EXTRA_CLOBBERS EXTRA_CLOBBERS, "rsi", "rcx" , "rdx"
+#define PV_VEXTRA_CLOBBERS EXTRA_CLOBBERS, "rdi", "rsi", "rcx" , "rdx"
 #define PV_FLAGS_ARG "D"
 #endif
 
-- 
1.5.4.1


linux-2.6-xen-0147-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch:

--- NEW FILE linux-2.6-xen-0147-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch ---
>From 829361bb2026afd8746348de649931fccfb37623 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Wed, 20 Feb 2008 19:04:43 -0300
Subject: [PATCH] Xen-64: quick, ugly hack to fix pgd_clear() pagetable unpinning (FIXME)

Should be fixed properly later.

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 include/asm-x86/paravirt.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index 784ea98..3fddadc 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -1146,6 +1146,10 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
 static inline void pgd_clear(pgd_t *pgdp)
 {
 	set_pgd(pgdp, __pgd(0));
+#ifdef CONFIG_X86_64
+	/*FIXME: ugly ugly ugly ugly ugly ugly hack */
+	set_pgd((pgd_t*)(((unsigned long)pgdp)+PAGE_SIZE), __pgd(0));
+#endif
 }
 
 static inline void pud_clear(pud_t *pudp)
-- 
1.5.4.1


linux-2.6-xen-0148-Add-missing-acpi-include-to-xen-setup.c.patch:

--- NEW FILE linux-2.6-xen-0148-Add-missing-acpi-include-to-xen-setup.c.patch ---
>From 87e64cd78a68114eb8c2814bf5fcc9c4494bf085 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Tue, 4 Mar 2008 16:59:21 -0300
Subject: [PATCH] Add missing acpi #include to xen/setup.c

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/setup.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index 7b0468f..f731e0b 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -21,6 +21,7 @@
 #include <xen/features.h>
 
 #include <asm/proto.h>
+#include <asm/acpi.h>
 
 #include "xen-ops.h"
 #include "vdso.h"
-- 
1.5.4.1


linux-2.6-xen-0149-Don-t-use-FIX_VDSO-on-64-bit.patch:

--- NEW FILE linux-2.6-xen-0149-Don-t-use-FIX_VDSO-on-64-bit.patch ---
>From 7c9e8b430d7488cc82dc5e539696354670bcb56b Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Mon, 3 Mar 2008 14:46:56 -0300
Subject: [PATCH] Don't use FIX_VDSO on 64-bit

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 9c89197..98b78d4 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1106,7 +1106,9 @@ static void xen_set_fixmap(unsigned idx, unsigned long phys, pgprot_t prot)
 	case FIX_F00F_IDT:
 #endif
 	case FIX_WP_TEST:
+#ifndef CONFIG_X86_64
 	case FIX_VDSO:
+#endif
 #ifdef CONFIG_X86_LOCAL_APIC
 	case FIX_APIC_BASE:	/* maps dummy local APIC */
 #endif
-- 
1.5.4.1


linux-2.6-xen-0150-Mark-init-pages-read-write-again-on-free_init_pages.patch:

--- NEW FILE linux-2.6-xen-0150-Mark-init-pages-read-write-again-on-free_init_pages.patch ---
>From 631a67a4228d34e4d7599eb04388788227ffcd09 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Thu, 3 Apr 2008 19:09:09 -0300
Subject: [PATCH] Mark init pages read-write again on free_init_pages()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index e21c9a4..763914c 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -1073,6 +1073,13 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
 		begin, PAGE_ALIGN(end));
 	set_memory_np(begin, (end - begin) >> PAGE_SHIFT);
 #else
+	/*
+	 * We just marked the kernel text read only above, now that
+	 * we are going to free part of that, we need to make that
+	 * writeable first.
+	 */
+	set_memory_rw(begin, (end - begin) >> PAGE_SHIFT);
+
 	printk(KERN_INFO "Freeing %s: %luk freed\n", what, (end - begin) >> 10);
 
 	for (; addr < end; addr += PAGE_SIZE) {
-- 
1.5.4.1


linux-2.6-xen-0151-reserve_early-kernel-text-and-data-segments.patch:

--- NEW FILE linux-2.6-xen-0151-reserve_early-kernel-text-and-data-segments.patch ---
>From 61765419df0032625b3b18c822b25331408914e1 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Thu, 3 Apr 2008 19:10:10 -0300
Subject: [PATCH] reserve_early() kernel text and data segments

Just like on start_kernel()

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/xen/enlighten.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 98b78d4..1a72632 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -48,6 +48,7 @@
 #include <asm/tlbflush.h>
 #include <asm/reboot.h>
 #include <asm/proto.h>
+#include <asm/sections.h>
 
 #include "xen-ops.h"
 #include "mmu.h"
@@ -1445,6 +1446,8 @@ asmlinkage void __init xen_start_kernel(void)
 	   possible map and a non-dummy shared_info. */
 	per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
 
+	reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS");
+
 	xprintk("xen_init_pt:\n");
 	xen_init_pt();
 	xprintk("xen_init_pt returned.\n");
-- 
1.5.4.1


linux-2.6-xen-0152-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch:

--- NEW FILE linux-2.6-xen-0152-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch ---
>From 5d387968dffdfb66ccf8bc0938b5416f0d482e94 Mon Sep 17 00:00:00 2001
From: Eduardo Habkost <ehabkost at redhat.com>
Date: Tue, 15 Apr 2008 17:59:31 -0300
Subject: [PATCH] Xen: Clear __START_KERNEL_map PTEs on free_init_pages() (REVIEWME)

We need to kill the __START_KERNEL_map aliases of the freed init pages
otherwise we won't be able to pin those pages as pagetables later, because
there will be a read-write alias even after make_lowpage_readonly().

Probably using set_memory_ro() instead of make_lowpage_readonly()
when pinning pages will be better.

This should fix the pagetable pinning problems reported at
https://bugzilla.redhat.com/show_bug.cgi?id=441543

Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch/x86/mm/init_64.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 763914c..d4083c8 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -1089,6 +1089,16 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
 			POISON_FREE_INITMEM, PAGE_SIZE);
 		free_page(addr);
 		totalram_pages++;
+		if (begin >= __START_KERNEL_map) {
+			pte_t *kpte;
+			unsigned int l;
+			/* __START_KERNEL_map addresses must be unmapped
+			 * because we map physical memory at __PAGE_OFFSET
+			 * and we don't want to keep aliases.
+			 */
+			kpte = lookup_address(addr, &l);
+			set_pte(kpte, __pte(0));
+		}
 	}
 #endif
 }
-- 
1.5.4.1







Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/kernel.spec,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- kernel.spec	15 Apr 2008 22:43:53 -0000	1.38
+++ kernel.spec	16 Apr 2008 10:15:41 -0000	1.39
@@ -753,80 +753,75 @@
 Patch5080: linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch
 Patch5081: linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch
 Patch5082: linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch
-Patch5083: linux-2.6-xen-0084-Make-hvc_xen-console-use-xprintk-TEMPORARY.patch
-Patch5084: linux-2.6-xen-0085-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch
-Patch5085: linux-2.6-xen-0086-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch
-Patch5086: linux-2.6-xen-0087-Implement-asm-xen_iret.patch
-Patch5087: linux-2.6-xen-0088-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch
-Patch5088: linux-2.6-xen-0089-Implement-xen_irqenable_syscall_ret.patch
-Patch5089: linux-2.6-xen-0090-DEBUG-xen_iret-always-return-through-the-hyperviso.patch
-Patch5090: linux-2.6-xen-0091-Implement-some-xen-callbacks-on-xen-entry_64.S.patch
-Patch5091: linux-2.6-xen-0092-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch
-Patch5092: linux-2.6-xen-0093-Disable-syscall32-code-temporarily-FIXME.patch
-Patch5093: linux-2.6-xen-0094-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch
-Patch5094: linux-2.6-xen-0095-Use-apic_xen-on-genapic-by-default-FIXME.patch
-Patch5095: linux-2.6-xen-0096-irq-vector-ifdef-chainsaw-FIXME.patch
-Patch5096: linux-2.6-xen-0097-ifdef-chainsaw-on-syscall_init-FIXME.patch
-Patch5097: linux-2.6-xen-0098-Pull-xen-genapic-implementation-from-upstream-Xen.patch
-Patch5098: linux-2.6-xen-0099-Debugging-printk-s.patch
-Patch5099: linux-2.6-xen-0100-Leave-lazy_cpu_mode-on-__switch_to.patch
-Patch5100: linux-2.6-xen-0101-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch
-Patch5101: linux-2.6-xen-0102-Disable-vcpu_info_placement-temporarily-FIXME.patch
-Patch5102: linux-2.6-xen-0103-Fix-typo-on-ifdef-again.patch
-Patch5103: linux-2.6-xen-0104-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch
-Patch5104: linux-2.6-xen-0105-Make-load_gs_index-a-paravirt-operation.patch
-Patch5105: linux-2.6-xen-0106-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch
-Patch5106: linux-2.6-xen-0107-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch
-Patch5107: linux-2.6-xen-0108-xen-pgd_walk-accept-start-parameter.patch
-Patch5108: linux-2.6-xen-0109-xen-64-reserve_bootmem-xen_start_info-area.patch
-Patch5109: linux-2.6-xen-0110-pvops-64-call-paravirt_post_allocator_init-on-set.patch
-Patch5110: linux-2.6-xen-0111-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch
-Patch5111: linux-2.6-xen-0112-xen-64-implement-xen_load_gs_index.patch
-Patch5112: linux-2.6-xen-0113-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch
-Patch5113: linux-2.6-xen-0114-Multi-pagetable-write_cr3-implementation-FIXME.patch
-Patch5114: linux-2.6-xen-0115-Make-kcons_write_dom0-non-static-TEMPORARY.patch
-Patch5115: linux-2.6-xen-0116-Disable-the-weird-count-loop-on-kcons_write_dom0.patch
-Patch5116: linux-2.6-xen-0117-Make-xen_start_info-read-only.patch
-Patch5117: linux-2.6-xen-0118-Hack-to-implement-return-to-userspace-without-SWAPGS.patch
-Patch5118: linux-2.6-xen-0119-Xen-SEGBASE_-defines.patch
-Patch5119: linux-2.6-xen-0120-Xen-HYPERVISOR_set_segment_base-implementation.patch
-Patch5120: linux-2.6-xen-0121-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch
-Patch5121: linux-2.6-xen-0122-Comment-e820_print_map-call-TEMPORARY.patch
-Patch5122: linux-2.6-xen-0123-Xen-missing-includes.patch
-Patch5123: linux-2.6-xen-0124-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch
-Patch5124: linux-2.6-xen-0125-asm-x86-pgtable.h-include-asm-page.h.patch
-Patch5125: linux-2.6-xen-0126-fix-pxxval_t-usage-on-mm-init_64.c.patch
-Patch5126: linux-2.6-xen-0127-Missing-Xen-include.patch
-Patch5127: linux-2.6-xen-0128-un-static-ipi_to_irq.patch
-Patch5128: linux-2.6-xen-0129-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch
-Patch5129: linux-2.6-xen-0130-Trying-to-organize-the-xen-bootmem-allocation-mess.patch
-Patch5130: linux-2.6-xen-0131-Don-t-call-xprintk-when-writing-to-hvc-console.patch
-Patch5131: linux-2.6-xen-0132-Xen-reserve_bootmem-xenstore-and-console-interfac.patch
-Patch5132: linux-2.6-xen-0133-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch
-Patch5133: linux-2.6-xen-0134-Xen-64-bit-support-on-xen_pgd_pin.patch
-Patch5134: linux-2.6-xen-0135-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch
-Patch5135: linux-2.6-xen-0136-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch
-Patch5136: linux-2.6-xen-0137-Xen-Add-a-order-parameter-to-pgd_walk.patch
-Patch5137: linux-2.6-xen-0138-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch
-Patch5138: linux-2.6-xen-0139-Use-un-pin_page-when-un-pinning-pgd.patch
-Patch5139: linux-2.6-xen-0140-Allow-enabling-Xen-on-x86_64.patch
-Patch5140: linux-2.6-xen-0141-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch
-Patch5141: linux-2.6-xen-0142-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch
-Patch5142: linux-2.6-xen-0143-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch
-Patch5143: linux-2.6-xen-0144-DEBUG-write-to-HV-console-on-printk.patch
-Patch5144: linux-2.6-xen-0145-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch
-Patch5145: linux-2.6-xen-0146-Create-xen-specific-syscall-entry.patch
-Patch5146: linux-2.6-xen-0147-syscall-related-Xen-ifdefs-FIXME.patch
-Patch5147: linux-2.6-xen-0148-Point-set_pte-to-xen_set_pte-since-the-beginning.patch
-Patch5148: linux-2.6-xen-0149-DEBUG-slab-debugging.patch
-Patch5149: linux-2.6-xen-0150-pvops-64-Include-rsi-on-the-register-clobber-list.patch
-Patch5150: linux-2.6-xen-0151-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch
-Patch5151: linux-2.6-xen-0152-Add-missing-acpi-include-to-xen-setup.c.patch
-Patch5152: linux-2.6-xen-0153-Don-t-use-FIX_VDSO-on-64-bit.patch
-Patch5153: linux-2.6-xen-0154-Mark-init-pages-read-write-again-on-free_init_pages.patch
-Patch5154: linux-2.6-xen-0155-reserve_early-kernel-text-and-data-segments.patch
-Patch5155: linux-2.6-xen-0156-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch
-Patch5156: linux-2.6-xen-0157-Xen-64-Unpin-and-mark-PGD-as-read-write-on-pgd_free.patch
+Patch5083: linux-2.6-xen-0084-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch
+Patch5084: linux-2.6-xen-0085-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch
+Patch5085: linux-2.6-xen-0086-Implement-asm-xen_iret.patch
+Patch5086: linux-2.6-xen-0087-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch
+Patch5087: linux-2.6-xen-0088-Implement-xen_irqenable_syscall_ret.patch
+Patch5088: linux-2.6-xen-0089-DEBUG-xen_iret-always-return-through-the-hyperviso.patch
+Patch5089: linux-2.6-xen-0090-Implement-some-xen-callbacks-on-xen-entry_64.S.patch
+Patch5090: linux-2.6-xen-0091-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch
+Patch5091: linux-2.6-xen-0092-Disable-syscall32-code-temporarily-FIXME.patch
+Patch5092: linux-2.6-xen-0093-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch
+Patch5093: linux-2.6-xen-0094-Use-apic_xen-on-genapic-by-default-FIXME.patch
+Patch5094: linux-2.6-xen-0095-irq-vector-ifdef-chainsaw-FIXME.patch
+Patch5095: linux-2.6-xen-0096-ifdef-chainsaw-on-syscall_init-FIXME.patch
+Patch5096: linux-2.6-xen-0097-Pull-xen-genapic-implementation-from-upstream-Xen.patch
+Patch5097: linux-2.6-xen-0098-Debugging-printk-s.patch
+Patch5098: linux-2.6-xen-0099-Leave-lazy_cpu_mode-on-__switch_to.patch
+Patch5099: linux-2.6-xen-0100-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch
+Patch5100: linux-2.6-xen-0101-Disable-vcpu_info_placement-temporarily-FIXME.patch
+Patch5101: linux-2.6-xen-0102-Fix-typo-on-ifdef-again.patch
+Patch5102: linux-2.6-xen-0103-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch
+Patch5103: linux-2.6-xen-0104-Make-load_gs_index-a-paravirt-operation.patch
+Patch5104: linux-2.6-xen-0105-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch
+Patch5105: linux-2.6-xen-0106-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch
+Patch5106: linux-2.6-xen-0107-xen-pgd_walk-accept-start-parameter.patch
+Patch5107: linux-2.6-xen-0108-xen-64-reserve_bootmem-xen_start_info-area.patch
+Patch5108: linux-2.6-xen-0109-pvops-64-call-paravirt_post_allocator_init-on-set.patch
+Patch5109: linux-2.6-xen-0110-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch
+Patch5110: linux-2.6-xen-0111-xen-64-implement-xen_load_gs_index.patch
+Patch5111: linux-2.6-xen-0112-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch
+Patch5112: linux-2.6-xen-0113-Multi-pagetable-write_cr3-implementation-FIXME.patch
+Patch5113: linux-2.6-xen-0114-Disable-the-weird-count-loop-on-kcons_write_dom0.patch
+Patch5114: linux-2.6-xen-0115-Make-xen_start_info-read-only.patch
+Patch5115: linux-2.6-xen-0116-Hack-to-implement-return-to-userspace-without-SWAPGS.patch
+Patch5116: linux-2.6-xen-0117-Xen-SEGBASE_-defines.patch
+Patch5117: linux-2.6-xen-0118-Xen-HYPERVISOR_set_segment_base-implementation.patch
+Patch5118: linux-2.6-xen-0119-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch
+Patch5119: linux-2.6-xen-0120-Comment-e820_print_map-call-TEMPORARY.patch
+Patch5120: linux-2.6-xen-0121-Xen-missing-includes.patch
+Patch5121: linux-2.6-xen-0122-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch
+Patch5122: linux-2.6-xen-0123-asm-x86-pgtable.h-include-asm-page.h.patch
+Patch5123: linux-2.6-xen-0124-fix-pxxval_t-usage-on-mm-init_64.c.patch
+Patch5124: linux-2.6-xen-0125-Missing-Xen-include.patch
+Patch5125: linux-2.6-xen-0126-un-static-ipi_to_irq.patch
+Patch5126: linux-2.6-xen-0127-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch
+Patch5127: linux-2.6-xen-0128-Trying-to-organize-the-xen-bootmem-allocation-mess.patch
+Patch5128: linux-2.6-xen-0129-Xen-reserve_bootmem-xenstore-and-console-interfac.patch
+Patch5129: linux-2.6-xen-0130-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch
+Patch5130: linux-2.6-xen-0131-Xen-64-bit-support-on-xen_pgd_pin.patch
+Patch5131: linux-2.6-xen-0132-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch
+Patch5132: linux-2.6-xen-0133-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch
+Patch5133: linux-2.6-xen-0134-Xen-Add-a-order-parameter-to-pgd_walk.patch
+Patch5134: linux-2.6-xen-0135-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch
+Patch5135: linux-2.6-xen-0136-Use-un-pin_page-when-un-pinning-pgd.patch
+Patch5136: linux-2.6-xen-0137-Allow-enabling-Xen-on-x86_64.patch
+Patch5137: linux-2.6-xen-0138-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch
+Patch5138: linux-2.6-xen-0139-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch
+Patch5139: linux-2.6-xen-0140-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch
+Patch5140: linux-2.6-xen-0141-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch
+Patch5141: linux-2.6-xen-0142-Create-xen-specific-syscall-entry.patch
+Patch5142: linux-2.6-xen-0143-syscall-related-Xen-ifdefs-FIXME.patch
+Patch5143: linux-2.6-xen-0144-Point-set_pte-to-xen_set_pte-since-the-beginning.patch
+Patch5144: linux-2.6-xen-0145-DEBUG-slab-debugging.patch
+Patch5145: linux-2.6-xen-0146-pvops-64-Include-rsi-on-the-register-clobber-list.patch
+Patch5146: linux-2.6-xen-0147-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch
+Patch5147: linux-2.6-xen-0148-Add-missing-acpi-include-to-xen-setup.c.patch
+Patch5148: linux-2.6-xen-0149-Don-t-use-FIX_VDSO-on-64-bit.patch
+Patch5149: linux-2.6-xen-0150-Mark-init-pages-read-write-again-on-free_init_pages.patch
+Patch5150: linux-2.6-xen-0151-reserve_early-kernel-text-and-data-segments.patch
+Patch5151: linux-2.6-xen-0152-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch
 # kernel-xen patches end
 
 # Xen hypervisor patches (20000+)
@@ -1452,80 +1447,75 @@
 ApplyPatch linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch
 ApplyPatch linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch
 ApplyPatch linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch
-ApplyPatch linux-2.6-xen-0084-Make-hvc_xen-console-use-xprintk-TEMPORARY.patch
-ApplyPatch linux-2.6-xen-0085-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch
-ApplyPatch linux-2.6-xen-0086-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch
-ApplyPatch linux-2.6-xen-0087-Implement-asm-xen_iret.patch
-ApplyPatch linux-2.6-xen-0088-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch
-ApplyPatch linux-2.6-xen-0089-Implement-xen_irqenable_syscall_ret.patch
-ApplyPatch linux-2.6-xen-0090-DEBUG-xen_iret-always-return-through-the-hyperviso.patch
-ApplyPatch linux-2.6-xen-0091-Implement-some-xen-callbacks-on-xen-entry_64.S.patch
-ApplyPatch linux-2.6-xen-0092-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch
-ApplyPatch linux-2.6-xen-0093-Disable-syscall32-code-temporarily-FIXME.patch
-ApplyPatch linux-2.6-xen-0094-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch
-ApplyPatch linux-2.6-xen-0095-Use-apic_xen-on-genapic-by-default-FIXME.patch
-ApplyPatch linux-2.6-xen-0096-irq-vector-ifdef-chainsaw-FIXME.patch
-ApplyPatch linux-2.6-xen-0097-ifdef-chainsaw-on-syscall_init-FIXME.patch
-ApplyPatch linux-2.6-xen-0098-Pull-xen-genapic-implementation-from-upstream-Xen.patch
-ApplyPatch linux-2.6-xen-0099-Debugging-printk-s.patch
-ApplyPatch linux-2.6-xen-0100-Leave-lazy_cpu_mode-on-__switch_to.patch
-ApplyPatch linux-2.6-xen-0101-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch
-ApplyPatch linux-2.6-xen-0102-Disable-vcpu_info_placement-temporarily-FIXME.patch
-ApplyPatch linux-2.6-xen-0103-Fix-typo-on-ifdef-again.patch
-ApplyPatch linux-2.6-xen-0104-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch
-ApplyPatch linux-2.6-xen-0105-Make-load_gs_index-a-paravirt-operation.patch
-ApplyPatch linux-2.6-xen-0106-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch
-ApplyPatch linux-2.6-xen-0107-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch
-ApplyPatch linux-2.6-xen-0108-xen-pgd_walk-accept-start-parameter.patch
-ApplyPatch linux-2.6-xen-0109-xen-64-reserve_bootmem-xen_start_info-area.patch
-ApplyPatch linux-2.6-xen-0110-pvops-64-call-paravirt_post_allocator_init-on-set.patch
-ApplyPatch linux-2.6-xen-0111-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch
-ApplyPatch linux-2.6-xen-0112-xen-64-implement-xen_load_gs_index.patch
-ApplyPatch linux-2.6-xen-0113-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch
-ApplyPatch linux-2.6-xen-0114-Multi-pagetable-write_cr3-implementation-FIXME.patch
-ApplyPatch linux-2.6-xen-0115-Make-kcons_write_dom0-non-static-TEMPORARY.patch
-ApplyPatch linux-2.6-xen-0116-Disable-the-weird-count-loop-on-kcons_write_dom0.patch
-ApplyPatch linux-2.6-xen-0117-Make-xen_start_info-read-only.patch
-ApplyPatch linux-2.6-xen-0118-Hack-to-implement-return-to-userspace-without-SWAPGS.patch
-ApplyPatch linux-2.6-xen-0119-Xen-SEGBASE_-defines.patch
-ApplyPatch linux-2.6-xen-0120-Xen-HYPERVISOR_set_segment_base-implementation.patch
-ApplyPatch linux-2.6-xen-0121-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch
-ApplyPatch linux-2.6-xen-0122-Comment-e820_print_map-call-TEMPORARY.patch
-ApplyPatch linux-2.6-xen-0123-Xen-missing-includes.patch
-ApplyPatch linux-2.6-xen-0124-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch
-ApplyPatch linux-2.6-xen-0125-asm-x86-pgtable.h-include-asm-page.h.patch
-ApplyPatch linux-2.6-xen-0126-fix-pxxval_t-usage-on-mm-init_64.c.patch
-ApplyPatch linux-2.6-xen-0127-Missing-Xen-include.patch
-ApplyPatch linux-2.6-xen-0128-un-static-ipi_to_irq.patch
-ApplyPatch linux-2.6-xen-0129-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch
-ApplyPatch linux-2.6-xen-0130-Trying-to-organize-the-xen-bootmem-allocation-mess.patch
-ApplyPatch linux-2.6-xen-0131-Don-t-call-xprintk-when-writing-to-hvc-console.patch
-ApplyPatch linux-2.6-xen-0132-Xen-reserve_bootmem-xenstore-and-console-interfac.patch
-ApplyPatch linux-2.6-xen-0133-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch
-ApplyPatch linux-2.6-xen-0134-Xen-64-bit-support-on-xen_pgd_pin.patch
-ApplyPatch linux-2.6-xen-0135-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch
-ApplyPatch linux-2.6-xen-0136-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch
-ApplyPatch linux-2.6-xen-0137-Xen-Add-a-order-parameter-to-pgd_walk.patch
-ApplyPatch linux-2.6-xen-0138-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch
-ApplyPatch linux-2.6-xen-0139-Use-un-pin_page-when-un-pinning-pgd.patch
-ApplyPatch linux-2.6-xen-0140-Allow-enabling-Xen-on-x86_64.patch
-ApplyPatch linux-2.6-xen-0141-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch
-ApplyPatch linux-2.6-xen-0142-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch
-ApplyPatch linux-2.6-xen-0143-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch
-ApplyPatch linux-2.6-xen-0144-DEBUG-write-to-HV-console-on-printk.patch
-ApplyPatch linux-2.6-xen-0145-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch
-ApplyPatch linux-2.6-xen-0146-Create-xen-specific-syscall-entry.patch
-ApplyPatch linux-2.6-xen-0147-syscall-related-Xen-ifdefs-FIXME.patch
-ApplyPatch linux-2.6-xen-0148-Point-set_pte-to-xen_set_pte-since-the-beginning.patch
-ApplyPatch linux-2.6-xen-0149-DEBUG-slab-debugging.patch
-ApplyPatch linux-2.6-xen-0150-pvops-64-Include-rsi-on-the-register-clobber-list.patch
-ApplyPatch linux-2.6-xen-0151-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch
-ApplyPatch linux-2.6-xen-0152-Add-missing-acpi-include-to-xen-setup.c.patch
-ApplyPatch linux-2.6-xen-0153-Don-t-use-FIX_VDSO-on-64-bit.patch
-ApplyPatch linux-2.6-xen-0154-Mark-init-pages-read-write-again-on-free_init_pages.patch
-ApplyPatch linux-2.6-xen-0155-reserve_early-kernel-text-and-data-segments.patch
-ApplyPatch linux-2.6-xen-0156-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch
-ApplyPatch linux-2.6-xen-0157-Xen-64-Unpin-and-mark-PGD-as-read-write-on-pgd_free.patch
+ApplyPatch linux-2.6-xen-0084-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch
+ApplyPatch linux-2.6-xen-0085-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch
+ApplyPatch linux-2.6-xen-0086-Implement-asm-xen_iret.patch
+ApplyPatch linux-2.6-xen-0087-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch
+ApplyPatch linux-2.6-xen-0088-Implement-xen_irqenable_syscall_ret.patch
+ApplyPatch linux-2.6-xen-0089-DEBUG-xen_iret-always-return-through-the-hyperviso.patch
+ApplyPatch linux-2.6-xen-0090-Implement-some-xen-callbacks-on-xen-entry_64.S.patch
+ApplyPatch linux-2.6-xen-0091-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch
+ApplyPatch linux-2.6-xen-0092-Disable-syscall32-code-temporarily-FIXME.patch
+ApplyPatch linux-2.6-xen-0093-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch
+ApplyPatch linux-2.6-xen-0094-Use-apic_xen-on-genapic-by-default-FIXME.patch
+ApplyPatch linux-2.6-xen-0095-irq-vector-ifdef-chainsaw-FIXME.patch
+ApplyPatch linux-2.6-xen-0096-ifdef-chainsaw-on-syscall_init-FIXME.patch
+ApplyPatch linux-2.6-xen-0097-Pull-xen-genapic-implementation-from-upstream-Xen.patch
+ApplyPatch linux-2.6-xen-0098-Debugging-printk-s.patch
+ApplyPatch linux-2.6-xen-0099-Leave-lazy_cpu_mode-on-__switch_to.patch
+ApplyPatch linux-2.6-xen-0100-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch
+ApplyPatch linux-2.6-xen-0101-Disable-vcpu_info_placement-temporarily-FIXME.patch
+ApplyPatch linux-2.6-xen-0102-Fix-typo-on-ifdef-again.patch
+ApplyPatch linux-2.6-xen-0103-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch
+ApplyPatch linux-2.6-xen-0104-Make-load_gs_index-a-paravirt-operation.patch
+ApplyPatch linux-2.6-xen-0105-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch
+ApplyPatch linux-2.6-xen-0106-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch
+ApplyPatch linux-2.6-xen-0107-xen-pgd_walk-accept-start-parameter.patch
+ApplyPatch linux-2.6-xen-0108-xen-64-reserve_bootmem-xen_start_info-area.patch
+ApplyPatch linux-2.6-xen-0109-pvops-64-call-paravirt_post_allocator_init-on-set.patch
+ApplyPatch linux-2.6-xen-0110-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch
+ApplyPatch linux-2.6-xen-0111-xen-64-implement-xen_load_gs_index.patch
+ApplyPatch linux-2.6-xen-0112-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch
+ApplyPatch linux-2.6-xen-0113-Multi-pagetable-write_cr3-implementation-FIXME.patch
+ApplyPatch linux-2.6-xen-0114-Disable-the-weird-count-loop-on-kcons_write_dom0.patch
+ApplyPatch linux-2.6-xen-0115-Make-xen_start_info-read-only.patch
+ApplyPatch linux-2.6-xen-0116-Hack-to-implement-return-to-userspace-without-SWAPGS.patch
+ApplyPatch linux-2.6-xen-0117-Xen-SEGBASE_-defines.patch
+ApplyPatch linux-2.6-xen-0118-Xen-HYPERVISOR_set_segment_base-implementation.patch
+ApplyPatch linux-2.6-xen-0119-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch
+ApplyPatch linux-2.6-xen-0120-Comment-e820_print_map-call-TEMPORARY.patch
+ApplyPatch linux-2.6-xen-0121-Xen-missing-includes.patch
+ApplyPatch linux-2.6-xen-0122-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch
+ApplyPatch linux-2.6-xen-0123-asm-x86-pgtable.h-include-asm-page.h.patch
+ApplyPatch linux-2.6-xen-0124-fix-pxxval_t-usage-on-mm-init_64.c.patch
+ApplyPatch linux-2.6-xen-0125-Missing-Xen-include.patch
+ApplyPatch linux-2.6-xen-0126-un-static-ipi_to_irq.patch
+ApplyPatch linux-2.6-xen-0127-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch
+ApplyPatch linux-2.6-xen-0128-Trying-to-organize-the-xen-bootmem-allocation-mess.patch
+ApplyPatch linux-2.6-xen-0129-Xen-reserve_bootmem-xenstore-and-console-interfac.patch
+ApplyPatch linux-2.6-xen-0130-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch
+ApplyPatch linux-2.6-xen-0131-Xen-64-bit-support-on-xen_pgd_pin.patch
+ApplyPatch linux-2.6-xen-0132-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch
+ApplyPatch linux-2.6-xen-0133-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch
+ApplyPatch linux-2.6-xen-0134-Xen-Add-a-order-parameter-to-pgd_walk.patch
+ApplyPatch linux-2.6-xen-0135-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch
+ApplyPatch linux-2.6-xen-0136-Use-un-pin_page-when-un-pinning-pgd.patch
+ApplyPatch linux-2.6-xen-0137-Allow-enabling-Xen-on-x86_64.patch
+ApplyPatch linux-2.6-xen-0138-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch
+ApplyPatch linux-2.6-xen-0139-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch
+ApplyPatch linux-2.6-xen-0140-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch
+ApplyPatch linux-2.6-xen-0141-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch
+ApplyPatch linux-2.6-xen-0142-Create-xen-specific-syscall-entry.patch
+ApplyPatch linux-2.6-xen-0143-syscall-related-Xen-ifdefs-FIXME.patch
+ApplyPatch linux-2.6-xen-0144-Point-set_pte-to-xen_set_pte-since-the-beginning.patch
+ApplyPatch linux-2.6-xen-0145-DEBUG-slab-debugging.patch
+ApplyPatch linux-2.6-xen-0146-pvops-64-Include-rsi-on-the-register-clobber-list.patch
+ApplyPatch linux-2.6-xen-0147-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch
+ApplyPatch linux-2.6-xen-0148-Add-missing-acpi-include-to-xen-setup.c.patch
+ApplyPatch linux-2.6-xen-0149-Don-t-use-FIX_VDSO-on-64-bit.patch
+ApplyPatch linux-2.6-xen-0150-Mark-init-pages-read-write-again-on-free_init_pages.patch
+ApplyPatch linux-2.6-xen-0151-reserve_early-kernel-text-and-data-segments.patch
+ApplyPatch linux-2.6-xen-0152-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch
 %endif
 # kernel-xen apply end
 
@@ -2135,6 +2125,9 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
 
 %changelog
+* Wed Apr 16 2008 Mark McLoughlin <markmc at redhat.com>
+- Remove debugging printk/xen console hack
+
 * Tue Apr 15 2008 Eduardo Habkost <ehabkost at redhat.com>
 - Fix free_init_pages() to unmap pages from __START_KERNEL_map
   (bug #441543)

linux-2.6-xen-0018-xen-expose-set_pte_vaddr-and-make-xen-use-it.patch:

Index: linux-2.6-xen-0018-xen-expose-set_pte_vaddr-and-make-xen-use-it.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0018-xen-expose-set_pte_vaddr-and-make-xen-use-it.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0018-xen-expose-set_pte_vaddr-and-make-xen-use-it.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0018-xen-expose-set_pte_vaddr-and-make-xen-use-it.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 8a5a7f8fb2c2c75edaa06e4e933f3df9925f3aad Mon Sep 17 00:00:00 2001
+From c0415e874b810b3e689da137c14697da3133b58b Mon Sep 17 00:00:00 2001
 From: Mark McLoughlin <markmc at redhat.com>
 Date: Mon, 28 Jan 2008 15:38:03 +0000
 Subject: [PATCH] xen: expose set_pte_vaddr() and make xen use it

linux-2.6-xen-0019-xen-dom0-Add-set_fixmap-pv_mmu_ops.patch:

Index: linux-2.6-xen-0019-xen-dom0-Add-set_fixmap-pv_mmu_ops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0019-xen-dom0-Add-set_fixmap-pv_mmu_ops.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0019-xen-dom0-Add-set_fixmap-pv_mmu_ops.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0019-xen-dom0-Add-set_fixmap-pv_mmu_ops.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From cd41e3d7543ce213d8bb091b34053f696fdd39dd Mon Sep 17 00:00:00 2001
+From 983ddc268b6c1c457055f09fa5a2b884da9a7bbc Mon Sep 17 00:00:00 2001
 From: Mark McLoughlin <markmc at redhat.com>
 Date: Mon, 28 Jan 2008 15:42:08 +0000
 Subject: [PATCH] xen dom0: Add set_fixmap pv_mmu_ops.

linux-2.6-xen-0020-x86_64-Expose-set_pte_vaddr.patch:

Index: linux-2.6-xen-0020-x86_64-Expose-set_pte_vaddr.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0020-x86_64-Expose-set_pte_vaddr.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0020-x86_64-Expose-set_pte_vaddr.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0020-x86_64-Expose-set_pte_vaddr.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 80a61226ef219fd746a9a87e45b7cf4b708090a1 Mon Sep 17 00:00:00 2001
+From e97d2efc1a8973e29aa3ddea0f2ab551216c556a Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Mon, 3 Mar 2008 15:03:42 -0300
 Subject: [PATCH] x86_64: Expose set_pte_vaddr()

linux-2.6-xen-0021-x86_64-Split-set_pte_vaddr.patch:

Index: linux-2.6-xen-0021-x86_64-Split-set_pte_vaddr.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0021-x86_64-Split-set_pte_vaddr.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0021-x86_64-Split-set_pte_vaddr.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0021-x86_64-Split-set_pte_vaddr.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 95bd8587618fed8f5aec4ca9e0601070c78a4a37 Mon Sep 17 00:00:00 2001
+From 27d5893b3d498233a11406bcdf49ffcbf11e1980 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Fri, 8 Feb 2008 12:41:04 -0200
 Subject: [PATCH] x86_64: Split set_pte_vaddr()

linux-2.6-xen-0022-x86_64-Add-clear_fixmap.patch:

Index: linux-2.6-xen-0022-x86_64-Add-clear_fixmap.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0022-x86_64-Add-clear_fixmap.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0022-x86_64-Add-clear_fixmap.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0022-x86_64-Add-clear_fixmap.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 9e7b6dbea01227d1baa42f3aa6a4ac46769996d3 Mon Sep 17 00:00:00 2001
+From 26b9eb1253511fe76946fa589a95b7badb6971e6 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Mon, 3 Mar 2008 16:31:57 -0300
 Subject: [PATCH] x86_64: Add clear_fixmap()

linux-2.6-xen-0023-xen-x86_64-Make-set_fixmap-a-paravirt-op-on-64-bi.patch:

Index: linux-2.6-xen-0023-xen-x86_64-Make-set_fixmap-a-paravirt-op-on-64-bi.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0023-xen-x86_64-Make-set_fixmap-a-paravirt-op-on-64-bi.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0023-xen-x86_64-Make-set_fixmap-a-paravirt-op-on-64-bi.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0023-xen-x86_64-Make-set_fixmap-a-paravirt-op-on-64-bi.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 9ffd636430b3f41cf47fdce071ae8b0c2907c3ba Mon Sep 17 00:00:00 2001
+From 9b63a66476c064f794eb773273d76a72ae8979c5 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Mon, 3 Mar 2008 14:36:59 -0300
 Subject: [PATCH] xen x86_64: Make set_fixmap() a paravirt op on 64-bit

linux-2.6-xen-0024-xen-x86_64-Hack-to-set-vsyscall-pages-on-user-space.patch:

Index: linux-2.6-xen-0024-xen-x86_64-Hack-to-set-vsyscall-pages-on-user-space.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0024-xen-x86_64-Hack-to-set-vsyscall-pages-on-user-space.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0024-xen-x86_64-Hack-to-set-vsyscall-pages-on-user-space.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0024-xen-x86_64-Hack-to-set-vsyscall-pages-on-user-space.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From e02c5fd18039fb302cac2f5e717fd77ac408a93d Mon Sep 17 00:00:00 2001
+From 753518478c1ee4d353990301c64eab2f32ba2661 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Fri, 8 Feb 2008 12:48:51 -0200
 Subject: [PATCH] xen x86_64: Hack to set vsyscall pages on user-space pagetables also (FIXME)

linux-2.6-xen-0025-Handle-VSYSCALL_FIRST_PAGE-on-xen_set_pte.patch:

Index: linux-2.6-xen-0025-Handle-VSYSCALL_FIRST_PAGE-on-xen_set_pte.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0025-Handle-VSYSCALL_FIRST_PAGE-on-xen_set_pte.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0025-Handle-VSYSCALL_FIRST_PAGE-on-xen_set_pte.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0025-Handle-VSYSCALL_FIRST_PAGE-on-xen_set_pte.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 8ff4077f4d20cf1f19bbd99cd4defba9b4dc3ed4 Mon Sep 17 00:00:00 2001
+From 31c8a8ab297ffe5f1b60469085439eb505c82cb9 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Fri, 7 Mar 2008 18:53:28 -0300
 Subject: [PATCH] Handle VSYSCALL_FIRST_PAGE on xen_set_pte()

linux-2.6-xen-0026-DMI-Define-dmi_scan_machine-as-no-op-if-CONFIG_DM.patch:

Index: linux-2.6-xen-0026-DMI-Define-dmi_scan_machine-as-no-op-if-CONFIG_DM.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0026-DMI-Define-dmi_scan_machine-as-no-op-if-CONFIG_DM.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0026-DMI-Define-dmi_scan_machine-as-no-op-if-CONFIG_DM.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0026-DMI-Define-dmi_scan_machine-as-no-op-if-CONFIG_DM.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From aefef5f3805187a92c6eda02be32bf4e1a0514e1 Mon Sep 17 00:00:00 2001
+From 5414d8348c9018b9ec08ee81b00ba212ae3a1ffd Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at monstro.(none)>
 Date: Thu, 28 Feb 2008 12:16:04 -0300
 Subject: [PATCH] DMI: Define dmi_scan_machine() as no-op if CONFIG_DMI is not set

linux-2.6-xen-0027-ACPI-thermal-Compile-without-CONFIG_DMI.patch:

Index: linux-2.6-xen-0027-ACPI-thermal-Compile-without-CONFIG_DMI.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0027-ACPI-thermal-Compile-without-CONFIG_DMI.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0027-ACPI-thermal-Compile-without-CONFIG_DMI.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0027-ACPI-thermal-Compile-without-CONFIG_DMI.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From ff628e3270dbe965a0069e9b8c878c385d063a7e Mon Sep 17 00:00:00 2001
+From 1fc2288bf4ba22d8283e63379e0f55f00a9e9d29 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 4 Mar 2008 16:59:48 -0300
 Subject: [PATCH] ACPI: thermal: Compile without CONFIG_DMI

linux-2.6-xen-0028-xen-x86_64-Remove-the-640K-1M-hole-and-disable-DMI.patch:

Index: linux-2.6-xen-0028-xen-x86_64-Remove-the-640K-1M-hole-and-disable-DMI.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0028-xen-x86_64-Remove-the-640K-1M-hole-and-disable-DMI.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0028-xen-x86_64-Remove-the-640K-1M-hole-and-disable-DMI.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0028-xen-x86_64-Remove-the-640K-1M-hole-and-disable-DMI.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 2bfa7c55eeb251076a7be7d8580f9e4ffc7c7222 Mon Sep 17 00:00:00 2001
+From 5b447cf156c3122016b0ef59da003fa07758aef4 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 5 Mar 2008 11:48:34 -0300
 Subject: [PATCH] xen x86_64: Remove the 640K-1M hole and disable DMI (TEMPORARY)

linux-2.6-xen-0029-xen-x86_64-Add-update_va_mapping-64-bit-code.patch:

Index: linux-2.6-xen-0029-xen-x86_64-Add-update_va_mapping-64-bit-code.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0029-xen-x86_64-Add-update_va_mapping-64-bit-code.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0029-xen-x86_64-Add-update_va_mapping-64-bit-code.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0029-xen-x86_64-Add-update_va_mapping-64-bit-code.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From e8e2242ec2a11a4d7e3d3d5c57f500a5653ebde3 Mon Sep 17 00:00:00 2001
+From 129b3a67ddac375c7b8d26f7f89557d5cddfdfe3 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 14:50:24 -0200
 Subject: [PATCH] xen x86_64: Add update_va_mapping 64-bit code

linux-2.6-xen-0030-x86_64-Add-sync_cmpxchg.patch:

Index: linux-2.6-xen-0030-x86_64-Add-sync_cmpxchg.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0030-x86_64-Add-sync_cmpxchg.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0030-x86_64-Add-sync_cmpxchg.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0030-x86_64-Add-sync_cmpxchg.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From d08e0218d468cc05b38d20a3aa77795f0dfdadfa Mon Sep 17 00:00:00 2001
+From 0e33684a23034db5401297697befd7f5d45792b7 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 18:08:41 -0200
 Subject: [PATCH] x86_64: Add sync_cmpxchg()

linux-2.6-xen-0031-xen-x86_64-Implement-HYPERVISOR-MULTI-_update_desc.patch:

Index: linux-2.6-xen-0031-xen-x86_64-Implement-HYPERVISOR-MULTI-_update_desc.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0031-xen-x86_64-Implement-HYPERVISOR-MULTI-_update_desc.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0031-xen-x86_64-Implement-HYPERVISOR-MULTI-_update_desc.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0031-xen-x86_64-Implement-HYPERVISOR-MULTI-_update_desc.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 980347f0206fbec694b1a0b6609e8509c7b71db7 Mon Sep 17 00:00:00 2001
+From 62ee305219aebb3639366bc3bb978ce322891935 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 18:09:08 -0200
 Subject: [PATCH] xen x86_64: Implement {HYPERVISOR,MULTI}_update_descriptor()

linux-2.6-xen-0032-xen-x86_64-Add-hacky-64-bit-x86_-read-write-_percpu.patch:

Index: linux-2.6-xen-0032-xen-x86_64-Add-hacky-64-bit-x86_-read-write-_percpu.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0032-xen-x86_64-Add-hacky-64-bit-x86_-read-write-_percpu.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0032-xen-x86_64-Add-hacky-64-bit-x86_-read-write-_percpu.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0032-xen-x86_64-Add-hacky-64-bit-x86_-read-write-_percpu.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 70c28df80f602388b3fb7356987bddcd32eb3071 Mon Sep 17 00:00:00 2001
+From 6ae0e4d793cdaaa9cf059c889de9ed32253181e9 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 18:21:29 -0200
 Subject: [PATCH] xen x86_64: Add hacky 64-bit x86_{read,write}_percpu()

linux-2.6-xen-0033-xen-x86_64-Use-x86_read_percpu-only-to-refer-to-a.patch:

Index: linux-2.6-xen-0033-xen-x86_64-Use-x86_read_percpu-only-to-refer-to-a.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0033-xen-x86_64-Use-x86_read_percpu-only-to-refer-to-a.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0033-xen-x86_64-Use-x86_read_percpu-only-to-refer-to-a.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0033-xen-x86_64-Use-x86_read_percpu-only-to-refer-to-a.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 3f4324799c416f83f73676275f75c00f4903d214 Mon Sep 17 00:00:00 2001
+From 0888fad92ae55c2fceb7e0cf9bce2b730a906789 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 19:25:50 -0200
 Subject: [PATCH] xen x86_64: Use x86_read_percpu() only to refer to a variable name

linux-2.6-xen-0034-Better-implementation-of-pte-functions.patch:

Index: linux-2.6-xen-0034-Better-implementation-of-pte-functions.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0034-Better-implementation-of-pte-functions.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0034-Better-implementation-of-pte-functions.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0034-Better-implementation-of-pte-functions.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 5904d00c647b3f08ee4262420623692094dcb8d2 Mon Sep 17 00:00:00 2001
+From a296d2a4f3f581b7fd293187e82dae9f53046be0 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 19:26:30 -0200
 Subject: [PATCH] Better implementation of pte functions

linux-2.6-xen-0035-Add-FIX_PARAVIRT_BOOTAP-to-fixmap_64.h-too.patch:

Index: linux-2.6-xen-0035-Add-FIX_PARAVIRT_BOOTAP-to-fixmap_64.h-too.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0035-Add-FIX_PARAVIRT_BOOTAP-to-fixmap_64.h-too.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0035-Add-FIX_PARAVIRT_BOOTAP-to-fixmap_64.h-too.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0035-Add-FIX_PARAVIRT_BOOTAP-to-fixmap_64.h-too.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From d9c8ebd25554738b1527e2aa4a5e16bdc3779bd4 Mon Sep 17 00:00:00 2001
+From 9dcbae3f2740100686e69ec44f49de8ccfb7efdc Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 19:42:21 -0200
 Subject: [PATCH] Add FIX_PARAVIRT_BOOTAP to fixmap_64.h too

linux-2.6-xen-0036-Add-gate_offset-and-gate_segment-macros.patch:

Index: linux-2.6-xen-0036-Add-gate_offset-and-gate_segment-macros.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0036-Add-gate_offset-and-gate_segment-macros.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0036-Add-gate_offset-and-gate_segment-macros.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0036-Add-gate_offset-and-gate_segment-macros.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 6a6aafcbc58ecddebfef2a947fee46c01c686e20 Mon Sep 17 00:00:00 2001
+From de176a7fd5f7be853f52e864f220c6ac10df991a Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 19:42:54 -0200
 Subject: [PATCH] Add gate_offset() and gate_segment() macros

linux-2.6-xen-0037-xen_write_idt_entry-and-cvt_gate_to_trap.patch:

Index: linux-2.6-xen-0037-xen_write_idt_entry-and-cvt_gate_to_trap.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0037-xen_write_idt_entry-and-cvt_gate_to_trap.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0037-xen_write_idt_entry-and-cvt_gate_to_trap.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0037-xen_write_idt_entry-and-cvt_gate_to_trap.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From b26b61bab848c745db7b7e20606d4f593b018feb Mon Sep 17 00:00:00 2001
+From efe973ff2303f19a49942038a51f04e1dcc891c0 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 19:43:41 -0200
 Subject: [PATCH] xen_write_idt_entry() and cvt_gate_to_trap()

linux-2.6-xen-0038-typedefs-for-pte_val-and-friends.patch:

Index: linux-2.6-xen-0038-typedefs-for-pte_val-and-friends.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0038-typedefs-for-pte_val-and-friends.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0038-typedefs-for-pte_val-and-friends.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0038-typedefs-for-pte_val-and-friends.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 8aeabd290e1028de1efd9da4c2b956918e20182e Mon Sep 17 00:00:00 2001
+From a145aabfe7254f79d05fc5f9e9cb06d7d2012303 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at Rawhide-64.localdomain>
 Date: Tue, 27 Nov 2007 20:09:43 -0200
 Subject: [PATCH] typedefs for pte_val() and friends

linux-2.6-xen-0039-x86_64-implementation-of-some-page.h-macros.patch:

Index: linux-2.6-xen-0039-x86_64-implementation-of-some-page.h-macros.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0039-x86_64-implementation-of-some-page.h-macros.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0039-x86_64-implementation-of-some-page.h-macros.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0039-x86_64-implementation-of-some-page.h-macros.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 47b34494467c07842bc8832ae7f008a05b5b50de Mon Sep 17 00:00:00 2001
+From ed4c269ca73bc0ca68df02e12b8f269775a3090b Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 28 Nov 2007 12:20:59 -0200
 Subject: [PATCH] x86_64 implementation of some page.h macros

linux-2.6-xen-0040-Chainsaw-style-ifdefs.patch:

Index: linux-2.6-xen-0040-Chainsaw-style-ifdefs.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0040-Chainsaw-style-ifdefs.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0040-Chainsaw-style-ifdefs.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0040-Chainsaw-style-ifdefs.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From baf5f6afe367c5b88282a853d8091905a2a38944 Mon Sep 17 00:00:00 2001
+From 0d6d89407608f0cdb3808a1ce0bccfcb54a44589 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 28 Nov 2007 12:21:33 -0200
 Subject: [PATCH] Chainsaw-style #ifdefs

linux-2.6-xen-0041-xen-Make-xen_pte_val-generic.patch:

Index: linux-2.6-xen-0041-xen-Make-xen_pte_val-generic.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0041-xen-Make-xen_pte_val-generic.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0041-xen-Make-xen_pte_val-generic.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0041-xen-Make-xen_pte_val-generic.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 303e2c78ec4d1f8cab2c1355b5523f43a982546d Mon Sep 17 00:00:00 2001
+From 8d536b56270b698de06f3614dca28ff7d54d6d8a Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 28 Nov 2007 17:53:17 -0200
 Subject: [PATCH] xen: Make xen_pte_val() generic

linux-2.6-xen-0042-More-chainsaw-ifdefs.patch:

Index: linux-2.6-xen-0042-More-chainsaw-ifdefs.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0042-More-chainsaw-ifdefs.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0042-More-chainsaw-ifdefs.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0042-More-chainsaw-ifdefs.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From fc3b59eafc31d153e8579e59d5aa186c773a7054 Mon Sep 17 00:00:00 2001
+From 39edc19fa9a75e3142c2a95ad66c8431c0ee657a Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 28 Nov 2007 17:54:25 -0200
 Subject: [PATCH] More chainsaw-ifdefs

linux-2.6-xen-0043-Chainsaw-ifdefs-on-assembly-percpu-handling.patch:

Index: linux-2.6-xen-0043-Chainsaw-ifdefs-on-assembly-percpu-handling.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0043-Chainsaw-ifdefs-on-assembly-percpu-handling.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0043-Chainsaw-ifdefs-on-assembly-percpu-handling.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0043-Chainsaw-ifdefs-on-assembly-percpu-handling.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 97b00ea2767fea14e7a3b769cd0de0437b7082ca Mon Sep 17 00:00:00 2001
+From ba9f914d634e27faee614a464d0b375fc05351df Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 28 Nov 2007 17:55:00 -0200
 Subject: [PATCH] Chainsaw-ifdefs on assembly percpu handling

linux-2.6-xen-0044-x86_64-percpu-assembly-macros.patch:

Index: linux-2.6-xen-0044-x86_64-percpu-assembly-macros.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0044-x86_64-percpu-assembly-macros.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0044-x86_64-percpu-assembly-macros.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0044-x86_64-percpu-assembly-macros.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 4f668ec890f8b197506121ad838a044cc776bc26 Mon Sep 17 00:00:00 2001
+From 2666cc5fa508c98b2bcc9f5654902991006233cd Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Thu, 29 Nov 2007 16:05:08 -0200
 Subject: [PATCH] x86_64 percpu assembly macros

linux-2.6-xen-0045-Some-xen-asm.S-x86_64-code.patch:

Index: linux-2.6-xen-0045-Some-xen-asm.S-x86_64-code.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0045-Some-xen-asm.S-x86_64-code.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0045-Some-xen-asm.S-x86_64-code.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0045-Some-xen-asm.S-x86_64-code.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From abce601fcda0bfef17fade06d9657790a8c10ccb Mon Sep 17 00:00:00 2001
+From b96a85c6aff39152c7b11cf62143e74405e46499 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Thu, 29 Nov 2007 16:06:30 -0200
 Subject: [PATCH] Some xen-asm.S x86_64 code

linux-2.6-xen-0046-Chainsaw-party-SPLITME.patch:

Index: linux-2.6-xen-0046-Chainsaw-party-SPLITME.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0046-Chainsaw-party-SPLITME.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0046-Chainsaw-party-SPLITME.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0046-Chainsaw-party-SPLITME.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 64f05656c7e450242d275f94fd4c9d84cd3d2422 Mon Sep 17 00:00:00 2001
+From 467dfa695748b35f46f1daf91c0e4c53d80a9150 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Mon, 3 Dec 2007 17:28:38 -0200
 Subject: [PATCH] Chainsaw party (SPLITME)

linux-2.6-xen-0047-xen-asm.S-x86_64-notes.patch:

Index: linux-2.6-xen-0047-xen-asm.S-x86_64-notes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0047-xen-asm.S-x86_64-notes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0047-xen-asm.S-x86_64-notes.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0047-xen-asm.S-x86_64-notes.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 64d5c30ac57ff905d8d3fed02f5660fadb3909bd Mon Sep 17 00:00:00 2001
+From 3e11c8edaa5c07ba23cb9a08e18b35c5b3a23376 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 4 Dec 2007 14:43:21 -0200
 Subject: [PATCH] xen-asm.S: x86_64 notes

linux-2.6-xen-0048-xen-x86_64-Make-hypercall-assembly-code-work.patch:

Index: linux-2.6-xen-0048-xen-x86_64-Make-hypercall-assembly-code-work.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0048-xen-x86_64-Make-hypercall-assembly-code-work.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0048-xen-x86_64-Make-hypercall-assembly-code-work.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0048-xen-x86_64-Make-hypercall-assembly-code-work.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 9afe3f56b4e301237fab01ebae01069545bb7942 Mon Sep 17 00:00:00 2001
+From f34a3ea8e5cd06661eb89b1e6c0f7068b2365e36 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 4 Dec 2007 16:25:41 -0200
 Subject: [PATCH] xen x86_64: Make hypercall assembly code work

linux-2.6-xen-0049-xen-x86_64-pda-initialization.patch:

Index: linux-2.6-xen-0049-xen-x86_64-pda-initialization.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0049-xen-x86_64-pda-initialization.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0049-xen-x86_64-pda-initialization.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0049-xen-x86_64-pda-initialization.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 60d8717fc3ef3d84890db37e2b62ae2ff618377f Mon Sep 17 00:00:00 2001
+From 81a1c160fd93c466286ddf377035976d86fecaa4 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 4 Dec 2007 17:01:56 -0200
 Subject: [PATCH] xen x86_64 pda initialization

linux-2.6-xen-0050-Disable-discover_ebda-under-paravirt.patch:

Index: linux-2.6-xen-0050-Disable-discover_ebda-under-paravirt.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0050-Disable-discover_ebda-under-paravirt.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0050-Disable-discover_ebda-under-paravirt.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0050-Disable-discover_ebda-under-paravirt.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From bc25359e87496b6d75e0f39003ee4a6e03bfad7f Mon Sep 17 00:00:00 2001
+From 5359a09e09582cecb4beddc7d4b9c1cdeecc6d6e Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 5 Dec 2007 16:58:09 -0200
 Subject: [PATCH] Disable discover_ebda() under paravirt

linux-2.6-xen-0051-Disable-early_printk-by-default.patch:

Index: linux-2.6-xen-0051-Disable-early_printk-by-default.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0051-Disable-early_printk-by-default.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0051-Disable-early_printk-by-default.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0051-Disable-early_printk-by-default.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From b938d7db81845ca1c0896b9c42e52113728e717c Mon Sep 17 00:00:00 2001
+From 9951dabd34dbb88f605561013c8090fed7d37e38 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 5 Dec 2007 17:21:53 -0200
 Subject: [PATCH] Disable early_printk() by default

linux-2.6-xen-0052-xen-Set-__HYPERVISOR_VIRT_START-for-x86_64.patch:

Index: linux-2.6-xen-0052-xen-Set-__HYPERVISOR_VIRT_START-for-x86_64.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0052-xen-Set-__HYPERVISOR_VIRT_START-for-x86_64.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0052-xen-Set-__HYPERVISOR_VIRT_START-for-x86_64.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0052-xen-Set-__HYPERVISOR_VIRT_START-for-x86_64.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 47912ebbfdf3b71ac73fb06274fc728de951896c Mon Sep 17 00:00:00 2001
+From c61e12b169a4b61cd3a3257e5397d9e136071660 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 5 Dec 2007 17:43:29 -0200
 Subject: [PATCH] xen: Set __HYPERVISOR_VIRT_START for x86_64

linux-2.6-xen-0053-Set-__PAGE_OFFSET-as-required-by-Xen.patch:

Index: linux-2.6-xen-0053-Set-__PAGE_OFFSET-as-required-by-Xen.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0053-Set-__PAGE_OFFSET-as-required-by-Xen.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0053-Set-__PAGE_OFFSET-as-required-by-Xen.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0053-Set-__PAGE_OFFSET-as-required-by-Xen.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From e15f16fe6f940aa7bbba7cd1ecf8ae4c8d067034 Mon Sep 17 00:00:00 2001
+From 7675bdcced22f6d2d89ee6e38c6f7c39299f9ecf Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 5 Dec 2007 17:45:55 -0200
 Subject: [PATCH] Set __PAGE_OFFSET as required by Xen

linux-2.6-xen-0054-DEBUG-Add-xprintk-to-log-directly-via-hypercall-fo.patch:

Index: linux-2.6-xen-0054-DEBUG-Add-xprintk-to-log-directly-via-hypercall-fo.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0054-DEBUG-Add-xprintk-to-log-directly-via-hypercall-fo.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0054-DEBUG-Add-xprintk-to-log-directly-via-hypercall-fo.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0054-DEBUG-Add-xprintk-to-log-directly-via-hypercall-fo.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 564301180e159d811dc236dd89ab1b95c25d473d Mon Sep 17 00:00:00 2001
+From d326db5bfcb7e23ab63dc12230a6fdfdbe641978 Mon Sep 17 00:00:00 2001
 From: Stephen Tweedie <sct at redhat.com>
 Date: Wed, 21 Nov 2007 18:40:31 +0000
 Subject: [PATCH] DEBUG: Add xprintk to log directly via hypercall, for early debugging

linux-2.6-xen-0055-DEBUG-Add-xprintk-debugging-printk-prototype-to-hvc.patch:

Index: linux-2.6-xen-0055-DEBUG-Add-xprintk-debugging-printk-prototype-to-hvc.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0055-DEBUG-Add-xprintk-debugging-printk-prototype-to-hvc.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-0055-DEBUG-Add-xprintk-debugging-printk-prototype-to-hvc.patch	14 Apr 2008 16:50:37 -0000	1.1
+++ linux-2.6-xen-0055-DEBUG-Add-xprintk-debugging-printk-prototype-to-hvc.patch	16 Apr 2008 10:15:41 -0000	1.2
@@ -1,4 +1,4 @@
-From 2e2648674581f71931e30e448def0e4724f9317f Mon Sep 17 00:00:00 2001
+From 40dd62c10b510c70dc515a7ecd5c81e18f4fbc1f Mon Sep 17 00:00:00 2001
 From: Stephen Tweedie <sct at redhat.com>
 Date: Tue, 27 Nov 2007 12:56:49 +0000
 Subject: [PATCH] DEBUG: Add xprintk debugging-printk prototype to hvc-console.h.

linux-2.6-xen-0056-Use-__pgd-on-mk_kernel_pgd.patch:

Index: linux-2.6-xen-0056-Use-__pgd-on-mk_kernel_pgd.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0056-Use-__pgd-on-mk_kernel_pgd.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0056-Use-__pgd-on-mk_kernel_pgd.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0056-Use-__pgd-on-mk_kernel_pgd.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 385ccd4201fe040efbd84b11cdeb647d0fbdcb08 Mon Sep 17 00:00:00 2001
+From fcac66372af0972b8ca53c07efe983afaa132aa2 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 11 Dec 2007 12:00:09 -0200
 Subject: [PATCH] Use __pgd() on mk_kernel_pgd()

linux-2.6-xen-0057-Include-user-page-tables-on-head_64.S.patch:

Index: linux-2.6-xen-0057-Include-user-page-tables-on-head_64.S.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0057-Include-user-page-tables-on-head_64.S.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0057-Include-user-page-tables-on-head_64.S.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0057-Include-user-page-tables-on-head_64.S.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 54cecd06aeba50e934f99807ca4cc7f35410b7f8 Mon Sep 17 00:00:00 2001
+From 658162ac1d8a977499af40a4ebdc30c40dddffb2 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 11 Dec 2007 12:02:11 -0200
 Subject: [PATCH] Include user page tables on head_64.S

linux-2.6-xen-0058-Avoid-using-mk_unsigned_long.patch:

Index: linux-2.6-xen-0058-Avoid-using-mk_unsigned_long.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0058-Avoid-using-mk_unsigned_long.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0058-Avoid-using-mk_unsigned_long.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0058-Avoid-using-mk_unsigned_long.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 59d1a15b35fc78bfeb0f488e773f13b6bb8f9686 Mon Sep 17 00:00:00 2001
+From a739360c91cf1012eca65e8fcbb6386669a06084 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 11 Dec 2007 16:06:14 -0200
 Subject: [PATCH] Avoid using mk_unsigned_long()

linux-2.6-xen-0059-Lots-of-unrelated-changes.patch:

Index: linux-2.6-xen-0059-Lots-of-unrelated-changes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0059-Lots-of-unrelated-changes.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0059-Lots-of-unrelated-changes.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0059-Lots-of-unrelated-changes.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 19ddc4f67933d3818d5ec0d258239387994663cc Mon Sep 17 00:00:00 2001
+From 4c8082d539fe651753de7255a2a08b10f876ea8c Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 11 Dec 2007 16:14:09 -0200
 Subject: [PATCH] Lots of unrelated changes

linux-2.6-xen-0060-Hack-disable-vsmp.patch:

Index: linux-2.6-xen-0060-Hack-disable-vsmp.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0060-Hack-disable-vsmp.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0060-Hack-disable-vsmp.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0060-Hack-disable-vsmp.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From c67347663d0bffcd5a211f7713ae8cc6acb2199a Mon Sep 17 00:00:00 2001
+From 3786965ef3d2bc71a2c7ebef199763fdef1abc22 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 12 Dec 2007 16:19:02 -0200
 Subject: [PATCH] Hack: disable vsmp

linux-2.6-xen-0061-Export-early_make_page_readonly.patch:

Index: linux-2.6-xen-0061-Export-early_make_page_readonly.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0061-Export-early_make_page_readonly.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0061-Export-early_make_page_readonly.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0061-Export-early_make_page_readonly.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 00c7719d02d8debc80c8ea7e76086223e35bb24c Mon Sep 17 00:00:00 2001
+From 6222e695caa93422d6b4a509eb6ae369be51acff Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 12 Dec 2007 16:23:34 -0200
 Subject: [PATCH] Export early_make_page_readonly()

linux-2.6-xen-0062-Disable-multicalls.c-too-verbose-debugging.patch:

Index: linux-2.6-xen-0062-Disable-multicalls.c-too-verbose-debugging.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0062-Disable-multicalls.c-too-verbose-debugging.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0062-Disable-multicalls.c-too-verbose-debugging.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0062-Disable-multicalls.c-too-verbose-debugging.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From e2a97233182790da20bbe7657b8228660c295dd2 Mon Sep 17 00:00:00 2001
+From 3cb4eac9fee74be025a83af979246448f2de5f8c Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 12 Dec 2007 16:24:08 -0200
 Subject: [PATCH] Disable multicalls.c too-verbose debugging

linux-2.6-xen-0063-Xen-64-bit-ready-MMU-operations.patch:

Index: linux-2.6-xen-0063-Xen-64-bit-ready-MMU-operations.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0063-Xen-64-bit-ready-MMU-operations.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0063-Xen-64-bit-ready-MMU-operations.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0063-Xen-64-bit-ready-MMU-operations.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From bd8e286ac84fff407f737b88e2032c6acebd36c2 Mon Sep 17 00:00:00 2001
+From e8de2d7e249e6cf97ffd88e102c1f714080f37d6 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 12:00:39 -0200
 Subject: [PATCH] Xen 64-bit-ready MMU operations

linux-2.6-xen-0064-Some-xen-mmu-pv-ops-implemented.patch:

Index: linux-2.6-xen-0064-Some-xen-mmu-pv-ops-implemented.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0064-Some-xen-mmu-pv-ops-implemented.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0064-Some-xen-mmu-pv-ops-implemented.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0064-Some-xen-mmu-pv-ops-implemented.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From f4961bee28fa28976f517ea7dbc5136171c86974 Mon Sep 17 00:00:00 2001
+From db9ed0a8604770c5204814fad3583b086ececaa4 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 12 Dec 2007 16:26:01 -0200
 Subject: [PATCH] Some xen mmu pv-ops implemented

linux-2.6-xen-0065-Trying-to-make-the-pagetable-initialization-code-wor.patch:

Index: linux-2.6-xen-0065-Trying-to-make-the-pagetable-initialization-code-wor.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0065-Trying-to-make-the-pagetable-initialization-code-wor.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0065-Trying-to-make-the-pagetable-initialization-code-wor.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0065-Trying-to-make-the-pagetable-initialization-code-wor.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 1a4f49f97ffe08c061afd2350e232d8b761bcffa Mon Sep 17 00:00:00 2001
+From ebe4b55c85fb929ac8fa33b824a3c5cafe84bbad Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 12 Dec 2007 16:26:56 -0200
 Subject: [PATCH] Trying to make the pagetable initialization code work under Xen

linux-2.6-xen-0066-Xen-specific-find_early_table_space-FIXME.patch:

Index: linux-2.6-xen-0066-Xen-specific-find_early_table_space-FIXME.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0066-Xen-specific-find_early_table_space-FIXME.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0066-Xen-specific-find_early_table_space-FIXME.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0066-Xen-specific-find_early_table_space-FIXME.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 2dbba7647e8823aaf69ce40ab7d79584e823796e Mon Sep 17 00:00:00 2001
+From 6374264b3e8ff6e2adc236e9b0c132b68d9463d7 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 12:15:58 -0200
 Subject: [PATCH] Xen-specific find_early_table_space() (FIXME)

linux-2.6-xen-0067-Xen-call-e820_print_map-when-setting-up-memory.patch:

Index: linux-2.6-xen-0067-Xen-call-e820_print_map-when-setting-up-memory.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0067-Xen-call-e820_print_map-when-setting-up-memory.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0067-Xen-call-e820_print_map-when-setting-up-memory.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0067-Xen-call-e820_print_map-when-setting-up-memory.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 567305918ce63c43aaa34fc1b9207b004fa28d29 Mon Sep 17 00:00:00 2001
+From 2af7c1aa670a59e34e5e71e7b3c25f959b2190ec Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Mon, 17 Dec 2007 18:08:13 -0200
 Subject: [PATCH] Xen: call e820_print_map() when setting up memory

linux-2.6-xen-0068-Comment-debugging-msgs.patch:

Index: linux-2.6-xen-0068-Comment-debugging-msgs.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0068-Comment-debugging-msgs.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0068-Comment-debugging-msgs.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0068-Comment-debugging-msgs.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 6f73f38d00d42a2396fef87c2dcee5bc0fec948b Mon Sep 17 00:00:00 2001
+From d62d81e7bd669207ae34db1d25a7c980179779f0 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Mon, 17 Dec 2007 18:08:43 -0200
 Subject: [PATCH] Comment debugging msgs

linux-2.6-xen-0069-Try-to-make-pagetables-read-only.patch:

Index: linux-2.6-xen-0069-Try-to-make-pagetables-read-only.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0069-Try-to-make-pagetables-read-only.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0069-Try-to-make-pagetables-read-only.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0069-Try-to-make-pagetables-read-only.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 3035c387778cd48b305fcc9f7797530777c5cd15 Mon Sep 17 00:00:00 2001
+From 53f9780c28d1182d0e9acb499c5aa2e63e824e86 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 18 Dec 2007 10:21:45 -0200
 Subject: [PATCH] Try to make pagetables read-only

linux-2.6-xen-0070-Debug-dump-pgtables-on-make_page_readonly.patch:

Index: linux-2.6-xen-0070-Debug-dump-pgtables-on-make_page_readonly.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0070-Debug-dump-pgtables-on-make_page_readonly.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0070-Debug-dump-pgtables-on-make_page_readonly.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0070-Debug-dump-pgtables-on-make_page_readonly.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 8f0aa898e57c6a4132cda99da7fac3079dcfe71e Mon Sep 17 00:00:00 2001
+From b4c9132a49ba3c665bd0a0919878658d7a2fa9dc Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 18 Dec 2007 12:34:36 -0200
 Subject: [PATCH] Debug: dump pgtables on make_page_readonly()

linux-2.6-xen-0071-Disable-apic-at-compile-time-FIXME.patch:

Index: linux-2.6-xen-0071-Disable-apic-at-compile-time-FIXME.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0071-Disable-apic-at-compile-time-FIXME.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0071-Disable-apic-at-compile-time-FIXME.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0071-Disable-apic-at-compile-time-FIXME.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 0447c99703bb248dc8f30c48369ff2ef9a954ee8 Mon Sep 17 00:00:00 2001
+From f2106789c0f3dec672494332781119c0294b16a7 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 18 Dec 2007 16:54:43 -0200
 Subject: [PATCH] Disable apic at compile time (FIXME)

linux-2.6-xen-0072-Parse-early-params-after-init_memory_mapping.patch:

Index: linux-2.6-xen-0072-Parse-early-params-after-init_memory_mapping.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0072-Parse-early-params-after-init_memory_mapping.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0072-Parse-early-params-after-init_memory_mapping.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0072-Parse-early-params-after-init_memory_mapping.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From b5e19fbdfb1e9cc197c18f351341968d491c5a35 Mon Sep 17 00:00:00 2001
+From 66bd785539fc7d7b41f8e45d33678d284273c99b Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 18 Dec 2007 17:38:40 -0200
 Subject: [PATCH] Parse early params after init_memory_mapping()

linux-2.6-xen-0073-xen-Move-addr_to_page-to-init.h.patch:

Index: linux-2.6-xen-0073-xen-Move-addr_to_page-to-init.h.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0073-xen-Move-addr_to_page-to-init.h.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0073-xen-Move-addr_to_page-to-init.h.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0073-xen-Move-addr_to_page-to-init.h.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 3f64fd37b89f0e1634239458634405939371cc68 Mon Sep 17 00:00:00 2001
+From 07c46c70f448c0f63329d36ba6934b299bb6b226 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Tue, 18 Dec 2007 17:40:35 -0200
 Subject: [PATCH] xen: Move addr_to_page() to init.h

linux-2.6-xen-0074-Make-xen_pxx_val-and-xen_make_pxx-handle-attr-bi.patch:

Index: linux-2.6-xen-0074-Make-xen_pxx_val-and-xen_make_pxx-handle-attr-bi.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0074-Make-xen_pxx_val-and-xen_make_pxx-handle-attr-bi.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0074-Make-xen_pxx_val-and-xen_make_pxx-handle-attr-bi.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0074-Make-xen_pxx_val-and-xen_make_pxx-handle-attr-bi.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 6f4d0a2cf927c0419a2656fd9d6cec55e2e30804 Mon Sep 17 00:00:00 2001
+From 06981806bcb0643cf37ccbe06af1a567966450c7 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 12:31:46 -0200
 Subject: [PATCH] Make xen_pxx_val() and xen_make_pxx() handle attr bits safely

linux-2.6-xen-0075-Pull-xen_finish_init_mappin-from-XS-upstream.patch:

Index: linux-2.6-xen-0075-Pull-xen_finish_init_mappin-from-XS-upstream.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0075-Pull-xen_finish_init_mappin-from-XS-upstream.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0075-Pull-xen_finish_init_mappin-from-XS-upstream.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0075-Pull-xen_finish_init_mappin-from-XS-upstream.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 9c0e0e82c5a026c51953df331e521fe381121927 Mon Sep 17 00:00:00 2001
+From 4f66046288c48d84a0bad50fd61fc85b689b3b50 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 13:20:18 -0200
 Subject: [PATCH] Pull xen_finish_init_mappin() from XS upstream

linux-2.6-xen-0076-Pull-spp_getpage-changes-from-XS-upstream-REVIEWM.patch:

Index: linux-2.6-xen-0076-Pull-spp_getpage-changes-from-XS-upstream-REVIEWM.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0076-Pull-spp_getpage-changes-from-XS-upstream-REVIEWM.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0076-Pull-spp_getpage-changes-from-XS-upstream-REVIEWM.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0076-Pull-spp_getpage-changes-from-XS-upstream-REVIEWM.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 338b5d1b98971087a2f2df48320d494860ad2884 Mon Sep 17 00:00:00 2001
+From 99a9682ef567024b9f0ddc13895b3ee802aa7741 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 13:21:20 -0200
 Subject: [PATCH] Pull spp_getpage() changes from XS upstream (REVIEWME)

linux-2.6-xen-0077-Pull-xen_extend_init_mapping-from-XS-upstream-FIX.patch:

Index: linux-2.6-xen-0077-Pull-xen_extend_init_mapping-from-XS-upstream-FIX.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0077-Pull-xen_extend_init_mapping-from-XS-upstream-FIX.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0077-Pull-xen_extend_init_mapping-from-XS-upstream-FIX.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0077-Pull-xen_extend_init_mapping-from-XS-upstream-FIX.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From aeae3781b9894fe686823ac6ed6a6dbcdab81408 Mon Sep 17 00:00:00 2001
+From b06ff2672e1be194d619c6a1fb9f24ba4b118f06 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 13:22:29 -0200
 Subject: [PATCH] Pull xen_extend_init_mapping() from XS upstream (FIXME)

linux-2.6-xen-0078-New-enum-fixed_addresses-values-REVIEWME.patch:

Index: linux-2.6-xen-0078-New-enum-fixed_addresses-values-REVIEWME.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0078-New-enum-fixed_addresses-values-REVIEWME.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0078-New-enum-fixed_addresses-values-REVIEWME.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0078-New-enum-fixed_addresses-values-REVIEWME.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 0ef6c12feaab2fcebd74b75aa2ec7f7eb48e1284 Mon Sep 17 00:00:00 2001
+From 981ea5dee474b02134b543b1a811240e9b2b8d9d Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 13:28:40 -0200
 Subject: [PATCH] New enum fixed_addresses values (REVIEWME)

linux-2.6-xen-0079-Reserve-bootmem-areas-used-by-Xen-FIXME.patch:

Index: linux-2.6-xen-0079-Reserve-bootmem-areas-used-by-Xen-FIXME.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0079-Reserve-bootmem-areas-used-by-Xen-FIXME.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0079-Reserve-bootmem-areas-used-by-Xen-FIXME.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0079-Reserve-bootmem-areas-used-by-Xen-FIXME.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 1cfc438787938c63fe7eb69f3e4cfe39e5a94fd4 Mon Sep 17 00:00:00 2001
+From 50482cee3598cbb2dc2bbf540cd83e4b53c7be2c Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Thu, 20 Dec 2007 16:03:58 -0200
 Subject: [PATCH] Reserve bootmem areas used by Xen (FIXME)

linux-2.6-xen-0080-xen_convert_trap_info-use-sizeof-struct-gate_desc.patch:

Index: linux-2.6-xen-0080-xen_convert_trap_info-use-sizeof-struct-gate_desc.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0080-xen_convert_trap_info-use-sizeof-struct-gate_desc.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0080-xen_convert_trap_info-use-sizeof-struct-gate_desc.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0080-xen_convert_trap_info-use-sizeof-struct-gate_desc.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 47169f003a4249244937a1d3d04f9328a839903c Mon Sep 17 00:00:00 2001
+From 6f7acb7a040def2ecebd56cfe53fdd01600cdcd1 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Thu, 20 Dec 2007 16:45:51 -0200
 Subject: [PATCH] xen_convert_trap_info(): use sizeof(struct gate_desc)

linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch:

Index: linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0081-Call-paravirt_pagetable_setup_-start-done-REVIEW.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From fc69b941ccfc334fd328a9c38d1045371e562387 Mon Sep 17 00:00:00 2001
+From 3ed0bb43c9d4682e0b527ae159d45e898bcf45a5 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Fri, 21 Dec 2007 11:57:55 -0200
 Subject: [PATCH] Call paravirt_pagetable_setup_{start,done} (REVIEW)

linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch:

Index: linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0082-ifdef-CONFIG_X86_32-on-xen-enlighten.c-REVIEWME.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From 987fe21276cb19eef32a557353bb5c31a5431242 Mon Sep 17 00:00:00 2001
+From 17698d60dbbf2551c94818fa9f8f4617cbf1d686 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Wed, 23 Jan 2008 13:34:59 -0200
 Subject: [PATCH] ifdef CONFIG_X86_32 on xen/enlighten.c (REVIEWME)

linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch:

Index: linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch	14 Apr 2008 16:50:37 -0000	1.2
+++ linux-2.6-xen-0083-Handle-Xen-exception-stack-it-is-different-from-bar.patch	16 Apr 2008 10:15:41 -0000	1.3
@@ -1,4 +1,4 @@
-From a678342c4970fb4466fb08255556235383441dec Mon Sep 17 00:00:00 2001
+From b1eee311180c25482d421c025c58a8aa90e6d132 Mon Sep 17 00:00:00 2001
 From: Eduardo Habkost <ehabkost at redhat.com>
 Date: Mon, 24 Dec 2007 17:22:58 -0200
 Subject: [PATCH] Handle Xen exception stack (it is different from baremetal stack) (FIXME)


--- linux-2.6-xen-0084-Make-hvc_xen-console-use-xprintk-TEMPORARY.patch DELETED ---


--- linux-2.6-xen-0085-Implement-64-bit-version-of-HYPERVISOR_set_callbacks.patch DELETED ---


--- linux-2.6-xen-0086-Make-arch_vcpu_info-be-of-the-right-size-on-both-32.patch DELETED ---


--- linux-2.6-xen-0087-Implement-asm-xen_iret.patch DELETED ---


--- linux-2.6-xen-0088-xen-64-xen_iret-use-iretq-directly-if-returning-t.patch DELETED ---


--- linux-2.6-xen-0089-Implement-xen_irqenable_syscall_ret.patch DELETED ---


--- linux-2.6-xen-0090-DEBUG-xen_iret-always-return-through-the-hyperviso.patch DELETED ---


--- linux-2.6-xen-0091-Implement-some-xen-callbacks-on-xen-entry_64.S.patch DELETED ---


--- linux-2.6-xen-0092-Xen-specific-ifdef-hacks-on-kernel-entry_64.S-FIXM.patch DELETED ---


--- linux-2.6-xen-0093-Disable-syscall32-code-temporarily-FIXME.patch DELETED ---


--- linux-2.6-xen-0094-Use-__KERNEL_DS-as-SS-when-returning-to-a-kernel-thr.patch DELETED ---


--- linux-2.6-xen-0095-Use-apic_xen-on-genapic-by-default-FIXME.patch DELETED ---


--- linux-2.6-xen-0096-irq-vector-ifdef-chainsaw-FIXME.patch DELETED ---


--- linux-2.6-xen-0097-ifdef-chainsaw-on-syscall_init-FIXME.patch DELETED ---


--- linux-2.6-xen-0098-Pull-xen-genapic-implementation-from-upstream-Xen.patch DELETED ---


--- linux-2.6-xen-0099-Debugging-printk-s.patch DELETED ---


--- linux-2.6-xen-0100-Leave-lazy_cpu_mode-on-__switch_to.patch DELETED ---


--- linux-2.6-xen-0101-xen-64-Handle-fs-and-gs-on-xen_load_tls-properl.patch DELETED ---


--- linux-2.6-xen-0102-Disable-vcpu_info_placement-temporarily-FIXME.patch DELETED ---


--- linux-2.6-xen-0103-Fix-typo-on-ifdef-again.patch DELETED ---


--- linux-2.6-xen-0104-DEBUG-Don-t-try-to-actually-read-the-page-on-show_.patch DELETED ---


--- linux-2.6-xen-0105-Make-load_gs_index-a-paravirt-operation.patch DELETED ---


--- linux-2.6-xen-0106-xen-pgd_walk-use-limit-argument-instead-of-FIXADD.patch DELETED ---


--- linux-2.6-xen-0107-xen-pgd_walk-Eliminate-BUG_ON-limit-FIXADDR_TOP.patch DELETED ---


--- linux-2.6-xen-0108-xen-pgd_walk-accept-start-parameter.patch DELETED ---


--- linux-2.6-xen-0109-xen-64-reserve_bootmem-xen_start_info-area.patch DELETED ---


--- linux-2.6-xen-0110-pvops-64-call-paravirt_post_allocator_init-on-set.patch DELETED ---


--- linux-2.6-xen-0111-use-write_gdt_entry-on-vsyscall_set_cpu-CLEANME.patch DELETED ---


--- linux-2.6-xen-0112-xen-64-implement-xen_load_gs_index.patch DELETED ---


--- linux-2.6-xen-0113-include-asm-x86-pgalloc_64.h-pvops-hacks-SPLITME.patch DELETED ---


--- linux-2.6-xen-0114-Multi-pagetable-write_cr3-implementation-FIXME.patch DELETED ---


--- linux-2.6-xen-0115-Make-kcons_write_dom0-non-static-TEMPORARY.patch DELETED ---


--- linux-2.6-xen-0116-Disable-the-weird-count-loop-on-kcons_write_dom0.patch DELETED ---


--- linux-2.6-xen-0117-Make-xen_start_info-read-only.patch DELETED ---


--- linux-2.6-xen-0118-Hack-to-implement-return-to-userspace-without-SWAPGS.patch DELETED ---


--- linux-2.6-xen-0119-Xen-SEGBASE_-defines.patch DELETED ---


--- linux-2.6-xen-0120-Xen-HYPERVISOR_set_segment_base-implementation.patch DELETED ---


--- linux-2.6-xen-0121-Change-signature-of-paravirt_alloc_-pt-pd-REVIEWME.patch DELETED ---


--- linux-2.6-xen-0122-Comment-e820_print_map-call-TEMPORARY.patch DELETED ---


--- linux-2.6-xen-0123-Xen-missing-includes.patch DELETED ---


--- linux-2.6-xen-0124-asm-x86-pgtable_64.h-include-linux-spinlock.h.patch DELETED ---


--- linux-2.6-xen-0125-asm-x86-pgtable.h-include-asm-page.h.patch DELETED ---


--- linux-2.6-xen-0126-fix-pxxval_t-usage-on-mm-init_64.c.patch DELETED ---


--- linux-2.6-xen-0127-Missing-Xen-include.patch DELETED ---


--- linux-2.6-xen-0128-un-static-ipi_to_irq.patch DELETED ---


--- linux-2.6-xen-0129-Don-t-use-_PAGE_GLOBAL-bit-under-Xen-FIXME.patch DELETED ---


--- linux-2.6-xen-0130-Trying-to-organize-the-xen-bootmem-allocation-mess.patch DELETED ---


--- linux-2.6-xen-0131-Don-t-call-xprintk-when-writing-to-hvc-console.patch DELETED ---


--- linux-2.6-xen-0132-Xen-reserve_bootmem-xenstore-and-console-interfac.patch DELETED ---


--- linux-2.6-xen-0133-pvops-64-call-paravirt_activate_mm-on-activate_mm.patch DELETED ---


--- linux-2.6-xen-0134-Xen-64-bit-support-on-xen_pgd_pin.patch DELETED ---


--- linux-2.6-xen-0135-Xen-64-pin-user-PGD-on-activate_mm-and-dup_mmap.patch DELETED ---


--- linux-2.6-xen-0136-pgd_walk-changes-to-make-pgd-pinning-work-FIXME.patch DELETED ---


--- linux-2.6-xen-0137-Xen-Add-a-order-parameter-to-pgd_walk.patch DELETED ---


--- linux-2.6-xen-0138-Xen-64-Unpin-user-pagetable-on-xen_pgd_unpin.patch DELETED ---


--- linux-2.6-xen-0139-Use-un-pin_page-when-un-pinning-pgd.patch DELETED ---


--- linux-2.6-xen-0140-Allow-enabling-Xen-on-x86_64.patch DELETED ---


--- linux-2.6-xen-0141-Add-include-linux-spinlock_types.h-to-asm-x86-pgt.patch DELETED ---


--- linux-2.6-xen-0142-Restore-some-sanity-on-the-initial-pagetable-bootmem.patch DELETED ---


--- linux-2.6-xen-0143-Xen-Use-system_call_after_swapgs-as-the-syscall-c.patch DELETED ---


--- linux-2.6-xen-0144-DEBUG-write-to-HV-console-on-printk.patch DELETED ---


--- linux-2.6-xen-0145-Add-a-system_call_after_saveargs-label-to-entry_64.S.patch DELETED ---


--- linux-2.6-xen-0146-Create-xen-specific-syscall-entry.patch DELETED ---


--- linux-2.6-xen-0147-syscall-related-Xen-ifdefs-FIXME.patch DELETED ---


--- linux-2.6-xen-0148-Point-set_pte-to-xen_set_pte-since-the-beginning.patch DELETED ---


--- linux-2.6-xen-0149-DEBUG-slab-debugging.patch DELETED ---


--- linux-2.6-xen-0150-pvops-64-Include-rsi-on-the-register-clobber-list.patch DELETED ---


--- linux-2.6-xen-0151-Xen-64-quick-ugly-hack-to-fix-pgd_clear-pagetabl.patch DELETED ---


--- linux-2.6-xen-0152-Add-missing-acpi-include-to-xen-setup.c.patch DELETED ---


--- linux-2.6-xen-0153-Don-t-use-FIX_VDSO-on-64-bit.patch DELETED ---


--- linux-2.6-xen-0154-Mark-init-pages-read-write-again-on-free_init_pages.patch DELETED ---


--- linux-2.6-xen-0155-reserve_early-kernel-text-and-data-segments.patch DELETED ---


--- linux-2.6-xen-0156-Xen-Clear-__START_KERNEL_map-PTEs-on-free_init_page.patch DELETED ---


--- linux-2.6-xen-0157-Xen-64-Unpin-and-mark-PGD-as-read-write-on-pgd_free.patch DELETED ---




More information about the fedora-extras-commits mailing list