Skip to content

Commit

Permalink
mac80211: remove bogus mod_timer() call
Browse files Browse the repository at this point in the history
The IBSS code has a bogus mod_timer(..., 0) call,
we shouldn't ever pass a constant value to the
function since any constant value could be in the
future or the past.

However, invoking the timer here is not necessary
at all, since we just finished scanning and just
need to have the IBSS code run again from the
workqueue later, so factor out the work starting
and use that instead.

Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
  • Loading branch information
jmberg authored and linvjw committed Jun 3, 2010
1 parent 1f03baa commit 3a4d4aa
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions net/mac80211/ibss.c
Original file line number Diff line number Diff line change
Expand Up @@ -798,6 +798,15 @@ static void ieee80211_ibss_work(struct work_struct *work)
}
}

static void ieee80211_queue_ibss_work(struct ieee80211_sub_if_data *sdata)
{
struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
struct ieee80211_local *local = sdata->local;

set_bit(IEEE80211_IBSS_REQ_RUN, &ifibss->request);
ieee80211_queue_work(&local->hw, &ifibss->work);
}

static void ieee80211_ibss_timer(unsigned long data)
{
struct ieee80211_sub_if_data *sdata =
Expand All @@ -810,8 +819,7 @@ static void ieee80211_ibss_timer(unsigned long data)
return;
}

set_bit(IEEE80211_IBSS_REQ_RUN, &ifibss->request);
ieee80211_queue_work(&local->hw, &ifibss->work);
ieee80211_queue_ibss_work(sdata);
}

#ifdef CONFIG_PM
Expand Down Expand Up @@ -859,7 +867,7 @@ void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local)
if (!sdata->u.ibss.ssid_len)
continue;
sdata->u.ibss.last_scan_completed = jiffies;
mod_timer(&sdata->u.ibss.timer, 0);
ieee80211_queue_ibss_work(sdata);
}
mutex_unlock(&local->iflist_mtx);
}
Expand Down

0 comments on commit 3a4d4aa

Please sign in to comment.