aboutsummaryrefslogtreecommitdiffstats
path: root/net/wimax
diff options
context:
space:
mode:
authorCindy H Kao <cindy.h.kao@intel.com>2009-08-27 15:25:12 -0700
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-10-19 15:55:33 +0900
commit5b45bfe5010ae1ddaac463d1bcdb141a4ff4ff66 (patch)
tree8115ce638a420e4ba6610ea6c2e126ddb9180b86 /net/wimax
parent663ebb4aa2fd0d19e3d1da0fed3fa3fa134a4ef0 (diff)
downloadkernel_samsung_smdk4412-5b45bfe5010ae1ddaac463d1bcdb141a4ff4ff66.zip
kernel_samsung_smdk4412-5b45bfe5010ae1ddaac463d1bcdb141a4ff4ff66.tar.gz
kernel_samsung_smdk4412-5b45bfe5010ae1ddaac463d1bcdb141a4ff4ff66.tar.bz2
wimax/i2400m: fix the bootmode RX deadlock in SDIO driver
i2400ms_bus_bm_wait_for_ack() causes a race condition. It happens because this function clears i2400ms->bm_ack_size before waiting for an interrupt, which is set by the interrupt service routine i2400ms_rx() to indicate reception and size of received data; thus, if the interrupt came right before the clearing/waiting, it is lost. The fix is clear the bm_ack_size to -EINPROGRESS before we are enabling the RX interrupt configuration in i2400ms_rx_setup(). Then everytime when the interrupt service routine i2400ms_rx() is invoked during bootmode, bm_ack_size is updated with the actual rx_size and it is cleared to -EINPROGRESS again after the RX data is handled. Signed-off-by: Cindy H Kao <cindy.h.kao@intel.com> Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'net/wimax')
0 files changed, 0 insertions, 0 deletions