aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/can
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-11-13 03:40:34 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-13 03:40:34 -0500
commit42a2d923cc349583ebf6fdd52a7d35e1c2f7e6bd (patch)
tree2b2b0c03b5389c1301800119333967efafd994ca /drivers/net/can
parent5cbb3d216e2041700231bcfc383ee5f8b7fc8b74 (diff)
parent75ecab1df14d90e86cebef9ec5c76befde46e65f (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: 1) The addition of nftables. No longer will we need protocol aware firewall filtering modules, it can all live in userspace. At the core of nftables is a, for lack of a better term, virtual machine that executes byte codes to inspect packet or metadata (arriving interface index, etc.) and make verdict decisions. Besides support for loading packet contents and comparing them, the interpreter supports lookups in various datastructures as fundamental operations. For example sets are supports, and therefore one could create a set of whitelist IP address entries which have ACCEPT verdicts attached to them, and use the appropriate byte codes to do such lookups. Since the interpreted code is composed in userspace, userspace can do things like optimize things before giving it to the kernel. Another major improvement is the capability of atomically updating portions of the ruleset. In the existing netfilter implementation, one has to update the entire rule set in order to make a change and this is very expensive. Userspace tools exist to create nftables rules using existing netfilter rule sets, but both kernel implementations will need to co-exist for quite some time as we transition from the old to the new stuff. Kudos to Patrick McHardy, Pablo Neira Ayuso, and others who have worked so hard on this. 2) Daniel Borkmann and Hannes Frederic Sowa made several improvements to our pseudo-random number generator, mostly used for things like UDP port randomization and netfitler, amongst other things. In particular the taus88 generater is updated to taus113, and test cases are added. 3) Support 64-bit rates in HTB and TBF schedulers, from Eric Dumazet and Yang Yingliang. 4) Add support for new 577xx tigon3 chips to tg3 driver, from Nithin Sujir. 5) Fix two fatal flaws in TCP dynamic right sizing, from Eric Dumazet, Neal Cardwell, and Yuchung Cheng. 6) Allow IP_TOS and IP_TTL to be specified in sendmsg() ancillary control message data, much like other socket option attributes. From Francesco Fusco. 7) Allow applications to specify a cap on the rate computed automatically by the kernel for pacing flows, via a new SO_MAX_PACING_RATE socket option. From Eric Dumazet. 8) Make the initial autotuned send buffer sizing in TCP more closely reflect actual needs, from Eric Dumazet. 9) Currently early socket demux only happens for TCP sockets, but we can do it for connected UDP sockets too. Implementation from Shawn Bohrer. 10) Refactor inet socket demux with the goal of improving hash demux performance for listening sockets. With the main goals being able to use RCU lookups on even request sockets, and eliminating the listening lock contention. From Eric Dumazet. 11) The bonding layer has many demuxes in it's fast path, and an RCU conversion was started back in 3.11, several changes here extend the RCU usage to even more locations. From Ding Tianhong and Wang Yufen, based upon suggestions by Nikolay Aleksandrov and Veaceslav Falico. 12) Allow stackability of segmentation offloads to, in particular, allow segmentation offloading over tunnels. From Eric Dumazet. 13) Significantly improve the handling of secret keys we input into the various hash functions in the inet hashtables, TCP fast open, as well as syncookies. From Hannes Frederic Sowa. The key fundamental operation is "net_get_random_once()" which uses static keys. Hannes even extended this to ipv4/ipv6 fragmentation handling and our generic flow dissector. 14) The generic driver layer takes care now to set the driver data to NULL on device removal, so it's no longer necessary for drivers to explicitly set it to NULL any more. Many drivers have been cleaned up in this way, from Jingoo Han. 15) Add a BPF based packet scheduler classifier, from Daniel Borkmann. 16) Improve CRC32 interfaces and generic SKB checksum iterators so that SCTP's checksumming can more cleanly be handled. Also from Daniel Borkmann. 17) Add a new PMTU discovery mode, IP_PMTUDISC_INTERFACE, which forces using the interface MTU value. This helps avoid PMTU attacks, particularly on DNS servers. From Hannes Frederic Sowa. 18) Use generic XPS for transmit queue steering rather than internal (re-)implementation in virtio-net. From Jason Wang. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1622 commits) random32: add test cases for taus113 implementation random32: upgrade taus88 generator to taus113 from errata paper random32: move rnd_state to linux/random.h random32: add prandom_reseed_late() and call when nonblocking pool becomes initialized random32: add periodic reseeding random32: fix off-by-one in seeding requirement PHY: Add RTL8201CP phy_driver to realtek xtsonic: add missing platform_set_drvdata() in xtsonic_probe() macmace: add missing platform_set_drvdata() in mace_probe() ethernet/arc/arc_emac: add missing platform_set_drvdata() in arc_emac_probe() ipv6: protect for_each_sk_fl_rcu in mem_check with rcu_read_lock_bh vlan: Implement vlan_dev_get_egress_qos_mask as an inline. ixgbe: add warning when max_vfs is out of range. igb: Update link modes display in ethtool netfilter: push reasm skb through instead of original frag skbs ip6_output: fragment outgoing reassembled skb properly MAINTAINERS: mv643xx_eth: take over maintainership from Lennart net_sched: tbf: support of 64bit rates ixgbe: deleting dfwd stations out of order can cause null ptr deref ixgbe: fix build err, num_rx_queues is only available with CONFIG_RPS ...
Diffstat (limited to 'drivers/net/can')
-rw-r--r--drivers/net/can/at91_can.c2
-rw-r--r--drivers/net/can/bfin_can.c2
-rw-r--r--drivers/net/can/c_can/c_can_pci.c2
-rw-r--r--drivers/net/can/c_can/c_can_platform.c2
-rw-r--r--drivers/net/can/cc770/cc770_platform.c4
-rw-r--r--drivers/net/can/dev.c67
-rw-r--r--drivers/net/can/flexcan.c2
-rw-r--r--drivers/net/can/janz-ican3.c2
-rw-r--r--drivers/net/can/mcp251x.c2
-rw-r--r--drivers/net/can/mscan/mscan.h6
-rw-r--r--drivers/net/can/pch_can.c1
-rw-r--r--drivers/net/can/sja1000/ems_pci.c1
-rw-r--r--drivers/net/can/sja1000/kvaser_pci.c1
-rw-r--r--drivers/net/can/sja1000/peak_pci.c2
-rw-r--r--drivers/net/can/sja1000/plx_pci.c1
-rw-r--r--drivers/net/can/sja1000/sja1000_platform.c2
-rw-r--r--drivers/net/can/softing/softing.h24
-rw-r--r--drivers/net/can/softing/softing_main.c2
-rw-r--r--drivers/net/can/ti_hecc.c12
19 files changed, 58 insertions, 79 deletions
diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
index 693d8ffe4653..cf0f63e14e53 100644
--- a/drivers/net/can/at91_can.c
+++ b/drivers/net/can/at91_can.c
@@ -1347,7 +1347,7 @@ static int at91_can_probe(struct platform_device *pdev)
1347 priv->reg_base = addr; 1347 priv->reg_base = addr;
1348 priv->devtype_data = *devtype_data; 1348 priv->devtype_data = *devtype_data;
1349 priv->clk = clk; 1349 priv->clk = clk;
1350 priv->pdata = pdev->dev.platform_data; 1350 priv->pdata = dev_get_platdata(&pdev->dev);
1351 priv->mb0_id = 0x7ff; 1351 priv->mb0_id = 0x7ff;
1352 1352
1353 netif_napi_add(dev, &priv->napi, at91_poll, get_mb_rx_num(priv)); 1353 netif_napi_add(dev, &priv->napi, at91_poll, get_mb_rx_num(priv));
diff --git a/drivers/net/can/bfin_can.c b/drivers/net/can/bfin_can.c
index a2700d25ff0e..8a0b515b33ea 100644
--- a/drivers/net/can/bfin_can.c
+++ b/drivers/net/can/bfin_can.c
@@ -539,7 +539,7 @@ static int bfin_can_probe(struct platform_device *pdev)
539 struct resource *res_mem, *rx_irq, *tx_irq, *err_irq; 539 struct resource *res_mem, *rx_irq, *tx_irq, *err_irq;
540 unsigned short *pdata; 540 unsigned short *pdata;
541 541
542 pdata = pdev->dev.platform_data; 542 pdata = dev_get_platdata(&pdev->dev);
543 if (!pdata) { 543 if (!pdata) {
544 dev_err(&pdev->dev, "No platform data provided!\n"); 544 dev_err(&pdev->dev, "No platform data provided!\n");
545 err = -EINVAL; 545 err = -EINVAL;
diff --git a/drivers/net/can/c_can/c_can_pci.c b/drivers/net/can/c_can/c_can_pci.c
index b374be7891a2..bce0be54c2f5 100644
--- a/drivers/net/can/c_can/c_can_pci.c
+++ b/drivers/net/can/c_can/c_can_pci.c
@@ -160,7 +160,6 @@ static int c_can_pci_probe(struct pci_dev *pdev,
160 return 0; 160 return 0;
161 161
162out_free_c_can: 162out_free_c_can:
163 pci_set_drvdata(pdev, NULL);
164 free_c_can_dev(dev); 163 free_c_can_dev(dev);
165out_iounmap: 164out_iounmap:
166 pci_iounmap(pdev, addr); 165 pci_iounmap(pdev, addr);
@@ -181,7 +180,6 @@ static void c_can_pci_remove(struct pci_dev *pdev)
181 180
182 unregister_c_can_dev(dev); 181 unregister_c_can_dev(dev);
183 182
184 pci_set_drvdata(pdev, NULL);
185 free_c_can_dev(dev); 183 free_c_can_dev(dev);
186 184
187 pci_iounmap(pdev, priv->base); 185 pci_iounmap(pdev, priv->base);
diff --git a/drivers/net/can/c_can/c_can_platform.c b/drivers/net/can/c_can/c_can_platform.c
index 294ced3cc227..d66ac265269c 100644
--- a/drivers/net/can/c_can/c_can_platform.c
+++ b/drivers/net/can/c_can/c_can_platform.c
@@ -322,7 +322,7 @@ static struct platform_driver c_can_plat_driver = {
322 .driver = { 322 .driver = {
323 .name = KBUILD_MODNAME, 323 .name = KBUILD_MODNAME,
324 .owner = THIS_MODULE, 324 .owner = THIS_MODULE,
325 .of_match_table = of_match_ptr(c_can_of_table), 325 .of_match_table = c_can_of_table,
326 }, 326 },
327 .probe = c_can_plat_probe, 327 .probe = c_can_plat_probe,
328 .remove = c_can_plat_remove, 328 .remove = c_can_plat_remove,
diff --git a/drivers/net/can/cc770/cc770_platform.c b/drivers/net/can/cc770/cc770_platform.c
index 034bdd816a60..ad76734b3ecc 100644
--- a/drivers/net/can/cc770/cc770_platform.c
+++ b/drivers/net/can/cc770/cc770_platform.c
@@ -152,7 +152,7 @@ static int cc770_get_platform_data(struct platform_device *pdev,
152 struct cc770_priv *priv) 152 struct cc770_priv *priv)
153{ 153{
154 154
155 struct cc770_platform_data *pdata = pdev->dev.platform_data; 155 struct cc770_platform_data *pdata = dev_get_platdata(&pdev->dev);
156 156
157 priv->can.clock.freq = pdata->osc_freq; 157 priv->can.clock.freq = pdata->osc_freq;
158 if (priv->cpu_interface & CPUIF_DSC) 158 if (priv->cpu_interface & CPUIF_DSC)
@@ -203,7 +203,7 @@ static int cc770_platform_probe(struct platform_device *pdev)
203 203
204 if (pdev->dev.of_node) 204 if (pdev->dev.of_node)
205 err = cc770_get_of_node_data(pdev, priv); 205 err = cc770_get_of_node_data(pdev, priv);
206 else if (pdev->dev.platform_data) 206 else if (dev_get_platdata(&pdev->dev))
207 err = cc770_get_platform_data(pdev, priv); 207 err = cc770_get_platform_data(pdev, priv);
208 else 208 else
209 err = -ENODEV; 209 err = -ENODEV;
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
index 1870c4731a57..bda1888cae9a 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
@@ -645,19 +645,6 @@ static int can_changelink(struct net_device *dev,
645 /* We need synchronization with dev->stop() */ 645 /* We need synchronization with dev->stop() */
646 ASSERT_RTNL(); 646 ASSERT_RTNL();
647 647
648 if (data[IFLA_CAN_CTRLMODE]) {
649 struct can_ctrlmode *cm;
650
651 /* Do not allow changing controller mode while running */
652 if (dev->flags & IFF_UP)
653 return -EBUSY;
654 cm = nla_data(data[IFLA_CAN_CTRLMODE]);
655 if (cm->flags & ~priv->ctrlmode_supported)
656 return -EOPNOTSUPP;
657 priv->ctrlmode &= ~cm->mask;
658 priv->ctrlmode |= cm->flags;
659 }
660
661 if (data[IFLA_CAN_BITTIMING]) { 648 if (data[IFLA_CAN_BITTIMING]) {
662 struct can_bittiming bt; 649 struct can_bittiming bt;
663 650
@@ -680,6 +667,19 @@ static int can_changelink(struct net_device *dev,
680 } 667 }
681 } 668 }
682 669
670 if (data[IFLA_CAN_CTRLMODE]) {
671 struct can_ctrlmode *cm;
672
673 /* Do not allow changing controller mode while running */
674 if (dev->flags & IFF_UP)
675 return -EBUSY;
676 cm = nla_data(data[IFLA_CAN_CTRLMODE]);
677 if (cm->flags & ~priv->ctrlmode_supported)
678 return -EOPNOTSUPP;
679 priv->ctrlmode &= ~cm->mask;
680 priv->ctrlmode |= cm->flags;
681 }
682
683 if (data[IFLA_CAN_RESTART_MS]) { 683 if (data[IFLA_CAN_RESTART_MS]) {
684 /* Do not allow changing restart delay while running */ 684 /* Do not allow changing restart delay while running */
685 if (dev->flags & IFF_UP) 685 if (dev->flags & IFF_UP)
@@ -702,17 +702,17 @@ static int can_changelink(struct net_device *dev,
702static size_t can_get_size(const struct net_device *dev) 702static size_t can_get_size(const struct net_device *dev)
703{ 703{
704 struct can_priv *priv = netdev_priv(dev); 704 struct can_priv *priv = netdev_priv(dev);
705 size_t size; 705 size_t size = 0;
706 706
707 size = nla_total_size(sizeof(u32)); /* IFLA_CAN_STATE */ 707 size += nla_total_size(sizeof(struct can_bittiming)); /* IFLA_CAN_BITTIMING */
708 size += nla_total_size(sizeof(struct can_ctrlmode)); /* IFLA_CAN_CTRLMODE */ 708 if (priv->bittiming_const) /* IFLA_CAN_BITTIMING_CONST */
709 size += nla_total_size(sizeof(u32)); /* IFLA_CAN_RESTART_MS */
710 size += nla_total_size(sizeof(struct can_bittiming)); /* IFLA_CAN_BITTIMING */
711 size += nla_total_size(sizeof(struct can_clock)); /* IFLA_CAN_CLOCK */
712 if (priv->do_get_berr_counter) /* IFLA_CAN_BERR_COUNTER */
713 size += nla_total_size(sizeof(struct can_berr_counter));
714 if (priv->bittiming_const) /* IFLA_CAN_BITTIMING_CONST */
715 size += nla_total_size(sizeof(struct can_bittiming_const)); 709 size += nla_total_size(sizeof(struct can_bittiming_const));
710 size += nla_total_size(sizeof(struct can_clock)); /* IFLA_CAN_CLOCK */
711 size += nla_total_size(sizeof(u32)); /* IFLA_CAN_STATE */
712 size += nla_total_size(sizeof(struct can_ctrlmode)); /* IFLA_CAN_CTRLMODE */
713 size += nla_total_size(sizeof(u32)); /* IFLA_CAN_RESTART_MS */
714 if (priv->do_get_berr_counter) /* IFLA_CAN_BERR_COUNTER */
715 size += nla_total_size(sizeof(struct can_berr_counter));
716 716
717 return size; 717 return size;
718} 718}
@@ -726,23 +726,20 @@ static int can_fill_info(struct sk_buff *skb, const struct net_device *dev)
726 726
727 if (priv->do_get_state) 727 if (priv->do_get_state)
728 priv->do_get_state(dev, &state); 728 priv->do_get_state(dev, &state);
729 if (nla_put_u32(skb, IFLA_CAN_STATE, state) || 729 if (nla_put(skb, IFLA_CAN_BITTIMING,
730 nla_put(skb, IFLA_CAN_CTRLMODE, sizeof(cm), &cm) ||
731 nla_put_u32(skb, IFLA_CAN_RESTART_MS, priv->restart_ms) ||
732 nla_put(skb, IFLA_CAN_BITTIMING,
733 sizeof(priv->bittiming), &priv->bittiming) || 730 sizeof(priv->bittiming), &priv->bittiming) ||
731 (priv->bittiming_const &&
732 nla_put(skb, IFLA_CAN_BITTIMING_CONST,
733 sizeof(*priv->bittiming_const), priv->bittiming_const)) ||
734 nla_put(skb, IFLA_CAN_CLOCK, sizeof(cm), &priv->clock) || 734 nla_put(skb, IFLA_CAN_CLOCK, sizeof(cm), &priv->clock) ||
735 nla_put_u32(skb, IFLA_CAN_STATE, state) ||
736 nla_put(skb, IFLA_CAN_CTRLMODE, sizeof(cm), &cm) ||
737 nla_put_u32(skb, IFLA_CAN_RESTART_MS, priv->restart_ms) ||
735 (priv->do_get_berr_counter && 738 (priv->do_get_berr_counter &&
736 !priv->do_get_berr_counter(dev, &bec) && 739 !priv->do_get_berr_counter(dev, &bec) &&
737 nla_put(skb, IFLA_CAN_BERR_COUNTER, sizeof(bec), &bec)) || 740 nla_put(skb, IFLA_CAN_BERR_COUNTER, sizeof(bec), &bec)))
738 (priv->bittiming_const && 741 return -EMSGSIZE;
739 nla_put(skb, IFLA_CAN_BITTIMING_CONST,
740 sizeof(*priv->bittiming_const), priv->bittiming_const)))
741 goto nla_put_failure;
742 return 0; 742 return 0;
743
744nla_put_failure:
745 return -EMSGSIZE;
746} 743}
747 744
748static size_t can_get_xstats_size(const struct net_device *dev) 745static size_t can_get_xstats_size(const struct net_device *dev)
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 8f5ce747feb5..ae08cf129ebb 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -1068,7 +1068,7 @@ static int flexcan_probe(struct platform_device *pdev)
1068 priv->dev = dev; 1068 priv->dev = dev;
1069 priv->clk_ipg = clk_ipg; 1069 priv->clk_ipg = clk_ipg;
1070 priv->clk_per = clk_per; 1070 priv->clk_per = clk_per;
1071 priv->pdata = pdev->dev.platform_data; 1071 priv->pdata = dev_get_platdata(&pdev->dev);
1072 priv->devtype_data = devtype_data; 1072 priv->devtype_data = devtype_data;
1073 1073
1074 priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver"); 1074 priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c
index 36bd6fa1c7f3..ab5909a7bae9 100644
--- a/drivers/net/can/janz-ican3.c
+++ b/drivers/net/can/janz-ican3.c
@@ -1769,7 +1769,7 @@ static int ican3_probe(struct platform_device *pdev)
1769 struct device *dev; 1769 struct device *dev;
1770 int ret; 1770 int ret;
1771 1771
1772 pdata = pdev->dev.platform_data; 1772 pdata = dev_get_platdata(&pdev->dev);
1773 if (!pdata) 1773 if (!pdata)
1774 return -ENXIO; 1774 return -ENXIO;
1775 1775
diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c
index fe7dd696957e..08ac401e0214 100644
--- a/drivers/net/can/mcp251x.c
+++ b/drivers/net/can/mcp251x.c
@@ -999,7 +999,7 @@ static int mcp251x_can_probe(struct spi_device *spi)
999{ 999{
1000 struct net_device *net; 1000 struct net_device *net;
1001 struct mcp251x_priv *priv; 1001 struct mcp251x_priv *priv;
1002 struct mcp251x_platform_data *pdata = spi->dev.platform_data; 1002 struct mcp251x_platform_data *pdata = dev_get_platdata(&spi->dev);
1003 int ret = -ENODEV; 1003 int ret = -ENODEV;
1004 1004
1005 if (!pdata) 1005 if (!pdata)
diff --git a/drivers/net/can/mscan/mscan.h b/drivers/net/can/mscan/mscan.h
index 9c24d60a23b1..e98abb97a050 100644
--- a/drivers/net/can/mscan/mscan.h
+++ b/drivers/net/can/mscan/mscan.h
@@ -297,8 +297,8 @@ struct mscan_priv {
297 struct napi_struct napi; 297 struct napi_struct napi;
298}; 298};
299 299
300extern struct net_device *alloc_mscandev(void); 300struct net_device *alloc_mscandev(void);
301extern int register_mscandev(struct net_device *dev, int mscan_clksrc); 301int register_mscandev(struct net_device *dev, int mscan_clksrc);
302extern void unregister_mscandev(struct net_device *dev); 302void unregister_mscandev(struct net_device *dev);
303 303
304#endif /* __MSCAN_H__ */ 304#endif /* __MSCAN_H__ */
diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c
index 5c314a961970..5f0e9b3bfa7b 100644
--- a/drivers/net/can/pch_can.c
+++ b/drivers/net/can/pch_can.c
@@ -964,7 +964,6 @@ static void pch_can_remove(struct pci_dev *pdev)
964 pci_disable_msi(priv->dev); 964 pci_disable_msi(priv->dev);
965 pci_release_regions(pdev); 965 pci_release_regions(pdev);
966 pci_disable_device(pdev); 966 pci_disable_device(pdev);
967 pci_set_drvdata(pdev, NULL);
968 pch_can_reset(priv); 967 pch_can_reset(priv);
969 pci_iounmap(pdev, priv->regs); 968 pci_iounmap(pdev, priv->regs);
970 free_candev(priv->ndev); 969 free_candev(priv->ndev);
diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c
index 3752342a678a..835921388e7b 100644
--- a/drivers/net/can/sja1000/ems_pci.c
+++ b/drivers/net/can/sja1000/ems_pci.c
@@ -207,7 +207,6 @@ static void ems_pci_del_card(struct pci_dev *pdev)
207 kfree(card); 207 kfree(card);
208 208
209 pci_disable_device(pdev); 209 pci_disable_device(pdev);
210 pci_set_drvdata(pdev, NULL);
211} 210}
212 211
213static void ems_pci_card_reset(struct ems_pci_card *card) 212static void ems_pci_card_reset(struct ems_pci_card *card)
diff --git a/drivers/net/can/sja1000/kvaser_pci.c b/drivers/net/can/sja1000/kvaser_pci.c
index 217585b97cd3..087b13bd300e 100644
--- a/drivers/net/can/sja1000/kvaser_pci.c
+++ b/drivers/net/can/sja1000/kvaser_pci.c
@@ -387,7 +387,6 @@ static void kvaser_pci_remove_one(struct pci_dev *pdev)
387 387
388 pci_release_regions(pdev); 388 pci_release_regions(pdev);
389 pci_disable_device(pdev); 389 pci_disable_device(pdev);
390 pci_set_drvdata(pdev, NULL);
391} 390}
392 391
393static struct pci_driver kvaser_pci_driver = { 392static struct pci_driver kvaser_pci_driver = {
diff --git a/drivers/net/can/sja1000/peak_pci.c b/drivers/net/can/sja1000/peak_pci.c
index 6b6f0ad75090..065ca49eb45e 100644
--- a/drivers/net/can/sja1000/peak_pci.c
+++ b/drivers/net/can/sja1000/peak_pci.c
@@ -744,8 +744,6 @@ static void peak_pci_remove(struct pci_dev *pdev)
744 pci_iounmap(pdev, cfg_base); 744 pci_iounmap(pdev, cfg_base);
745 pci_release_regions(pdev); 745 pci_release_regions(pdev);
746 pci_disable_device(pdev); 746 pci_disable_device(pdev);
747
748 pci_set_drvdata(pdev, NULL);
749} 747}
750 748
751static struct pci_driver peak_pci_driver = { 749static struct pci_driver peak_pci_driver = {
diff --git a/drivers/net/can/sja1000/plx_pci.c b/drivers/net/can/sja1000/plx_pci.c
index c52c1e96bf90..f9b4f81cd86a 100644
--- a/drivers/net/can/sja1000/plx_pci.c
+++ b/drivers/net/can/sja1000/plx_pci.c
@@ -477,7 +477,6 @@ static void plx_pci_del_card(struct pci_dev *pdev)
477 kfree(card); 477 kfree(card);
478 478
479 pci_disable_device(pdev); 479 pci_disable_device(pdev);
480 pci_set_drvdata(pdev, NULL);
481} 480}
482 481
483/* 482/*
diff --git a/drivers/net/can/sja1000/sja1000_platform.c b/drivers/net/can/sja1000/sja1000_platform.c
index 8e259c541036..29f9b6321187 100644
--- a/drivers/net/can/sja1000/sja1000_platform.c
+++ b/drivers/net/can/sja1000/sja1000_platform.c
@@ -76,7 +76,7 @@ static int sp_probe(struct platform_device *pdev)
76 struct resource *res_mem, *res_irq; 76 struct resource *res_mem, *res_irq;
77 struct sja1000_platform_data *pdata; 77 struct sja1000_platform_data *pdata;
78 78
79 pdata = pdev->dev.platform_data; 79 pdata = dev_get_platdata(&pdev->dev);
80 if (!pdata) { 80 if (!pdata) {
81 dev_err(&pdev->dev, "No platform data provided!\n"); 81 dev_err(&pdev->dev, "No platform data provided!\n");
82 err = -ENODEV; 82 err = -ENODEV;
diff --git a/drivers/net/can/softing/softing.h b/drivers/net/can/softing/softing.h
index afd7d85b6915..35f062282dbd 100644
--- a/drivers/net/can/softing/softing.h
+++ b/drivers/net/can/softing/softing.h
@@ -71,34 +71,34 @@ struct softing {
71 } id; 71 } id;
72}; 72};
73 73
74extern int softing_default_output(struct net_device *netdev); 74int softing_default_output(struct net_device *netdev);
75 75
76extern ktime_t softing_raw2ktime(struct softing *card, u32 raw); 76ktime_t softing_raw2ktime(struct softing *card, u32 raw);
77 77
78extern int softing_chip_poweron(struct softing *card); 78int softing_chip_poweron(struct softing *card);
79 79
80extern int softing_bootloader_command(struct softing *card, int16_t cmd, 80int softing_bootloader_command(struct softing *card, int16_t cmd,
81 const char *msg); 81 const char *msg);
82 82
83/* Load firmware after reset */ 83/* Load firmware after reset */
84extern int softing_load_fw(const char *file, struct softing *card, 84int softing_load_fw(const char *file, struct softing *card,
85 __iomem uint8_t *virt, unsigned int size, int offset); 85 __iomem uint8_t *virt, unsigned int size, int offset);
86 86
87/* Load final application firmware after bootloader */ 87/* Load final application firmware after bootloader */
88extern int softing_load_app_fw(const char *file, struct softing *card); 88int softing_load_app_fw(const char *file, struct softing *card);
89 89
90/* 90/*
91 * enable or disable irq 91 * enable or disable irq
92 * only called with fw.lock locked 92 * only called with fw.lock locked
93 */ 93 */
94extern int softing_enable_irq(struct softing *card, int enable); 94int softing_enable_irq(struct softing *card, int enable);
95 95
96/* start/stop 1 bus on card */ 96/* start/stop 1 bus on card */
97extern int softing_startstop(struct net_device *netdev, int up); 97int softing_startstop(struct net_device *netdev, int up);
98 98
99/* netif_rx() */ 99/* netif_rx() */
100extern int softing_netdev_rx(struct net_device *netdev, 100int softing_netdev_rx(struct net_device *netdev, const struct can_frame *msg,
101 const struct can_frame *msg, ktime_t ktime); 101 ktime_t ktime);
102 102
103/* SOFTING DPRAM mappings */ 103/* SOFTING DPRAM mappings */
104#define DPRAM_RX 0x0000 104#define DPRAM_RX 0x0000
diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c
index 65eef1eea2e2..6cd5c01b624d 100644
--- a/drivers/net/can/softing/softing_main.c
+++ b/drivers/net/can/softing/softing_main.c
@@ -768,7 +768,7 @@ static int softing_pdev_remove(struct platform_device *pdev)
768 768
769static int softing_pdev_probe(struct platform_device *pdev) 769static int softing_pdev_probe(struct platform_device *pdev)
770{ 770{
771 const struct softing_platform_data *pdat = pdev->dev.platform_data; 771 const struct softing_platform_data *pdat = dev_get_platdata(&pdev->dev);
772 struct softing *card; 772 struct softing *card;
773 struct net_device *netdev; 773 struct net_device *netdev;
774 struct softing_priv *priv; 774 struct softing_priv *priv;
diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c
index 3a349a22d5bc..60d95b44d0f7 100644
--- a/drivers/net/can/ti_hecc.c
+++ b/drivers/net/can/ti_hecc.c
@@ -286,15 +286,6 @@ static inline u32 hecc_get_bit(struct ti_hecc_priv *priv, int reg, u32 bit_mask)
286 return (hecc_read(priv, reg) & bit_mask) ? 1 : 0; 286 return (hecc_read(priv, reg) & bit_mask) ? 1 : 0;
287} 287}
288 288
289static int ti_hecc_get_state(const struct net_device *ndev,
290 enum can_state *state)
291{
292 struct ti_hecc_priv *priv = netdev_priv(ndev);
293
294 *state = priv->can.state;
295 return 0;
296}
297
298static int ti_hecc_set_btc(struct ti_hecc_priv *priv) 289static int ti_hecc_set_btc(struct ti_hecc_priv *priv)
299{ 290{
300 struct can_bittiming *bit_timing = &priv->can.bittiming; 291 struct can_bittiming *bit_timing = &priv->can.bittiming;
@@ -894,7 +885,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
894 void __iomem *addr; 885 void __iomem *addr;
895 int err = -ENODEV; 886 int err = -ENODEV;
896 887
897 pdata = pdev->dev.platform_data; 888 pdata = dev_get_platdata(&pdev->dev);
898 if (!pdata) { 889 if (!pdata) {
899 dev_err(&pdev->dev, "No platform data\n"); 890 dev_err(&pdev->dev, "No platform data\n");
900 goto probe_exit; 891 goto probe_exit;
@@ -940,7 +931,6 @@ static int ti_hecc_probe(struct platform_device *pdev)
940 931
941 priv->can.bittiming_const = &ti_hecc_bittiming_const; 932 priv->can.bittiming_const = &ti_hecc_bittiming_const;
942 priv->can.do_set_mode = ti_hecc_do_set_mode; 933 priv->can.do_set_mode = ti_hecc_do_set_mode;
943 priv->can.do_get_state = ti_hecc_get_state;
944 priv->can.do_get_berr_counter = ti_hecc_get_berr_counter; 934 priv->can.do_get_berr_counter = ti_hecc_get_berr_counter;
945 priv->can.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES; 935 priv->can.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES;
946 936