2007-11-06 14:48:42

by Robert P. J. Day

[permalink] [raw]
Subject: [PATCH] WIRELESS: Use more obvious "is_power_of_2" macro.


Signed-off-by: Robert P. J. Day <[email protected]>

---

drivers/net/wireless/iwlwifi/iwl3945-base.c | 3 ++-
drivers/net/wireless/iwlwifi/iwl4965-base.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 4f22a71..53b4b4e 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -50,6 +50,7 @@
#include <linux/firmware.h>
#include <linux/etherdevice.h>
#include <linux/if_arp.h>
+#include <linux/log2.h>

#include <net/ieee80211_radiotap.h>
#include <net/mac80211.h>
@@ -343,7 +344,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv,

/* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise
* iwl_queue_inc_wrap and iwl_queue_dec_wrap are broken. */
- BUILD_BUG_ON(TFD_QUEUE_SIZE_MAX & (TFD_QUEUE_SIZE_MAX - 1));
+ BUILD_BUG_ON(!is_power_of_2(TFD_QUEUE_SIZE_MAX));
iwl_queue_init(priv, &txq->q, TFD_QUEUE_SIZE_MAX, slots_num, txq_id);

iwl_hw_tx_queue_init(priv, txq);
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index d60adcb..5f3bcb3 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -50,6 +50,7 @@
#include <linux/firmware.h>
#include <linux/etherdevice.h>
#include <linux/if_arp.h>
+#include <linux/log2.h>

#include <net/ieee80211_radiotap.h>
#include <net/mac80211.h>
@@ -342,7 +343,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv,

/* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise
* iwl_queue_inc_wrap and iwl_queue_dec_wrap are broken. */
- BUILD_BUG_ON(TFD_QUEUE_SIZE_MAX & (TFD_QUEUE_SIZE_MAX - 1));
+ BUILD_BUG_ON(!is_power_of_2(TFD_QUEUE_SIZE_MAX));
iwl_queue_init(priv, &txq->q, TFD_QUEUE_SIZE_MAX, slots_num, txq_id);

iwl_hw_tx_queue_init(priv, txq);

--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================


2007-11-08 11:40:25

by Robert P. J. Day

[permalink] [raw]
Subject: Re: [PATCH] WIRELESS: Use more obvious "is_power_of_2" macro.

On Thu, 8 Nov 2007, Zhu Yi wrote:

>
> On Tue, 2007-11-06 at 09:47 -0500, Robert P. J. Day wrote:
> > Signed-off-by: Robert P. J. Day <[email protected]>
> >
>
> NACK. is_power_of_2() cannot do compile time check for
> TFD_QUEUE_SIZE_MAX. Furthermore, the runtime check for
> TFD_QUEUE_SIZE_MAX is already done by iwl_queue_init().
>
> Thanks,
> -yi

right, sorry.

rday
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://crashcourse.ca
========================================================================

2007-11-08 09:03:33

by Zhu Yi

[permalink] [raw]
Subject: Re: [PATCH] WIRELESS: Use more obvious "is_power_of_2" macro.


On Tue, 2007-11-06 at 09:47 -0500, Robert P. J. Day wrote:
> Signed-off-by: Robert P. J. Day <[email protected]>
>

NACK. is_power_of_2() cannot do compile time check for
TFD_QUEUE_SIZE_MAX. Furthermore, the runtime check for
TFD_QUEUE_SIZE_MAX is already done by iwl_queue_init().

Thanks,
-yi

> ---
>
> drivers/net/wireless/iwlwifi/iwl3945-base.c | 3 ++-
> drivers/net/wireless/iwlwifi/iwl4965-base.c | 3 ++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> index 4f22a71..53b4b4e 100644
> --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
> +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> @@ -50,6 +50,7 @@
> #include <linux/firmware.h>
> #include <linux/etherdevice.h>
> #include <linux/if_arp.h>
> +#include <linux/log2.h>
>
> #include <net/ieee80211_radiotap.h>
> #include <net/mac80211.h>
> @@ -343,7 +344,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv,
>
> /* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise
> * iwl_queue_inc_wrap and iwl_queue_dec_wrap are broken. */
> - BUILD_BUG_ON(TFD_QUEUE_SIZE_MAX & (TFD_QUEUE_SIZE_MAX - 1));
> + BUILD_BUG_ON(!is_power_of_2(TFD_QUEUE_SIZE_MAX));
> iwl_queue_init(priv, &txq->q, TFD_QUEUE_SIZE_MAX, slots_num, txq_id);
>
> iwl_hw_tx_queue_init(priv, txq);
> diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
> index d60adcb..5f3bcb3 100644
> --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
> +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
> @@ -50,6 +50,7 @@
> #include <linux/firmware.h>
> #include <linux/etherdevice.h>
> #include <linux/if_arp.h>
> +#include <linux/log2.h>
>
> #include <net/ieee80211_radiotap.h>
> #include <net/mac80211.h>
> @@ -342,7 +343,7 @@ int iwl_tx_queue_init(struct iwl_priv *priv,
>
> /* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise
> * iwl_queue_inc_wrap and iwl_queue_dec_wrap are broken. */
> - BUILD_BUG_ON(TFD_QUEUE_SIZE_MAX & (TFD_QUEUE_SIZE_MAX - 1));
> + BUILD_BUG_ON(!is_power_of_2(TFD_QUEUE_SIZE_MAX));
> iwl_queue_init(priv, &txq->q, TFD_QUEUE_SIZE_MAX, slots_num, txq_id);
>
> iwl_hw_tx_queue_init(priv, txq);
>