Current driver calls ce_tasklet_kill API which does
tasklet_disable() first and then does tasklet_kill which invites
race condition as follows.
1) Lets say CPU-0 is executing ce_tasklet_kill() API
for CE1 (in process ctx) to kill any tasklets associated with CE1-IRQ
2) t1 time- CPU-1 has scheduled the tasklet as part of rescheduled API
ce_schedule_tasklet(), so this tasklet goes to be scheduled list of
kernel.
3) t2 time- CPU-0 executes tasklet_disable() and about to execute
tasklet_kill()
4) t3 time - kernel got a chance and wants to run the tasklet which was
scheduled at t1 time but it can't because t2 time, tasklet has been
disable.
5) t5 time- CPU-0 now executes tasklet_kill which checks if any
tasklet which is in "SCHEDULE" state to go to "RUNNING" state and
finish and tasklet on CPU-1 can't go to "RUNNING" state due to
tasklet_disable(), driver is stuck waiting for it to finish.
Fix the situation by removing tasklet_disable()
Change-Id: I3ac56975dc1f6538962060dd20e881c43e7516ca
CRs-Fixed: 2301368