forked from mirrors/linux
		
	arch/um/drivers: remove duplicate structure field initialization
There are two initializations of ndo_set_mac_address, one to a local
function that is not used otherwise and one to a function that is defined
elsewhere.
The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@r@
identifier I, s, fld;
position p0,p;
expression E;
@@
struct I s =@p0 { ... .fld@p = E, ...};
@s@
identifier I, s, r.fld;
position r.p0,p;
expression E;
@@
struct I s =@p0 { ... .fld@p = E, ...};
@script:python@
p0 << r.p0;
fld << r.fld;
ps << s.p;
pr << r.p;
@@
if int(ps[0].line)<int(pr[0].line) or int(ps[0].column)<int(pr[0].column):
  cocci.print_main(fld,p0)
// </smpl>
akpm:
- Use the standard eth_mac_addr() in uml_net_set_mac()
- Remove unneeded and racy local set_ether_mac()
- Remove duplicated (and incorrect)
  uml_netdev_ops.ndo_set_mac_address initializer.
Fixes 8bb95b39a1 ("uml: convert network
device to netdevice ops").
[akpm@linux-foundation.org: rework as above]
Signed-off-by: Julia Lawall <julia@diku.dk>
Cc: Stephen Hemminger <shemminger@vyatta.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									df1086fb2e
								
							
						
					
					
						commit
						f25c80a4b2
					
				
					 1 changed files with 2 additions and 8 deletions
				
			
		| 
						 | 
					@ -25,11 +25,6 @@
 | 
				
			||||||
#include "net_kern.h"
 | 
					#include "net_kern.h"
 | 
				
			||||||
#include "net_user.h"
 | 
					#include "net_user.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void set_ether_mac(struct net_device *dev, unsigned char *addr)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	memcpy(dev->dev_addr, addr, ETH_ALEN);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define DRIVER_NAME "uml-netdev"
 | 
					#define DRIVER_NAME "uml-netdev"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static DEFINE_SPINLOCK(opened_lock);
 | 
					static DEFINE_SPINLOCK(opened_lock);
 | 
				
			||||||
| 
						 | 
					@ -266,7 +261,7 @@ static int uml_net_set_mac(struct net_device *dev, void *addr)
 | 
				
			||||||
	struct sockaddr *hwaddr = addr;
 | 
						struct sockaddr *hwaddr = addr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_lock_irq(&lp->lock);
 | 
						spin_lock_irq(&lp->lock);
 | 
				
			||||||
	set_ether_mac(dev, hwaddr->sa_data);
 | 
						eth_mac_addr(dev, hwaddr->sa_data);
 | 
				
			||||||
	spin_unlock_irq(&lp->lock);
 | 
						spin_unlock_irq(&lp->lock);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
| 
						 | 
					@ -380,7 +375,6 @@ static const struct net_device_ops uml_netdev_ops = {
 | 
				
			||||||
	.ndo_tx_timeout 	= uml_net_tx_timeout,
 | 
						.ndo_tx_timeout 	= uml_net_tx_timeout,
 | 
				
			||||||
	.ndo_set_mac_address	= uml_net_set_mac,
 | 
						.ndo_set_mac_address	= uml_net_set_mac,
 | 
				
			||||||
	.ndo_change_mtu 	= uml_net_change_mtu,
 | 
						.ndo_change_mtu 	= uml_net_change_mtu,
 | 
				
			||||||
	.ndo_set_mac_address 	= eth_mac_addr,
 | 
					 | 
				
			||||||
	.ndo_validate_addr	= eth_validate_addr,
 | 
						.ndo_validate_addr	= eth_validate_addr,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -478,7 +472,7 @@ static void eth_configure(int n, void *init, char *mac,
 | 
				
			||||||
	    ((*transport->user->init)(&lp->user, dev) != 0))
 | 
						    ((*transport->user->init)(&lp->user, dev) != 0))
 | 
				
			||||||
		goto out_unregister;
 | 
							goto out_unregister;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	set_ether_mac(dev, device->mac);
 | 
						eth_mac_addr(dev, device->mac);
 | 
				
			||||||
	dev->mtu = transport->user->mtu;
 | 
						dev->mtu = transport->user->mtu;
 | 
				
			||||||
	dev->netdev_ops = ¨_netdev_ops;
 | 
						dev->netdev_ops = ¨_netdev_ops;
 | 
				
			||||||
	dev->ethtool_ops = ¨_net_ethtool_ops;
 | 
						dev->ethtool_ops = ¨_net_ethtool_ops;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue