1. 20 9月, 2022 1 次提交
    • A
      efi/libstub: implement generic EFI zboot · a0509109
      Ard Biesheuvel 提交于
      Implement a minimal EFI app that decompresses the real kernel image and
      launches it using the firmware's LoadImage and StartImage boot services.
      This removes the need for any arch-specific hacks.
      
      Note that on systems that have UEFI secure boot policies enabled,
      LoadImage/StartImage require images to be signed, or their hashes known
      a priori, in order to be permitted to boot.
      
      There are various possible strategies to work around this requirement,
      but they all rely either on overriding internal PI/DXE protocols (which
      are not part of the EFI spec) or omitting the firmware provided
      LoadImage() and StartImage() boot services, which is also undesirable,
      given that they encapsulate platform specific policies related to secure
      boot and measured boot, but also related to memory permissions (whether
      or not and which types of heap allocations have both write and execute
      permissions.)
      
      The only generic and truly portable way around this is to simply sign
      both the inner and the outer image with the same key/cert pair, so this
      is what is implemented here.
      Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
      a0509109
  2. 19 9月, 2022 1 次提交
  3. 17 9月, 2022 2 次提交
    • A
      efi/libstub: use EFI provided memcpy/memset routines · c82ceb44
      Ard Biesheuvel 提交于
      The stub is used in different execution environments, but on arm64,
      RISC-V and LoongArch, we still use the core kernel's implementation of
      memcpy and memset, as they are just a branch instruction away, and can
      generally be reused even from code such as the EFI stub that runs in a
      completely different address space.
      
      KAsan complicates this slightly, resulting in the need for some hacks to
      expose the uninstrumented, __ prefixed versions as the normal ones, as
      the latter are instrumented to include the KAsan checks, which only work
      in the core kernel.
      
      Unfortunately, #define'ing memcpy to __memcpy when building C code does
      not guarantee that no explicit memcpy() calls will be emitted. And with
      the upcoming zboot support, which consists of a separate binary which
      therefore needs its own implementation of memcpy/memset anyway, it's
      better to provide one explicitly instead of linking to the existing one.
      
      Given that EFI exposes implementations of memmove() and memset() via the
      boot services table, let's wire those up in the appropriate way, and
      drop the references to the core kernel ones.
      Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
      c82ceb44
    • A
      efi/libstub: add some missing EFI prototypes · c7007d9f
      Ard Biesheuvel 提交于
      Define the correct prototypes for the load_image, start_image and
      unload_image boot service pointers so we can call them from the EFI
      zboot code.
      
      Also add some prototypes related to installation and deinstallation of
      protocols in to the EFI protocol database, including some definitions
      related to device paths.
      Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
      c7007d9f
  4. 06 9月, 2022 2 次提交
  5. 16 8月, 2022 1 次提交
    • A
      efi/x86-mixed: move unmitigated RET into .rodata · 6c3a9c9a
      Ard Biesheuvel 提交于
      Move the EFI mixed mode return trampoline RET into .rodata, so it is
      normally mapped without executable permissions.  And given that this
      snippet of code is really the only kernel code that we ever execute via
      this 1:1 mapping, let's unmap the 1:1 mapping of the kernel .text, and
      only map the page that covers the return trampoline with executable
      permissions.
      
      Note that the remainder of .rodata needs to remain mapped into the 1:1
      mapping with RO/NX permissions, as literal GUIDs and strings may be
      passed to the variable routines.
      Acked-by: NBorislav Petkov <bp@suse.de>
      Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
      6c3a9c9a
  6. 15 8月, 2022 6 次提交
    • L
      Linux 6.0-rc1 · 568035b0
      Linus Torvalds 提交于
      568035b0
    • Y
      radix-tree: replace gfp.h inclusion with gfp_types.h · 9f162193
      Yury Norov 提交于
      Radix tree header includes gfp.h for __GFP_BITS_SHIFT only. Now we
      have gfp_types.h for this.
      
      Fixes powerpc allmodconfig build:
      
         In file included from include/linux/nodemask.h:97,
                          from include/linux/mmzone.h:17,
                          from include/linux/gfp.h:7,
                          from include/linux/radix-tree.h:12,
                          from include/linux/idr.h:15,
                          from include/linux/kernfs.h:12,
                          from include/linux/sysfs.h:16,
                          from include/linux/kobject.h:20,
                          from include/linux/pci.h:35,
                          from arch/powerpc/kernel/prom_init.c:24:
         include/linux/random.h: In function 'add_latent_entropy':
      >> include/linux/random.h:25:46: error: 'latent_entropy' undeclared (first use in this function); did you mean 'add_latent_entropy'?
            25 |         add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
               |                                              ^~~~~~~~~~~~~~
               |                                              add_latent_entropy
         include/linux/random.h:25:46: note: each undeclared identifier is reported only once for each function it appears in
      Reported-by: Nkernel test robot <lkp@intel.com>
      CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Jason A. Donenfeld <Jason@zx2c4.com>
      Signed-off-by: NYury Norov <yury.norov@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9f162193
    • L
      Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 74cbb480
      Linus Torvalds 提交于
      Pull vfs lseek fix from Al Viro:
       "Fix proc_reg_llseek() breakage. Always had been possible if somebody
        left NULL ->proc_lseek, became a practical issue now"
      
      * tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        take care to handle NULL ->proc_lseek()
      74cbb480
    • A
      take care to handle NULL ->proc_lseek() · 3f61631d
      Al Viro 提交于
      Easily done now, just by clearing FMODE_LSEEK in ->f_mode
      during proc_reg_open() for such entries.
      
      Fixes: 868941b1 "fs: remove no_llseek"
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      3f61631d
    • L
      Merge tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 5d6a0f4d
      Linus Torvalds 提交于
      Pull more xen updates from Juergen Gross:
      
       - fix the handling of the "persistent grants" feature negotiation
         between Xen blkfront and Xen blkback drivers
      
       - a cleanup of xen.config and adding xen.config to Xen section in
         MAINTAINERS
      
       - support HVMOP_set_evtchn_upcall_vector, which is more compliant to
         "normal" interrupt handling than the global callback used up to now
      
       - further small cleanups
      
      * tag 'for-linus-6.0-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        MAINTAINERS: add xen config fragments to XEN HYPERVISOR sections
        xen: remove XEN_SCRUB_PAGES in xen.config
        xen/pciback: Fix comment typo
        xen/xenbus: fix return type in xenbus_file_read()
        xen-blkfront: Apply 'feature_persistent' parameter when connect
        xen-blkback: Apply 'feature_persistent' parameter when connect
        xen-blkback: fix persistent grants negotiation
        x86/xen: Add support for HVMOP_set_evtchn_upcall_vector
      5d6a0f4d
    • L
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of... · 96f86ff0
      Linus Torvalds 提交于
      Merge tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tool updates from Arnaldo Carvalho de Melo:
      
       - 'perf c2c' now supports ARM64, adjust its output to cope with
         differences with what is in x86_64. Now go find false sharing on
         ARM64 (at least Neoverse) as well!
      
       - Refactor the JSON processing, making the output more compact and thus
         reducing the size of the resulting perf binary
      
       - Improvements for 'perf offcpu' profiling, including tracking child
         processes
      
       - Update Intel JSON metrics and events files for broadwellde,
         broadwellx, cascadelakex, haswellx, icelakex, ivytown, jaketown,
         knightslanding, sapphirerapids, skylakex and snowridgex
      
       - Add 'perf stat' JSON output and a 'perf test' entry for it
      
       - Ignore memfd and anonymous mmap events if jitdump present
      
       - Refactor 'perf test' shell tests allowing subdirs
      
       - Fix an error handling path in 'parse_perf_probe_command()'
      
       - Fixes for the guest Intel PT tracing patchkit in the 1st batch of
         this merge window
      
       - Print debuginfod queries if -v option is used, to explain delays in
         processing when debuginfo servers are enabled to fetch DSOs with
         richer symbol tables
      
       - Improve error message for 'perf record -p not_existing_pid'
      
       - Fix openssl and libbpf feature detection
      
       - Add PMU pai_crypto event description for IBM z16 on 'perf list'
      
       - Fix typos and duplicated words on comments in various places
      
      * tag 'perf-tools-fixes-for-v6.0-2022-08-13' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (81 commits)
        perf test: Refactor shell tests allowing subdirs
        perf vendor events: Update events for snowridgex
        perf vendor events: Update events and metrics for skylakex
        perf vendor events: Update metrics for sapphirerapids
        perf vendor events: Update events for knightslanding
        perf vendor events: Update metrics for jaketown
        perf vendor events: Update metrics for ivytown
        perf vendor events: Update events and metrics for icelakex
        perf vendor events: Update events and metrics for haswellx
        perf vendor events: Update events and metrics for cascadelakex
        perf vendor events: Update events and metrics for broadwellx
        perf vendor events: Update metrics for broadwellde
        perf jevents: Fold strings optimization
        perf jevents: Compress the pmu_events_table
        perf metrics: Copy entire pmu_event in find metric
        perf pmu-events: Hide the pmu_events
        perf pmu-events: Don't assume pmu_event is an array
        perf pmu-events: Move test events/metrics to JSON
        perf test: Use full metric resolution
        perf pmu-events: Hide pmu_events_map
        ...
      96f86ff0
  7. 14 8月, 2022 27 次提交