2497128133
If port100_send_ack() was called twice or more, it has race to hangup. port100_send_ack() port100_send_ack() init_completion() [...] dev->cmd_cancel = true /* this removes previous from completion */ init_completion() [...] dev->cmd_cancel = true wait_for_completion() /* never be waked up */ wait_for_completion() Like above race, this code is not assuming port100_send_ack() is called twice or more. To fix, this checks dev->cmd_cancel to know if prior cancel is in-flight or not. And never be remove prior task from completion by using reinit_completion(), so this guarantees to be waked up properly soon or later. Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> |
||
---|---|---|
.. | ||
fdp | ||
microread | ||
nfcmrvl | ||
nxp-nci | ||
pn533 | ||
pn544 | ||
s3fwrn5 | ||
st21nfca | ||
st95hf | ||
st-nci | ||
Kconfig | ||
Makefile | ||
mei_phy.c | ||
mei_phy.h | ||
nfcsim.c | ||
nfcwilink.c | ||
port100.c | ||
trf7970a.c |