From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pd0-f182.google.com ([209.85.192.182]:36369 "EHLO mail-pd0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932170AbbD1DcX (ORCPT ); Mon, 27 Apr 2015 23:32:23 -0400 Received: by pdea3 with SMTP id a3so149849725pde.3 for ; Mon, 27 Apr 2015 20:32:22 -0700 (PDT) Message-ID: <553EFF32.6020202@gmail.com> Date: Tue, 28 Apr 2015 09:02:02 +0530 From: Varka Bhadram MIME-Version: 1.0 Subject: Re: [RFC bluetooth-next] cfg802154: pass name_assign_type to rdev_add_virtual_intf() References: <1429691836-29316-1-git-send-email-varkab@cdac.in> In-Reply-To: <1429691836-29316-1-git-send-email-varkab@cdac.in> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-wpan-owner@vger.kernel.org List-ID: To: linux-wpan@vger.kernel.org Cc: alex.aring@gmail.com, Varka Bhadram On 04/22/2015 02:07 PM, Varka Bhadram wrote: > This code is based on commit 6bab2e19c5ffd > ("cfg80211: pass name_assign_type to rdev_add_virtual_intf()") > > This will expose in sysfs whether the ifname of a IEEE-802.15.4 > device is set by userspace or generated by the kernel. > We are using two types of name_assign_types > o NET_NAME_ENUM: Default interface name provided by kernel > o NET_NAME_USER: Interface name provided by user. > > Signed-off-by: Varka Bhadram > --- > include/net/cfg802154.h | 2 ++ > net/ieee802154/nl-phy.c | 1 + > net/ieee802154/nl802154.c | 1 + > net/ieee802154/rdev-ops.h | 10 +++++++--- > net/mac802154/cfg.c | 9 ++++++--- > net/mac802154/ieee802154_i.h | 1 + > net/mac802154/iface.c | 5 +++-- > net/mac802154/main.c | 3 ++- > 8 files changed, 23 insertions(+), 9 deletions(-) > > diff --git a/include/net/cfg802154.h b/include/net/cfg802154.h > index eeda676..6ea16c8 100644 > --- a/include/net/cfg802154.h > +++ b/include/net/cfg802154.h > @@ -30,11 +30,13 @@ struct wpan_phy_cca; > struct cfg802154_ops { > struct net_device * (*add_virtual_intf_deprecated)(struct wpan_phy *wpan_phy, > const char *name, > + unsigned char name_assign_type, > int type); > void (*del_virtual_intf_deprecated)(struct wpan_phy *wpan_phy, > struct net_device *dev); > int (*add_virtual_intf)(struct wpan_phy *wpan_phy, > const char *name, > + unsigned char name_assign_type, > enum nl802154_iftype type, > __le64 extended_addr); > int (*del_virtual_intf)(struct wpan_phy *wpan_phy, > diff --git a/net/ieee802154/nl-phy.c b/net/ieee802154/nl-phy.c > index 1b9d25f6..ac3462a 100644 > --- a/net/ieee802154/nl-phy.c > +++ b/net/ieee802154/nl-phy.c > @@ -221,6 +221,7 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info) > } > > dev = rdev_add_virtual_intf_deprecated(wpan_phy_to_rdev(phy), devname, > + NET_NAME_ENUM, > type); > if (IS_ERR(dev)) { > rc = PTR_ERR(dev); > diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c > index a4daf91..a7eb16d 100644 > --- a/net/ieee802154/nl802154.c > +++ b/net/ieee802154/nl802154.c > @@ -589,6 +589,7 @@ static int nl802154_new_interface(struct sk_buff *skb, struct genl_info *info) > > return rdev_add_virtual_intf(rdev, > nla_data(info->attrs[NL802154_ATTR_IFNAME]), > + NET_NAME_USER, > type, extended_addr); > } > > diff --git a/net/ieee802154/rdev-ops.h b/net/ieee802154/rdev-ops.h > index 7c46732..ced5ac3 100644 > --- a/net/ieee802154/rdev-ops.h > +++ b/net/ieee802154/rdev-ops.h > @@ -7,10 +7,12 @@ > > static inline struct net_device * > rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, > - const char *name, int type) > + const char *name, > + unsigned char name_assign_type, > + int type) > { > return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name, > - type); > + name_assign_type, type); > } > > static inline void > @@ -22,9 +24,11 @@ rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev, > > static inline int > rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name, > + unsigned char name_assign_type, > enum nl802154_iftype type, __le64 extended_addr) > { > - return rdev->ops->add_virtual_intf(&rdev->wpan_phy, name, type, > + return rdev->ops->add_virtual_intf(&rdev->wpan_phy, name, > + name_assign_type, type, > extended_addr); > } > > diff --git a/net/mac802154/cfg.c b/net/mac802154/cfg.c > index 5d9f68c..41a167b 100644 > --- a/net/mac802154/cfg.c > +++ b/net/mac802154/cfg.c > @@ -22,13 +22,14 @@ > > static struct net_device * > ieee802154_add_iface_deprecated(struct wpan_phy *wpan_phy, > - const char *name, int type) > + const char *name, > + unsigned char name_assign_type, int type) > { > struct ieee802154_local *local = wpan_phy_priv(wpan_phy); > struct net_device *dev; > > rtnl_lock(); > - dev = ieee802154_if_add(local, name, type, > + dev = ieee802154_if_add(local, name, name_assign_type, type, > cpu_to_le64(0x0000000000000000ULL)); > rtnl_unlock(); > > @@ -45,12 +46,14 @@ static void ieee802154_del_iface_deprecated(struct wpan_phy *wpan_phy, > > static int > ieee802154_add_iface(struct wpan_phy *phy, const char *name, > + unsigned char name_assign_type, > enum nl802154_iftype type, __le64 extended_addr) > { > struct ieee802154_local *local = wpan_phy_priv(phy); > struct net_device *err; > > - err = ieee802154_if_add(local, name, type, extended_addr); > + err = ieee802154_if_add(local, name, name_assign_type, > + type, extended_addr); > return PTR_ERR_OR_ZERO(err); > } > > diff --git a/net/mac802154/ieee802154_i.h b/net/mac802154/ieee802154_i.h > index bebd70f..35a5920 100644 > --- a/net/mac802154/ieee802154_i.h > +++ b/net/mac802154/ieee802154_i.h > @@ -182,6 +182,7 @@ void ieee802154_iface_exit(void); > void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata); > struct net_device * > ieee802154_if_add(struct ieee802154_local *local, const char *name, > + unsigned char name_assign_type, > enum nl802154_iftype type, __le64 extended_addr); > void ieee802154_remove_interfaces(struct ieee802154_local *local); > > diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c > index 38b56f9..91b75ab 100644 > --- a/net/mac802154/iface.c > +++ b/net/mac802154/iface.c > @@ -522,7 +522,8 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, > > struct net_device * > ieee802154_if_add(struct ieee802154_local *local, const char *name, > - enum nl802154_iftype type, __le64 extended_addr) > + unsigned char name_assign_type, enum nl802154_iftype type, > + __le64 extended_addr) > { > struct net_device *ndev = NULL; > struct ieee802154_sub_if_data *sdata = NULL; > @@ -531,7 +532,7 @@ ieee802154_if_add(struct ieee802154_local *local, const char *name, > ASSERT_RTNL(); > > ndev = alloc_netdev(sizeof(*sdata) + local->hw.vif_data_size, name, > - NET_NAME_UNKNOWN, ieee802154_if_setup); > + name_assign_type, ieee802154_if_setup); > if (!ndev) > return ERR_PTR(-ENOMEM); > > diff --git a/net/mac802154/main.c b/net/mac802154/main.c > index 8500378..68b9667 100644 > --- a/net/mac802154/main.c > +++ b/net/mac802154/main.c > @@ -161,7 +161,8 @@ int ieee802154_register_hw(struct ieee802154_hw *hw) > > rtnl_lock(); > > - dev = ieee802154_if_add(local, "wpan%d", NL802154_IFTYPE_NODE, > + dev = ieee802154_if_add(local, "wpan%d", NET_NAME_ENUM, > + NL802154_IFTYPE_NODE, > cpu_to_le64(0x0000000000000000ULL)); > if (IS_ERR(dev)) { > rtnl_unlock(); Ping ..? -- Varka Bhadram