On 08/02/2013 01:29 PM, Patrick Ziegler wrote:
> These functions are required by qmi_wwan device driver.
> 
> Signed-off-by: Patrick Ziegler <[email protected]>
> ---
>  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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to