From: Cindy H Kao Date: Thu, 27 Aug 2009 22:25:12 +0000 (-0700) Subject: wimax/i2400m: fix the bootmode RX deadlock in SDIO driver X-Git-Tag: v2.6.33-rc1~388^2~487^2~63 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b45bfe5010ae1ddaac463d1bcdb141a4ff4ff66;p=pandora-kernel.git 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 Signed-off-by: Inaky Perez-Gonzalez --- Reading git-diff-tree failed