On Sunday 25 January 2009 13:55:49 Michael Buesch wrote: > On Sunday 25 January 2009 13:51:50 Michael Buesch wrote: > > On Sunday 25 January 2009 13:41:51 Alina Friedrichsen wrote: > > > This allows the mac80211 high level code to access the TSF. This is e.g. needed for BSSID merges in the IBSS mode. > > > > Thanks, can you also remove our private debugfs hook? > > > > > Signed-off-by: Alina Friedrichsen <x-alina@xxxxxxx> > > > --- > > > diff -urN wireless-testing.orig/drivers/net/wireless/b43/main.c wireless-testing/drivers/net/wireless/b43/main.c > > > --- wireless-testing.orig/drivers/net/wireless/b43/main.c 2009-01-25 06:12:13.000000000 +0100 > > > +++ wireless-testing/drivers/net/wireless/b43/main.c 2009-01-25 13:09:35.000000000 +0100 > > > @@ -3177,6 +3177,25 @@ > > > return 0; > > > } > > > > > > +static u64 b43_op_get_tsf(struct ieee80211_hw *hw) > > > +{ > > > + struct b43_wl *wl = hw_to_b43_wl(hw); > > > + struct b43_wldev *dev = wl->current_dev; > > > + u64 tsf; > > > + > > > > You must add a check and locking here. > > > > if (dev && (b43_status(dev) >= B43_STAT_INITIALIZED)) { > > mutex_lock(&wl->mutex); > > spin_lock_irq(&wl->irq_lock); > > > > > + b43_tsf_read(dev, &tsf); > > > > spin_unlock_irq(&wl->irq_lock); > > mutex_unlock(&wl->mutex); > > } else > > tsf = 0; //FIXME what to do on error? > > > > > + return tsf; > > > +} > > Whoops, I got it wrong :D > This is what it should look like: > > static u64 b43_op_get_tsf(struct ieee80211_hw *hw) > { > struct b43_wl *wl = hw_to_b43_wl(hw); > struct b43_wldev *dev = wl->current_dev; > u64 tsf; > > mutex_lock(&wl->mutex); > spin_lock_irq(&wl->irq_lock); > if (dev && (b43_status(dev) >= B43_STAT_INITIALIZED)) > b43_tsf_read(dev, &tsf); > else > tsf = 0;//FIXME? what to do on error? > spin_unlock_irq(&wl->irq_lock); > mutex_unlock(&wl->mutex); > > return tsf; > } > Damn, I'm not awake, yet. The dev = wl->current_dev also must be inside of the mutex. -- Greetings, Michael. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html