2009-07-17 16:34:50

by Reinette Chatre

[permalink] [raw]
Subject: [PATCH 2.6.31] iwlagn: fix minimum number of queues setting

From: Reinette Chatre <[email protected]>

We need to provide a reasonable minimum that will result in a
working setup if used. Set minimum to be 10 to provide for
4 standard TX queues + 1 command queue + 2 (unused) HCCA queues +
4 HT queues (one per AC).

We allow the user to change the number of queues used via a module
parameter and use this minimum value to check if it is valid. Without
this patch a user can select a value for the number of queues that
will result in a failing setup.

Signed-off-by: Reinette Chatre <[email protected]>
Reviewed-by: Tomas Winkler <[email protected]>
Acked-by: Tomas Winkler <[email protected]>
---
This patch has already been submitted for wireless-testing, but we would
like to include this fix into 2.6.31 also if possible.

This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2011

drivers/net/wireless/iwlwifi/iwl-dev.h | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 1a2fe37..b989d5c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -258,8 +258,10 @@ struct iwl_channel_info {
#define IWL_TX_FIFO_HCCA_2 6
#define IWL_TX_FIFO_NONE 7

-/* Minimum number of queues. MAX_NUM is defined in hw specific files */
-#define IWL_MIN_NUM_QUEUES 4
+/* Minimum number of queues. MAX_NUM is defined in hw specific files.
+ * Set the minimum to accommodate the 4 standard TX queues, 1 command
+ * queue, 2 (unused) HCCA queues, and 4 HT queues (one for each AC) */
+#define IWL_MIN_NUM_QUEUES 10

/* Power management (not Tx power) structures */

--
1.5.6.3



2009-07-21 16:29:08

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH 2.6.31] iwlagn: fix minimum number of queues setting

Hi John,

On Tue, 2009-07-21 at 08:44 -0700, John W. Linville wrote:
> When built against 2.6.31, I get this:
>
> CC [M] drivers/net/wireless/iwlwifi/iwl3945-base.o
> In file included from drivers/net/wireless/iwlwifi/iwl3945-base.c:55:
> drivers/net/wireless/iwlwifi/iwl-3945.h:115:1: warning: "IWL_MIN_NUM_QUEUES" redefined
> In file included from drivers/net/wireless/iwlwifi/iwl-3945.h:48,
> from drivers/net/wireless/iwlwifi/iwl3945-base.c:55:

I am very sorry. This patch will fix this.

From: Reinette Chatre <[email protected]>

We need to provide a reasonable minimum that will result in a
working setup if used. Set minimum to be 10 to provide for
4 standard TX queues + 1 command queue + 2 (unused) HCCA queues +
4 HT queues (one per AC).

We allow the user to change the number of queues used via a module
parameter and use this minimum value to check if it is valid. Without
this patch a user can select a value for the number of queues that
will result in a failing setup.

Signed-off-by: Reinette Chatre <[email protected]>
Reviewed-by: Tomas Winkler <[email protected]>
Acked-by: Tomas Winkler <[email protected]>
---
This patch has already been submitted for wireless-testing, but we would
like to include this fix into 2.6.31 also if possible.

This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2011

drivers/net/wireless/iwlwifi/iwl-dev.h | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 1a2fe37..b989d5c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -258,8 +258,10 @@ struct iwl_channel_info {
#define IWL_TX_FIFO_HCCA_2 6
#define IWL_TX_FIFO_NONE 7

-/* Minimum number of queues. MAX_NUM is defined in hw specific files */
-#define IWL_MIN_NUM_QUEUES 4
+/* Minimum number of queues. MAX_NUM is defined in hw specific files.
+ * Set the minimum to accommodate the 4 standard TX queues, 1 command
+ * queue, 2 (unused) HCCA queues, and 4 HT queues (one for each AC) */
+#define IWL_MIN_NUM_QUEUES 10

/* Power management (not Tx power) structures */

diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h
index fbb3a57..2de6471 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.h
@@ -112,7 +112,7 @@ enum iwl3945_antenna {
#define IWL_TX_FIFO_NONE 7

/* Minimum number of queues. MAX_NUM is defined in hw specific files */
-#define IWL_MIN_NUM_QUEUES 4
+#define IWL39_MIN_NUM_QUEUES 4

#define IEEE80211_DATA_LEN 2304
#define IEEE80211_4ADDR_LEN 30
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index cb9bd4c..b01fba3 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -4020,10 +4020,10 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
SET_IEEE80211_DEV(hw, &pdev->dev);

if ((iwl3945_mod_params.num_of_queues > IWL39_MAX_NUM_QUEUES) ||
- (iwl3945_mod_params.num_of_queues < IWL_MIN_NUM_QUEUES)) {
+ (iwl3945_mod_params.num_of_queues < IWL39_MIN_NUM_QUEUES)) {
IWL_ERR(priv,
"invalid queues_num, should be between %d and %d\n",
- IWL_MIN_NUM_QUEUES, IWL39_MAX_NUM_QUEUES);
+ IWL39_MIN_NUM_QUEUES, IWL39_MAX_NUM_QUEUES);
err = -EINVAL;
goto out_ieee80211_free_hw;
}



2009-07-21 15:45:54

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH 2.6.31] iwlagn: fix minimum number of queues setting

On Fri, Jul 17, 2009 at 09:34:36AM -0700, Reinette Chatre wrote:
> From: Reinette Chatre <[email protected]>
>
> We need to provide a reasonable minimum that will result in a
> working setup if used. Set minimum to be 10 to provide for
> 4 standard TX queues + 1 command queue + 2 (unused) HCCA queues +
> 4 HT queues (one per AC).
>
> We allow the user to change the number of queues used via a module
> parameter and use this minimum value to check if it is valid. Without
> this patch a user can select a value for the number of queues that
> will result in a failing setup.
>
> Signed-off-by: Reinette Chatre <[email protected]>
> Reviewed-by: Tomas Winkler <[email protected]>
> Acked-by: Tomas Winkler <[email protected]>
> ---
> This patch has already been submitted for wireless-testing, but we would
> like to include this fix into 2.6.31 also if possible.
>
> This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2011

When built against 2.6.31, I get this:

CC [M] drivers/net/wireless/iwlwifi/iwl3945-base.o
In file included from drivers/net/wireless/iwlwifi/iwl3945-base.c:55:
drivers/net/wireless/iwlwifi/iwl-3945.h:115:1: warning: "IWL_MIN_NUM_QUEUES" redefined
In file included from drivers/net/wireless/iwlwifi/iwl-3945.h:48,
from drivers/net/wireless/iwlwifi/iwl3945-base.c:55:
drivers/net/wireless/iwlwifi/iwl-dev.h:264:1: warning: this is the location of the previous definition
CC [M] drivers/net/wireless/iwlwifi/iwl-3945.o
In file included from drivers/net/wireless/iwlwifi/iwl-3945.c:45:
drivers/net/wireless/iwlwifi/iwl-3945.h:115:1: warning: "IWL_MIN_NUM_QUEUES" redefined
In file included from drivers/net/wireless/iwlwifi/iwl-3945.h:48,
from drivers/net/wireless/iwlwifi/iwl-3945.c:45:
drivers/net/wireless/iwlwifi/iwl-dev.h:264:1: warning: this is the location of the previous definition
CC [M] drivers/net/wireless/iwlwifi/iwl-3945-rs.o
In file included from drivers/net/wireless/iwlwifi/iwl-3945-rs.c:40:
drivers/net/wireless/iwlwifi/iwl-3945.h:115:1: warning: "IWL_MIN_NUM_QUEUES" redefined
In file included from drivers/net/wireless/iwlwifi/iwl-3945.h:48,
from drivers/net/wireless/iwlwifi/iwl-3945-rs.c:40:
drivers/net/wireless/iwlwifi/iwl-dev.h:264:1: warning: this is the location of the previous definition
CC [M] drivers/net/wireless/iwlwifi/iwl-3945-led.o
In file included from drivers/net/wireless/iwlwifi/iwl-3945-led.c:43:
drivers/net/wireless/iwlwifi/iwl-3945.h:115:1: warning: "IWL_MIN_NUM_QUEUES" redefined
In file included from drivers/net/wireless/iwlwifi/iwl-3945.h:48,
from drivers/net/wireless/iwlwifi/iwl-3945-led.c:43:
drivers/net/wireless/iwlwifi/iwl-dev.h:264:1: warning: this is the location of the previous definition

--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.
?Viva Honduras Libre!