[patch] staging: r8821ae: a couple macro expansion bugs

Larry Finger Larry.Finger at lwfinger.net
Tue Jan 28 16:25:26 UTC 2014


On 01/28/2014 09:01 AM, Greg Kroah-Hartman wrote:
> On Tue, Jan 28, 2014 at 05:46:30PM +0300, Dan Carpenter wrote:
>> On Tue, Jan 28, 2014 at 03:14:21PM +0100, walter harms wrote:
>>>
>>>
>>> Am 28.01.2014 15:00, schrieb Dan Carpenter:
>>>> These macros need parentheses, otherwise it causes a macro expansion bug
>>>> when they are used like this:
>>>>
>>>> 	ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
>>>>
>>>> This was found using Smatch:
>>>> drivers/staging/rtl8821ae/regd.c:200 _rtl_reg_apply_beaconing_flags()
>>>> 	warn: the 'IEEE80211_CHAN_NO_IBSS' macro might need parens
>>>>
>>>> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
>>>>
>>>> diff --git a/drivers/staging/rtl8821ae/regd.h b/drivers/staging/rtl8821ae/regd.h
>>>> index abc60ab8165c..dceb3f18200b 100644
>>>> --- a/drivers/staging/rtl8821ae/regd.h
>>>> +++ b/drivers/staging/rtl8821ae/regd.h
>>>> @@ -30,8 +30,8 @@
>>>>   #ifndef __RTL_REGD_H__
>>>>   #define __RTL_REGD_H__
>>>>
>>>> -#define IEEE80211_CHAN_NO_IBSS		1<<2
>>>> -#define IEEE80211_CHAN_PASSIVE_SCAN	1<<1
>>>> +#define IEEE80211_CHAN_NO_IBSS		(1 << 2)
>>>> +#define IEEE80211_CHAN_PASSIVE_SCAN	(1 << 1)
>>>>   #define WIPHY_FLAG_CUSTOM_REGULATORY	BIT(0)
>>>>   #define WIPHY_FLAG_STRICT_REGULATORY	BIT(1)
>>>>   #define WIPHY_FLAG_DISABLE_BEACON_HINTS	BIT(2)
>>>> --
>>>
>>>
>>> just one minor hint ...
>>> could we settle for a common semantic here either 1<<2 or BIT(2) ?
>>>
>>
>> Yeah...  This driver needs a lot of cleanup in later patches.
>
> That will happen soon, for 3.15, in the netdev tree, but for 3.14 we
> want this out there as people have the hardware and want to use it (i.e.
> me and 1000 others that got the hardware at a recent conference.)

Please clean this up as much as you want, but be aware that this is a temporary 
solution that was done in a hurry to handle some inconsistencies between 
staging-next and linux-next. Neither Smatch nor Sparse were run on that version. 
I suspect there are also endian issues that have not been repaired. I will be 
reading such E-mails and will include your fixes, but the major cleanup is being 
done on separate source.

Larry



More information about the devel mailing list