Re: [PATCH 1/2] sparc64: Don't panic on user mode non-resumable errors

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

 



From: "Liam R. Howlett" <Liam.Howlett@xxxxxxxxxx>
Date: Fri,  6 Jan 2017 14:38:59 -0500

> Send a SIGBUS to the offending process on all userspace non-resumable
> traps.  This prevents userspace applications from creating a kernel
> panic.  The siginfo will return the code BUS_ADRERR and a valid address
> if possible.
> 
> Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx>

Now that the code will potentially actually continue, you _must_ check
the nature of the error, and potentially retire the physical page if
it is real memory in order to prevent it from being used in some other
way by either userspace of kernel space and thus triggering the
non-resumable error all over again.

The various sun4u async fault handlers have this logic present and do the
right thing, something like:

	if (pfn_valid(afar >> PAGE_SHIFT))
		get_page(pfn_to_page(afar >> PAGE_SHIFT));

This logic prevents the page from being freed up and returned to the
free page pool, even if we kill the process and thus tear down it's
address space.

Thank you.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux