wireless: Use macros from wireless.h
Subsystems (6)
v2 cover wireless: Use macros from wireless.h
Move the STD_IW_HANDLER macro from orinoco to wireless.h Use the wireless.h macros in various wireless files Remove local #defines of IW_IOCTL
Joe Perches (7):
wireless.h: Add STD_IW_HANDLER macro net/wireless/wext_core.c: Use IW_IOCTL_IDX macro net/wireless/wext-core.c: Use IW_EVENT_IDX macro drivers/net/wireless: Use STD_IW_HANDLER macro drivers/net: Remove local #define IW_IOCTL, use STD_IW_HANDLER orinoco/wext.c: Remove local #define STD_IW_HANDLER wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check
drivers/net/ps3_gelic_wireless.c | 35 ++++---- drivers/net/wireless/ipw2x00/ipw2200.c | 83 ++++++++++---------- drivers/net/wireless/orinoco/wext.c | 2 - drivers/net/wireless/ray_cs.c | 40 +++++----- drivers/net/wireless/wl3501_cs.c | 52 ++++++------ include/linux/wireless.h | 4 +- net/wireless/wext-core.c | 134 ++++++++++++++++---------------- 7 files changed, 174 insertions(+), 176 deletions(-)
PATCH v2 1/7 wireless.h: Add STD_IW_HANDLER macro
Copied from orinoco, initialize a iw_handler array entry
--- include/linux/wireless.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
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))
Signature · 1 line
1.7.0.14.g7e948
Re: [PATCH v2 1/7] wireless.h: Add STD_IW_HANDLER macro
Quoted 12 lines · Joe Perches
Copied from orinoco, initialize a
iw_handlerarray entrySigned-off-by Joe Perches <[email protected]>--- include/linux/wireless.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)include/linux/wireless.h +0
-0
include/linux/wireless.h line 353
Quoted 8 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/* Odd : get (world access), even : set (root access) */ #define IW_IS_SET (cmd) (!((cmd) & 0x1))
Three objections.
1) STD_IW_HANDLER is a poor name for a header. The name should start with IW, just like those above and below it.
2) Adding STD_IW_HANDLER to wireless.h and removing it from Orinoco in separate commits might create several commits in which Orinoco may not compile. I think gcc would not object if you copy the definition exactly, but I would not rely on it. Making life miserable for bisectors is bad - they are useful creatures. Of course, the argument is moot if you use a different name for the new macro.
3) Abstracting a cast is bad unless it's the whole purpose of the macro. While Orinoco needs the cast, other drivers may not need it. Using a cast could prevent gcc from finding a legitimate problem.
Signature · 2 lines
Regards, Pavel Roskin
Re: [PATCH v2 1/7] wireless.h: Add STD_IW_HANDLER macro
Quoted 7 lines · Pavel Roskin
include/linux/wireless.h line 350
Quoted 3 lines · Joe Perches
Copied from orinoco, initialize a
iw_handlerarray entryinclude/linux/wireless.h +2
-0+#define STD_IW_HANDLER (id, func) \ + [IW_IOCTL_IDX(id)] = (iw_handler) funcThree objections.
1)STD_IW_HANDLERis a poor name for a header. The name should start with IW, just like those above and below it.
Is IW_HANDLER ok with you?
Quoted 3 lines
3) Abstracting a cast is bad unless it's the whole purpose of the macro. While Orinoco needs the cast, other drivers may not need it. Using a cast could prevent gcc from finding a legitimate problem.
I've no objection to moving the casts to the uses
of the macro where necessary.
PATCH v2 2/7 net/wireless/wext_core.c: Use IW_IOCTL_IDX macro
In reply to Joe PerchesThere's a wireless.h macro for this, might as well use it.
--- net/wireless/wext-core.c | 112 +++++++++++++++++++++++----------------------- 1 files changed, 56 insertions(+), 56 deletions(-)
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);
Signature · 1 line
1.7.0.14.g7e948
PATCH v2 3/7 net/wireless/wext-core.c: Use IW_EVENT_IDX macro
In reply to Joe PerchesThere's a wireless.h macro for this, might as well use it.
--- net/wireless/wext-core.c | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-)
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]); }
Signature · 1 line
1.7.0.14.g7e948
PATCH v2 4/7 drivers/net/wireless: Use STD_IW_HANDLER macro
In reply to Joe PerchesConvert direct uses of [ (foo - SIOCIWFIRST) , fn)
--- drivers/net/wireless/ray_cs.c | 40 ++++++++++++++-------------- drivers/net/wireless/wl3501_cs.c | 52 +++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 46 deletions(-)
drivers/net/wireless/ray_cs.c +20 -20
@@ -1531,28 +1531,28 @@ static iw_stats *ray_get_wireless_stats(struct net_device *dev)*/ static const iw_handler ray_handler[] = { - [SIOCSIWCOMMIT -SIOCIWFIRST ] = (iw_handler ) ray_commit, - [SIOCGIWNAME -SIOCIWFIRST ] = (iw_handler ) ray_get_name, - [SIOCSIWFREQ -SIOCIWFIRST ] = (iw_handler ) ray_set_freq, - [SIOCGIWFREQ -SIOCIWFIRST ] = (iw_handler ) ray_get_freq, - [SIOCSIWMODE -SIOCIWFIRST ] = (iw_handler ) ray_set_mode, - [SIOCGIWMODE -SIOCIWFIRST ] = (iw_handler ) ray_get_mode, - [SIOCGIWRANGE -SIOCIWFIRST ] = (iw_handler ) ray_get_range, +STD_IW_HANDLER (SIOCSIWCOMMIT , ray_commit), +STD_IW_HANDLER (SIOCGIWNAME , ray_get_name), +STD_IW_HANDLER (SIOCSIWFREQ , ray_set_freq), +STD_IW_HANDLER (SIOCGIWFREQ , ray_get_freq), +STD_IW_HANDLER (SIOCSIWMODE , ray_set_mode), +STD_IW_HANDLER (SIOCGIWMODE , ray_get_mode), +STD_IW_HANDLER (SIOCGIWRANGE , ray_get_range), #ifdef WIRELESS_SPY - [SIOCSIWSPY -SIOCIWFIRST ] = (iw_handler ) iw_handler_set_spy, - [SIOCGIWSPY -SIOCIWFIRST ] = (iw_handler ) iw_handler_get_spy, - [SIOCSIWTHRSPY -SIOCIWFIRST ] = (iw_handler ) iw_handler_set_thrspy, - [SIOCGIWTHRSPY -SIOCIWFIRST ] = (iw_handler ) iw_handler_get_thrspy, +STD_IW_HANDLER (SIOCSIWSPY , iw_handler_set_spy), +STD_IW_HANDLER (SIOCGIWSPY , iw_handler_get_spy), +STD_IW_HANDLER (SIOCSIWTHRSPY , iw_handler_set_thrspy), +STD_IW_HANDLER (SIOCGIWTHRSPY , iw_handler_get_thrspy), #endif /* WIRELESS_SPY */ - [SIOCGIWAP -SIOCIWFIRST ] = (iw_handler ) ray_get_wap, - [SIOCSIWESSID -SIOCIWFIRST ] = (iw_handler ) ray_set_essid, - [SIOCGIWESSID -SIOCIWFIRST ] = (iw_handler ) ray_get_essid, - [SIOCSIWRATE -SIOCIWFIRST ] = (iw_handler ) ray_set_rate, - [SIOCGIWRATE -SIOCIWFIRST ] = (iw_handler ) ray_get_rate, - [SIOCSIWRTS -SIOCIWFIRST ] = (iw_handler ) ray_set_rts, - [SIOCGIWRTS -SIOCIWFIRST ] = (iw_handler ) ray_get_rts, - [SIOCSIWFRAG -SIOCIWFIRST ] = (iw_handler ) ray_set_frag, - [SIOCGIWFRAG -SIOCIWFIRST ] = (iw_handler ) ray_get_frag, +STD_IW_HANDLER (SIOCGIWAP , ray_get_wap), +STD_IW_HANDLER (SIOCSIWESSID , ray_set_essid), +STD_IW_HANDLER (SIOCGIWESSID , ray_get_essid), +STD_IW_HANDLER (SIOCSIWRATE , ray_set_rate), +STD_IW_HANDLER (SIOCGIWRATE , ray_get_rate), +STD_IW_HANDLER (SIOCSIWRTS , ray_set_rts), +STD_IW_HANDLER (SIOCGIWRTS , ray_get_rts), +STD_IW_HANDLER (SIOCSIWFRAG , ray_set_frag), +STD_IW_HANDLER (SIOCGIWFRAG , ray_get_frag), };#define SIOCSIPFRAMING SIOCIWFIRSTPRIV/* Set framing mode */
drivers/net/wireless/wl3501_cs.c +26 -26
58 lines not on this page · raw message
Signature · 1 line
1.7.0.14.g7e948
Re: [PATCH v2 4/7] drivers/net/wireless: Use STD_IW_HANDLER macro
Quoted 3 lines · Joe Perches
Convert direct uses of [ (foo - SIOCIWFIRST) , fn)
Signed-off-by Joe Perches <[email protected]>
...
Quoted 2 lines
static const
iw_handlerwl3501_handler[] = {drivers/net/wireless/wl3501_cs.c +0
-1- [SIOCGIWNAME - SIOCIWFIRST] = wl3501_get_name,
...
drivers/net/wireless/wl3501_cs.c out: · line 1837
Quoted 1 line
drivers/net/wireless/wl3501_cs.c +1
-0+ STD_IW_HANDLER(SIOCGIWNAME, wl3501_get_name),
You are introducing an unnecessary cast here. That's bad.
Signature · 2 lines
Regards, Pavel Roskin
PATCH v2 5/7 drivers/net: Remove local #define IW_IOCTL, use STD_IW_HANDLER
In reply to Joe PerchesUse #define STD_IW_HANDLER from wireless.h instead
--- drivers/net/ps3_gelic_wireless.c | 35 +++++++------- drivers/net/wireless/ipw2x00/ipw2200.c | 83 ++++++++++++++++---------------- 2 files changed, 58 insertions(+), 60 deletions(-)
drivers/net/ps3_gelic_wireless.c +17 -18
@@ -2279,26 +2279,25 @@ void gelic_wl_interrupt(struct net_device *netdev, u64 status)/* * driver helpers */ -#define IW_IOCTL (n) [(n) - SIOCSIWCOMMIT]static const iw_handler gelic_wl_wext_handler[] = { -IW_IOCTL (SIOCGIWNAME ) = gelic_wl_get_name, -IW_IOCTL (SIOCGIWRANGE ) = gelic_wl_get_range, -IW_IOCTL (SIOCSIWSCAN ) = gelic_wl_set_scan, -IW_IOCTL (SIOCGIWSCAN ) = gelic_wl_get_scan, -IW_IOCTL (SIOCSIWAUTH ) = gelic_wl_set_auth, -IW_IOCTL (SIOCGIWAUTH ) = gelic_wl_get_auth, -IW_IOCTL (SIOCSIWESSID ) = gelic_wl_set_essid, -IW_IOCTL (SIOCGIWESSID ) = gelic_wl_get_essid, -IW_IOCTL (SIOCSIWENCODE ) = gelic_wl_set_encode, -IW_IOCTL (SIOCGIWENCODE ) = gelic_wl_get_encode, -IW_IOCTL (SIOCSIWAP ) = gelic_wl_set_ap, -IW_IOCTL (SIOCGIWAP ) = gelic_wl_get_ap, -IW_IOCTL (SIOCSIWENCODEEXT ) = gelic_wl_set_encodeext, -IW_IOCTL (SIOCGIWENCODEEXT ) = gelic_wl_get_encodeext, -IW_IOCTL (SIOCSIWMODE ) = gelic_wl_set_mode, -IW_IOCTL (SIOCGIWMODE ) = gelic_wl_get_mode, -IW_IOCTL (SIOCGIWNICKN ) = gelic_wl_get_nick, +STD_IW_HANDLER (SIOCGIWNAME , gelic_wl_get_name), +STD_IW_HANDLER (SIOCGIWRANGE , gelic_wl_get_range), +STD_IW_HANDLER (SIOCSIWSCAN , gelic_wl_set_scan), +STD_IW_HANDLER (SIOCGIWSCAN , gelic_wl_get_scan), +STD_IW_HANDLER (SIOCSIWAUTH , gelic_wl_set_auth), +STD_IW_HANDLER (SIOCGIWAUTH , gelic_wl_get_auth), +STD_IW_HANDLER (SIOCSIWESSID , gelic_wl_set_essid), +STD_IW_HANDLER (SIOCGIWESSID , gelic_wl_get_essid), +STD_IW_HANDLER (SIOCSIWENCODE , gelic_wl_set_encode), +STD_IW_HANDLER (SIOCGIWENCODE , gelic_wl_get_encode), +STD_IW_HANDLER (SIOCSIWAP , gelic_wl_set_ap), +STD_IW_HANDLER (SIOCGIWAP , gelic_wl_get_ap), +STD_IW_HANDLER (SIOCSIWENCODEEXT , gelic_wl_set_encodeext), +STD_IW_HANDLER (SIOCGIWENCODEEXT , gelic_wl_get_encodeext), +STD_IW_HANDLER (SIOCSIWMODE , gelic_wl_set_mode), +STD_IW_HANDLER (SIOCGIWMODE , gelic_wl_get_mode), +STD_IW_HANDLER (SIOCGIWNICKN , gelic_wl_get_nick), };static const struct iw_handler_def gelic_wl_wext_handler_def = {
drivers/net/wireless/ipw2x00/ipw2200.c +41 -42
90 lines not on this page · raw message
Signature · 1 line
1.7.0.14.g7e948
Re: [PATCH v2 5/7] drivers/net: Remove local #define IW_IOCTL, use STD_IW_HANDLER
Hi,
Quoted 7 lines · Joe Perches
Use #define
STD_IW_HANDLERfromwireless.hinsteadSigned-off-by Joe Perches <[email protected]>--- drivers/net/ps3_gelic_wireless.c | 35 +++++++------- drivers/net/wireless/ipw2x00/ipw2200.c | 83 ++++++++++++++++---------------- 2 files changed, 58 insertions(+), 60 deletions(-)
Sorry for the delay. This looks fine for the PS3.
PATCH v2 6/7 orinoco/wext.c: Remove local #define STD_IW_HANDLER
In reply to Joe PerchesIt's been copied into wireless.h, so this one isn't necessary
--- drivers/net/wireless/orinoco/wext.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
drivers/net/wireless/orinoco/wext.c +0 -2
@@ -1505,8 +1505,6 @@ static const struct iw_priv_args orinoco_privtab[] = {* Structures to export the Wireless Handlers */ -#define STD_IW_HANDLER (id, func) \ - [IW_IOCTL_IDX(id)] = (iw_handler) funcstatic const iw_handler orinoco_handler[] = {STD_IW_HANDLER (SIOCSIWCOMMIT , orinoco_ioctl_commit),STD_IW_HANDLER (SIOCGIWNAME , cfg80211_wext_giwname),
Signature · 1 line
1.7.0.14.g7e948
PATCH v2 7/7 wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check
In reply to Joe PerchesThese two #defines use the same value, but
SIOCIWFIRST makes more sense in this use.
--- include/linux/wireless.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
include/linux/wireless.h +1 -1
@@ -650,7 +650,7 @@* 32 bit bitmasks. Note : 32 bits = 0x20 = 2^5. */ #define IW_EVENT_CAPA_BASE (cmd) ((cmd >= SIOCIWFIRSTPRIV) ? \ (cmd - SIOCIWFIRSTPRIV + 0x60) : \ - (cmd - SIOCSIWCOMMIT)) + (cmd - SIOCIWFIRST))#define IW_EVENT_CAPA_INDEX (cmd) (IW_EVENT_CAPA_BASE(cmd) >> 5)#define IW_EVENT_CAPA_MASK (cmd) (1 << (IW_EVENT_CAPA_BASE(cmd) & 0x1F))/* Event capability constants - event autogenerated by the kernel
Signature · 1 line
1.7.0.14.g7e948
Re: [PATCH v2 7/7] wireless.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for range check
Quoted 2 lines · Joe Perches
These two #defines use the same value, but
SIOCIWFIRST makes more sense in this use.
Agreed. Also please change a comment referring to SIOCSIWCOMMIT in include/net/iw_handler.h
It would be great if you don't copy LKML next time. It's a purely wireless issues. I don't like having a dilemma between cross-posting and trimming the recipient list.
Signature · 2 lines
Regards, Pavel Roskin
[PATCH v2 8/7] iw_handler.h: Use SIOCIWFIRST not SIOCSIWCOMMIT for offset comment
Quoted 2 lines · Pavel Roskin
please change a comment referring to SIOCSIWCOMMIT in
include/net/iw_handler.h
---
include/net/iw_handler.h +1 -1
@@ -323,7 +323,7 @@ typedef int (*iw_handler)(struct net_device *dev, struct iw_request_info *info,struct iw_handler_def {/* Array of handlers for standard ioctls -* We will call dev->wireless_handlers->standard[ioctl - SIOCSIWCOMMIT] +* We will call dev->wireless_handlers->standard[ioctl - SIOCIWFIRST] */ const iw_handler * standard;/* Number of handlers defined (more precisely, index of the
Johannes Berg
maintainerQuoted 3 lines · Joe Perches
Move the
STD_IW_HANDLERmacro from orinoco towireless.hUse thewireless.hmacros in various wireless files Remove local #defines ofIW_IOCTL
I really don't want to debug any breakage here, but otherwise I don't care and this is fine with me.
johannes