On Wed, 2010-03-17 at 15:40 +0000, Richard Kennedy wrote: > On Wed, 2010-03-17 at 08:25 -0700, Joe Perches wrote: > > On Wed, 2010-03-17 at 11:00 +0000, Richard Kennedy wrote: > > > 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] > > 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, > ... 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: Signed-off-by: Joe Perches <joe@xxxxxxxxxxx> --- diff --git a/include/linux/wireless.h b/include/linux/wireless.h index 5b4c6c7..ad9f8d5 100644 --- a/include/linux/wireless.h +++ b/include/linux/wireless.h @@ -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)) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html