Re: [PATCH 2/9] backports: add eth_prepare_mac_addr_change() and eth_commit_mac_addr_change()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/02/2013 01:29 PM, Patrick Ziegler wrote:
> These functions are required by qmi_wwan device driver.
> 
> Signed-off-by: Patrick Ziegler <patrick.ziegler@xxxxxxxx>
> ---
>  backport/backport-include/linux/etherdevice.h |  7 ++++++
>  backport/backport-include/linux/if.h          |  4 ++++
>  backport/compat/compat-3.9.c                  | 33 +++++++++++++++++++++++++++
>  3 files changed, 44 insertions(+)
> 
> diff --git a/backport/backport-include/linux/etherdevice.h b/backport/backport-include/linux/etherdevice.h
> index 5c82fc4..b6617f0 100644
> --- a/backport/backport-include/linux/etherdevice.h
> +++ b/backport/backport-include/linux/etherdevice.h
> @@ -114,6 +114,13 @@ static inline int is_unicast_ether_addr(const u8 *addr)
>  }
>  #endif
>  
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)
> +#define eth_prepare_mac_addr_change LINUX_BACKPORT(eth_prepare_mac_addr_change)
> +extern int eth_prepare_mac_addr_change(struct net_device *dev, void *p);

Please add a empty line here to make it easier to read.

> +#define eth_commit_mac_addr_change LINUX_BACKPORT(eth_commit_mac_addr_change)
> +extern void eth_commit_mac_addr_change(struct net_device *dev, void *p);
> +#endif /* < 3.9 */
> +
>  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
>  #define eth_mac_addr LINUX_BACKPORT(eth_mac_addr)
>  extern int eth_mac_addr(struct net_device *dev, void *p);
> diff --git a/backport/backport-include/linux/if.h b/backport/backport-include/linux/if.h
> index 7926082..8f85b83 100644
> --- a/backport/backport-include/linux/if.h
> +++ b/backport/backport-include/linux/if.h
> @@ -29,4 +29,8 @@
>  #define IFF_TX_SKB_SHARING	0x10000
>  #endif
>  
> +#ifndef IFF_LIVE_ADDR_CHANGE
> +#define IFF_LIVE_ADDR_CHANGE 0x100000
> +#endif
> +
>  #endif	/* _BACKPORT_LINUX_IF_H */
> diff --git a/backport/compat/compat-3.9.c b/backport/compat/compat-3.9.c
> index 03f3af8..ba8e3cf 100644
> --- a/backport/compat/compat-3.9.c
> +++ b/backport/compat/compat-3.9.c
> @@ -12,6 +12,9 @@
>  #include <linux/scatterlist.h>
>  #include <linux/device.h>
>  #include <linux/err.h>
> +#include <linux/netdevice.h>
> +#include <linux/if.h>
> +#include <linux/if_ether.h>
>  
>  #ifdef __sg_page_iter_next
>  
> @@ -64,4 +67,34 @@ void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res)
>  }
>  EXPORT_SYMBOL_GPL(devm_ioremap_resource);
>  
> +/**
> + * eth_prepare_mac_addr_change - prepare for mac change
> + * @dev: network device
> + * @p: socket address
> + */
> +int eth_prepare_mac_addr_change(struct net_device *dev, void *p)
> +{
> +	struct sockaddr *addr = p;
> +
> +	if (!(dev->priv_flags & IFF_LIVE_ADDR_CHANGE) && netif_running(dev))
> +		return -EBUSY;
> +	if (!is_valid_ether_addr(addr->sa_data))
> +		return -EADDRNOTAVAIL;
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(eth_prepare_mac_addr_change);
> +
> +/**
> + * eth_commit_mac_addr_change - commit mac change
> + * @dev: network device
> + * @p: socket address
> + */
> +void eth_commit_mac_addr_change(struct net_device *dev, void *p)
> +{
> +	struct sockaddr *addr = p;
> +
> +	memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
> +}
> +EXPORT_SYMBOL_GPL(eth_commit_mac_addr_change);
> +
>  #endif /* __sg_page_iter_next */
> 

--
To unsubscribe from this list: send the line "unsubscribe backports" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux