Netdev List
 help / color / mirror / Atom feed
* [PATCH net-next 3/7] rtnetlink: add helper to dump qdisc name
From: Florian Westphal @ 2017-09-21 16:58 UTC (permalink / raw)
  To: netdev; +Cc: Florian Westphal
In-Reply-To: <20170921165902.10746-1-fw@strlen.de>

We can use rcu here to make this safe even if we would not hold rtnl,
qdisc_destroy uses call_rcu to delay free of the qdisc for one grace period.

Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/core/rtnetlink.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index c801212ee40e..ad3f27da37a8 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1332,6 +1332,19 @@ static int nla_put_iflink(struct sk_buff *skb, const struct net_device *dev)
 	return nla_put_u32(skb, IFLA_LINK, ifindex);
 }
 
+static int nla_put_qdisc(struct sk_buff *skb, struct net_device *dev)
+{
+	struct Qdisc *q;
+	int ret = 0;
+
+	rcu_read_lock();
+	q = READ_ONCE(dev->qdisc);
+	if (q)
+		ret = nla_put_string(skb, IFLA_QDISC, q->ops->id);
+	rcu_read_unlock();
+	return ret;
+}
+
 static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			    int type, u32 pid, u32 seq, u32 change,
 			    unsigned int flags, u32 ext_filter_mask,
@@ -1372,8 +1385,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 	    nla_put_iflink(skb, dev) ||
 	    put_master_ifindex(skb, dev) ||
 	    nla_put_u8(skb, IFLA_CARRIER, netif_carrier_ok(dev)) ||
-	    (dev->qdisc &&
-	     nla_put_string(skb, IFLA_QDISC, dev->qdisc->ops->id)) ||
+	    nla_put_qdisc(skb, dev) ||
 	    (dev->ifalias &&
 	     nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
 	    nla_put_u32(skb, IFLA_CARRIER_CHANGES,
-- 
2.13.5

^ permalink raw reply related

* [PATCH net-next 4/7] rtnetlink: add helper to dump ifalias
From: Florian Westphal @ 2017-09-21 16:58 UTC (permalink / raw)
  To: netdev; +Cc: Florian Westphal
In-Reply-To: <20170921165902.10746-1-fw@strlen.de>

ifalias is currently protected by rtnl mutex, add assertion
as a reminder.

Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/core/rtnetlink.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index ad3f27da37a8..1af3ef7f329d 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1345,6 +1345,16 @@ static int nla_put_qdisc(struct sk_buff *skb, struct net_device *dev)
 	return ret;
 }
 
+static int noinline nla_put_ifalias(struct sk_buff *skb, struct net_device *dev)
+{
+	ASSERT_RTNL();
+
+	if (dev->ifalias)
+		return nla_put_string(skb, IFLA_IFALIAS, dev->ifalias);
+
+	return 0;
+}
+
 static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			    int type, u32 pid, u32 seq, u32 change,
 			    unsigned int flags, u32 ext_filter_mask,
@@ -1386,8 +1396,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 	    put_master_ifindex(skb, dev) ||
 	    nla_put_u8(skb, IFLA_CARRIER, netif_carrier_ok(dev)) ||
 	    nla_put_qdisc(skb, dev) ||
-	    (dev->ifalias &&
-	     nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
+	    nla_put_ifalias(skb, dev) ||
 	    nla_put_u32(skb, IFLA_CARRIER_CHANGES,
 			atomic_read(&dev->carrier_changes)) ||
 	    nla_put_u8(skb, IFLA_PROTO_DOWN, dev->proto_down))
-- 
2.13.5

^ permalink raw reply related

* [PATCH net-next 5/7] rtnetlink: add helper to dump vf information
From: Florian Westphal @ 2017-09-21 16:59 UTC (permalink / raw)
  To: netdev; +Cc: Florian Westphal
In-Reply-To: <20170921165902.10746-1-fw@strlen.de>

similar to earlier patches, split out more parts of this function to
better see what is happening and where we assume rtnl is locked.

Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/core/rtnetlink.c | 80 ++++++++++++++++++++++++++++++++--------------------
 1 file changed, 50 insertions(+), 30 deletions(-)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 1af3ef7f329d..7503021fe308 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1211,6 +1211,36 @@ static noinline_for_stack int rtnl_fill_vfinfo(struct sk_buff *skb,
 	return -EMSGSIZE;
 }
 
+static noinline_for_stack int rtnl_fill_vf(struct sk_buff *skb,
+					   struct net_device *dev,
+					   u32 ext_filter_mask)
+{
+	struct nlattr *vfinfo;
+	int i, num_vfs;
+
+	if (!dev->dev.parent || ((ext_filter_mask & RTEXT_FILTER_VF) == 0))
+		return 0;
+
+	num_vfs = dev_num_vf(dev->dev.parent);
+	if (nla_put_u32(skb, IFLA_NUM_VF, num_vfs))
+		return -EMSGSIZE;
+
+	if (!dev->netdev_ops->ndo_get_vf_config)
+		return 0;
+
+	vfinfo = nla_nest_start(skb, IFLA_VFINFO_LIST);
+	if (!vfinfo)
+		return -EMSGSIZE;
+
+	for (i = 0; i < num_vfs; i++) {
+		if (rtnl_fill_vfinfo(skb, dev, i, vfinfo))
+			return -EMSGSIZE;
+	}
+
+	nla_nest_end(skb, vfinfo);
+	return 0;
+}
+
 static int rtnl_fill_link_ifmap(struct sk_buff *skb, struct net_device *dev)
 {
 	struct rtnl_link_ifmap map;
@@ -1355,6 +1385,23 @@ static int noinline nla_put_ifalias(struct sk_buff *skb, struct net_device *dev)
 	return 0;
 }
 
+static int noinline rtnl_fill_link_netnsid(struct sk_buff *skb,
+				  const struct net_device *dev)
+{
+	if (dev->rtnl_link_ops && dev->rtnl_link_ops->get_link_net) {
+		struct net *link_net = dev->rtnl_link_ops->get_link_net(dev);
+
+		if (!net_eq(dev_net(dev), link_net)) {
+			int id = peernet2id_alloc(dev_net(dev), link_net);
+
+			if (nla_put_s32(skb, IFLA_LINK_NETNSID, id))
+				return -EMSGSIZE;
+		}
+	}
+
+	return 0;
+}
+
 static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			    int type, u32 pid, u32 seq, u32 change,
 			    unsigned int flags, u32 ext_filter_mask,
@@ -1428,27 +1475,9 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 	if (rtnl_fill_stats(skb, dev))
 		goto nla_put_failure;
 
-	if (dev->dev.parent && (ext_filter_mask & RTEXT_FILTER_VF) &&
-	    nla_put_u32(skb, IFLA_NUM_VF, dev_num_vf(dev->dev.parent)))
+	if (rtnl_fill_vf(skb, dev, ext_filter_mask))
 		goto nla_put_failure;
 
-	if (dev->netdev_ops->ndo_get_vf_config && dev->dev.parent &&
-	    ext_filter_mask & RTEXT_FILTER_VF) {
-		int i;
-		struct nlattr *vfinfo;
-		int num_vfs = dev_num_vf(dev->dev.parent);
-
-		vfinfo = nla_nest_start(skb, IFLA_VFINFO_LIST);
-		if (!vfinfo)
-			goto nla_put_failure;
-		for (i = 0; i < num_vfs; i++) {
-			if (rtnl_fill_vfinfo(skb, dev, i, vfinfo))
-				goto nla_put_failure;
-		}
-
-		nla_nest_end(skb, vfinfo);
-	}
-
 	if (rtnl_port_fill(skb, dev, ext_filter_mask))
 		goto nla_put_failure;
 
@@ -1460,17 +1489,8 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
 			goto nla_put_failure;
 	}
 
-	if (dev->rtnl_link_ops &&
-	    dev->rtnl_link_ops->get_link_net) {
-		struct net *link_net = dev->rtnl_link_ops->get_link_net(dev);
-
-		if (!net_eq(dev_net(dev), link_net)) {
-			int id = peernet2id_alloc(dev_net(dev), link_net);
-
-			if (nla_put_s32(skb, IFLA_LINK_NETNSID, id))
-				goto nla_put_failure;
-		}
-	}
+	if (rtnl_fill_link_netnsid(skb, dev))
+		goto nla_put_failure;
 
 	if (!(af_spec = nla_nest_start(skb, IFLA_AF_SPEC)))
 		goto nla_put_failure;
-- 
2.13.5

^ permalink raw reply related

* [PATCH net-next 6/7] rtnetlink: link ops lookup must occur with rtnl lock held
From: Florian Westphal @ 2017-09-21 16:59 UTC (permalink / raw)
  To: netdev; +Cc: Florian Westphal
In-Reply-To: <20170921165902.10746-1-fw@strlen.de>

all callers meet this requirement, this serves as reminder to not
forget about this in future rtnl pushdown work.

Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/core/rtnetlink.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 7503021fe308..7af9774aec40 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -274,6 +274,8 @@ static const struct rtnl_link_ops *rtnl_link_ops_get(const char *kind)
 {
 	const struct rtnl_link_ops *ops;
 
+	ASSERT_RTNL();
+
 	list_for_each_entry(ops, &link_ops, list) {
 		if (!strcmp(ops->kind, kind))
 			return ops;
@@ -1618,6 +1620,8 @@ static const struct rtnl_link_ops *linkinfo_to_kind_ops(const struct nlattr *nla
 	const struct rtnl_link_ops *ops = NULL;
 	struct nlattr *linfo[IFLA_INFO_MAX + 1];
 
+	ASSERT_RTNL();
+
 	if (nla_parse_nested(linfo, IFLA_INFO_MAX, nla,
 			     ifla_info_policy, NULL) < 0)
 		return NULL;
-- 
2.13.5

^ permalink raw reply related

* [PATCH net-next 7/7] rtnetlink: rtnl_have_link_slave_info doesn't need rtnl
From: Florian Westphal @ 2017-09-21 16:59 UTC (permalink / raw)
  To: netdev; +Cc: Florian Westphal
In-Reply-To: <20170921165902.10746-1-fw@strlen.de>

it can be switched to rcu.
rtnl_link_slave_info_fill on the other hand does need it,
at least for now.  Add ASSERT_RTNL annotation as a reminder.

Signed-off-by: Florian Westphal <fw@strlen.de>
---
 net/core/rtnetlink.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 7af9774aec40..9fd48b437d64 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -524,11 +524,15 @@ static size_t rtnl_link_get_af_size(const struct net_device *dev,
 static bool rtnl_have_link_slave_info(const struct net_device *dev)
 {
 	struct net_device *master_dev;
+	bool ret = false;
 
-	master_dev = netdev_master_upper_dev_get((struct net_device *) dev);
+	rcu_read_lock();
+
+	master_dev = netdev_master_upper_dev_get_rcu((struct net_device *) dev);
 	if (master_dev && master_dev->rtnl_link_ops)
-		return true;
-	return false;
+		ret = true;
+	rcu_read_unlock();
+	return ret;
 }
 
 static int rtnl_link_slave_info_fill(struct sk_buff *skb,
@@ -539,6 +543,8 @@ static int rtnl_link_slave_info_fill(struct sk_buff *skb,
 	struct nlattr *slave_data;
 	int err;
 
+	ASSERT_RTNL();
+
 	master_dev = netdev_master_upper_dev_get((struct net_device *) dev);
 	if (!master_dev)
 		return 0;
@@ -570,6 +576,8 @@ static int rtnl_link_info_fill(struct sk_buff *skb,
 	struct nlattr *data;
 	int err;
 
+	ASSERT_RTNL();
+
 	if (!ops)
 		return 0;
 	if (nla_put_string(skb, IFLA_INFO_KIND, ops->kind) < 0)
@@ -600,6 +608,8 @@ static int rtnl_link_fill(struct sk_buff *skb, const struct net_device *dev)
 	struct nlattr *linkinfo;
 	int err = -EMSGSIZE;
 
+	ASSERT_RTNL();
+
 	linkinfo = nla_nest_start(skb, IFLA_LINKINFO);
 	if (linkinfo == NULL)
 		goto out;
-- 
2.13.5

^ permalink raw reply related

* [PATCH 00/64] use setup_timer() helper function.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais

 This series uses setup_timer() helper function. The series
addresses the files under drivers/net/*.


Allen Pais (64):
  drivers: net: de4x: use setup_timer() helper.
  drivers: net: b44: use setup_timer() helper.
  drivers: net: pcnet32: use setup_timer() helper.
  drivers: net: brcm80211: use setup_timer() helper.
  drivers : net: niu: use setup_timer() helper.
  drivers: net: bcm63xx: use setup_timer() helper.
  drivers: net: declance: use setup_timer() helper.
  drivers: net: am79c961: use setup_timer() helper.
  drivers: net: et131x: use setup_timer() helper.
  drivers: net: appletalk: cops: use setup_timer() helper.
  drivers: net: rsi_91x: use setup_timer() helper.
  drivers: net: atp: use setup_timer() helper.
  drivers: net: ns83820: use setup_timer() helper.
  drivers: net: ixgb: use setup_timer() helper.
  drivers: net: sundance: use setup_timer() helper.
  drivers: net: tg3: use setup_timer() helper.
  drivers: net: sdla: use setup_timer() helper.
  drivers: net: cisco_hdlc: use setup_timer() helper.
  drivers: net: slip: use setup_timer() helper.
  drivers: net: spider_net: use setup_timer() helper.
  drivers: net: sun: cassini: use setup_timer() helper.
  drivers: net: natsemi: use setup_timer() helper.
  drivers: net: winbond-840: use setup_timer() helper.
  drivers: net: enic: use setup_timer() helper.
  drivers: net: bnx2: use setup_timer() helper.
  drivers: net: xen-netback: use setup_timer() helper.
  drivers: net: atmel: use setup_timer() helper.
  drivers: net: hippi: use setup_timer() helper.
  drivers: net: smsc: use setup_timer() helper.
  drivers: net: qlogic: use setup_timer() helper.
  drivers: net: e1000e: use setup_timer() helper.
  drivers: net: amd: use setup_timer() helper.
  drivers: net: amd8111e: use setup_timer() helper.
  drivers: net: eql: use setup_timer() helper.
  drivers: net: can: usb: use setup_timer() helper.
  drivers: net: can: use setup_timer() helper.
  drivers: net: arcnet: use setup_timer() helper.
  drivers: net: ath6kl: use setup_timer() helper.
  drivers: net: sun: use setup_timer() helper.
  drivers: net: sis900: use setup_timer() helper.
  drivers: net: packetengines: use setup_timer() helper.
  drivers: net: mlx5: use setup_timer() helper.
  drivers: net: mlx4: use setup_timer() helper.
  drivers: net: pxa168: use setup_timer() helper.
  drivers: net: fealnx: use setup_timer() helper.
  drivers: net: dmfe: use setup_timer() helper.
  drivers: net: bnxt: use setup_timer() helper.
  drivers: net: amd: use setup_timer() helper.
  drivers: net: adi: use setup_timer() helper.
  drivers: net: can: sja1000: use setup_timer() helper.
  drivers: net: caif: use setup_timer() helper.
  drivers: net: appletalk: use setup_timer() helper.
  drivers: net: dscc: use setup_timer() helper.
  drivers: net: hdlc_ppp: use setup_timer() helper.
  drivers: net: hamradio: use setup_timer() helper.
  drivers: net: cpsw_ale: use setup_timer() helper.
  drivers: net: stmmac: use setup_timer() helper.
  drivers: net: packetengines: use setup_timer() helper.
  drivers: net: i40evf: use setup_timer() helper.
  drivers: net: uli526x: use setup_timer() helper.
  drivers: net: enic: use setup_timer() helper.
  drivers: net: cxgb: use setup_timer() helper.
  drivers: net: bnx2x: use setup_timer() helper.
  drivers: net: lmc: use setup_timer() helper.

 drivers/net/appletalk/cops.c                              |  4 +---
 drivers/net/appletalk/ltpc.c                              |  4 +---
 drivers/net/arcnet/arcnet.c                               |  4 +---
 drivers/net/caif/caif_hsi.c                               | 15 ++++++---------
 drivers/net/can/grcan.c                                   | 10 ++++------
 drivers/net/can/sja1000/peak_pcmcia.c                     |  4 +---
 drivers/net/can/usb/peak_usb/pcan_usb.c                   |  5 ++---
 drivers/net/eql.c                                         |  4 +---
 drivers/net/ethernet/adi/bfin_mac.c                       |  5 ++---
 drivers/net/ethernet/agere/et131x.c                       |  5 ++---
 drivers/net/ethernet/amd/a2065.c                          |  7 +++----
 drivers/net/ethernet/amd/am79c961a.c                      |  4 +---
 drivers/net/ethernet/amd/amd8111e.c                       |  5 ++---
 drivers/net/ethernet/amd/declance.c                       |  6 +++---
 drivers/net/ethernet/amd/pcnet32.c                        |  5 ++---
 drivers/net/ethernet/amd/sunlance.c                       |  5 ++---
 drivers/net/ethernet/broadcom/b44.c                       |  4 +---
 drivers/net/ethernet/broadcom/bcm63xx_enet.c              |  5 ++---
 drivers/net/ethernet/broadcom/bnx2.c                      |  4 +---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c          |  4 +---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                 |  4 +---
 drivers/net/ethernet/broadcom/tg3.c                       |  4 +---
 drivers/net/ethernet/chelsio/cxgb/sge.c                   |  5 ++---
 drivers/net/ethernet/cisco/enic/enic_clsf.h               |  5 ++---
 drivers/net/ethernet/cisco/enic/enic_main.c               |  5 ++---
 drivers/net/ethernet/dec/tulip/de4x5.c                    |  5 ++---
 drivers/net/ethernet/dec/tulip/dmfe.c                     |  4 +---
 drivers/net/ethernet/dec/tulip/uli526x.c                  |  4 +---
 drivers/net/ethernet/dec/tulip/winbond-840.c              |  4 +---
 drivers/net/ethernet/dlink/sundance.c                     |  4 +---
 drivers/net/ethernet/fealnx.c                             |  8 ++------
 drivers/net/ethernet/intel/e1000e/netdev.c                | 11 ++++-------
 drivers/net/ethernet/intel/i40evf/i40evf_main.c           |  5 ++---
 drivers/net/ethernet/intel/ixgb/ixgb_main.c               |  5 ++---
 drivers/net/ethernet/marvell/pxa168_eth.c                 |  5 ++---
 drivers/net/ethernet/mellanox/mlx4/catas.c                |  4 +---
 drivers/net/ethernet/mellanox/mlx5/core/health.c          |  4 +---
 drivers/net/ethernet/natsemi/natsemi.c                    |  4 +---
 drivers/net/ethernet/natsemi/ns83820.c                    |  4 +---
 drivers/net/ethernet/packetengines/hamachi.c              |  4 +---
 drivers/net/ethernet/packetengines/yellowfin.c            |  4 +---
 drivers/net/ethernet/qlogic/qla3xxx.c                     |  4 +---
 drivers/net/ethernet/realtek/atp.c                        |  4 +---
 drivers/net/ethernet/sis/sis900.c                         |  4 +---
 drivers/net/ethernet/smsc/epic100.c                       |  4 +---
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c         |  4 +---
 drivers/net/ethernet/sun/cassini.c                        |  5 +----
 drivers/net/ethernet/sun/niu.c                            |  4 +---
 drivers/net/ethernet/sun/sungem.c                         |  4 +---
 drivers/net/ethernet/ti/cpsw_ale.c                        |  4 +---
 drivers/net/ethernet/toshiba/spider_net.c                 | 12 +++++-------
 drivers/net/hamradio/6pack.c                              |  4 +---
 drivers/net/hippi/rrunner.c                               |  4 +---
 drivers/net/slip/slip.c                                   |  8 ++------
 drivers/net/wan/dscc4.c                                   |  4 +---
 drivers/net/wan/hdlc_cisco.c                              |  4 +---
 drivers/net/wan/hdlc_ppp.c                                |  4 +---
 drivers/net/wan/lmc/lmc_main.c                            |  4 +---
 drivers/net/wan/sdla.c                                    |  4 +---
 drivers/net/wireless/ath/ath6kl/txrx.c                    |  4 +---
 drivers/net/wireless/atmel/atmel.c                        |  5 ++---
 .../net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c   |  5 ++---
 drivers/net/wireless/rsi/rsi_91x_hal.c                    |  5 ++---
 drivers/net/xen-netback/interface.c                       |  3 +--
 64 files changed, 102 insertions(+), 216 deletions(-)

-- 
2.7.4

^ permalink raw reply

* [PATCH 01/64] drivers: net: de4x: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/dec/tulip/de4x5.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
index 0affee9..299812e 100644
--- a/drivers/net/ethernet/dec/tulip/de4x5.c
+++ b/drivers/net/ethernet/dec/tulip/de4x5.c
@@ -1147,9 +1147,8 @@ de4x5_hw_init(struct net_device *dev, u_long iobase, struct device *gendev)
 	lp->timeout = -1;
 	lp->gendev = gendev;
 	spin_lock_init(&lp->lock);
-	init_timer(&lp->timer);
-	lp->timer.function = (void (*)(unsigned long))de4x5_ast;
-	lp->timer.data = (unsigned long)dev;
+	setup_timer(&lp->timer, (void (*)(unsigned long))de4x5_ast,
+		    (unsigned long)dev);
 	de4x5_parse_params(dev);
 
 	/*
-- 
2.7.4

^ permalink raw reply related

* [PATCH 02/64] drivers: net: b44: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/broadcom/b44.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c
index a1125d1..42e44fc 100644
--- a/drivers/net/ethernet/broadcom/b44.c
+++ b/drivers/net/ethernet/broadcom/b44.c
@@ -1474,10 +1474,8 @@ static int b44_open(struct net_device *dev)
 		goto out;
 	}
 
-	init_timer(&bp->timer);
+	setup_timer(&bp->timer, b44_timer, (unsigned long)bp);
 	bp->timer.expires = jiffies + HZ;
-	bp->timer.data = (unsigned long) bp;
-	bp->timer.function = b44_timer;
 	add_timer(&bp->timer);
 
 	b44_enable_ints(bp);
-- 
2.7.4

^ permalink raw reply related

* [PATCH 03/64] drivers: net: pcnet32: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/amd/pcnet32.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c
index 7f60d17..e461536 100644
--- a/drivers/net/ethernet/amd/pcnet32.c
+++ b/drivers/net/ethernet/amd/pcnet32.c
@@ -1970,9 +1970,8 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
 			lp->options |= PCNET32_PORT_MII;
 	}
 
-	init_timer(&lp->watchdog_timer);
-	lp->watchdog_timer.data = (unsigned long)dev;
-	lp->watchdog_timer.function = (void *)&pcnet32_watchdog;
+	setup_timer(&lp->watchdog_timer, (void *)&pcnet32_watchdog,
+		    (unsigned long)dev);
 
 	/* The PCNET32-specific entries in the device structure. */
 	dev->netdev_ops = &pcnet32_netdev_ops;
-- 
2.7.4

^ permalink raw reply related

* [PATCH 04/64] drivers: net: brcm80211: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index aaed4ab..ab3f223 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -3260,9 +3260,8 @@ static void brcmf_init_escan(struct brcmf_cfg80211_info *cfg)
 			    brcmf_cfg80211_escan_handler);
 	cfg->escan_info.escan_state = WL_ESCAN_STATE_IDLE;
 	/* Init scan_timeout timer */
-	init_timer(&cfg->escan_timeout);
-	cfg->escan_timeout.data = (unsigned long) cfg;
-	cfg->escan_timeout.function = brcmf_escan_timeout;
+	setup_timer(&cfg->escan_timeout, brcmf_escan_timeout,
+		    (unsigned long)cfg);
 	INIT_WORK(&cfg->escan_timeout_work,
 		  brcmf_cfg80211_escan_timeout_worker);
 }
-- 
2.7.4

^ permalink raw reply related

* [PATCH 05/64] drivers : net: niu: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/sun/niu.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c
index 6a4e8e1..bde19b3 100644
--- a/drivers/net/ethernet/sun/niu.c
+++ b/drivers/net/ethernet/sun/niu.c
@@ -6123,10 +6123,8 @@ static int niu_open(struct net_device *dev)
 
 	err = niu_init_hw(np);
 	if (!err) {
-		init_timer(&np->timer);
+		setup_timer(&np->timer, niu_timer, (unsigned long)np);
 		np->timer.expires = jiffies + HZ;
-		np->timer.data = (unsigned long) np;
-		np->timer.function = niu_timer;
 
 		err = niu_enable_interrupts(np, 1);
 		if (err)
-- 
2.7.4

^ permalink raw reply related

* [PATCH 07/64] drivers: net: declance: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/amd/declance.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/amd/declance.c b/drivers/net/ethernet/amd/declance.c
index 82cc813..9bdf81c 100644
--- a/drivers/net/ethernet/amd/declance.c
+++ b/drivers/net/ethernet/amd/declance.c
@@ -1246,9 +1246,9 @@ static int dec_lance_probe(struct device *bdev, const int type)
 	 * can occur from interrupts (ex. IPv6).  So we
 	 * use a timer to try again later when necessary. -DaveM
 	 */
-	init_timer(&lp->multicast_timer);
-	lp->multicast_timer.data = (unsigned long) dev;
-	lp->multicast_timer.function = lance_set_multicast_retry;
+	setup_timer(&lp->multicast_timer, lance_set_multicast_retry,
+		    (unsigned long)dev);
+
 
 	ret = register_netdev(dev);
 	if (ret) {
-- 
2.7.4

^ permalink raw reply related

* [PATCH 09/64] drivers: net: et131x: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/agere/et131x.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c
index 54eff90..658e92f 100644
--- a/drivers/net/ethernet/agere/et131x.c
+++ b/drivers/net/ethernet/agere/et131x.c
@@ -3624,11 +3624,10 @@ static int et131x_open(struct net_device *netdev)
 	int result;
 
 	/* Start the timer to track NIC errors */
-	init_timer(&adapter->error_timer);
+	setup_timer(&adapter->error_timer, et131x_error_timer_handler,
+		    (unsigned long)adapter);
 	adapter->error_timer.expires = jiffies +
 		msecs_to_jiffies(TX_ERROR_PERIOD);
-	adapter->error_timer.function = et131x_error_timer_handler;
-	adapter->error_timer.data = (unsigned long)adapter;
 	add_timer(&adapter->error_timer);
 
 	result = request_irq(irq, et131x_isr,
-- 
2.7.4

^ permalink raw reply related

* [PATCH 10/64] drivers: net: appletalk: cops: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/appletalk/cops.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
index 486e1e6..caf0428 100644
--- a/drivers/net/appletalk/cops.c
+++ b/drivers/net/appletalk/cops.c
@@ -424,9 +424,7 @@ static int cops_open(struct net_device *dev)
 		 */
 		if(lp->board==TANGENT)	/* Poll 20 times per second */
 		{
-		    init_timer(&cops_timer);
-		    cops_timer.function = cops_poll;
-		    cops_timer.data 	= (unsigned long)dev;
+		    setup_timer(&cops_timer, cops_poll, (unsigned long)dev);
 		    cops_timer.expires 	= jiffies + HZ/20;
 		    add_timer(&cops_timer);
 		} 
-- 
2.7.4

^ permalink raw reply related

* [PATCH 11/64] drivers: net: rsi_91x: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/wireless/rsi/rsi_91x_hal.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/rsi/rsi_91x_hal.c b/drivers/net/wireless/rsi/rsi_91x_hal.c
index 070dfd6..7ad286d 100644
--- a/drivers/net/wireless/rsi/rsi_91x_hal.c
+++ b/drivers/net/wireless/rsi/rsi_91x_hal.c
@@ -411,9 +411,8 @@ static void bl_cmd_timeout(unsigned long priv)
 
 static int bl_start_cmd_timer(struct rsi_hw *adapter, u32 timeout)
 {
-	init_timer(&adapter->bl_cmd_timer);
-	adapter->bl_cmd_timer.data = (unsigned long)adapter;
-	adapter->bl_cmd_timer.function = (void *)&bl_cmd_timeout;
+	setup_timer(&adapter->bl_cmd_timer, (void *)&bl_cmd_timeout,
+		    (unsigned long)adapter);
 	adapter->bl_cmd_timer.expires = (msecs_to_jiffies(timeout) + jiffies);
 
 	adapter->blcmd_timer_expired = false;
-- 
2.7.4

^ permalink raw reply related

* [PATCH 12/64] drivers: net: atp: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/realtek/atp.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/realtek/atp.c b/drivers/net/ethernet/realtek/atp.c
index bed3468..bdc3833 100644
--- a/drivers/net/ethernet/realtek/atp.c
+++ b/drivers/net/ethernet/realtek/atp.c
@@ -438,10 +438,8 @@ static int net_open(struct net_device *dev)
 
 	hardware_init(dev);
 
-	init_timer(&lp->timer);
+	setup_timer(&lp->timer, atp_timed_checker, (unsigned long)dev);
 	lp->timer.expires = jiffies + TIMED_CHECKER;
-	lp->timer.data = (unsigned long)dev;
-	lp->timer.function = atp_timed_checker;    /* timer handler */
 	add_timer(&lp->timer);
 
 	netif_start_queue(dev);
-- 
2.7.4

^ permalink raw reply related

* [PATCH 13/64] drivers: net: ns83820: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/natsemi/ns83820.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/natsemi/ns83820.c b/drivers/net/ethernet/natsemi/ns83820.c
index 729095d..99d3c78 100644
--- a/drivers/net/ethernet/natsemi/ns83820.c
+++ b/drivers/net/ethernet/natsemi/ns83820.c
@@ -1652,9 +1652,7 @@ static int ns83820_open(struct net_device *ndev)
 	writel(0, dev->base + TXDP_HI);
 	writel(desc, dev->base + TXDP);
 
-	init_timer(&dev->tx_watchdog);
-	dev->tx_watchdog.data = (unsigned long)ndev;
-	dev->tx_watchdog.function = ns83820_tx_watch;
+	setup_timer(&dev->tx_watchdog, ns83820_tx_watch, (unsigned long)ndev);
 	mod_timer(&dev->tx_watchdog, jiffies + 2*HZ);
 
 	netif_start_queue(ndev);	/* FIXME: wait for phy to come up */
-- 
2.7.4

^ permalink raw reply related

* [PATCH 14/64] drivers: net: ixgb: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/intel/ixgb/ixgb_main.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
index 5a71319..1e6ec22 100644
--- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c
+++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c
@@ -508,9 +508,8 @@ ixgb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 	adapter->part_num = ixgb_get_ee_pba_number(&adapter->hw);
 
-	init_timer(&adapter->watchdog_timer);
-	adapter->watchdog_timer.function = ixgb_watchdog;
-	adapter->watchdog_timer.data = (unsigned long)adapter;
+	setup_timer(&adapter->watchdog_timer, ixgb_watchdog,
+		    (unsigned long)adapter);
 
 	INIT_WORK(&adapter->tx_timeout_task, ixgb_tx_timeout_task);
 
-- 
2.7.4

^ permalink raw reply related

* [PATCH 15/64] drivers: net: sundance: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/dlink/sundance.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/dlink/sundance.c b/drivers/net/ethernet/dlink/sundance.c
index 2704bcf..6ca9e98 100644
--- a/drivers/net/ethernet/dlink/sundance.c
+++ b/drivers/net/ethernet/dlink/sundance.c
@@ -913,10 +913,8 @@ static int netdev_open(struct net_device *dev)
 			   ioread16(ioaddr + MACCtrl1), ioread16(ioaddr + MACCtrl0));
 
 	/* Set the timer to check for link beat. */
-	init_timer(&np->timer);
+	setup_timer(&np->timer, netdev_timer, (unsigned long)dev);
 	np->timer.expires = jiffies + 3*HZ;
-	np->timer.data = (unsigned long)dev;
-	np->timer.function = netdev_timer;				/* timer handler */
 	add_timer(&np->timer);
 
 	/* Enable interrupts by setting the interrupt mask. */
-- 
2.7.4

^ permalink raw reply related

* [PATCH 16/64] drivers: net: tg3: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/broadcom/tg3.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 656e6af..d8d5f20 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -11087,9 +11087,7 @@ static void tg3_timer_init(struct tg3 *tp)
 	tp->asf_multiplier = (HZ / tp->timer_offset) *
 			     TG3_FW_UPDATE_FREQ_SEC;
 
-	init_timer(&tp->timer);
-	tp->timer.data = (unsigned long) tp;
-	tp->timer.function = tg3_timer;
+	setup_timer(&tp->timer, tg3_timer, (unsigned long)tp);
 }
 
 static void tg3_timer_start(struct tg3 *tp)
-- 
2.7.4

^ permalink raw reply related

* [PATCH 17/64] drivers: net: sdla: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/wan/sdla.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c
index 236c625..0cc4890 100644
--- a/drivers/net/wan/sdla.c
+++ b/drivers/net/wan/sdla.c
@@ -1617,10 +1617,8 @@ static void setup_sdla(struct net_device *dev)
 	flp->deassoc		= sdla_deassoc;
 	flp->dlci_conf		= sdla_dlci_conf;
 
-	init_timer(&flp->timer);
+	setup_timer(&flp->timer, sdla_poll, (unsigned long)dev);
 	flp->timer.expires	= 1;
-	flp->timer.data		= (unsigned long) dev;
-	flp->timer.function	= sdla_poll;
 }
 
 static struct net_device *sdla;
-- 
2.7.4

^ permalink raw reply related

* [PATCH 18/64] drivers: net: cisco_hdlc: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/wan/hdlc_cisco.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/wan/hdlc_cisco.c b/drivers/net/wan/hdlc_cisco.c
index a408abc..c696d42 100644
--- a/drivers/net/wan/hdlc_cisco.c
+++ b/drivers/net/wan/hdlc_cisco.c
@@ -293,10 +293,8 @@ static void cisco_start(struct net_device *dev)
 	st->up = st->txseq = st->rxseq = 0;
 	spin_unlock_irqrestore(&st->lock, flags);
 
-	init_timer(&st->timer);
+	setup_timer(&st->timer, cisco_timer, (unsigned long)dev);
 	st->timer.expires = jiffies + HZ; /* First poll after 1 s */
-	st->timer.function = cisco_timer;
-	st->timer.data = (unsigned long)dev;
 	add_timer(&st->timer);
 }
 
-- 
2.7.4

^ permalink raw reply related

* [PATCH 19/64] drivers: net: slip: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/slip/slip.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c
index 436dd78..eb8a189 100644
--- a/drivers/net/slip/slip.c
+++ b/drivers/net/slip/slip.c
@@ -763,12 +763,8 @@ static struct slip *sl_alloc(dev_t line)
 	sl->mode        = SL_MODE_DEFAULT;
 #ifdef CONFIG_SLIP_SMART
 	/* initialize timer_list struct */
-	init_timer(&sl->keepalive_timer);
-	sl->keepalive_timer.data = (unsigned long)sl;
-	sl->keepalive_timer.function = sl_keepalive;
-	init_timer(&sl->outfill_timer);
-	sl->outfill_timer.data = (unsigned long)sl;
-	sl->outfill_timer.function = sl_outfill;
+	setup_timer(&sl->keepalive_timer, sl_keepalive, (unsigned long)sl);
+	setup_timer(&sl->outfill_timer, sl_outfill, (unsigned long)sl);
 #endif
 	slip_devs[i] = dev;
 	return sl;
-- 
2.7.4

^ permalink raw reply related

* [PATCH 20/64] drivers: net: spider_net: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/toshiba/spider_net.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/toshiba/spider_net.c b/drivers/net/ethernet/toshiba/spider_net.c
index cec9e70..a913538 100644
--- a/drivers/net/ethernet/toshiba/spider_net.c
+++ b/drivers/net/ethernet/toshiba/spider_net.c
@@ -2256,16 +2256,14 @@ spider_net_setup_netdev(struct spider_net_card *card)
 
 	pci_set_drvdata(card->pdev, netdev);
 
-	init_timer(&card->tx_timer);
-	card->tx_timer.function =
-		(void (*)(unsigned long)) spider_net_cleanup_tx_ring;
-	card->tx_timer.data = (unsigned long) card;
+	setup_timer(&card->tx_timer,
+		    (void(*)(unsigned long))spider_net_cleanup_tx_ring,
+		    (unsigned long)card);
 	netdev->irq = card->pdev->irq;
 
 	card->aneg_count = 0;
-	init_timer(&card->aneg_timer);
-	card->aneg_timer.function = spider_net_link_phy;
-	card->aneg_timer.data = (unsigned long) card;
+	setup_timer(&card->aneg_timer, spider_net_link_phy,
+		    (unsigned long)card);
 
 	netif_napi_add(netdev, &card->napi,
 		       spider_net_poll, SPIDER_NET_NAPI_WEIGHT);
-- 
2.7.4

^ permalink raw reply related

* [PATCH 21/64] drivers: net: sun: cassini: use setup_timer() helper.
From: Allen Pais @ 2017-09-21 17:04 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, m.grzeschik, dmitry.tarnyagin, wg, mkl, mark.einon,
	linux, pcnet32, f.fainelli, bcm-kernel-feedback-list, venza, ajk,
	jes, romieu, khc, simon, davem, linux-can, adi-buildroot-devel,
	Allen Pais
In-Reply-To: <1506013525-29291-1-git-send-email-allen.lkml@gmail.com>

    Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais <allen.lkml@gmail.com>
---
 drivers/net/ethernet/sun/cassini.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
index 382993c..a74d78f 100644
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -5039,10 +5039,7 @@ static int cas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	spin_lock_init(&cp->stat_lock[N_TX_RINGS]);
 	mutex_init(&cp->pm_mutex);
 
-	init_timer(&cp->link_timer);
-	cp->link_timer.function = cas_link_timer;
-	cp->link_timer.data = (unsigned long) cp;
-
+	setup_timer(&cp->link_timer, cas_link_timer, (unsigned long)cp);
 #if 1
 	/* Just in case the implementation of atomic operations
 	 * change so that an explicit initialization is necessary.
-- 
2.7.4

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox