void intel_engine_flush_submission(struct intel_engine_cs *engine)
{
	struct tasklet_struct *t = &engine->execlists.tasklet;

	if (!t->func)
		return;

	/* Synchronise and wait for the tasklet on another CPU */
	tasklet_kill(t);

	/* Having cancelled the tasklet, ensure that is run */
	local_bh_disable();
	if (tasklet_trylock(t)) {
		/* Must wait for any GPU reset in progress. */
		if (__tasklet_is_enabled(t))
			t->func(t->data);
		tasklet_unlock(t);
	}
	local_bh_enable();
}
void intel_engine_flush_submission(struct intel_engine_cs *engine)
{
	struct tasklet_struct *t = &engine->execlists.tasklet;

	if (!t->func)
		return;

	 
	tasklet_kill(t);

	 
	local_bh_disable();
	if (tasklet_trylock(t)) {
		 
		if (__tasklet_is_enabled(t))
			t->func(t->data);
		tasklet_unlock(t);
	}
	local_bh_enable();
}