Re: [PATCH V5 2/2] x86/efi: Add efi page fault handler to recover from page faults caused by the firmware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sai,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on efi/next]
[cannot apply to v4.19-rc3 next-20180910]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Sai-Praneeth-Prakhya/efi-Make-efi_rts_work-accessible-to-efi-page-fault-handler/20180911-142222
base:   https://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git next
config: i386-randconfig-s0-201836 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   arch/x86/mm/fault.o: In function `no_context':
>> arch/x86/mm/fault.c:798: undefined reference to `efi_recover_from_page_fault'

vim +798 arch/x86/mm/fault.c

   776	
   777		/*
   778		 * 32-bit:
   779		 *
   780		 *   Valid to do another page fault here, because if this fault
   781		 *   had been triggered by is_prefetch fixup_exception would have
   782		 *   handled it.
   783		 *
   784		 * 64-bit:
   785		 *
   786		 *   Hall of shame of CPU/BIOS bugs.
   787		 */
   788		if (is_prefetch(regs, error_code, address))
   789			return;
   790	
   791		if (is_errata93(regs, address))
   792			return;
   793	
   794		/*
   795		 * Buggy firmware could access regions which might page fault, try to
   796		 * recover from such faults.
   797		 */
 > 798		if (efi_recover_from_page_fault(address))
   799			return;
   800	
   801		/*
   802		 * Oops. The kernel tried to access some bad page. We'll have to
   803		 * terminate things with extreme prejudice:
   804		 */
   805		flags = oops_begin();
   806	
   807		show_fault_oops(regs, error_code, address);
   808	
   809		if (task_stack_end_corrupted(tsk))
   810			printk(KERN_EMERG "Thread overran stack, or stack corrupted\n");
   811	
   812		tsk->thread.cr2		= address;
   813		tsk->thread.trap_nr	= X86_TRAP_PF;
   814		tsk->thread.error_code	= error_code;
   815	
   816		sig = SIGKILL;
   817		if (__die("Oops", regs, error_code))
   818			sig = 0;
   819	
   820		/* Executive summary in case the body of the oops scrolled away */
   821		printk(KERN_DEFAULT "CR2: %016lx\n", address);
   822	
   823		oops_end(flags, regs, sig);
   824	}
   825	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux