On Thu, Aug 22, 2019 at 03:29:40AM +0300, Jarkko Sakkinen wrote: > On Wed, Aug 21, 2019 at 10:24:00AM -0700, Sean Christopherson wrote: > > How does the current code not align with this approach? The core subsystem > > should tear itself down if loading the driver fails, which includes failing > > because it doesn't exist. > > I get now the real issue that you are trying to point out (did not > earlier). Still, I think your approach to fix it needs some > reconsideration. > > Something that *does not exist* can never fail. That should be dead > obvious. > > If the SGX driver does not exit and KVM does not have SGX support > compiled in, then the only logical conclusion that you can end up with > is that neither the SGX core should exist in vmlinux in the first place. > > This all summarizes to that I have to remove the INTEL_SGX_DRIVER > kconfig flag. Its existence can only be considered when there >= 2 > in-kernel users for SGX. The subdirectory for the driver has clearly turned into legacy with only two source files and one header file in it. Even if/when we want to add INTEL_SGX_DRIVER back it is easiest use it in the main makefile. I prepared snippets to execute these changes. This is for driver.h, ioctl.c, main.c (rename): git filter-branch -f --index-filter 'git ls-files -s | \ sed "s/sgx\/driver\/main\.c/sgx\/driver.c/" | \ GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && \ mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' mainline/master..master This for for Makefile (remove): git filter-branch -f --index-filter 'git ls-files -s | \ sed "/sgx\/driver\/Makefile/d" | \ GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info && \ mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' mainline/master..master /Jarkko