From 6e10c469f0997a5ebaffa955d8716c59ba102a1f Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Mon, 16 Nov 2009 17:04:21 +0300 Subject: fakehard: stop setting platform_data as it's unused anymore Previously dev.platform_data was used to store a pointer to net device. Now this code was gone. Drop it. Signed-off-by: Dmitry Eremin-Solenikov diff --git a/drivers/ieee802154/fakehard.c b/drivers/ieee802154/fakehard.c index a5a49a1..eb0e2cc 100644 --- a/drivers/ieee802154/fakehard.c +++ b/drivers/ieee802154/fakehard.c @@ -370,8 +370,6 @@ static int __devinit ieee802154fake_probe(struct platform_device *pdev) return -ENOMEM; } - phy->dev.platform_data = dev; - memcpy(dev->dev_addr, "\xba\xbe\xca\xfe\xde\xad\xbe\xef", dev->addr_len); memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); -- cgit v0.10.2 From 060e41794e3f09f0b28f79b8d6c7ac1a9641d672 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Thu, 18 Mar 2010 19:26:23 +0300 Subject: ieee802154: support specifying hw address for created devices Signed-off-by: Dmitry Eremin-Solenikov diff --git a/net/ieee802154/nl-phy.c b/net/ieee802154/nl-phy.c index 02548b2..c64a38d 100644 --- a/net/ieee802154/nl-phy.c +++ b/net/ieee802154/nl-phy.c @@ -24,6 +24,7 @@ #include #include +#include #include #include #include @@ -213,12 +214,37 @@ static int ieee802154_add_iface(struct sk_buff *skb, goto nla_put_failure; } + if (info->attrs[IEEE802154_ATTR_HW_ADDR] && + nla_len(info->attrs[IEEE802154_ATTR_HW_ADDR]) != + IEEE802154_ADDR_LEN) { + rc = -EINVAL; + goto nla_put_failure; + } + dev = phy->add_iface(phy, devname); if (IS_ERR(dev)) { rc = PTR_ERR(dev); goto nla_put_failure; } + if (info->attrs[IEEE802154_ATTR_HW_ADDR]) { + struct sockaddr addr; + + addr.sa_family = ARPHRD_IEEE802154; + nla_memcpy(&addr.sa_data, info->attrs[IEEE802154_ATTR_HW_ADDR], + IEEE802154_ADDR_LEN); + + /* + * strangely enough, some callbacks (inetdev_event) from + * dev_set_mac_address require RTNL_LOCK + */ + rtnl_lock(); + rc = dev_set_mac_address(dev, &addr); + rtnl_unlock(); + if (rc) + goto dev_unregister; + } + NLA_PUT_STRING(msg, IEEE802154_ATTR_PHY_NAME, wpan_phy_name(phy)); NLA_PUT_STRING(msg, IEEE802154_ATTR_DEV_NAME, dev->name); @@ -228,6 +254,11 @@ static int ieee802154_add_iface(struct sk_buff *skb, return ieee802154_nl_reply(msg, info); +dev_unregister: + rtnl_lock(); /* del_iface must be called with RTNL lock */ + phy->del_iface(phy, dev); + dev_put(dev); + rtnl_unlock(); nla_put_failure: nlmsg_free(msg); out_dev: -- cgit v0.10.2 From 5fd72607a4e9a4a7147d670526431944976035b8 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin-Solenikov Date: Fri, 22 Oct 2010 01:25:25 +0400 Subject: ieee802154: it's IEEE 802.15.4, not ZigBee Signed-off-by: Dmitry Eremin-Solenikov diff --git a/net/ieee802154/dgram.c b/net/ieee802154/dgram.c index 1a3334c..faecf64 100644 --- a/net/ieee802154/dgram.c +++ b/net/ieee802154/dgram.c @@ -1,5 +1,5 @@ /* - * ZigBee socket interface + * IEEE 802.15.4 dgram socket interface * * Copyright 2007, 2008 Siemens AG * -- cgit v0.10.2 From fa1da8835b0764a77a72dea8861bdb1b8c4c59d2 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Wed, 29 Jun 2011 12:51:37 +0000 Subject: ieee802154: free skb buffer if dev isn't running Signed-off-by: Alexander Smirnov Signed-off-by: Dmitry Eremin-Solenikov diff --git a/net/ieee802154/af_ieee802154.c b/net/ieee802154/af_ieee802154.c index 6df6ecf..40e606f 100644 --- a/net/ieee802154/af_ieee802154.c +++ b/net/ieee802154/af_ieee802154.c @@ -302,7 +302,7 @@ static int ieee802154_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *orig_dev) { if (!netif_running(dev)) - return -ENODEV; + goto drop; pr_debug("got frame, type %d, dev %p\n", dev->type, dev); #ifdef DEBUG print_hex_dump_bytes("ieee802154_rcv ", DUMP_PREFIX_NONE, skb->data, skb->len); -- cgit v0.10.2 From 0ac9ebedce444ec6f93cf6a995e4a20009191b00 Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Fri, 17 Jun 2011 18:48:29 +0000 Subject: IEEE 802.15.4: do not enable driver debugging by default The IEEE 802.15.4 drivers were compiled by default with debugging, which caused them to be rather chatty and slow. This patch silences them. People debugging drivers can still add a #define DEBUG in the beginning of the respective file or use dynamic debug This patch also removes the now unused option CONFIG_FFD. Signed-off-by: Werner Almesberger Signed-off-by: Dmitry Eremin-Solenikov diff --git a/drivers/ieee802154/Makefile b/drivers/ieee802154/Makefile index 6899913..800a389 100644 --- a/drivers/ieee802154/Makefile +++ b/drivers/ieee802154/Makefile @@ -1,3 +1 @@ obj-$(CONFIG_IEEE802154_FAKEHARD) += fakehard.o - -ccflags-y := -DDEBUG -DCONFIG_FFD -- cgit v0.10.2