11 Oct, 2016

1 commit

  • Pull protection keys syscall interface from Thomas Gleixner:
    "This is the final step of Protection Keys support which adds the
    syscalls so user space can actually allocate keys and protect memory
    areas with them. Details and usage examples can be found in the
    documentation.

    The mm side of this has been acked by Mel"

    * 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/pkeys: Update documentation
    x86/mm/pkeys: Do not skip PKRU register if debug registers are not used
    x86/pkeys: Fix pkeys build breakage for some non-x86 arches
    x86/pkeys: Add self-tests
    x86/pkeys: Allow configuration of init_pkru
    x86/pkeys: Default to a restrictive init PKRU
    pkeys: Add details of system call use to Documentation/
    generic syscalls: Wire up memory protection keys syscalls
    x86: Wire up protection keys system calls
    x86/pkeys: Allocation/free syscalls
    x86/pkeys: Make mprotect_key() mask off additional vm_flags
    mm: Implement new pkey_mprotect() system call
    x86/pkeys: Add fault handling for PF_PK page fault bit

    Linus Torvalds
     

05 Oct, 2016

1 commit

  • There are a few items that have gotten stale in the protection
    keys documentation. The config option description only applied
    to the execute-only support and is not accurate for the current
    code. There was also a typo with the number of system calls. I
    also wanted to call out that pkey_set() is not a kernel-provided
    facility, and where to find an implementation.

    Signed-off-by: Dave Hansen
    Cc: Dave Hansen
    Cc: linux-doc@vger.kernel.org
    Cc: corbet@lwn.net
    Link: http://lkml.kernel.org/r/20161004163857.71E0D6F6@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Dave Hansen
     

09 Sep, 2016

1 commit

  • This spells out all of the pkey-related system calls that we have
    and provides some example code fragments to demonstrate how we
    expect them to be used.

    Signed-off-by: Dave Hansen
    Cc: linux-arch@vger.kernel.org
    Cc: Dave Hansen
    Cc: mgorman@techsingularity.net
    Cc: arnd@arndb.de
    Cc: linux-api@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: luto@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: torvalds@linux-foundation.org
    Link: http://lkml.kernel.org/r/20160729163020.59350E33@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Dave Hansen
     

06 Sep, 2016

1 commit

  • This is a trivial fix to correct upper bound addresses to always be
    inclusive. Previously, the majority of ranges specified were inclusive with a
    small minority specifying an exclusive upper bound. This patch fixes this
    inconsistency.

    Signed-off-by: Lorenzo Stoakes
    Signed-off-by: Jonathan Corbet

    Lorenzo Stoakes
     

07 Aug, 2016

1 commit

  • Pull documentation fixes from Jonathan Corbet:
    "Three fixes for the docs build, including removing an annoying warning
    on 'make help' if sphinx isn't present"

    * tag 'doc-4.8-fixes' of git://git.lwn.net/linux:
    DocBook: use DOCBOOKS="" to ignore DocBooks instead of IGNORE_DOCBOOKS=1
    Documenation: update cgroup's document path
    Documentation/sphinx: do not warn about missing tools in 'make help'

    Linus Torvalds
     

04 Aug, 2016

1 commit


27 Jul, 2016

1 commit


26 Jul, 2016

1 commit

  • Pull x86 boot updates from Ingo Molnar:
    "The main changes:

    - add initial commits to randomize kernel memory section virtual
    addresses, enabled via a new kernel option: RANDOMIZE_MEMORY
    (Thomas Garnier, Kees Cook, Baoquan He, Yinghai Lu)

    - enhance KASLR (RANDOMIZE_BASE) physical memory randomization (Kees
    Cook)

    - EBDA/BIOS region boot quirk cleanups (Andy Lutomirski, Ingo Molnar)

    - misc cleanups/fixes"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/boot: Simplify EBDA-vs-BIOS reservation logic
    x86/boot: Clarify what x86_legacy_features.reserve_bios_regions does
    x86/boot: Reorganize and clean up the BIOS area reservation code
    x86/mm: Do not reference phys addr beyond kernel
    x86/mm: Add memory hotplug support for KASLR memory randomization
    x86/mm: Enable KASLR for vmalloc memory regions
    x86/mm: Enable KASLR for physical mapping memory regions
    x86/mm: Implement ASLR for kernel memory regions
    x86/mm: Separate variable for trampoline PGD
    x86/mm: Add PUD VA support for physical mapping
    x86/mm: Update physical mapping variable names
    x86/mm: Refactor KASLR entropy functions
    x86/KASLR: Fix boot crash with certain memory configurations
    x86/boot/64: Add forgotten end of function marker
    x86/KASLR: Allow randomization below the load address
    x86/KASLR: Extend kernel image physical address randomization to addresses larger than 4G
    x86/KASLR: Randomize virtual address separately
    x86/KASLR: Clarify identity map interface
    x86/boot: Refuse to build with data relocations
    x86/KASLR, x86/power: Remove x86 hibernation restrictions

    Linus Torvalds
     

08 Jul, 2016

1 commit

  • Randomizes the virtual address space of kernel memory regions for
    x86_64. This first patch adds the infrastructure and does not randomize
    any region. The following patches will randomize the physical memory
    mapping, vmalloc and vmemmap regions.

    This security feature mitigates exploits relying on predictable kernel
    addresses. These addresses can be used to disclose the kernel modules
    base addresses or corrupt specific structures to elevate privileges
    bypassing the current implementation of KASLR. This feature can be
    enabled with the CONFIG_RANDOMIZE_MEMORY option.

    The order of each memory region is not changed. The feature looks at the
    available space for the regions based on different configuration options
    and randomizes the base and space between each. The size of the physical
    memory mapping is the available physical memory. No performance impact
    was detected while testing the feature.

    Entropy is generated using the KASLR early boot functions now shared in
    the lib directory (originally written by Kees Cook). Randomization is
    done on PGD & PUD page table levels to increase possible addresses. The
    physical memory mapping code was adapted to support PUD level virtual
    addresses. This implementation on the best configuration provides 30,000
    possible virtual addresses in average for each memory region. An
    additional low memory page is used to ensure each CPU can start with a
    PGD aligned virtual address (for realmode).

    x86/dump_pagetable was updated to correctly display each region.

    Updated documentation on x86_64 memory layout accordingly.

    Performance data, after all patches in the series:

    Kernbench shows almost no difference (-+ less than 1%):

    Before:

    Average Optimal load -j 12 Run (std deviation): Elapsed Time 102.63 (1.2695)
    User Time 1034.89 (1.18115) System Time 87.056 (0.456416) Percent CPU 1092.9
    (13.892) Context Switches 199805 (3455.33) Sleeps 97907.8 (900.636)

    After:

    Average Optimal load -j 12 Run (std deviation): Elapsed Time 102.489 (1.10636)
    User Time 1034.86 (1.36053) System Time 87.764 (0.49345) Percent CPU 1095
    (12.7715) Context Switches 199036 (4298.1) Sleeps 97681.6 (1031.11)

    Hackbench shows 0% difference on average (hackbench 90 repeated 10 times):

    attemp,before,after 1,0.076,0.069 2,0.072,0.069 3,0.066,0.066 4,0.066,0.068
    5,0.066,0.067 6,0.066,0.069 7,0.067,0.066 8,0.063,0.067 9,0.067,0.065
    10,0.068,0.071 average,0.0677,0.0677

    Signed-off-by: Thomas Garnier
    Signed-off-by: Kees Cook
    Cc: Alexander Kuleshov
    Cc: Alexander Popov
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Aneesh Kumar K.V
    Cc: Baoquan He
    Cc: Boris Ostrovsky
    Cc: Borislav Petkov
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Christian Borntraeger
    Cc: Dan Williams
    Cc: Dave Hansen
    Cc: Dave Young
    Cc: Denys Vlasenko
    Cc: Dmitry Vyukov
    Cc: H. Peter Anvin
    Cc: Jan Beulich
    Cc: Joerg Roedel
    Cc: Jonathan Corbet
    Cc: Josh Poimboeuf
    Cc: Juergen Gross
    Cc: Kirill A. Shutemov
    Cc: Linus Torvalds
    Cc: Lv Zheng
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Fleming
    Cc: Peter Zijlstra
    Cc: Stephen Smalley
    Cc: Thomas Gleixner
    Cc: Toshi Kani
    Cc: Xiao Guangrong
    Cc: Yinghai Lu
    Cc: kernel-hardening@lists.openwall.com
    Cc: linux-doc@vger.kernel.org
    Link: http://lkml.kernel.org/r/1466556426-32664-6-git-send-email-keescook@chromium.org
    Signed-off-by: Ingo Molnar

    Thomas Garnier
     

01 Jul, 2016

1 commit


08 Jun, 2016

1 commit

  • Document that builtin microcode is 64-bit only. Also, improve/add
    comments to places.

    Signed-off-by: Borislav Petkov
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-doc@vger.kernel.org
    Link: http://lkml.kernel.org/r/1465225850-7352-10-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     

20 May, 2016

1 commit

  • Pull Documentation updates from Jon Corbet:
    "A bit busier this time around.

    The most interesting thing (IMO) this time around is some beginning
    infrastructural work to allow documents to be written using
    restructured text. Maybe someday, in a galaxy far far away, we'll be
    able to eliminate the DocBook dependency and have a much better
    integrated set of kernel docs. Someday.

    Beyond that, there's a new document on security hardening from Kees,
    the movement of some sample code over to samples/, a number of
    improvements to the serial docs from Geert, and the usual collection
    of corrections, typo fixes, etc"

    * tag 'docs-for-linus' of git://git.lwn.net/linux: (55 commits)
    doc: self-protection: provide initial details
    serial: doc: Use port->state instead of info
    serial: doc: Always refer to tty_port->mutex
    Documentation: vm: Spelling s/paltform/platform/g
    Documentation/memcg: update kmem limit doc as codes behavior
    docproc: print a comment about autogeneration for rst output
    docproc: add support for reStructuredText format via --rst option
    docproc: abstract terminating lines at first space
    docproc: abstract docproc directive detection
    docproc: reduce unnecessary indentation
    docproc: add variables for subcommand and filename
    kernel-doc: use rst C domain directives and references for types
    kernel-doc: produce RestructuredText output
    kernel-doc: rewrite usage description, remove duplicated comments
    Doc: correct the location of sysrq.c
    Documentation: fix common spelling mistakes
    samples: v4l: from Documentation to samples directory
    samples: connector: from Documentation to samples directory
    Documentation: xillybus: fix spelling mistake
    Documentation: x86: fix spelling mistakes
    ...

    Linus Torvalds
     

28 Apr, 2016

1 commit


22 Apr, 2016

2 commits


13 Apr, 2016

1 commit


29 Mar, 2016

3 commits

  • Update PAT documentation to describe how PAT is initialized under
    various configurations.

    Signed-off-by: Toshi Kani
    Reviewed-by: Thomas Gleixner
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Juergen Gross
    Cc: Linus Torvalds
    Cc: Luis R. Rodriguez
    Cc: Peter Zijlstra
    Cc: Toshi Kani
    Cc: elliott@hpe.com
    Cc: konrad.wilk@oracle.com
    Cc: paul.gortmaker@windriver.com
    Cc: xen-devel@lists.xenproject.org
    Link: http://lkml.kernel.org/r/1458769323-24491-8-git-send-email-toshi.kani@hpe.com
    Signed-off-by: Ingo Molnar

    Toshi Kani
     
  • Stefan Richter noticed that the X86_INTEL_MEMORY_PROTECTION_KEYS option
    in arch/x86/Kconfig references Documentation/x86/protection-keys.txt,
    but the file does not exist.

    This is a patch merging mishap: the final (v8) version of the pkeys
    series did not include the documentation patch 32 and v7 included.
    Add it now.

    Reported-by: Stefan Richter
    Signed-off-by: Dave Hansen
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Dave Hansen
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20151214190634.426BEE41@viggo.jf.intel.com
    [ Added changelog. ]
    Signed-off-by: Ingo Molnar

    Signed-off-by: Ingo Molnar

    Dave Hansen
     
  • This should contain important aspects of how we represent the system
    topology on x86. If people have questions about it and this file doesn't
    answer it, then it must be updated.

    Signed-off-by: Borislav Petkov
    Link: http://lkml.kernel.org/r/20160328095609.GD26651@pd.tnic
    Signed-off-by: Thomas Gleixner

    Borislav Petkov
     

21 Mar, 2016

1 commit

  • Pull EFI updates from Ingo Molnar:
    "The main changes are:

    - Use separate EFI page tables when executing EFI firmware code.
    This isolates the EFI context from the rest of the kernel, which
    has security and general robustness advantages. (Matt Fleming)

    - Run regular UEFI firmware with interrupts enabled. This is already
    the status quo under other OSs. (Ard Biesheuvel)

    - Various x86 EFI enhancements, such as the use of non-executable
    attributes for EFI memory mappings. (Sai Praneeth Prakhya)

    - Various arm64 UEFI enhancements. (Ard Biesheuvel)

    - ... various fixes and cleanups.

    The separate EFI page tables feature got delayed twice already,
    because it's an intrusive change and we didn't feel confident about
    it - third time's the charm we hope!"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
    x86/mm/pat: Fix boot crash when 1GB pages are not supported by the CPU
    x86/efi: Only map kernel text for EFI mixed mode
    x86/efi: Map EFI_MEMORY_{XP,RO} memory region bits to EFI page tables
    x86/mm/pat: Don't implicitly allow _PAGE_RW in kernel_map_pages_in_pgd()
    efi/arm*: Perform hardware compatibility check
    efi/arm64: Check for h/w support before booting a >4 KB granular kernel
    efi/arm: Check for LPAE support before booting a LPAE kernel
    efi/arm-init: Use read-only early mappings
    efi/efistub: Prevent __init annotations from being used
    arm64/vmlinux.lds.S: Handle .init.rodata.xxx and .init.bss sections
    efi/arm64: Drop __init annotation from handle_kernel_image()
    x86/mm/pat: Use _PAGE_GLOBAL bit for EFI page table mappings
    efi/runtime-wrappers: Run UEFI Runtime Services with interrupts enabled
    efi: Reformat GUID tables to follow the format in UEFI spec
    efi: Add Persistent Memory type name
    efi: Add NV memory attribute
    x86/efi: Show actual ending addresses in efi_print_memmap
    x86/efi/bgrt: Don't ignore the BGRT if the 'valid' bit is 0
    efivars: Use to_efivar_entry
    efi: Runtime-wrapper: Get rid of the rtc_lock spinlock
    ...

    Linus Torvalds
     

16 Mar, 2016

2 commits

  • Pull x86 microcode updates from Ingo Molnar:
    "The biggest change in this cycle was the separation of the microcode
    loading mechanism from the initrd code plus the support of built-in
    microcode images.

    There were also lots cleanups and general restructuring (by Borislav
    Petkov)"

    * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    x86/microcode/intel: Drop orig_sum from ext signature checksum
    x86/microcode/intel: Improve microcode sanity-checking error messages
    x86/microcode/intel: Merge two consecutive if-statements
    x86/microcode/intel: Get rid of DWSIZE
    x86/microcode/intel: Change checksum variables to u32
    x86/microcode: Use kmemdup() rather than duplicating its implementation
    x86/microcode: Remove unnecessary paravirt_enabled check
    x86/microcode: Document builtin microcode loading method
    x86/microcode/AMD: Issue microcode updated message later
    x86/microcode/intel: Cleanup get_matching_model_microcode()
    x86/microcode/intel: Remove unused arg of get_matching_model_microcode()
    x86/microcode/intel: Rename mc_saved_in_initrd
    x86/microcode/intel: Use *wrmsrl variants
    x86/microcode/intel: Cleanup apply_microcode_intel()
    x86/microcode/intel: Move the BUG_ON up and turn it into WARN_ON
    x86/microcode/intel: Rename mc_intel variable to mc
    x86/microcode/intel: Rename mc_saved_count to num_saved
    x86/microcode/intel: Rename local variables of type struct mc_saved_data
    x86/microcode/AMD: Drop redundant printk prefix
    x86/microcode: Issue update message only once
    ...

    Linus Torvalds
     
  • Pull x86 asm updates from Ingo Molnar:
    "This is another big update. Main changes are:

    - lots of x86 system call (and other traps/exceptions) entry code
    enhancements. In particular the complex parts of the 64-bit entry
    code have been migrated to C code as well, and a number of dusty
    corners have been refreshed. (Andy Lutomirski)

    - vDSO special mapping robustification and general cleanups (Andy
    Lutomirski)

    - cpufeature refactoring, cleanups and speedups (Borislav Petkov)

    - lots of other changes ..."

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
    x86/cpufeature: Enable new AVX-512 features
    x86/entry/traps: Show unhandled signal for i386 in do_trap()
    x86/entry: Call enter_from_user_mode() with IRQs off
    x86/entry/32: Change INT80 to be an interrupt gate
    x86/entry: Improve system call entry comments
    x86/entry: Remove TIF_SINGLESTEP entry work
    x86/entry/32: Add and check a stack canary for the SYSENTER stack
    x86/entry/32: Simplify and fix up the SYSENTER stack #DB/NMI fixup
    x86/entry: Only allocate space for tss_struct::SYSENTER_stack if needed
    x86/entry: Vastly simplify SYSENTER TF (single-step) handling
    x86/entry/traps: Clear DR6 early in do_debug() and improve the comment
    x86/entry/traps: Clear TIF_BLOCKSTEP on all debug exceptions
    x86/entry/32: Restore FLAGS on SYSEXIT
    x86/entry/32: Filter NT and speed up AC filtering in SYSENTER
    x86/entry/compat: In SYSENTER, sink AC clearing below the existing FLAGS test
    selftests/x86: In syscall_nt, test NT|TF as well
    x86/asm-offsets: Remove PARAVIRT_enabled
    x86/entry/32: Introduce and use X86_BUG_ESPFIX instead of paravirt_enabled
    uprobes: __create_xol_area() must nullify xol_mapping.fault
    x86/cpufeature: Create a new synthetic cpu capability for machine check recovery
    ...

    Linus Torvalds
     

18 Feb, 2016

2 commits

  • The Intel Software Developer Manual describes bit 24 in the MCG_CAP
    MSR:

    MCG_SER_P (software error recovery support present) flag,
    bit 24 — Indicates (when set) that the processor supports
    software error recovery

    But only some models with this capability bit set will actually
    generate recoverable machine checks.

    Check the model name and set a synthetic capability bit. Provide
    a command line option to set this bit anyway in case the kernel
    doesn't recognise the model name.

    Signed-off-by: Tony Luck
    Reviewed-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/2e5bfb23c89800a036fb8a45fa97a74bb16bc362.1455732970.git.tony.luck@intel.com
    Signed-off-by: Ingo Molnar

    Tony Luck
     
  • Huge amounts of help from Andy Lutomirski and Borislav Petkov to
    produce this. Andy provided the inspiration to add classes to the
    exception table with a clever bit-squeezing trick, Boris pointed
    out how much cleaner it would all be if we just had a new field.

    Linus Torvalds blessed the expansion with:

    ' I'd rather not be clever in order to save just a tiny amount of space
    in the exception table, which isn't really criticial for anybody. '

    The third field is another relative function pointer, this one to a
    handler that executes the actions.

    We start out with three handlers:

    1: Legacy - just jumps the to fixup IP
    2: Fault - provide the trap number in %ax to the fixup code
    3: Cleaned up legacy for the uaccess error hack

    Signed-off-by: Tony Luck
    Reviewed-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/f6af78fcbd348cf4939875cfda9c19689b5e50b8.1455732970.git.tony.luck@intel.com
    Signed-off-by: Ingo Molnar

    Tony Luck
     

09 Feb, 2016

1 commit

  • Add some text and an example to Documentation/x86/early-microcode.txt
    explaining how to build in microcode.

    Tested-by: Thomas Voegtle
    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1454499225-21544-18-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     

29 Nov, 2015

1 commit

  • Make it clear that the EFI page tables are only available during
    EFI runtime calls since that subject has come up a fair numbers
    of times in the past.

    Additionally, add the EFI region start and end addresses to the
    table so that it's possible to see at a glance where they fall
    in relation to other regions.

    Signed-off-by: Matt Fleming
    Reviewed-by: Borislav Petkov
    Acked-by: Borislav Petkov
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Andy Lutomirski
    Cc: Ard Biesheuvel
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Dave Jones
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Sai Praneeth Prakhya
    Cc: Stephen Smalley
    Cc: Thomas Gleixner
    Cc: Toshi Kani
    Cc: linux-efi@vger.kernel.org
    Link: http://lkml.kernel.org/r/1448658575-17029-7-git-send-email-matt@codeblueprint.co.uk
    Signed-off-by: Ingo Molnar

    Matt Fleming
     

02 Sep, 2015

2 commits

  • Pull x86 mm updates from Ingo Molnar:
    "The dominant change in this cycle was the continued work to isolate
    kernel drivers from MTRR legacies: this tree gets rid of all kernel
    internal driver interfaces to MTRRs (mostly by rewriting it to proper
    PAT interfaces), the only access left is the /proc/mtrr ABI.

    This work was done by Luis R Rodriguez.

    There's also some related PCI interface additions for which I've
    Cc:-ed Bjorn"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
    x86/mm/mtrr: Remove kernel internal MTRR interfaces: unexport mtrr_add() and mtrr_del()
    s390/io: Add pci_iomap_wc() and pci_iomap_wc_range()
    drivers/dma/iop-adma: Use dma_alloc_writecombine() kernel-style
    drivers/video/fbdev/vt8623fb: Use arch_phys_wc_add() and pci_iomap_wc()
    drivers/video/fbdev/s3fb: Use arch_phys_wc_add() and pci_iomap_wc()
    drivers/video/fbdev/arkfb.c: Use arch_phys_wc_add() and pci_iomap_wc()
    PCI: Add pci_iomap_wc() variants
    drivers/video/fbdev/gxt4500: Use pci_ioremap_wc_bar() to map framebuffer
    drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and pci_ioremap_wc_bar()
    drivers/video/fbdev/i740fb: Use arch_phys_wc_add() and pci_ioremap_wc_bar()
    PCI: Add pci_ioremap_wc_bar()
    x86/mm: Make kernel/check.c explicitly non-modular
    x86/mm/pat: Make mm/pageattr[-test].c explicitly non-modular
    x86/mm/pat: Add comments to cachemode translation tables
    arch/*/io.h: Add ioremap_uc() to all architectures
    drivers/video/fbdev/atyfb: Use arch_phys_wc_add() and ioremap_wc()
    drivers/video/fbdev/atyfb: Replace MTRR UC hole with strong UC
    drivers/video/fbdev/atyfb: Clarify ioremap() base and length used
    drivers/video/fbdev/atyfb: Carve out framebuffer length fudging into a helper
    x86/mm, asm-generic: Add IOMMU ioremap_uc() variant default
    ...

    Linus Torvalds
     
  • Pull x86 boot updates from Ingo Molnar:
    "The main x86 bootup related changes in this cycle were:

    - more boot time optimizations. (Len Brown)

    - implement hex output to allow the debugging of early bootup
    parameters. (Kees Cook)

    - remove obsolete MCA leftovers. (Paolo Pisati)"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/smpboot: Remove APIC.wait_for_init_deassert and atomic init_deasserted
    x86/smpboot: Remove SIPI delays from cpu_up()
    x86/smpboot: Remove udelay(100) when polling cpu_callin_map
    x86/smpboot: Remove udelay(100) when polling cpu_initialized_map
    x86/boot: Obsolete the MCA sys_desc_table
    x86/boot: Add hex output for debugging

    Linus Torvalds
     

28 Aug, 2015

1 commit

  • The effort to replace mtrr_add() with architecture agnostic
    arch_phys_wc_add() is complete, this will ensure write-combining
    implementations (PAT on x86) is taken advantage instead of using
    MTRR. With the effort done now, hide direct MTRR access for
    drivers.

    The legacy user-space /proc/mtrr ABI is not affected.

    Update x86 documentation on MTRR to reflect the completion of
    the phasing out of direct access to MTRR, also add a note on
    platform firmware code use of MTRRs based on the obituary
    discussion of MTRRs on Linux [0].

    [0] http://lkml.kernel.org/r/1438991330.3109.196.camel@hp.com

    Signed-off-by: Luis R. Rodriguez
    Cc:
    Cc: Andy Lutomirski
    Cc: Andy Walls
    Cc: Antonino Daplas
    Cc: Borislav Petkov
    Cc: Daniel Vetter
    Cc: Dave Airlie
    Cc: Dave Hansen
    Cc: Davidlohr Bueso
    Cc: Doug Ledford
    Cc: H. Peter Anvin
    Cc: Jean-Christophe Plagniol-Villard
    Cc: Juergen Gross
    Cc: Linus Torvalds
    Cc: Mel Gorman
    Cc: Peter Zijlstra
    Cc: Suresh Siddha
    Cc: Thomas Gleixner
    Cc: Tomi Valkeinen
    Cc: Toshi Kani
    Cc: Ville Syrjälä
    Cc: Vlastimil Babka
    Cc: airlied@linux.ie
    Cc: benh@kernel.crashing.org
    Cc: bhelgaas@google.com
    Cc: dan.j.williams@intel.com
    Cc: konrad.wilk@oracle.com
    Cc: linux-fbdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-media@vger.kernel.org
    Cc: mst@redhat.com
    Cc: netdev@vger.kernel.org
    Cc: vinod.koul@intel.com
    Cc: xen-devel@lists.xensource.com
    Link: http://lkml.kernel.org/r/1440443613-13696-12-git-send-email-mcgrof@do-not-panic.com
    Signed-off-by: Ingo Molnar

    Luis R. Rodriguez
     

25 Aug, 2015

1 commit


21 Jul, 2015

1 commit

  • The kernel does not support the MCA bus anymroe, so mark sys_desc_table
    as obsolete: remove any reference from the code together with the remaining
    of MCA logic.

    bloat-o-meter output:

    add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-55 (-55)
    function old new delta
    i386_start_kernel 128 119 -9
    setup_arch 1421 1375 -46

    Signed-off-by: Paolo Pisati
    Cc: Josh Triplett
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/1437409430-8491-1-git-send-email-p.pisati@gmail.com
    Signed-off-by: Ingo Molnar

    Paolo Pisati
     

02 Jul, 2015

1 commit

  • The paths mentioned in this file weren't updated through some file
    rename commits. Fix them to refer to the correct path.

    Signed-off-by: James C Boyd
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: corbet@lwn.net
    Cc: trivial@kernel.org
    Link: http://lkml.kernel.org/r/1435781606-3037-1-git-send-email-jcboyd.dev@gmail.com
    Signed-off-by: Ingo Molnar

    James C Boyd
     

30 Jun, 2015

1 commit


23 Jun, 2015

2 commits

  • Pull x86 core updates from Ingo Molnar:
    "There were so many changes in the x86/asm, x86/apic and x86/mm topics
    in this cycle that the topical separation of -tip broke down somewhat -
    so the result is a more traditional architecture pull request,
    collected into the 'x86/core' topic.

    The topics were still maintained separately as far as possible, so
    bisectability and conceptual separation should still be pretty good -
    but there were a handful of merge points to avoid excessive
    dependencies (and conflicts) that would have been poorly tested in the
    end.

    The next cycle will hopefully be much more quiet (or at least will
    have fewer dependencies).

    The main changes in this cycle were:

    * x86/apic changes, with related IRQ core changes: (Jiang Liu, Thomas
    Gleixner)

    - This is the second and most intrusive part of changes to the x86
    interrupt handling - full conversion to hierarchical interrupt
    domains:

    [IOAPIC domain] -----
    |
    [MSI domain] --------[Remapping domain] ----- [ Vector domain ]
    | (optional) |
    [HPET MSI domain] ----- |
    |
    [DMAR domain] -----------------------------
    |
    [Legacy domain] -----------------------------

    This now reflects the actual hardware and allowed us to distangle
    the domain specific code from the underlying parent domain, which
    can be optional in the case of interrupt remapping. It's a clear
    separation of functionality and removes quite some duct tape
    constructs which plugged the remap code between ioapic/msi/hpet
    and the vector management.

    - Intel IOMMU IRQ remapping enhancements, to allow direct interrupt
    injection into guests (Feng Wu)

    * x86/asm changes:

    - Tons of cleanups and small speedups, micro-optimizations. This
    is in preparation to move a good chunk of the low level entry
    code from assembly to C code (Denys Vlasenko, Andy Lutomirski,
    Brian Gerst)

    - Moved all system entry related code to a new home under
    arch/x86/entry/ (Ingo Molnar)

    - Removal of the fragile and ugly CFI dwarf debuginfo annotations.
    Conversion to C will reintroduce many of them - but meanwhile
    they are only getting in the way, and the upstream kernel does
    not rely on them (Ingo Molnar)

    - NOP handling refinements. (Borislav Petkov)

    * x86/mm changes:

    - Big PAT and MTRR rework: making the code more robust and
    preparing to phase out exposing direct MTRR interfaces to drivers -
    in favor of using PAT driven interfaces (Toshi Kani, Luis R
    Rodriguez, Borislav Petkov)

    - New ioremap_wt()/set_memory_wt() interfaces to support
    Write-Through cached memory mappings. This is especially
    important for good performance on NVDIMM hardware (Toshi Kani)

    * x86/ras changes:

    - Add support for deferred errors on AMD (Aravind Gopalakrishnan)

    This is an important RAS feature which adds hardware support for
    poisoned data. That means roughly that the hardware marks data
    which it has detected as corrupted but wasn't able to correct, as
    poisoned data and raises an APIC interrupt to signal that in the
    form of a deferred error. It is the OS's responsibility then to
    take proper recovery action and thus prolonge system lifetime as
    far as possible.

    - Add support for Intel "Local MCE"s: upcoming CPUs will support
    CPU-local MCE interrupts, as opposed to the traditional system-
    wide broadcasted MCE interrupts (Ashok Raj)

    - Misc cleanups (Borislav Petkov)

    * x86/platform changes:

    - Intel Atom SoC updates

    ... and lots of other cleanups, fixlets and other changes - see the
    shortlog and the Git log for details"

    * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (222 commits)
    x86/hpet: Use proper hpet device number for MSI allocation
    x86/hpet: Check for irq==0 when allocating hpet MSI interrupts
    x86/mm/pat, drivers/infiniband/ipath: Use arch_phys_wc_add() and require PAT disabled
    x86/mm/pat, drivers/media/ivtv: Use arch_phys_wc_add() and require PAT disabled
    x86/platform/intel/baytrail: Add comments about why we disabled HPET on Baytrail
    genirq: Prevent crash in irq_move_irq()
    genirq: Enhance irq_data_to_desc() to support hierarchy irqdomain
    iommu, x86: Properly handle posted interrupts for IOMMU hotplug
    iommu, x86: Provide irq_remapping_cap() interface
    iommu, x86: Setup Posted-Interrupts capability for Intel iommu
    iommu, x86: Add cap_pi_support() to detect VT-d PI capability
    iommu, x86: Avoid migrating VT-d posted interrupts
    iommu, x86: Save the mode (posted or remapped) of an IRTE
    iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip
    iommu: dmar: Provide helper to copy shared irte fields
    iommu: dmar: Extend struct irte for VT-d Posted-Interrupts
    iommu: Add new member capability to struct irq_remap_ops
    x86/asm/entry/64: Disentangle error_entry/exit gsbase/ebx/usermode code
    x86/asm/entry/32: Shorten __audit_syscall_entry() args preparation
    x86/asm/entry/32: Explain reloading of registers after __audit_syscall_entry()
    ...

    Linus Torvalds
     
  • Pull x86 EFI updates from Ingo Molnar:
    "EFI changes:

    - Use idiomatic negative error values in efivar_create_sysfs_entry()
    instead of returning '1' to indicate error (Dan Carpenter)

    - Implement new support to expose the EFI System Resource Tables in
    sysfs, which provides information for performing firmware updates
    (Peter Jones)

    - Documentation cleanup in the EFI handover protocol section which
    falsely claimed that 'cmdline_size' needed to be filled out by the
    boot loader (Alex Smith)

    - Align the order of SMBIOS tables in /sys/firmware/efi/systab to
    match the way that we do things for ACPI and add documentation to
    Documentation/ABI (Jean Delvare)"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: Work around ia64 build problem with ESRT driver
    efi: Add 'systab' information to Documentation/ABI
    efi: dmi: List SMBIOS3 table before SMBIOS table
    efi/esrt: Fix some compiler warnings
    x86, doc: Remove cmdline_size from list of fields to be filled in for EFI handover
    efi: Add esrt support
    efi: efivar_create_sysfs_entry() should return negative error codes

    Linus Torvalds
     

22 Jun, 2015

1 commit


09 Jun, 2015

1 commit


08 Jun, 2015

1 commit

  • Rename the following system call entry points:

    ia32_cstar_target -> entry_SYSCALL_compat
    ia32_syscall -> entry_INT80_compat

    The generic naming scheme for x86 system call entry points is:

    entry_MNEMONIC_qualifier

    where 'qualifier' is one of _32, _64 or _compat.

    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

07 Jun, 2015

2 commits

  • Conflicts:
    arch/x86/include/asm/irq_vectors.h

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Initialize and prepare for handling LMCEs. Add a boot-time
    option to disable LMCEs.

    Signed-off-by: Ashok Raj
    [ Simplify stuff, align statements for better readability, reflow comments; kill
    unused lmce_clear(); save us an MSR write if LMCE is already enabled. ]
    Signed-off-by: Borislav Petkov
    Cc: Andrew Morton
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1433436928-31903-16-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Ashok Raj