Search Linux Wireless

Re: [PATCH 06/12] Add support for monitor mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Michael Buesch <mb@xxxxxxxxx> writes:

>> +#define AT76_SUPPORTED_FILTERS FIF_PROMISC_IN_BSS
>
> See my recent patch to zd1211rw:
> [PATCH] zd1211rw: Fix beacon filter flags thinko
> I think this thinko also applies here.
>
> A driver does not support a flag, if it can _not_ _provide_
> a specific frame. (so in case it always filters it)
> Not the other way around. So if it always
> provides a specific type of frames, it _does_ support the filter flag.

Thanks for looking at this. 

I have to admit that I didn't undertstand the filter flags logic at
that time, but I think I understand it now. I hope this is right:


static void at76_op_configure_filter(struct ieee80211_hw *hw,
				  unsigned int changed_flags,
				  unsigned int *total_flags, int mc_count,
				  struct dev_addr_list *mc_list)
{
	struct at76_priv *priv = hw->priv;

	at76_dbg(DBG_MAC80211, "%s(): changed_flags=0x%08x "
		 "total_flags=0x%08x mc_count=%d",
		 __func__, changed_flags, *total_flags, mc_count);

	*total_flags &= FIF_PROMISC_IN_BSS;

	if (changed_flags & FIF_PROMISC_IN_BSS) {
		/* FIXME: access to priv->promisc should be protected with
		 * priv->mtx, but it's impossible because this function
		 * needs to be atomic */
		priv->promisc = *total_flags & FIF_PROMISC_IN_BSS;
		queue_work(hw->workqueue, &priv->work_set_promisc);
	}

}


-- 
Kalle Valo
--
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

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux