When the topology load fails, the driver .probe stops and the .remove will generate a kernel oops by trying to free a NULL topology.
We should have a way of tracking if the topology was indeed fully loaded and not attempt to free it if it's invalid. See attached log and topology file that creates the problem.
See
topology_error.log
sof-apl-nocodec.m4.txt