From: Raja Mani Date: Thu, 9 Feb 2012 07:27:12 +0000 (+0530) Subject: ath6kl: Fix random system lockup X-Git-Tag: v3.4-rc1~177^2~48^2~55^2~25 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1f4159723450252b643bcddff064153f32918bc;p=pandora-kernel.git ath6kl: Fix random system lockup The commit "ath6kl: Use a mutex_lock to avoid race in diabling and handling irq" introduces a state where ath6kl_sdio_irq_handler() would be waiting to claim the sdio function for receive indefinitely when things happen in the following order. ath6kl_sdio_irq_handler() - aquires mtx_irq - sdio_release_host() ath6kl_sdio_irq_disable() - sdio_claim_host() - sleep on mtx_irq ath6kl_hif_intr_bh_handler() - (indefinitely) wait for the sdio function to be released to exclusively claim it again for receive operation. Fix this by replacing the mtx_irq with an atomic variable and a wait_queue. kvalo: add ath6kl_sdio_is_on_irq() due to open parenthesis alignment Signed-off-by: Raja Mani Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Kalle Valo --- Reading git-diff-tree failed