if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
                struct sof_ipc4_fw_data *ipc4_data;
 
-               sdev->private = devm_kzalloc(sdev->dev, sizeof(*ipc4_data), GFP_KERNEL);
+               sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
                if (!sdev->private)
                        return -ENOMEM;
 
 
        if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
                struct sof_ipc4_fw_data *ipc4_data;
 
-               sdev->private = devm_kzalloc(sdev->dev, sizeof(*ipc4_data), GFP_KERNEL);
+               sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
                if (!sdev->private)
                        return -ENOMEM;
 
 
 
                if (!hda_use_tplg_nhlt)
                        intel_nhlt_free(ipc4_data->nhlt);
+
+               kfree(sdev->private);
+               sdev->private = NULL;
        }
 }
 EXPORT_SYMBOL_NS(hda_ops_free, SND_SOC_SOF_INTEL_HDA_COMMON);
 
        if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
                struct sof_ipc4_fw_data *ipc4_data;
 
-               sdev->private = devm_kzalloc(sdev->dev, sizeof(*ipc4_data), GFP_KERNEL);
+               sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
                if (!sdev->private)
                        return -ENOMEM;
 
 
 
        sof_lnl_ops.get_stream_position = mtl_dsp_get_stream_hda_link_position;
 
-       sdev->private = devm_kzalloc(sdev->dev, sizeof(struct sof_ipc4_fw_data), GFP_KERNEL);
+       sdev->private = kzalloc(sizeof(struct sof_ipc4_fw_data), GFP_KERNEL);
        if (!sdev->private)
                return -ENOMEM;
 
 
 
        sof_mtl_ops.get_stream_position = mtl_dsp_get_stream_hda_link_position;
 
-       sdev->private = devm_kzalloc(sdev->dev, sizeof(struct sof_ipc4_fw_data), GFP_KERNEL);
+       sdev->private = kzalloc(sizeof(struct sof_ipc4_fw_data), GFP_KERNEL);
        if (!sdev->private)
                return -ENOMEM;
 
 
        /* probe/remove/shutdown */
        sof_skl_ops.shutdown    = hda_dsp_shutdown;
 
-       sdev->private = devm_kzalloc(sdev->dev, sizeof(*ipc4_data), GFP_KERNEL);
+       sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
        if (!sdev->private)
                return -ENOMEM;
 
 
        if (sdev->pdata->ipc_type == SOF_IPC_TYPE_4) {
                struct sof_ipc4_fw_data *ipc4_data;
 
-               sdev->private = devm_kzalloc(sdev->dev, sizeof(*ipc4_data), GFP_KERNEL);
+               sdev->private = kzalloc(sizeof(*ipc4_data), GFP_KERNEL);
                if (!sdev->private)
                        return -ENOMEM;