Changelog in Linux kernel 6.6.82

 
Linux: Linux 6.6.82 [+ + +]
Author: Greg Kroah-Hartman <[email protected]>
Date:   Sun Mar 9 09:55:04 2025 +0100

    Linux 6.6.82
    
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
x86/boot/32: De-uglify the 2/3 level paging difference in mk_early_pgtbl_32() [+ + +]
Author: Thomas Gleixner <[email protected]>
Date:   Tue Oct 17 23:23:26 2023 +0200

    x86/boot/32: De-uglify the 2/3 level paging difference in mk_early_pgtbl_32()
    
    commit a62f4ca106fd250e9247decd100f3905131fc1fe upstream
    
    Move the ifdeffery out of the function and use proper typedefs to make it
    work for both 2 and 3 level paging.
    
    No functional change.
    
      [ bp: Move mk_early_pgtbl_32() declaration into a header. ]
    
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Borislav Petkov (AMD) <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

x86/boot/32: Disable stackprotector and tracing for mk_early_pgtbl_32() [+ + +]
Author: Thomas Gleixner <[email protected]>
Date:   Mon Oct 2 13:59:36 2023 +0200

    x86/boot/32: Disable stackprotector and tracing for mk_early_pgtbl_32()
    
    commit 242db7589460ca94e28c51ffbddd621756f97e11 upstream
    
    Stackprotector cannot work before paging is enabled. The read from the per
    CPU variable __stack_chk_guard is always accessing the virtual address
    either directly on UP or via FS on SMP. In physical address mode this
    results in an access to memory above 3GB.
    
    So this works by chance as the hardware returns the same value when there
    is no RAM at this physical address. When there is RAM populated above 3G
    then the read is by chance the same as nothing changes that memory during
    the very early boot stage.
    
    Stop relying on pure luck and disable the stack protector for the only C
    function which is called during early boot before paging is enabled.
    
    Remove function tracing from the whole source file as there is no way to
    trace this at all, but in case of CONFIG_DYNAMIC_FTRACE=n
    mk_early_pgtbl_32() would access global function tracer variables in
    physical address mode which again might work by chance.
    
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Borislav Petkov (AMD) <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
x86/boot/32: Restructure mk_early_pgtbl_32() [+ + +]
Author: Thomas Gleixner <[email protected]>
Date:   Tue Oct 17 23:23:28 2023 +0200

    x86/boot/32: Restructure mk_early_pgtbl_32()
    
    commit 69ba866db281c768d5ecca909361ea4c4e71d57e upstream
    
    Prepare it for adding a temporary initrd mapping by splitting out the
    actual map loop.
    
    No functional change.
    
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Borislav Petkov (AMD) <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

x86/boot/32: Temporarily map initrd for microcode loading [+ + +]
Author: Thomas Gleixner <[email protected]>
Date:   Tue Oct 17 23:23:31 2023 +0200

    x86/boot/32: Temporarily map initrd for microcode loading
    
    commit 4c585af7180c147062c636a927a2fc2b6a7072f5 upstream
    
    Early microcode loading on 32-bit runs in physical address mode because
    the initrd is not covered by the initial page tables. That results in
    a horrible mess all over the microcode loader code.
    
    Provide a temporary mapping for the initrd in the initial page tables by
    appending it to the actual initial mapping starting with a new PGD or
    PMD depending on the configured page table levels ([non-]PAE).
    
    The page table entries are located after _brk_end so they are not
    permanently using memory space. The mapping is invalidated right away in
    i386_start_kernel() after the early microcode loader has run.
    
    This prepares for removing the physical address mode oddities from all
    over the microcode loader code, which in turn allows further cleanups.
    
    Provide the map and unmap code and document the place where the
    microcode loader needs to be invoked with a comment.
    
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Borislav Petkov (AMD) <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
x86/boot: Use __pa_nodebug() in mk_early_pgtbl_32() [+ + +]
Author: Thomas Gleixner <[email protected]>
Date:   Tue Oct 17 23:23:25 2023 +0200

    x86/boot: Use __pa_nodebug() in mk_early_pgtbl_32()
    
    commit 1e2dd572d2b773b5b8882aae66e5f0328d562aa9 upstream
    
    Use the existing macro instead of undefining and redefining __pa().
    
    No functional change.
    
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Borislav Petkov (AMD) <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
x86/microcode: Provide CONFIG_MICROCODE_INITRD32 [+ + +]
Author: Thomas Gleixner <[email protected]>
Date:   Tue Oct 17 23:23:29 2023 +0200

    x86/microcode: Provide CONFIG_MICROCODE_INITRD32
    
    commit fdbd43819400e74c1c20a646969ea8f71706eb2b upstream
    
    Create an aggregate config switch which covers X86_32, MICROCODE and
    BLK_DEV_INITRD to avoid lengthy #ifdeffery in upcoming code.
    
    Signed-off-by: Thomas Gleixner <[email protected]>
    Signed-off-by: Borislav Petkov (AMD) <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>