Re: [PATCH] ieee80211softmac: Fix errors related to the work_struct changes
From: Andrew Morton <hidden>
Date: 2006-12-10 18:42:31
On Sun, 10 Dec 2006 19:35:36 +0100 Ulrich Kunitz [off-list ref] wrote:
The problem is that you there are now different work structures: struct work_struct and struct delayed_work. The quick fix seems to have been to change all old work_structs as associnfo's work to delayed_work. The way the structures are designed calling schedule_work or schedule_delayed_work doesn't matter, but you will get a gcc warning, because the pointer types are not identical. This change works around the warning in the same way as the other schedule_work calls for associnfo's work.
David proposed the below. Does it fix things for you?
--- a/net/ieee80211/softmac/ieee80211softmac_assoc.c~workstruct-fix-ieee80211-softmac-compile-problem
+++ a/net/ieee80211/softmac/ieee80211softmac_assoc.c@@ -438,7 +438,7 @@ ieee80211softmac_try_reassoc(struct ieee spin_lock_irqsave(&mac->lock, flags); mac->associnfo.associating = 1; - schedule_work(&mac->associnfo.work); + schedule_delayed_work(&mac->associnfo.work, 0); spin_unlock_irqrestore(&mac->lock, flags); }
_
I'm not sure, whether the breaking of the workqueue API is really worth it. What I see is that the change introduced choices and choices make things more complex.
It is kinda sucky. But it saves a bit of space in kernel data structures.