• Andi Kleen's avatar
    [PATCH] x86-64 merge · 47e4079c
    Andi Kleen authored
    Lots of changes that have accumulated over the last weeks.
    
    This makes it compile and boot again, Lots of bug fixes, including
    security fixes.  Several speedups.
    
    Only changes x86-64 specific files.
    
     - Use private copy of siginfo.h (for si_band)
     - Align 32bit vsyscall coredump (from Roland McGrath)
     - First steps towards 64bit vsyscall coredump (not working yet)
     - Use in kernel trampoline for signals
     - Merge APIC pm update from Pavel/Mikael
     - Security fix for ioperm (from i386)
     - Reenable vsyscall dumping for 32bit coredumps
     - Fix bugs in 32bit coredump that could lead to oopses.
     - Fix 64bit vsyscalls
     - Revert change in pci-gart.c: pci_alloc_consistent must use an
       0xffffffff mask hardcoded.
     - Fix bug in noexec= option handling
     - Export fake_node
     - Cleanups from Pavel
     - Disable 32bit vsyscall coredump again.  Still has some problems.
     - Implement new noexec= and noexec32= options to give a wide choice
       of support for non executable mappings for 32bit and 64bit processes.
       The default is now to honor PROT_EXEC, but mark stack and heap
       PROT_EXEC.
     - 32bit emulation changes from Pavel: use compat_* types.
     - (2.4) Use physical address for GART register.
     - Convert debugreg array to individual members and clean up ptrace
       access.  This saves 16 byte per task.
     - (2.4) Use new streamlined context switch code.  This avoids a
       pipeline stall and pushes the register saving to C code.
     - Save flags register in context switch
     - Clean up SMP early bootup.  Remove some unnecessary code.
     - (2.4) Process numa= option early
     - (2.4) Merge 2.4 clear_page, copy_*_user, copy_page, memcpy, memset.
       These are much faster.  clear/copy_page don't force the new page out
       of memory now which should speed up user processes.  Also full
       workaround for errata #91.
     - Some cleanup in pageattr.c code.
     - Fix warning in i387.h
     - Fix wrong PAGE_KERNEL_LARGE define.  This fixes a security hole and
       makes AGP work again.
     - Fix wrong segment exception handler to not crash.
     - Fix incorrect swapgs handling in bad iret exception handling
     - Clean up some boot printks
     - Micro optimize exception handling preamble.
     - New reboot handling.  Supports warm reboot and BIOS reboot vector
       reboot now.
     - (2.4) Use MTRRs by default in vesafb
     - Fix bug in put_dirty_page: use correct page permissions for the stack
     - Fix type of si_band in asm-generic/siginfo.h to match POSIX/glibc
       (needs checking with other architecture maintainers)
     - (2.4) Define ARCH_HAS_NMI_WATCHDOG
     - Minor cleanup in calling.h
     - IOMMU tuning: only flush the GART TLB when the IOMMU aperture area
       allocation wraps.  Also don't clear entries until needed.  This
       should increase IO performance for IOMMU devices greatly.  Still a
       bit experimental, handle with care.
     - Unmap the IOMMU aperture from kernel mapping to prevent unwanted CPU
       prefetches.
     - Make IOMMU_LEAK_TRACE depend on IOMMU_DEBUG
     - Fix minor bug in pci_alloc_consistent - always check against the dma
       mask of the device, not 0xffffffff.
     - Remove streamining mapping delayed flush in IOMMU: not needed anymore
       and didn't work correctly in 2.5 anyways.
     - Fix the bad pte warnings caused by the SMP/APIC bootup.
     - Forward port 2.4 fix: ioperm was changing the wrong io ports in some
       cases.
     - Minor cleanups
     - Some cleanups in pageattr.c (still buggy)
     - Fix some bugs in the AGP driver.
     - Forward port from 2.4: mask all reserved bits in debug register in
       ptrace.  Previously gdb could crash the kernel by passing invalid
       values.
     - Security fix: make sure FPU is in a defined state after an
       FXSAVE/FXRSTOR exception occurred.
     - Eats keys on panic (works around a buggy KVM)
     - Make user.h user includeable.
     - Disable sign compare warnings for gcc 3.3-hammer
     - Use DSO for 32bit vsyscalls and dump it in core dumps.  Add dwarf2
       information for the vsyscalls.
       Thanks to Richard Henderson for helping me with the nasty parts of
       it.  I had to do some changes over his patch and it's currently only
       lightly tested.  Handle with care.  This only affects 32bit programs
       that use a glibc 3.2 with sysenter support.
     - Security fixes for the 32bit ioctl handlers.  Also some simplications
       and speedups.
     - gcc 3.3-hammer compile fixes for inline assembly
     - Remove acpi.c file corpse.
     - Lots of warning fixes
     - Disable some Dprintks to make the bootup quieter again
     - Clean up ptrace a bit (together with warning fixes)
     - Merge with i386 (handle ACPI dynamic irq entries properly)
     - Disable change_page_attr in pci-gart for now.  Strictly that's
       incorrect, need to do more testing for the root cause of the current
       IOMMU problems.
     - Update defconfig
     - Disable first prefetch in copy_user that is likely to trigger Opteron
       Errata #91
     - More irqreturn_t fixes
     - Add pte_user and fix the vsyscall ptrace hack in generic code.
       It's still partly broken
     - Port verbose MCE handler from 2.4
    47e4079c
ioport.c 2.84 KB