struct hdac_bus *bus = dev_get_drvdata(dev);
        struct skl *skl = bus_to_skl(bus);
 
-       INIT_LIST_HEAD(&skl->ppl_list);
-       INIT_LIST_HEAD(&skl->bind_list);
-
        skl->dais = kmemdup(skl_platform_dai, sizeof(skl_platform_dai),
                            GFP_KERNEL);
        if (!skl->dais) {
 
 
        snd_hdac_ext_bus_exit(bus);
 
-       cancel_work_sync(&skl->probe_work);
        if (IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)) {
                snd_hdac_display_power(bus, HDA_CODEC_IDX_CONTROLLER, false);
                snd_hdac_i915_exit(bus);
        hbus = skl_to_hbus(skl);
        bus = skl_to_bus(skl);
 
+       INIT_LIST_HEAD(&skl->ppl_list);
+       INIT_LIST_HEAD(&skl->bind_list);
+
 #if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC)
        ext_ops = snd_soc_hdac_hda_get_ops();
 #endif
        struct hdac_bus *bus = pci_get_drvdata(pci);
        struct skl *skl = bus_to_skl(bus);
 
+       cancel_work_sync(&skl->probe_work);
        release_firmware(skl->tplg);
 
        pm_runtime_get_noresume(&pci->dev);