+static void
+start_vsi_reset_thread(struct ice_dcf_hw *dcf_hw, bool vfr, uint16_t vf_id)
+{
+#define THREAD_NAME_LEN 16
+ struct ice_dcf_reset_event_param *param;
+ char name[THREAD_NAME_LEN];
+ pthread_t thread;
+ int ret;
+
+ param = malloc(sizeof(*param));
+ if (!param) {
+ PMD_DRV_LOG(ERR, "Failed to allocate the memory for reset handling");
+ return;
+ }
+
+ param->dcf_hw = dcf_hw;
+ param->vfr = vfr;
+ param->vf_id = vf_id;
+
+ snprintf(name, sizeof(name), "ice-reset-%u", vf_id);
+ ret = rte_ctrl_thread_create(&thread, name, NULL,
+ ice_dcf_vsi_update_service_handler, param);
+ if (ret != 0) {
+ PMD_DRV_LOG(ERR, "Failed to start the thread for reset handling");
+ free(param);
+ }
+}
+