Loading arch/powerpc/include/asm/book3s/32/kup.h +1 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ static inline void kuap_update_sr(u32 sr, u32 addr, u32 end) { addr &= 0xf0000000; /* align addr to start of segment */ barrier(); /* make sure thread.kuap is updated before playing with SRs */ while (addr < end) { mtsrin(sr, addr); Loading arch/powerpc/include/asm/elf.h +3 −0 Original line number Diff line number Diff line Loading @@ -175,4 +175,7 @@ do { \ ARCH_DLINFO_CACHE_GEOMETRY; \ } while (0) /* Relocate the kernel image to @final_address */ void relocate(unsigned long final_address); #endif /* _ASM_POWERPC_ELF_H */ arch/powerpc/kernel/prom_init.c +13 −0 Original line number Diff line number Diff line Loading @@ -3249,7 +3249,20 @@ static void setup_secure_guest(unsigned long kbase, unsigned long fdt) /* Switch to secure mode. */ prom_printf("Switching to secure mode.\n"); /* * The ultravisor will do an integrity check of the kernel image but we * relocated it so the check will fail. Restore the original image by * relocating it back to the kernel virtual base address. */ if (IS_ENABLED(CONFIG_RELOCATABLE)) relocate(KERNELBASE); ret = enter_secure_mode(kbase, fdt); /* Relocate the kernel again. */ if (IS_ENABLED(CONFIG_RELOCATABLE)) relocate(kbase); if (ret != U_SUCCESS) { prom_printf("Returned %d from switching to secure mode.\n", ret); prom_rtas_os_term("Switch to secure mode failed.\n"); Loading arch/powerpc/kernel/prom_init_check.sh +2 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,8 @@ _end enter_prom $MEM_FUNCS reloc_offset __secondary_hold __secondary_hold_acknowledge __secondary_hold_spinloop __start logo_linux_clut224 btext_prepare_BAT reloc_got2 kernstart_addr memstart_addr linux_banner _stext __prom_init_toc_start __prom_init_toc_end btext_setup_display TOC." __prom_init_toc_start __prom_init_toc_end btext_setup_display TOC. relocate" NM="$1" OBJ="$2" Loading arch/powerpc/platforms/powernv/eeh-powernv.c +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ void pnv_pcibios_bus_add_device(struct pci_dev *pdev) { struct pci_dn *pdn = pci_get_pdn(pdev); if (eeh_has_flag(EEH_FORCE_DISABLED)) if (!pdn || eeh_has_flag(EEH_FORCE_DISABLED)) return; dev_dbg(&pdev->dev, "EEH: Setting up device\n"); Loading Loading
arch/powerpc/include/asm/book3s/32/kup.h +1 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,7 @@ static inline void kuap_update_sr(u32 sr, u32 addr, u32 end) { addr &= 0xf0000000; /* align addr to start of segment */ barrier(); /* make sure thread.kuap is updated before playing with SRs */ while (addr < end) { mtsrin(sr, addr); Loading
arch/powerpc/include/asm/elf.h +3 −0 Original line number Diff line number Diff line Loading @@ -175,4 +175,7 @@ do { \ ARCH_DLINFO_CACHE_GEOMETRY; \ } while (0) /* Relocate the kernel image to @final_address */ void relocate(unsigned long final_address); #endif /* _ASM_POWERPC_ELF_H */
arch/powerpc/kernel/prom_init.c +13 −0 Original line number Diff line number Diff line Loading @@ -3249,7 +3249,20 @@ static void setup_secure_guest(unsigned long kbase, unsigned long fdt) /* Switch to secure mode. */ prom_printf("Switching to secure mode.\n"); /* * The ultravisor will do an integrity check of the kernel image but we * relocated it so the check will fail. Restore the original image by * relocating it back to the kernel virtual base address. */ if (IS_ENABLED(CONFIG_RELOCATABLE)) relocate(KERNELBASE); ret = enter_secure_mode(kbase, fdt); /* Relocate the kernel again. */ if (IS_ENABLED(CONFIG_RELOCATABLE)) relocate(kbase); if (ret != U_SUCCESS) { prom_printf("Returned %d from switching to secure mode.\n", ret); prom_rtas_os_term("Switch to secure mode failed.\n"); Loading
arch/powerpc/kernel/prom_init_check.sh +2 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,8 @@ _end enter_prom $MEM_FUNCS reloc_offset __secondary_hold __secondary_hold_acknowledge __secondary_hold_spinloop __start logo_linux_clut224 btext_prepare_BAT reloc_got2 kernstart_addr memstart_addr linux_banner _stext __prom_init_toc_start __prom_init_toc_end btext_setup_display TOC." __prom_init_toc_start __prom_init_toc_end btext_setup_display TOC. relocate" NM="$1" OBJ="$2" Loading
arch/powerpc/platforms/powernv/eeh-powernv.c +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ void pnv_pcibios_bus_add_device(struct pci_dev *pdev) { struct pci_dn *pdn = pci_get_pdn(pdev); if (eeh_has_flag(EEH_FORCE_DISABLED)) if (!pdn || eeh_has_flag(EEH_FORCE_DISABLED)) return; dev_dbg(&pdev->dev, "EEH: Setting up device\n"); Loading