checkpatch false positive
I'm getting this error from checkpatch which is a false positive AFAICT. I don't see any other way to code this macro so maybe this rule shouldn't apply?.
ERROR: space prohibited before open square bracket '[' #24: FILE: drivers/staging/wlan-ng/p80211wext.c:1685:
+#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT]
regards
Richard
Quoted 7 lines · Richard Kennedy
I'm getting this error from checkpatch which is a false positive AFAICT. I don't see any other way to code this macro so maybe this rule shouldn't apply?.
ERROR: space prohibited before open square bracket '[' #24: FILE:
drivers/staging/wlan-ng/p80211wext.c:1685:
+#defineIW_IOCTL(x)[(x)-SIOCSIWCOMMIT]
Yes that is definatly false, feed free to ignore it. I'll have a look at fixing it.
-apw
Quoted 7 lines · Richard Kennedy
I'm getting this error from checkpatch which is a false positive AFAICT. I don't see any other way to code this macro so maybe this rule shouldn't apply?.
ERROR: space prohibited before open square bracket '[' #24: FILE:
drivers/staging/wlan-ng/p80211wext.c:1685:
+#defineIW_IOCTL(x)[(x)-SIOCSIWCOMMIT]
While true that this is a false positive, hiding array indexing brackets in a macro doesn't seem a good idea.
Maybe it'd be better to move the brackets to the use?
Quoted 5 lines · Joe Perches
Quoted 4 lines · Richard Kennedy
I'm getting this error from checkpatch which is a false positive AFAICT. I don't see any other way to code this macro so maybe this rule shouldn't apply?.
Quoted 10 lines
Quoted 3 lines
ERROR: space prohibited before open square bracket '[' #24: FILE:
drivers/staging/wlan-ng/p80211wext.c:1685:
+#defineIW_IOCTL(x)[(x)-SIOCSIWCOMMIT]While true that this is a false positive, hiding array indexing brackets in a macro doesn't seem a good idea.
Maybe it'd be better to move the brackets to the use?
err maybe ;)
I copied it from driver/net/wireless/ipw2x00/ipw2200.c
It just reduces typing when initialising the array :-
#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT]
static iw_handler p80211wext_handlers[] = {
IW_IOCTL(SIOCSIWCOMMIT) = (iw_handler) p80211wext_siwcommit,
...Oh, having quickly looked at wireless.h, I see there is already a macro IW_IOCTL_IDX so I guess I should have used that!
would something like this be better?
static iw_handler p80211wext_handlers[] = {
[IW_IOCTL_IDX(SIOCSIWCOMMIT)] = (iw_handler) p80211wext_siwcommit,
...regards
Richard
PATCH 1/1 wireless.h: Add STD_IW_HANDLER macro
Quoted 14 lines · Richard Kennedy
Quoted 10 lines · Joe Perches
Quoted 6 lines · Richard Kennedy
I'm getting this error from checkpatch which is a false positive AFAICT. I don't see any other way to code this macro so maybe this rule shouldn't apply?.
ERROR: space prohibited before open square bracket '[' #24: FILE:drivers/staging/wlan-ng/p80211wext.c:1685:
+#defineIW_IOCTL(x)[(x)-SIOCSIWCOMMIT]While true that this is a false positive, hiding array indexing brackets in a macro doesn't seem a good idea.
Maybe it'd be better to move the brackets to the use?err maybe ;)
I copied it fromdriver/net/wireless/ipw2x00/ipw2200.cIt just reduces typing when initialising the array :-
Quoted 10 lines
#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT]
static iw_handler p80211wext_handlers[] = {
IW_IOCTL(SIOCSIWCOMMIT) = (iw_handler) p80211wext_siwcommit,
...
Oh, having quickly looked at wireless.h, I see there is already a macro
IW_IOCTL_IDX so I guess I should have used that!
would something like this be better?
static iw_handler p80211wext_handlers[] = {
[IW_IOCTL_IDX(SIOCSIWCOMMIT)] = (iw_handler) p80211wext_siwcommit,
...orinoco uses one more macro indirection which seems reasonable
Maybe this define should be moved to wireless.h
#define STD_IW_HANDLER(id, func) \ [IW_IOCTL_IDX(id)] = (iw_handler) func
the line continued macro probably avoids checkpatch warnings too...
orinoco use:
static const iw_handler orinoco_handler[] = {
STD_IW_HANDLER(SIOCSIWCOMMIT, orinoco_ioctl_commit),
STD_IW_HANDLER(SIOCGIWNAME, cfg80211_wext_giwname),Here's a suggested patch:
---
include/linux/wireless.h +2 -0
@@ -346,6 +346,8 @@#define SIOCIWFIRST 0x8B00#define SIOCIWLAST SIOCIWLASTPRIV/* 0x8BFF */ #define IW_IOCTL_IDX (cmd) ((cmd) - SIOCIWFIRST) +#define STD_IW_HANDLER (id, func) \ + [IW_IOCTL_IDX(id)] = (iw_handler) func/* Odd : get (world access), even : set (root access) */ #define IW_IS_SET (cmd) (!((cmd) & 0x1))
Johannes Berg
maintainerRe: [PATCH] wireless.h: Add STD_IW_HANDLER macro
Quoted 37 lines · Joe Perches
Quoted 12 lines
I copied it from
driver/net/wireless/ipw2x00/ipw2200.cIt just reduces typing when initialising the array :-#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT] static iw_handler p80211wext_handlers[] = { IW_IOCTL(SIOCSIWCOMMIT) = (iw_handler) p80211wext_siwcommit, ... Oh, having quickly looked at wireless.h, I see there is already a macro IW_IOCTL_IDX so I guess I should have used that! would something like this be better? static iw_handler p80211wext_handlers[] = { [IW_IOCTL_IDX(SIOCSIWCOMMIT)] = (iw_handler) p80211wext_siwcommit, ...orinoco uses one more macro indirection which seems reasonable
Maybe this define should be moved to
wireless.h#define STD_IW_HANDLER(id, func) \ [IW_IOCTL_IDX(id)] = (iw_handler) functhe line continued macro probably avoids checkpatch warnings too...
orinoco use:
static const iw_handler orinoco_handler[] = { STD_IW_HANDLER(SIOCSIWCOMMIT, orinoco_ioctl_commit), STD_IW_HANDLER(SIOCGIWNAME, cfg80211_wext_giwname),Here's a suggested patch:
Signed-off-by Joe Perches <[email protected]>---
include/linux/wireless.h +0
-0
include/linux/wireless.h line 350
Quoted 5 lines
include/linux/wireless.h +2
-0@@ -346,6 +346,8 @@#define SIOCIWFIRST 0x8B00#define SIOCIWLAST SIOCIWLASTPRIV/* 0x8BFF */ #define IW_IOCTL_IDX (cmd) ((cmd) - SIOCIWFIRST) +#define STD_IW_HANDLER (id, func) \ + [IW_IOCTL_IDX(id)] = (iw_handler) func
Err, who still cares about wireless extensions (who isn't working on net/wireless/wext*)?
johannes
PATCH 1/2 net/wireless/wext_core.c: Use IW_IOCTL_IDX macro
There's a wireless.h macro for this, might as well use it.
---
net/wireless/wext-core.c +56 -56
@@ -28,226 +28,226 @@ typedef int (*wext_ioctl_func)(struct net_device *, struct iwreq *,* know about. */ static const struct iw_ioctl_description standard_ioctl[] = { - [SIOCSIWCOMMIT -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWCOMMIT )] = { .header_type =IW_HEADER_TYPE_NULL , }, - [SIOCGIWNAME -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWNAME )] = { .header_type =IW_HEADER_TYPE_CHAR , .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWNWID -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWNWID )] = { .header_type =IW_HEADER_TYPE_PARAM , .flags =IW_DESCR_FLAG_EVENT , }, - [SIOCGIWNWID -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWNWID )] = { .header_type =IW_HEADER_TYPE_PARAM , .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWFREQ -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWFREQ )] = { .header_type =IW_HEADER_TYPE_FREQ , .flags =IW_DESCR_FLAG_EVENT , }, - [SIOCGIWFREQ -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWFREQ )] = { .header_type =IW_HEADER_TYPE_FREQ , .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWMODE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWMODE )] = { .header_type =IW_HEADER_TYPE_UINT , .flags =IW_DESCR_FLAG_EVENT , }, - [SIOCGIWMODE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWMODE )] = { .header_type =IW_HEADER_TYPE_UINT , .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWSENS -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWSENS )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWSENS -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWSENS )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWRANGE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWRANGE )] = { .header_type =IW_HEADER_TYPE_NULL , }, - [SIOCGIWRANGE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWRANGE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =sizeof (struct iw_range ), .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWPRIV -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWPRIV )] = { .header_type =IW_HEADER_TYPE_NULL , }, - [SIOCGIWPRIV -SIOCIWFIRST ] = {/* (handled directly by us) */ + [IW_IOCTL_IDX (SIOCGIWPRIV )] = {/* (handled directly by us) */ .header_type =IW_HEADER_TYPE_POINT , .token_size =sizeof (struct iw_priv_args ), .max_tokens =16 , .flags =IW_DESCR_FLAG_NOMAX , }, - [SIOCSIWSTATS -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWSTATS )] = { .header_type =IW_HEADER_TYPE_NULL , }, - [SIOCGIWSTATS -SIOCIWFIRST ] = {/* (handled directly by us) */ + [IW_IOCTL_IDX (SIOCGIWSTATS )] = {/* (handled directly by us) */ .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =sizeof (struct iw_statistics ), .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWSPY -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWSPY )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =sizeof (struct sockaddr ), .max_tokens =IW_MAX_SPY , }, - [SIOCGIWSPY -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWSPY )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =sizeof (struct sockaddr ) +sizeof (struct iw_quality ), .max_tokens =IW_MAX_SPY , }, - [SIOCSIWTHRSPY -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWTHRSPY )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =sizeof (struct iw_thrspy ), .min_tokens =1 , .max_tokens =1 , }, - [SIOCGIWTHRSPY -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWTHRSPY )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =sizeof (struct iw_thrspy ), .min_tokens =1 , .max_tokens =1 , }, - [SIOCSIWAP -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWAP )] = { .header_type =IW_HEADER_TYPE_ADDR , }, - [SIOCGIWAP -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWAP )] = { .header_type =IW_HEADER_TYPE_ADDR , .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWMLME -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWMLME )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .min_tokens =sizeof (struct iw_mlme ), .max_tokens =sizeof (struct iw_mlme ), }, - [SIOCGIWAPLIST -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWAPLIST )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =sizeof (struct sockaddr ) +sizeof (struct iw_quality ), .max_tokens =IW_MAX_AP , .flags =IW_DESCR_FLAG_NOMAX , }, - [SIOCSIWSCAN -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWSCAN )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .min_tokens =0 , .max_tokens =sizeof (struct iw_scan_req ), }, - [SIOCGIWSCAN -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWSCAN )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_SCAN_MAX_DATA , .flags =IW_DESCR_FLAG_NOMAX , }, - [SIOCSIWESSID -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWESSID )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_ESSID_MAX_SIZE , .flags =IW_DESCR_FLAG_EVENT , }, - [SIOCGIWESSID -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWESSID )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_ESSID_MAX_SIZE , .flags =IW_DESCR_FLAG_DUMP , }, - [SIOCSIWNICKN -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWNICKN )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_ESSID_MAX_SIZE , }, - [SIOCGIWNICKN -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWNICKN )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_ESSID_MAX_SIZE , }, - [SIOCSIWRATE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWRATE )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWRATE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWRATE )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWRTS -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWRTS )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWRTS -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWRTS )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWFRAG -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWFRAG )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWFRAG -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWFRAG )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWTXPOW -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWTXPOW )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWTXPOW -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWTXPOW )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWRETRY -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWRETRY )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWRETRY -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWRETRY )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWENCODE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWENCODE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_ENCODING_TOKEN_MAX , .flags =IW_DESCR_FLAG_EVENT |IW_DESCR_FLAG_RESTRICT , }, - [SIOCGIWENCODE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWENCODE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_ENCODING_TOKEN_MAX , .flags =IW_DESCR_FLAG_DUMP |IW_DESCR_FLAG_RESTRICT , }, - [SIOCSIWPOWER -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWPOWER )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWPOWER -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWPOWER )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWGENIE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWGENIE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_GENERIC_IE_MAX , }, - [SIOCGIWGENIE -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWGENIE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_GENERIC_IE_MAX , }, - [SIOCSIWAUTH -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWAUTH )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCGIWAUTH -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWAUTH )] = { .header_type =IW_HEADER_TYPE_PARAM , }, - [SIOCSIWENCODEEXT -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWENCODEEXT )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .min_tokens =sizeof (struct iw_encode_ext ), .max_tokens =sizeof (struct iw_encode_ext ) +IW_ENCODING_TOKEN_MAX , }, - [SIOCGIWENCODEEXT -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCGIWENCODEEXT )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .min_tokens =sizeof (struct iw_encode_ext ), .max_tokens =sizeof (struct iw_encode_ext ) +IW_ENCODING_TOKEN_MAX , }, - [SIOCSIWPMKSA -SIOCIWFIRST ] = { + [IW_IOCTL_IDX (SIOCSIWPMKSA )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .min_tokens =sizeof (struct iw_pmksa ),
@@ -449,7 +449,7 @@ void wireless_send_event(struct net_device * dev,/* Get the description of the Event */ if (cmd <=SIOCIWLAST ) { - cmd_index = cmd -SIOCIWFIRST ; + cmd_index =IW_IOCTL_IDX (cmd);if (cmd_index < standard_ioctl_num) descr = &(standard_ioctl[cmd_index]); }else {
@@ -662,7 +662,7 @@ static iw_handler get_handler(struct net_device *dev, unsigned int cmd)return NULL ;/* Try as a standard command */ - index = cmd -SIOCIWFIRST ; + index =IW_IOCTL_IDX (cmd);if (index < handlers->num_standard)return handlers->standard[index];
@@ -954,9 +954,9 @@ static int ioctl_standard_call(struct net_device * dev,int ret = -EINVAL ;/* Get the description of the IOCTL */ -if ((cmd -SIOCIWFIRST ) >= standard_ioctl_num) +if (IW_IOCTL_IDX (cmd) >= standard_ioctl_num)return -EOPNOTSUPP ; - descr = &(standard_ioctl[cmd -SIOCIWFIRST ]); + descr = &(standard_ioctl[IW_IOCTL_IDX (cmd)]);/* Check if we have a pointer to user space data or not */ if (descr->header_type !=IW_HEADER_TYPE_POINT ) {
@@ -1012,7 +1012,7 @@ static int compat_standard_call(struct net_device *dev,struct iw_point iwp;int err; - descr = standard_ioctl + (cmd -SIOCIWFIRST ); + descr = standard_ioctl +IW_IOCTL_IDX (cmd);if (descr->header_type !=IW_HEADER_TYPE_POINT )return ioctl_standard_call (dev, iwr, cmd, info, handler);
PATCH 2/2 net/wireless/wext_core.c: Use IW_EVENT_IDX macro
There's a wireless.h macro for this, might as well use it.
---
net/wireless/wext-core.c +11 -11
@@ -261,44 +261,44 @@ static const unsigned standard_ioctl_num = ARRAY_SIZE(standard_ioctl);* we know about. */ static const struct iw_ioctl_description standard_event[] = { - [IWEVTXDROP -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVTXDROP )] = { .header_type =IW_HEADER_TYPE_ADDR , }, - [IWEVQUAL -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVQUAL )] = { .header_type =IW_HEADER_TYPE_QUAL , }, - [IWEVCUSTOM -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVCUSTOM )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_CUSTOM_MAX , }, - [IWEVREGISTERED -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVREGISTERED )] = { .header_type =IW_HEADER_TYPE_ADDR , }, - [IWEVEXPIRED -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVEXPIRED )] = { .header_type =IW_HEADER_TYPE_ADDR , }, - [IWEVGENIE -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVGENIE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_GENERIC_IE_MAX , }, - [IWEVMICHAELMICFAILURE -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVMICHAELMICFAILURE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =sizeof (struct iw_michaelmicfailure ), }, - [IWEVASSOCREQIE -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVASSOCREQIE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_GENERIC_IE_MAX , }, - [IWEVASSOCRESPIE -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVASSOCRESPIE )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =IW_GENERIC_IE_MAX , }, - [IWEVPMKIDCAND -IWEVFIRST ] = { + [IW_EVENT_IDX (IWEVPMKIDCAND )] = { .header_type =IW_HEADER_TYPE_POINT , .token_size =1 , .max_tokens =sizeof (struct iw_pmkid_cand ),
@@ -453,7 +453,7 @@ void wireless_send_event(struct net_device * dev,if (cmd_index < standard_ioctl_num) descr = &(standard_ioctl[cmd_index]); }else { - cmd_index = cmd -IWEVFIRST ; + cmd_index =IW_EVENT_IDX (cmd);if (cmd_index < standard_event_num) descr = &(standard_event[cmd_index]); }