Author: marek Date: 2010-05-21 06:17:52 +0200 (Fri, 21 May 2010) New Revision: 1661
Modified: trunk/batman-adv-kernelland/compat.h Log: batman-adv: fix endless loop on older kernels
Older kernels (>2.6.23) do not provide the cancel_delayed_work_sync() function and were redefined to cancel_rearming_delayed_work() which caused an endless loop, since it waited for the workqueue to re-arm itself. The batman-adv packet queue would not re-arm itself, hence it blocked the whole module / kernel in a busy loop.
Signed-off-by: Marek Lindner lindner_marek@yahoo.de Acked-by: Sven Eckelmann sven.eckelmann@gmx.de
Modified: trunk/batman-adv-kernelland/compat.h =================================================================== --- trunk/batman-adv-kernelland/compat.h 2010-05-21 04:17:51 UTC (rev 1660) +++ trunk/batman-adv-kernelland/compat.h 2010-05-21 04:17:52 UTC (rev 1661) @@ -70,7 +70,7 @@ return 0; }
-#define cancel_delayed_work_sync(wq) cancel_rearming_delayed_work(wq) +#define cancel_delayed_work_sync(wq) cancel_delayed_work(wq)
#endif /* < KERNEL_VERSION(2, 6, 23) */