backports.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Ziegler <patrick.ziegler@fh-kl.de>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: <backports@vger.kernel.org>
Subject: [PATCH v3 02/10] backports: add eth_prepare_mac_addr_change() and eth_commit_mac_addr_change()
Date: Thu, 15 Aug 2013 14:40:09 +0200	[thread overview]
Message-ID: <520CCC29.5020007@fh-kl.de> (raw)
In-Reply-To: <cover.1376569949.git.patrick.ziegler@fh-kl.de>

These functions are required by qmi_wwan device driver.

Signed-off-by: Patrick Ziegler <patrick.ziegler@fh-kl.de>
---
 backport/backport-include/linux/etherdevice.h |  8 +++++++
 backport/backport-include/linux/if.h          |  4 ++++
 backport/compat/compat-3.9.c                  | 33 +++++++++++++++++++++++++++
 3 files changed, 45 insertions(+)

diff --git a/backport/backport-include/linux/etherdevice.h b/backport/backport-include/linux/etherdevice.h
index 5c82fc4..6aff244 100644
--- a/backport/backport-include/linux/etherdevice.h
+++ b/backport/backport-include/linux/etherdevice.h
@@ -114,6 +114,14 @@ 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);
+
+#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 */
-- 
1.8.1.2



-- 
Dipl.-Inf. (FH) Patrick Ziegler

University Of Applied Sciences
Kaiserslautern

Amerikastrasse 1
D-66482 Zweibruecken
Germany

Phone:  +49 631 3724 5526
Mail:   patrick.ziegler@fh-kl.de
PGP KeyID 0xB4796B8C

http://www.fh-kl.de
http://www.fh-kl.de/fachbereiche/imst/iuk-knowhow.html

  parent reply	other threads:[~2013-08-15 12:40 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1376569949.git.patrick.ziegler@fh-kl.de>
2013-08-15 12:40 ` [PATCH v3 01/10] backports: fix build errors for old kernel versions without PCI support Patrick Ziegler
2013-08-15 12:40 ` Patrick Ziegler [this message]
2013-08-16  9:54   ` [PATCH v3 02/10] backports: add eth_prepare_mac_addr_change() and eth_commit_mac_addr_change() Johannes Berg
2013-08-15 12:40 ` [PATCH v3 03/10] backports: define PM_EVENT_AUTO Patrick Ziegler
2013-08-15 12:40 ` [PATCH v3 04/10] backports: add usb_translate_errors() Patrick Ziegler
2013-08-15 12:40 ` [PATCH v3 05/10] backports: add usb_endpoint_maxp() Patrick Ziegler
2013-08-15 12:40 ` [PATCH v3 06/10] backports: update enum usb_device_speed with USB_SPEED_SUPER Patrick Ziegler
2013-08-15 12:40 ` [PATCH v3 07/10] backports: include headers directly if math64 header is missing Patrick Ziegler
2013-08-15 12:40 ` [PATCH v3 08/10] backports: define phys_addr_t for ARM on kernel version < 2.6.25 Patrick Ziegler
2013-08-15 12:40 ` [PATCH v3 09/10] backports: add wwan device drivers Patrick Ziegler
2013-08-15 12:41 ` [PATCH v3 10/10] backports: add defconfig for " Patrick Ziegler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=520CCC29.5020007@fh-kl.de \
    --to=patrick.ziegler@fh-kl.de \
    --cc=backports@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).