2011-06-12 12:41:50

by Evgeni Golov

[permalink] [raw]
Subject: [PATCH] iwlagn: fix *_UCODE_API_MAX output in the firmware field

Currently (3.0-rc2), modinfo iwlagn shows:
firmware: iwlwifi-5150-IWL5150_UCODE_API_MAX.ucode
firmware: iwlwifi-5000-IWL5000_UCODE_API_MAX.ucode
firmware: iwlwifi-6000g2b-IWL6000G2_UCODE_API_MAX.ucode
firmware: iwlwifi-6000g2a-IWL6000G2_UCODE_API_MAX.ucode
firmware: iwlwifi-6050-IWL6050_UCODE_API_MAX.ucode
firmware: iwlwifi-6000-IWL6000_UCODE_API_MAX.ucode
firmware: iwlwifi-100-IWL100_UCODE_API_MAX.ucode
firmware: iwlwifi-1000-IWL1000_UCODE_API_MAX.ucode
firmware: iwlwifi-105-IWL105_UCODE_API_MAX.ucode
firmware: iwlwifi-2030-IWL2030_UCODE_API_MAX.ucode
firmware: iwlwifi-2000-IWL2000_UCODE_API_MAX.ucode

which is obviously wrong, the user should not see the *_UCODE_API_MAX
macros but the actual ucode API versions here.

The problem are the
#define *_MODULE_FIRMWARE(api) *_FW_PRE #api ".ucode"
which do not expand api correctly (because this is a macro itself).

Fixed by using __stringify() from linux/stringify.h.

Further information about macro stringification can be found here:
http://gcc.gnu.org/onlinedocs/cpp/Stringification.html

Signed-off-by: Evgeni Golov <[email protected]>
---
drivers/net/wireless/iwlwifi/iwl-1000.c | 5 +++--
drivers/net/wireless/iwlwifi/iwl-2000.c | 7 ++++---
drivers/net/wireless/iwlwifi/iwl-5000.c | 5 +++--
drivers/net/wireless/iwlwifi/iwl-6000.c | 9 +++++----
4 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index 61d4a11..2a88e73 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -36,6 +36,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
+#include <linux/stringify.h>

#include "iwl-eeprom.h"
#include "iwl-dev.h"
@@ -55,10 +56,10 @@
#define IWL100_UCODE_API_MIN 5

#define IWL1000_FW_PRE "iwlwifi-1000-"
-#define IWL1000_MODULE_FIRMWARE(api) IWL1000_FW_PRE #api ".ucode"
+#define IWL1000_MODULE_FIRMWARE(api) IWL1000_FW_PRE __stringify(api) ".ucode"

#define IWL100_FW_PRE "iwlwifi-100-"
-#define IWL100_MODULE_FIRMWARE(api) IWL100_FW_PRE #api ".ucode"
+#define IWL100_MODULE_FIRMWARE(api) IWL100_FW_PRE __stringify(api) ".ucode"


/*
diff --git a/drivers/net/wireless/iwlwifi/iwl-2000.c b/drivers/net/wireless/iwlwifi/iwl-2000.c
index 86feec8..1044309 100644
--- a/drivers/net/wireless/iwlwifi/iwl-2000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-2000.c
@@ -36,6 +36,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
+#include <linux/stringify.h>

#include "iwl-eeprom.h"
#include "iwl-dev.h"
@@ -58,13 +59,13 @@
#define IWL105_UCODE_API_MIN 5

#define IWL2030_FW_PRE "iwlwifi-2030-"
-#define IWL2030_MODULE_FIRMWARE(api) IWL2030_FW_PRE #api ".ucode"
+#define IWL2030_MODULE_FIRMWARE(api) IWL2030_FW_PRE __stringify(api) ".ucode"

#define IWL2000_FW_PRE "iwlwifi-2000-"
-#define IWL2000_MODULE_FIRMWARE(api) IWL2000_FW_PRE #api ".ucode"
+#define IWL2000_MODULE_FIRMWARE(api) IWL2000_FW_PRE __stringify(api) ".ucode"

#define IWL105_FW_PRE "iwlwifi-105-"
-#define IWL105_MODULE_FIRMWARE(api) IWL105_FW_PRE #api ".ucode"
+#define IWL105_MODULE_FIRMWARE(api) IWL105_FW_PRE __stringify(api) ".ucode"

static void iwl2000_set_ct_threshold(struct iwl_priv *priv)
{
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index a70b8cf..168153d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -37,6 +37,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
+#include <linux/stringify.h>

#include "iwl-eeprom.h"
#include "iwl-dev.h"
@@ -57,10 +58,10 @@
#define IWL5150_UCODE_API_MIN 1

#define IWL5000_FW_PRE "iwlwifi-5000-"
-#define IWL5000_MODULE_FIRMWARE(api) IWL5000_FW_PRE #api ".ucode"
+#define IWL5000_MODULE_FIRMWARE(api) IWL5000_FW_PRE __stringify(api) ".ucode"

#define IWL5150_FW_PRE "iwlwifi-5150-"
-#define IWL5150_MODULE_FIRMWARE(api) IWL5150_FW_PRE #api ".ucode"
+#define IWL5150_MODULE_FIRMWARE(api) IWL5150_FW_PRE __stringify(api) ".ucode"

/* NIC configuration for 5000 series */
static void iwl5000_nic_config(struct iwl_priv *priv)
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index fda6fe0..443a191 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -36,6 +36,7 @@
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <asm/unaligned.h>
+#include <linux/stringify.h>

#include "iwl-eeprom.h"
#include "iwl-dev.h"
@@ -58,16 +59,16 @@
#define IWL6000G2_UCODE_API_MIN 4

#define IWL6000_FW_PRE "iwlwifi-6000-"
-#define IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE #api ".ucode"
+#define IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE __stringify(api) ".ucode"

#define IWL6050_FW_PRE "iwlwifi-6050-"
-#define IWL6050_MODULE_FIRMWARE(api) IWL6050_FW_PRE #api ".ucode"
+#define IWL6050_MODULE_FIRMWARE(api) IWL6050_FW_PRE __stringify(api) ".ucode"

#define IWL6005_FW_PRE "iwlwifi-6000g2a-"
-#define IWL6005_MODULE_FIRMWARE(api) IWL6005_FW_PRE #api ".ucode"
+#define IWL6005_MODULE_FIRMWARE(api) IWL6005_FW_PRE __stringify(api) ".ucode"

#define IWL6030_FW_PRE "iwlwifi-6000g2b-"
-#define IWL6030_MODULE_FIRMWARE(api) IWL6030_FW_PRE #api ".ucode"
+#define IWL6030_MODULE_FIRMWARE(api) IWL6030_FW_PRE __stringify(api) ".ucode"

static void iwl6000_set_ct_threshold(struct iwl_priv *priv)
{
--
1.7.2.5


2011-06-12 15:14:08

by Wey-Yi Guy

[permalink] [raw]
Subject: Re: [PATCH] iwlagn: fix *_UCODE_API_MAX output in the firmware field

On Sun, 2011-06-12 at 05:34 -0700, Evgeni Golov wrote:
> Currently (3.0-rc2), modinfo iwlagn shows:
> firmware: iwlwifi-5150-IWL5150_UCODE_API_MAX.ucode
> firmware: iwlwifi-5000-IWL5000_UCODE_API_MAX.ucode
> firmware: iwlwifi-6000g2b-IWL6000G2_UCODE_API_MAX.ucode
> firmware: iwlwifi-6000g2a-IWL6000G2_UCODE_API_MAX.ucode
> firmware: iwlwifi-6050-IWL6050_UCODE_API_MAX.ucode
> firmware: iwlwifi-6000-IWL6000_UCODE_API_MAX.ucode
> firmware: iwlwifi-100-IWL100_UCODE_API_MAX.ucode
> firmware: iwlwifi-1000-IWL1000_UCODE_API_MAX.ucode
> firmware: iwlwifi-105-IWL105_UCODE_API_MAX.ucode
> firmware: iwlwifi-2030-IWL2030_UCODE_API_MAX.ucode
> firmware: iwlwifi-2000-IWL2000_UCODE_API_MAX.ucode
>
> which is obviously wrong, the user should not see the *_UCODE_API_MAX
> macros but the actual ucode API versions here.
>
> The problem are the
> #define *_MODULE_FIRMWARE(api) *_FW_PRE #api ".ucode"
> which do not expand api correctly (because this is a macro itself).
>
> Fixed by using __stringify() from linux/stringify.h.
>
> Further information about macro stringification can be found here:
> http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
>
> Signed-off-by: Evgeni Golov <[email protected]>
Signed-off-by: Wey-Yi Guy <[email protected]>

Good catch, thank you very much

Wey



2011-06-23 14:31:15

by Evgeni Golov

[permalink] [raw]
Subject: Re: [PATCH] iwlagn: fix *_UCODE_API_MAX output in the firmware field

On 06/12/2011 04:44 PM, Guy, Wey-Yi wrote:
> Signed-off-by: Wey-Yi Guy <[email protected]>
>
> Good catch, thank you very much

Ping, any plans on merging this? :)

regards
Evgeni

2011-06-23 15:21:01

by Wey-Yi Guy

[permalink] [raw]
Subject: Re: [PATCH] iwlagn: fix *_UCODE_API_MAX output in the firmware field

On Thu, 2011-06-23 at 07:31 -0700, Evgeni Golov wrote:
> On 06/12/2011 04:44 PM, Guy, Wey-Yi wrote:
> > Signed-off-by: Wey-Yi Guy <[email protected]>
> >
> > Good catch, thank you very much
>
> Ping, any plans on merging this? :)
>

John, could you merge?

Thanks
Wey

2011-06-23 15:46:39

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] iwlagn: fix *_UCODE_API_MAX output in the firmware field

On Thu, Jun 23, 2011 at 07:49:22AM -0700, Guy, Wey-Yi wrote:
> On Thu, 2011-06-23 at 07:31 -0700, Evgeni Golov wrote:
> > On 06/12/2011 04:44 PM, Guy, Wey-Yi wrote:
> > > Signed-off-by: Wey-Yi Guy <[email protected]>
> > >
> > > Good catch, thank you very much
> >
> > Ping, any plans on merging this? :)
> >
>
> John, could you merge?
>
> Thanks
> Wey

Could someone send me the patch?

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

2011-06-23 15:49:42

by Wey-Yi Guy

[permalink] [raw]
Subject: RE: [PATCH] iwlagn: fix *_UCODE_API_MAX output in the firmware field



Wey-Yi Guy
Intel Corporation
2111 N.E. 25th Avenue M/S JF3-308
Hillsboro OR 97124-5961
USA
Work Phone: 503-264-6023 (OR)
Cell Phone: 503-329-8410
Email: [email protected]


-----Original Message-----
From: John W. Linville [mailto:[email protected]]
Sent: Thursday, June 23, 2011 8:35 AM
To: Guy, Wey-Yi W
Cc: Evgeni Golov; [email protected]; [email protected]
Subject: Re: [PATCH] iwlagn: fix *_UCODE_API_MAX output in the firmware field

On Thu, Jun 23, 2011 at 07:49:22AM -0700, Guy, Wey-Yi wrote:
> On Thu, 2011-06-23 at 07:31 -0700, Evgeni Golov wrote:
> > On 06/12/2011 04:44 PM, Guy, Wey-Yi wrote:
> > > Signed-off-by: Wey-Yi Guy <[email protected]>
> > >
> > > Good catch, thank you very much
> >
> > Ping, any plans on merging this? :)
> >
>
> John, could you merge?
>
> Thanks
> Wey

Could someone send me the patch?

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


Attachments:
(No filename) (7.80 kB)