libertas_spi: Use workqueue in hw_host_to_card
authorVasily Khoruzhick <anarsoul@gmail.com>
Fri, 21 Jan 2011 20:44:48 +0000 (22:44 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 3 Feb 2011 21:38:25 +0000 (16:38 -0500)
commit16f775befc1ccf67e6b223c4d9bb17ac3502ab2c
treed8b3f752295c9aa98037950e522a25f4d857017a
parentdbd98308a5dc6bc7e8e79ca8b7a0038638d24605
libertas_spi: Use workqueue in hw_host_to_card

Use workqueue to perform SPI xfers, it's necessary to fix
nasty "BUG: scheduling while atomic", because
spu_write() calls spi_sync() and spi_sync() may sleep, but
hw_host_to_card() callback can be called from atomic context.
Remove kthread completely, workqueue now does its job.
Restore intermediate buffers which were removed in commit
86c34fe89e9cad9e1ba4d1a8bbf98259035f4caf that introduced
mentioned bug.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/libertas/if_spi.c