[Bridge] [PATCH 1/7] bridge: Turn flag change macro into a function.

Vlad Yasevich vyasevic at redhat.com
Wed Feb 26 15:36:45 UTC 2014


On 02/26/2014 10:29 AM, Michael S. Tsirkin wrote:
> On Wed, Feb 26, 2014 at 10:18:19AM -0500, Vlad Yasevich wrote:
>> Turn the flag change macro into a function to allow
>> easier updates and to reduce space.
>>
>> Signed-off-by: Vlad Yasevich <vyasevic at redhat.com>
>> ---
>>  net/bridge/br_sysfs_if.c | 29 +++++++++++++++++++----------
>>  1 file changed, 19 insertions(+), 10 deletions(-)
>>
>> diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c
>> index dd595bd..7f66aa4 100644
>> --- a/net/bridge/br_sysfs_if.c
>> +++ b/net/bridge/br_sysfs_if.c
>> @@ -25,6 +25,8 @@ struct brport_attribute {
>>  	ssize_t (*show)(struct net_bridge_port *, char *);
>>  	int (*store)(struct net_bridge_port *, unsigned long);
>>  };
>> +static int store_flag(struct net_bridge_port *p, unsigned long v,
>> +		     unsigned long mask);
>>  
>>  #define BRPORT_ATTR(_name, _mode, _show, _store)		\
>>  const struct brport_attribute brport_attr_##_name = { 	        \
> 
> nitpicking:
> Do we have to have forward declarations like this?
> They make it harder to find where the code is.
> 
> Also, pls add an empty line between struct and function.

Forward declaration not needed.  Will remove.

Thanks
-vlad

> 
> 
>> @@ -41,20 +43,27 @@ static ssize_t show_##_name(struct net_bridge_port *p, char *buf) \
>>  }								\
>>  static int store_##_name(struct net_bridge_port *p, unsigned long v) \
>>  {								\
>> -	unsigned long flags = p->flags;				\
>> -	if (v)							\
>> -		flags |= _mask;					\
>> -	else							\
>> -		flags &= ~_mask;				\
>> -	if (flags != p->flags) {				\
>> -		p->flags = flags;				\
>> -		br_ifinfo_notify(RTM_NEWLINK, p);		\
>> -	}							\
>> -	return 0;						\
>> +	return store_flag(p, v, _mask);				\
>>  }								\
>>  static BRPORT_ATTR(_name, S_IRUGO | S_IWUSR,			\
>>  		   show_##_name, store_##_name)
>>  
>> +static int store_flag(struct net_bridge_port *p, unsigned long v,
>> +		     unsigned long mask)
>> +{
>> +	unsigned long flags = p->flags;
>> +
>> +	if (v)
>> +		flags |= mask;
>> +	else
>> +		flags &= ~mask;
>> +
>> +	if (flags != p->flags) {
>> +		p->flags = flags;
>> +		br_ifinfo_notify(RTM_NEWLINK, p);
>> +	}
>> +	return 0;
>> +}
>>  
>>  static ssize_t show_path_cost(struct net_bridge_port *p, char *buf)
>>  {
>> -- 
>> 1.8.5.3



More information about the Bridge mailing list