03 Apr, 2015

1 commit

  • Commit:

    e2b32e678513 ("x86, kaslr: randomize module base load address")

    made module base address randomization unconditional and didn't regard
    disabled KKASLR due to CONFIG_HIBERNATION and command line option
    "nokaslr". For more info see (now reverted) commit:

    f47233c2d34f ("x86/mm/ASLR: Propagate base load address calculation")

    In order to propagate KASLR status to kernel proper, we need a single bit
    in boot_params.hdr.loadflags and we've chosen bit 1 thus leaving the
    top-down allocated bits for bits supposed to be used by the bootloader.

    Originally-From: Jiri Kosina
    Suggested-by: H. Peter Anvin
    Signed-off-by: Borislav Petkov
    Cc: Kees Cook
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     

22 Feb, 2015

1 commit

  • Pull misc x86 fixes from Ingo Molnar:
    "This contains:

    - EFI fixes
    - a boot printout fix
    - ASLR/kASLR fixes
    - intel microcode driver fixes
    - other misc fixes

    Most of the linecount comes from an EFI revert"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mm/ASLR: Avoid PAGE_SIZE redefinition for UML subarch
    x86/microcode/intel: Handle truncated microcode images more robustly
    x86/microcode/intel: Guard against stack overflow in the loader
    x86, mm/ASLR: Fix stack randomization on 64-bit systems
    x86/mm/init: Fix incorrect page size in init_memory_mapping() printks
    x86/mm/ASLR: Propagate base load address calculation
    Documentation/x86: Fix path in zero-page.txt
    x86/apic: Fix the devicetree build in certain configs
    Revert "efi/libstub: Call get_memory_map() to obtain map and desc sizes"
    x86/efi: Avoid triple faults during EFI mixed mode calls

    Linus Torvalds
     

19 Feb, 2015

1 commit


14 Feb, 2015

1 commit

  • This patch adds arch specific code for kernel address sanitizer.

    16TB of virtual addressed used for shadow memory. It's located in range
    [ffffec0000000000 - fffffc0000000000] between vmemmap and %esp fixup
    stacks.

    At early stage we map whole shadow region with zero page. Latter, after
    pages mapped to direct mapping address range we unmap zero pages from
    corresponding shadow (see kasan_map_shadow()) and allocate and map a real
    shadow memory reusing vmemmap_populate() function.

    Also replace __pa with __pa_nodebug before shadow initialized. __pa with
    CONFIG_DEBUG_VIRTUAL=y make external function call (__phys_addr)
    __phys_addr is instrumented, so __asan_load could be called before shadow
    area initialized.

    Signed-off-by: Andrey Ryabinin
    Cc: Dmitry Vyukov
    Cc: Konstantin Serebryany
    Cc: Dmitry Chernenkov
    Signed-off-by: Andrey Konovalov
    Cc: Yuri Gribov
    Cc: Konstantin Khlebnikov
    Cc: Sasha Levin
    Cc: Christoph Lameter
    Cc: Joonsoo Kim
    Cc: Dave Hansen
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Jim Davis
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     

03 Jan, 2015

1 commit

  • This causes all non-NMI, non-double-fault kernel entries from
    userspace to run on the normal kernel stack. Double-fault is
    exempt to minimize confusion if we double-fault directly from
    userspace due to a bad kernel stack.

    This is, suprisingly, simpler and shorter than the current code. It
    removes the IMO rather frightening paranoid_userspace path, and it
    make sync_regs much simpler.

    There is no risk of stack overflow due to this change -- the kernel
    stack that we switch to is empty.

    This will also enable us to create non-atomic sections within
    machine checks from userspace, which will simplify memory failure
    handling. It will also allow the upcoming fsgsbase code to be
    simplified, because it doesn't need to worry about usergs when
    scheduling in paranoid_exit, as that code no longer exists.

    Cc: Oleg Nesterov
    Cc: Andi Kleen
    Cc: Tony Luck
    Acked-by: Borislav Petkov
    Signed-off-by: Andy Lutomirski

    Andy Lutomirski
     

20 Dec, 2014

1 commit


15 Dec, 2014

3 commits

  • Give MPX a real config option. The CPUs that support it (referenced
    here):

    https://software.intel.com/en-us/forums/topic/402393

    are not available publicly yet. Right now only the software emulator
    provides MPX for the general public.

    [ tglx: Make it default off. There is no point in having it on right
    now as no hardware and no proper tooling support are available ]

    Signed-off-by: Dave Hansen
    Cc: Dave Hansen
    Link: http://lkml.kernel.org/r/20141212183836.2569D58D@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Dave Hansen
     
  • I was writing some MPX test programs and realized that the
    current design makes it tricky. I did something like:

    bndcfgu |= bnd_dir | BNDCFGU_ENABLE;
    xrstor();
    printf("xrstor done");
    // #BR bounds exception here
    prctl(MPX_ENABLE_MANAGEMENT);

    and then compiled the app with "-fcheck-pointer-bounds -mmpx"
    to enable MPX instrumentation.

    The problem is that there is MPX instrumentation inserted in
    to the area of the printf(). The kernel gets a bounds exception
    and since management isn't yet enabled, it SIGSEGV's.

    Add a bit to the documentation to explain a way around this and
    where apps need to be careful.

    Signed-off-by: Dave Hansen
    Cc: Dave Hansen
    Link: http://lkml.kernel.org/r/20141212183835.8C581B3E@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Dave Hansen
     
  • Pull x86 fixes from Ingo Molnar:
    "Misc fixes (mainly Andy's TLS fixes), plus a cleanup"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tls: Disallow unusual TLS segments
    x86/tls: Validate TLS entries to protect espfix
    MAINTAINERS: Add me as x86 VDSO submaintainer
    x86/asm: Unify segment selector defines
    x86/asm: Guard against building the 32/64-bit versions of the asm-offsets*.c file directly
    x86_64, switch_to(): Load TLS descriptors before switching DS and ES
    x86/mm: Use min() instead of min_t() in the e820 printout code
    x86/mm: Fix zone ranges boot printout
    x86/doc: Update documentation after file shuffling

    Linus Torvalds
     

11 Dec, 2014

1 commit


18 Nov, 2014

1 commit

  • This patch adds the Documentation/x86/intel_mpx.txt file with some
    information about Intel MPX.

    Signed-off-by: Qiaowei Ren
    Signed-off-by: Dave Hansen
    Cc: linux-mm@kvack.org
    Cc: linux-mips@linux-mips.org
    Cc: Dave Hansen
    Link: http://lkml.kernel.org/r/20141114151832.7FDB1720@viggo.jf.intel.com
    Signed-off-by: Thomas Gleixner

    Qiaowei Ren
     

19 Sep, 2014

1 commit

  • Peter Anvin says:

    > 0xffff880000000000 is the lowest usable address because we have
    > agreed to leave 0xffff800000000000-0xffff880000000000 for the
    > hypervisor or other non-OS uses.

    Let's call this out in the documentation.

    This came up during the kernel address sanitizer discussions
    where it was proposed to use this area for other kernel things.

    Signed-off-by: Dave Hansen
    Cc: Andrey Ryabinin
    Cc: Dmitry Vyukov
    Link: http://lkml.kernel.org/r/20140918195606.841389D2@viggo.jf.intel.com
    Signed-off-by: Ingo Molnar

    Dave Hansen
     

10 Aug, 2014

1 commit


31 Jul, 2014

1 commit

  • Most of the logic here is in the documentation file. Please take
    a look at it.

    I know we've come full-circle here back to a tunable, but this
    new one is *WAY* simpler. I challenge anyone to describe in one
    sentence how the old one worked. Here's the way the new one
    works:

    If we are flushing more pages than the ceiling, we use
    the full flush, otherwise we use per-page flushes.

    Signed-off-by: Dave Hansen
    Link: http://lkml.kernel.org/r/20140731154101.12B52CAF@viggo.jf.intel.com
    Acked-by: Rik van Riel
    Acked-by: Mel Gorman
    Signed-off-by: H. Peter Anvin

    Dave Hansen
     

05 Jun, 2014

1 commit

  • Pull x86-64 espfix changes from Peter Anvin:
    "This is the espfix64 code, which fixes the IRET information leak as
    well as the associated functionality problem. With this code applied,
    16-bit stack segments finally work as intended even on a 64-bit
    kernel.

    Consequently, this patchset also removes the runtime option that we
    added as an interim measure.

    To help the people working on Linux kernels for very small systems,
    this patchset also makes these compile-time configurable features"

    * 'x86/espfix' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "x86-64, modify_ldt: Make support for 16-bit segments a runtime option"
    x86, espfix: Make it possible to disable 16-bit support
    x86, espfix: Make espfix64 a Kconfig option, fix UML
    x86, espfix: Fix broken header guard
    x86, espfix: Move espfix definitions into a separate header file
    x86-32, espfix: Remove filter for espfix32 due to race
    x86-64, espfix: Don't leak bits 31:16 of %esp returning to 16-bit stack

    Linus Torvalds
     

05 May, 2014

1 commit


01 May, 2014

1 commit

  • The IRET instruction, when returning to a 16-bit segment, only
    restores the bottom 16 bits of the user space stack pointer. This
    causes some 16-bit software to break, but it also leaks kernel state
    to user space. We have a software workaround for that ("espfix") for
    the 32-bit kernel, but it relies on a nonzero stack segment base which
    is not available in 64-bit mode.

    In checkin:

    b3b42ac2cbae x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels

    we "solved" this by forbidding 16-bit segments on 64-bit kernels, with
    the logic that 16-bit support is crippled on 64-bit kernels anyway (no
    V86 support), but it turns out that people are doing stuff like
    running old Win16 binaries under Wine and expect it to work.

    This works around this by creating percpu "ministacks", each of which
    is mapped 2^16 times 64K apart. When we detect that the return SS is
    on the LDT, we copy the IRET frame to the ministack and use the
    relevant alias to return to userspace. The ministacks are mapped
    readonly, so if IRET faults we promote #GP to #DF which is an IST
    vector and thus has its own stack; we then do the fixup in the #DF
    handler.

    (Making #GP an IST exception would make the msr_safe functions unsafe
    in NMI/MC context, and quite possibly have other effects.)

    Special thanks to:

    - Andy Lutomirski, for the suggestion of using very small stack slots
    and copy (as opposed to map) the IRET frame there, and for the
    suggestion to mark them readonly and let the fault promote to #DF.
    - Konrad Wilk for paravirt fixup and testing.
    - Borislav Petkov for testing help and useful comments.

    Reported-by: Brian Gerst
    Signed-off-by: H. Peter Anvin
    Link: http://lkml.kernel.org/r/1398816946-3351-1-git-send-email-hpa@linux.intel.com
    Cc: Konrad Rzeszutek Wilk
    Cc: Borislav Petkov
    Cc: Andrew Lutomriski
    Cc: Linus Torvalds
    Cc: Dirk Hohndel
    Cc: Arjan van de Ven
    Cc: comex
    Cc: Alexander van Heukelum
    Cc: Boris Ostrovsky
    Cc: # consider after upstream merge

    H. Peter Anvin
     

14 Mar, 2014

1 commit


11 Feb, 2014

1 commit

  • Some of the 00-INDEX files are somewhat outdated and some folders does
    not contain 00-INDEX at all. Only outdated (with the notably exception
    of spi) indexes are touched here, the 169 folders without 00-INDEX has
    not been touched.

    New 00-INDEX
    - spi/* was added in a series of commits dating back to 2006

    Added files (missing in (*/)00-INDEX)
    - dmatest.txt was added by commit 851b7e16a07d ("dmatest: run test via
    debugfs")
    - this_cpu_ops.txt was added by commit a1b2a555d637 ("percpu: add
    documentation on this_cpu operations")
    - ww-mutex-design.txt was added by commit 040a0a371005 ("mutex: Add
    support for wound/wait style locks")
    - bcache.txt was added by commit cafe56359144 ("bcache: A block layer
    cache")
    - kernel-per-CPU-kthreads.txt was added by commit 49717cb40410
    ("kthread: Document ways of reducing OS jitter due to per-CPU
    kthreads")
    - phy.txt was added by commit ff764963479a ("drivers: phy: add generic
    PHY framework")
    - block/null_blk was added by commit 12f8f4fc0314 ("null_blk:
    documentation")
    - module-signing.txt was added by commit 3cafea307642 ("Add
    Documentation/module-signing.txt file")
    - assoc_array.txt was added by commit 3cb989501c26 ("Add a generic
    associative array implementation.")
    - arm/IXP4xx was part of the initial repo
    - arm/cluster-pm-race-avoidance.txt was added by commit 7fe31d28e839
    ("ARM: mcpm: introduce helpers for platform coherency exit/setup")
    - arm/firmware.txt was added by commit 7366b92a77fc ("ARM: Add
    interface for registering and calling firmware-specific operations")
    - arm/kernel_mode_neon.txt was added by commit 2afd0a05241d ("ARM:
    7825/1: document the use of NEON in kernel mode")
    - arm/tcm.txt was added by commit bc581770cfdd ("ARM: 5580/2: ARM TCM
    (Tightly-Coupled Memory) support v3")
    - arm/vlocks.txt was added by commit 9762f12d3e05 ("ARM: mcpm: Add
    baremetal voting mutexes")
    - blackfin/gptimers-example.c, Makefile was added by commit
    4b60779d5ea7 ("Blackfin: add an example showing how to use the
    gptimers API")
    - devicetree/usage-model.txt was added by commit 31134efc681a ("dt:
    Linux DT usage model documentation")
    - fb/api.txt was added by commit fb21c2f42879 ("fbdev: Add FOURCC-based
    format configuration API")
    - fb/sm501.txt was added by commit e6a049807105 ("video, sm501: add
    edid and commandline support")
    - fb/udlfb.txt was added by commit 96f8d864afd6 ("fbdev: move udlfb out
    of staging.")
    - filesystems/Makefile was added by commit 1e0051ae48a2
    ("Documentation/fs/: split txt and source files")
    - filesystems/nfs/nfsd-admin-interfaces.txt was added by commit
    8a4c6e19cfed ("nfsd: document kernel interfaces for nfsd
    configuration")
    - ide/warm-plug-howto.txt was added by commit f74c91413ec6 ("ide: add
    warm-plug support for IDE devices (take 2)")
    - laptops/Makefile was added by commit d49129accc21
    ("Documentation/laptop/: split txt and source files")
    - leds/leds-blinkm.txt was added by commit b54cf35a7f65 ("LEDS: add
    BlinkM RGB LED driver, documentation and update MAINTAINERS")
    - leds/ledtrig-oneshot.txt was added by commit 5e417281cde2 ("leds: add
    oneshot trigger")
    - leds/ledtrig-transient.txt was added by commit 44e1e9f8e705 ("leds:
    add new transient trigger for one shot timer activation")
    - m68k/README.buddha was part of the initial repo
    - networking/LICENSE.(qla3xxx|qlcnic|qlge) was added by commits
    40839129f779, c4e84bde1d59, 5a4faa873782
    - networking/Makefile was added by commit 3794f3e812ef ("docsrc: build
    Documentation/ sources")
    - networking/i40evf.txt was added by commit 105bf2fe6b32 ("i40evf: add
    driver to kernel build system")
    - networking/ipsec.txt was added by commit b3c6efbc36e2 ("xfrm: Add
    file to document IPsec corner case")
    - networking/mac80211-auth-assoc-deauth.txt was added by commit
    3cd7920a2be8 ("mac80211: add auth/assoc/deauth flow diagram")
    - networking/netlink_mmap.txt was added by commit 5683264c3981
    ("netlink: add documentation for memory mapped I/O")
    - networking/nf_conntrack-sysctl.txt was added by commit c9f9e0e1597f
    ("netfilter: doc: add nf_conntrack sysctl api documentation") lan)
    - networking/team.txt was added by commit 3d249d4ca7d0 ("net: introduce
    ethernet teaming device")
    - networking/vxlan.txt was added by commit d342894c5d2f ("vxlan:
    virtual extensible lan")
    - power/runtime_pm.txt was added by commit 5e928f77a09a ("PM: Introduce
    core framework for run-time PM of I/O devices (rev. 17)")
    - power/charger-manager.txt was added by commit 3bb3dbbd56ea
    ("power_supply: Add initial Charger-Manager driver")
    - RCU/lockdep-splat.txt was added by commit d7bd2d68aa2e ("rcu:
    Document interpretation of RCU-lockdep splats")
    - s390/kvm.txt was added by 5ecee4b (KVM: s390: API documentation)
    - s390/qeth.txt was added by commit b4d72c08b358 ("qeth: bridgeport
    support - basic control")
    - scheduler/sched-bwc.txt was added by commit 88ebc08ea9f7 ("sched: Add
    documentation for bandwidth control")
    - scsi/advansys.txt was added by commit 4bd6d7f35661 ("[SCSI] advansys:
    Move documentation to Documentation/scsi")
    - scsi/bfa.txt was added by commit 1ec90174bdb4 ("[SCSI] bfa: add
    readme file")
    - scsi/bnx2fc.txt was added by commit 12b8fc10eaf4 ("[SCSI] bnx2fc: Add
    driver documentation")
    - scsi/cxgb3i.txt was added by commit c3673464ebc0 ("[SCSI] cxgb3i: Add
    cxgb3i iSCSI driver.")
    - scsi/hpsa.txt was added by commit 992ebcf14f3c ("[SCSI] hpsa: Add
    hpsa.txt to Documentation/scsi")
    - scsi/link_power_management_policy.txt was added by commit
    ca77329fb713 ("[libata] Link power management infrastructure")
    - scsi/osd.txt was added by commit 78e0c621deca ("[SCSI] osd:
    Documentation for OSD library")
    - scsi/scsi-parameter.txt was created/moved by commit 163475fb111c
    ("Documentation: move SCSI parameters to their own text file")
    - serial/driver was part of the initial repo
    - serial/n_gsm.txt was added by commit 323e84122ec6 ("n_gsm: add a
    documentation")
    - timers/Makefile was added by commit 3794f3e812ef ("docsrc: build
    Documentation/ sources")
    - virt/kvm/s390.txt was added by commit d9101fca3d57 ("KVM: s390:
    diagnose call documentation")
    - vm/split_page_table_lock was added by commit 49076ec2ccaf ("mm:
    dynamically allocate page->ptl if it cannot be embedded to struct
    page")
    - w1/slaves/w1_ds28e04 was added by commit fbf7f7b4e2ae ("w1: Add
    1-wire slave device driver for DS28E04-100")
    - w1/masters/omap-hdq was added by commit e0a29382c6f5 ("hdq:
    documentation for OMAP HDQ")
    - x86/early-microcode.txt was added by commit 0d91ea86a895 ("x86, doc:
    Documentation for early microcode loading")
    - x86/earlyprintk.txt was added by commit a1aade478862 ("x86/doc:
    mini-howto for using earlyprintk=dbgp")
    - x86/entry_64.txt was added by commit 8b4777a4b50c ("x86-64: Document
    some of entry_64.S")
    - x86/pat.txt was added by commit d27554d874c7 ("x86: PAT
    documentation")

    Moved files
    - arm/kernel_user_helpers.txt was moved out of arch/arm/kernel by
    commit 37b8304642c7 ("ARM: kuser: move interface documentation out of
    the source code")
    - efi-stub.txt was moved out of x86/ and down into Documentation/ in
    commit 4172fe2f8a47 ("EFI stub documentation updates")
    - laptops/hpfall.c was moved out of hwmon/ and into laptops/ in commit
    efcfed9bad88 ("Move hp_accel to drivers/platform/x86")
    - commit 5616c23ad9cd ("x86: doc: move x86-generic documentation from
    Doc/x86/i386"):
    * x86/usb-legacy-support.txt
    * x86/boot.txt
    * x86/zero_page.txt
    - power/video_extension.txt was moved to acpi in commit 70e66e4df191
    ("ACPI / video: move video_extension.txt to Documentation/acpi")

    Removed files (left in 00-INDEX)
    - memory.txt was removed by commit 00ea8990aadf ("memory.txt: remove
    stray information")
    - gpio.txt was moved to gpio/ in commit fd8e198cfcaa ("Documentation:
    gpiolib: document new interface")
    - networking/DLINK.txt was removed by commit 168e06ae26dd
    ("drivers/net: delete old parallel port de600/de620 drivers")
    - serial/hayes-esp.txt was removed by commit f53a2ade0bb9 ("tty: esp:
    remove broken driver")
    - s390/TAPE was removed by commit 9e280f669308 ("[S390] remove tape
    block docu")
    - vm/locking was removed by commit 57ea8171d2bc ("mm: documentation:
    remove hopelessly out-of-date locking doc")
    - laptops/acer-wmi.txt was remvoed by commit 020036678e81 ("acer-wmi:
    Delete out-of-date documentation")

    Typos/misc issues
    - rpc-server-gss.txt was added as knfsd-rpcgss.txt in commit
    030d794bf498 ("SUNRPC: Use gssproxy upcall for server RPCGSS
    authentication.")
    - commit b88cf73d9278 ("net: add missing entries to
    Documentation/networking/00-INDEX")
    * generic-hdlc.txt was added as generic_hdlc.txt
    * spider_net.txt was added as spider-net.txt
    - w1/master/mxc-w1 was added as mxc_w1 by commit a5fd9139f74c ("w1: add
    1-wire master driver for i.MX27 / i.MX31")
    - s390/zfcpdump.txt was added as zfcpdump by commit 6920c12a407e
    ("[S390] Add Documentation/s390/00-INDEX.")

    Signed-off-by: Henrik Austad
    Reviewed-by: Paul E. McKenney [rcu bits]
    Acked-by: Rob Landley
    Cc: Jiri Kosina
    Cc: Thomas Gleixner
    Cc: Rob Herring
    Cc: David S. Miller
    Cc: Mark Brown
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Gleb Natapov
    Cc: Linus Torvalds
    Cc: Len Brown
    Cc: James Bottomley
    Cc: Jean-Christophe Plagniol-Villard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Henrik Austad
     

23 Jan, 2014

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "Usual rocket science stuff from trivial.git"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    neighbour.h: fix comment
    sched: Fix warning on make htmldocs caused by wait.h
    slab: struct kmem_cache is protected by slab_mutex
    doc: Fix typo in USB Gadget Documentation
    of/Kconfig: Spelling s/one/once/
    mkregtable: Fix sscanf handling
    lp5523, lp8501: comment improvements
    thermal: rcar: comment spelling
    treewide: fix comments and printk msgs
    IXP4xx: remove '1 &&' from a condition check in ixp4xx_restart()
    Documentation: update /proc/uptime field description
    Documentation: Fix size parameter for snprintf
    arm: fix comment header and macro name
    asm-generic: uaccess: Spelling s/a ny/any/
    mtd: onenand: fix comment header
    doc: driver-model/platform.txt: fix a typo
    drivers: fix typo in DEVTMPFS_MOUNT Kconfig help text
    doc: Fix typo (acces_process_vm -> access_process_vm)
    treewide: Fix typos in printk
    drivers/gpu/drm/qxl/Kconfig: reformat the help text
    ...

    Linus Torvalds
     

29 Dec, 2013

1 commit

  • Old kexec-tools can not load new kernels. The reason is kexec-tools does
    not fill efi_info in x86 setup header previously, thus EFI failed to
    initialize. In new kexec-tools it will by default to fill efi_info and
    pass other EFI required infomation to 2nd kernel so kexec kernel EFI
    initialization can succeed finally.

    To prevent from breaking userspace, add a new xloadflags bit so
    kexec-tools can check the flag and switch to old logic.

    Signed-off-by: Dave Young
    Acked-by: Borislav Petkov
    Tested-by: Toshi Kani
    Signed-off-by: Matt Fleming

    Dave Young
     

19 Dec, 2013

1 commit


02 Dec, 2013

1 commit


26 Nov, 2013

1 commit


12 Nov, 2013

1 commit

  • Pull x86 EFI changes from Ingo Molnar:
    "Main changes:

    - Add support for earlyprintk=efi which uses the EFI framebuffer.
    Very useful for debugging boot problems.

    - EFI stub support for large memory maps (more than 128 entries)

    - EFI ARM support - this was mostly done by generalizing x86 ARM
    platform differences, such as by moving x86 EFI code into
    drivers/firmware/efi/ and sharing it with ARM.

    - Documentation updates

    - misc fixes"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
    x86/efi: Add EFI framebuffer earlyprintk support
    boot, efi: Remove redundant memset()
    x86/efi: Fix config_table_type array termination
    x86 efi: bugfix interrupt disabling sequence
    x86: EFI stub support for large memory maps
    efi: resolve warnings found on ARM compile
    efi: Fix types in EFI calls to match EFI function definitions.
    efi: Renames in handle_cmdline_files() to complete generalization.
    efi: Generalize handle_ramdisks() and rename to handle_cmdline_files().
    efi: Allow efi_free() to be called with size of 0
    efi: use efi_get_memory_map() to get final map for x86
    efi: generalize efi_get_memory_map()
    efi: Rename __get_map() to efi_get_memory_map()
    efi: Move unicode to ASCII conversion to shared function.
    efi: Generalize relocate_kernel() for use by other architectures.
    efi: Move relocate_kernel() to shared file.
    efi: Enforce minimum alignment of 1 page on allocations.
    efi: Rename memory allocation/free functions
    efi: Add system table pointer argument to shared functions.
    efi: Move common EFI stub code from x86 arch code to common location
    ...

    Linus Torvalds
     

02 Nov, 2013

1 commit

  • We map the EFI regions needed for runtime services non-contiguously,
    with preserved alignment on virtual addresses starting from -4G down
    for a total max space of 64G. This way, we provide for stable runtime
    services addresses across kernels so that a kexec'd kernel can still use
    them.

    Thus, they're mapped in a separate pagetable so that we don't pollute
    the kernel namespace.

    Add an efi= kernel command line parameter for passing miscellaneous
    options and chicken bits from the command line.

    While at it, add a chicken bit called "efi=old_map" which can be used as
    a fallback to the old runtime services mapping method in case there's
    some b0rkage with a particular EFI implementation (haha, it is hard to
    hold up the sarcasm here...).

    Also, add the UEFI RT VA space to Documentation/x86/x86_64/mm.txt.

    Signed-off-by: Borislav Petkov
    Signed-off-by: Matt Fleming

    Borislav Petkov
     

25 Sep, 2013

1 commit


07 Sep, 2013

1 commit

  • Pull trivial tree from Jiri Kosina:
    "The usual trivial updates all over the tree -- mostly typo fixes and
    documentation updates"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits)
    doc: Documentation/cputopology.txt fix typo
    treewide: Convert retrun typos to return
    Fix comment typo for init_cma_reserved_pageblock
    Documentation/trace: Correcting and extending tracepoint documentation
    mm/hotplug: fix a typo in Documentation/memory-hotplug.txt
    power: Documentation: Update s2ram link
    doc: fix a typo in Documentation/00-INDEX
    Documentation/printk-formats.txt: No casts needed for u64/s64
    doc: Fix typo "is is" in Documentations
    treewide: Fix printks with 0x%#
    zram: doc fixes
    Documentation/kmemcheck: update kmemcheck documentation
    doc: documentation/hwspinlock.txt fix typo
    PM / Hibernate: add section for resume options
    doc: filesystems : Fix typo in Documentations/filesystems
    scsi/megaraid fixed several typos in comments
    ppc: init_32: Fix error typo "CONFIG_START_KERNEL"
    treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
    page_isolation: Fix a comment typo in test_pages_isolated()
    doc: fix a typo about irq affinity
    ...

    Linus Torvalds
     

12 Aug, 2013

1 commit


25 Jul, 2013

1 commit


10 Jul, 2013

1 commit

  • Integrates the LZ4 decompression code to the arm pre-boot code.

    Signed-off-by: Kyungsik Lee
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Russell King
    Cc: Borislav Petkov
    Cc: Florian Fainelli
    Cc: Yann Collet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kyungsik Lee
     

09 Jul, 2013

1 commit


31 May, 2013

1 commit


30 Apr, 2013

1 commit


11 Apr, 2013

1 commit

  • Documentation/kernel-parameters.txt and
    Documentation/x86/x86_64/boot-options.txt contain virtually
    identical text describing earlyprintk.

    This consolidates the two copies and updates the documentation a
    bit. No one ever documented the:

    earlyprintk=serial,0x1008,115200

    syntax, nor mentioned that ARM is now a supported earlyprintk
    arch.

    Signed-off-by: Dave Hansen
    Cc: Rob Landley
    Cc: Catalin Marinas
    Cc: Dave Hansen
    Link: http://lkml.kernel.org/r/20130410210338.E2930E98@viggo.jf.intel.com
    Signed-off-by: Ingo Molnar

    Dave Hansen
     

03 Apr, 2013

1 commit


23 Feb, 2013

1 commit

  • Pull x86 microcode loading update from Peter Anvin:
    "This patchset lets us update the CPU microcode very, very early in
    initialization if the BIOS fails to do so (never happens, right?)

    This is handy for dealing with things like the Atom erratum where we
    have to run without PSE because microcode loading happens too late.

    As I mentioned in the x86/mm push request it depends on that
    infrastructure but it is otherwise a standalone feature."

    * 'x86/microcode' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/Kconfig: Make early microcode loading a configuration feature
    x86/mm/init.c: Copy ucode from initrd image to kernel memory
    x86/head64.c: Early update ucode in 64-bit
    x86/head_32.S: Early update ucode in 32-bit
    x86/microcode_intel_early.c: Early update ucode on Intel's CPU
    x86/tlbflush.h: Define __native_flush_tlb_global_irq_disabled()
    x86/microcode_intel_lib.c: Early update ucode on Intel's CPU
    x86/microcode_core_early.c: Define interfaces for early loading ucode
    x86/common.c: load ucode in 64 bit or show loading ucode info in 32 bit on AP
    x86/common.c: Make have_cpuid_p() a global function
    x86/microcode_intel.h: Define functions and macros for early loading ucode
    x86, doc: Documentation for early microcode loading

    Linus Torvalds
     

22 Feb, 2013

2 commits

  • Pull x86 mm changes from Peter Anvin:
    "This is a huge set of several partly interrelated (and concurrently
    developed) changes, which is why the branch history is messier than
    one would like.

    The *really* big items are two humonguous patchsets mostly developed
    by Yinghai Lu at my request, which completely revamps the way we
    create initial page tables. In particular, rather than estimating how
    much memory we will need for page tables and then build them into that
    memory -- a calculation that has shown to be incredibly fragile -- we
    now build them (on 64 bits) with the aid of a "pseudo-linear mode" --
    a #PF handler which creates temporary page tables on demand.

    This has several advantages:

    1. It makes it much easier to support things that need access to data
    very early (a followon patchset uses this to load microcode way
    early in the kernel startup).

    2. It allows the kernel and all the kernel data objects to be invoked
    from above the 4 GB limit. This allows kdump to work on very large
    systems.

    3. It greatly reduces the difference between Xen and native (Xen's
    equivalent of the #PF handler are the temporary page tables created
    by the domain builder), eliminating a bunch of fragile hooks.

    The patch series also gets us a bit closer to W^X.

    Additional work in this pull is the 64-bit get_user() work which you
    were also involved with, and a bunch of cleanups/speedups to
    __phys_addr()/__pa()."

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (105 commits)
    x86, mm: Move reserving low memory later in initialization
    x86, doc: Clarify the use of asm("%edx") in uaccess.h
    x86, mm: Redesign get_user with a __builtin_choose_expr hack
    x86: Be consistent with data size in getuser.S
    x86, mm: Use a bitfield to mask nuisance get_user() warnings
    x86/kvm: Fix compile warning in kvm_register_steal_time()
    x86-32: Add support for 64bit get_user()
    x86-32, mm: Remove reference to alloc_remap()
    x86-32, mm: Remove reference to resume_map_numa_kva()
    x86-32, mm: Rip out x86_32 NUMA remapping code
    x86/numa: Use __pa_nodebug() instead
    x86: Don't panic if can not alloc buffer for swiotlb
    mm: Add alloc_bootmem_low_pages_nopanic()
    x86, 64bit, mm: hibernate use generic mapping_init
    x86, 64bit, mm: Mark data/bss/brk to nx
    x86: Merge early kernel reserve for 32bit and 64bit
    x86: Add Crash kernel low reservation
    x86, kdump: Remove crashkernel range find limit for 64bit
    memblock: Add memblock_mem_size()
    x86, boot: Not need to check setup_header version for setup_data
    ...

    Linus Torvalds
     
  • Pull trivial tree from Jiri Kosina:
    "Assorted tiny fixes queued in trivial tree"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (22 commits)
    DocBook: update EXPORT_SYMBOL entry to point at export.h
    Documentation: update top level 00-INDEX file with new additions
    ARM: at91/ide: remove unsused at91-ide Kconfig entry
    percpu_counter.h: comment code for better readability
    x86, efi: fix comment typo in head_32.S
    IB: cxgb3: delay freeing mem untill entirely done with it
    net: mvneta: remove unneeded version.h include
    time: x86: report_lost_ticks doesn't exist any more
    pcmcia: avoid static analysis complaint about use-after-free
    fs/jfs: Fix typo in comment : 'how may' -> 'how many'
    of: add missing documentation for of_platform_populate()
    btrfs: remove unnecessary cur_trans set before goto loop in join_transaction
    sound: soc: Fix typo in sound/codecs
    treewide: Fix typo in various drivers
    btrfs: fix comment typos
    Update ibmvscsi module name in Kconfig.
    powerpc: fix typo (utilties -> utilities)
    of: fix spelling mistake in comment
    h8300: Fix home page URL in h8300/README
    xtensa: Fix home page URL in Kconfig
    ...

    Linus Torvalds
     

09 Feb, 2013

1 commit

  • OVMF (an implementation of UEFI based on TianoCore used in virtual
    environments) now has the ability to boot Linux natively; this is used
    for "qemu -kernel" and similar things in a UEFI environment.

    Accordingly, assign it a bootloader ID.

    Signed-off-by: H. Peter Anvin
    Cc: David Woodhouse

    H. Peter Anvin