Skip to content

Commit 2f0331b

Browse files
wjablon1lgirdwood
authored andcommitted
ipc4: handler-user: reject invalid basefw module IDs
Only 0th instance of BaseFW module is available. Report an error for any other instance Signed-off-by: Wojciech Jablonski <wojciech.jablonski@intel.com>
1 parent 9dc2b61 commit 2f0331b

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/ipc/ipc4/handler-user.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,6 +817,10 @@ static int ipc4_set_get_config_module_instance(struct ipc4_message_request *ipc4
817817
if (!cpu_is_me(dev->ipc_config.core))
818818
return ipc4_process_on_core(dev->ipc_config.core, false);
819819
} else {
820+
/* BaseFW module has only 0th instance */
821+
if (config->primary.r.instance_id)
822+
return IPC4_INVALID_RESOURCE_ID;
823+
820824
drv = ipc4_get_comp_drv(config->primary.r.module_id);
821825
}
822826

@@ -1004,6 +1008,10 @@ __cold static int ipc4_get_large_config_module_instance(struct ipc4_message_requ
10041008
if (!cpu_is_me(dev->ipc_config.core))
10051009
return ipc4_process_on_core(dev->ipc_config.core, false);
10061010
} else {
1011+
/* BaseFW module has only 0th instance */
1012+
if (config.primary.r.instance_id)
1013+
return IPC4_INVALID_RESOURCE_ID;
1014+
10071015
drv = ipc4_get_comp_drv(config.primary.r.module_id);
10081016
}
10091017

@@ -1173,6 +1181,10 @@ __cold static int ipc4_set_large_config_module_instance(struct ipc4_message_requ
11731181
if (!cpu_is_me(dev->ipc_config.core))
11741182
return ipc4_process_on_core(dev->ipc_config.core, false);
11751183
} else {
1184+
/* BaseFW module has only 0th instance */
1185+
if (config.primary.r.instance_id)
1186+
return IPC4_INVALID_RESOURCE_ID;
1187+
11761188
drv = ipc4_get_comp_drv(config.primary.r.module_id);
11771189
}
11781190

0 commit comments

Comments
 (0)