All of lore.kernel.org
 help / color / mirror / Atom feed
* ilog2 overkill in ieee80211_get_hdrlen?
@ 2007-10-31  6:14 bruno randolf
  2007-10-31 12:20 ` Johannes Berg
  0 siblings, 1 reply; 3+ messages in thread
From: bruno randolf @ 2007-10-31  6:14 UTC (permalink / raw)
  To: linux-wireless

hello!

just a question...

in 'net/mac80211/util.c', in ieee80211_get_hdrlen (line 175), a function ilog2 
is used to determine the number of bits to shift for 
IEEE80211_STYPE_QOS_DATA. isn't that a bit of an overkill when we could just 
do >> 6? i mean IEEE80211_STYPE_QOS_DATA isn't going to change after all...

		/*
		 * The QoS Control field is two bytes and its presence is
		 * indicated by the IEEE80211_STYPE_QOS_DATA bit. Add 2 to
		 * hdrlen if that bit is set.
		 * This works by masking out the bit and shifting it to
		 * bit position 1 so the result has the value 0 or 2.
		 */
		hdrlen += (fc & IEEE80211_STYPE_QOS_DATA)
				>> (ilog2(IEEE80211_STYPE_QOS_DATA)-1);

i don't know if there is a reason for this, but it all seems overly 
complicated to me.

if (fc & IEEE80211_STYPE_QOS_DATA)
	hdrlen += 2;

would be a bit more readable.

bruno

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-11-01  1:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-31  6:14 ilog2 overkill in ieee80211_get_hdrlen? bruno randolf
2007-10-31 12:20 ` Johannes Berg
2007-11-01  1:42   ` bruno randolf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.