On Tue, 2022-09-06 at 03:02 +0300, Jarkko Sakkinen wrote:
Unsanitized pages trigger WARN_ON() unconditionally, which can panic the whole computer, if /proc/sys/kernel/panic_on_warn is set.
In sgx_init(), if misc_register() fails or misc_register() succeeds but neither sgx_drv_init() nor sgx_vepc_init() succeeds, then ksgxd will be prematurely stopped. This may leave unsanitized pages, which will result a false warning.
Refine __sgx_sanitize_pages() to return:
- Zero when the sanitization process is complete or ksgxd has been
requested to stop. 2. The number of unsanitized pages otherwise.
Link: https://lore.kernel.org/linux-sgx/20220825051827.246698-1-jarkko@kernel.org/... Fixes: 51ab30eb2ad4 ("x86/sgx: Replace section->init_laundry_list with sgx_dirty_page_list") Cc: stable@vger.kernel.orgĀ # v5.13+ Reported-by: Paul Menzel pmenzel@molgen.mpg.de Signed-off-by: Jarkko Sakkinen jarkko@kernel.org
(Given the idea of moving sgx_page_reclaimer_init() to the end of sgx_init() is considered too big to fix this bug:)
Acked-by: Kai Huang kai.huang@intel.com