aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/can/dev.c3
-rw-r--r--drivers/net/can/mscan/mscan.c8
-rw-r--r--drivers/net/can/mscan/mscan.h1
-rw-r--r--drivers/net/can/sja1000/sja1000.c8
-rw-r--r--drivers/net/can/sja1000/sja1000.h1
-rw-r--r--drivers/net/can/usb/ems_usb.c7
-rw-r--r--drivers/net/can/usb/esd_usb2.c10
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_core.c5
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_core.h1
9 files changed, 1 insertions, 43 deletions
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
index 963e2ccd10db..8233e5ed2939 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
@@ -609,8 +609,7 @@ void close_candev(struct net_device *dev)
609{ 609{
610 struct can_priv *priv = netdev_priv(dev); 610 struct can_priv *priv = netdev_priv(dev);
611 611
612 if (del_timer_sync(&priv->restart_timer)) 612 del_timer_sync(&priv->restart_timer);
613 dev_put(dev);
614 can_flush_echo_skb(dev); 613 can_flush_echo_skb(dev);
615} 614}
616EXPORT_SYMBOL_GPL(close_candev); 615EXPORT_SYMBOL_GPL(close_candev);
diff --git a/drivers/net/can/mscan/mscan.c b/drivers/net/can/mscan/mscan.c
index 2b104d5f422c..e6b40954e204 100644
--- a/drivers/net/can/mscan/mscan.c
+++ b/drivers/net/can/mscan/mscan.c
@@ -517,12 +517,8 @@ static irqreturn_t mscan_isr(int irq, void *dev_id)
517 517
518static int mscan_do_set_mode(struct net_device *dev, enum can_mode mode) 518static int mscan_do_set_mode(struct net_device *dev, enum can_mode mode)
519{ 519{
520 struct mscan_priv *priv = netdev_priv(dev);
521 int ret = 0; 520 int ret = 0;
522 521
523 if (!priv->open_time)
524 return -EINVAL;
525
526 switch (mode) { 522 switch (mode) {
527 case CAN_MODE_START: 523 case CAN_MODE_START:
528 ret = mscan_restart(dev); 524 ret = mscan_restart(dev);
@@ -590,8 +586,6 @@ static int mscan_open(struct net_device *dev)
590 goto exit_napi_disable; 586 goto exit_napi_disable;
591 } 587 }
592 588
593 priv->open_time = jiffies;
594
595 if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) 589 if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)
596 setbits8(&regs->canctl1, MSCAN_LISTEN); 590 setbits8(&regs->canctl1, MSCAN_LISTEN);
597 else 591 else
@@ -606,7 +600,6 @@ static int mscan_open(struct net_device *dev)
606 return 0; 600 return 0;
607 601
608exit_free_irq: 602exit_free_irq:
609 priv->open_time = 0;
610 free_irq(dev->irq, dev); 603 free_irq(dev->irq, dev);
611exit_napi_disable: 604exit_napi_disable:
612 napi_disable(&priv->napi); 605 napi_disable(&priv->napi);
@@ -627,7 +620,6 @@ static int mscan_close(struct net_device *dev)
627 mscan_set_mode(dev, MSCAN_INIT_MODE); 620 mscan_set_mode(dev, MSCAN_INIT_MODE);
628 close_candev(dev); 621 close_candev(dev);
629 free_irq(dev->irq, dev); 622 free_irq(dev->irq, dev);
630 priv->open_time = 0;
631 623
632 return 0; 624 return 0;
633} 625}
diff --git a/drivers/net/can/mscan/mscan.h b/drivers/net/can/mscan/mscan.h
index b43e9f5d3268..af2ed8baf0a3 100644
--- a/drivers/net/can/mscan/mscan.h
+++ b/drivers/net/can/mscan/mscan.h
@@ -281,7 +281,6 @@ struct tx_queue_entry {
281struct mscan_priv { 281struct mscan_priv {
282 struct can_priv can; /* must be the first member */ 282 struct can_priv can; /* must be the first member */
283 unsigned int type; /* MSCAN type variants */ 283 unsigned int type; /* MSCAN type variants */
284 long open_time;
285 unsigned long flags; 284 unsigned long flags;
286 void __iomem *reg_base; /* ioremap'ed address to registers */ 285 void __iomem *reg_base; /* ioremap'ed address to registers */
287 u8 shadow_statflg; 286 u8 shadow_statflg;
diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
index 25011dbe1b96..83ee11eca0e2 100644
--- a/drivers/net/can/sja1000/sja1000.c
+++ b/drivers/net/can/sja1000/sja1000.c
@@ -188,11 +188,6 @@ static void sja1000_start(struct net_device *dev)
188 188
189static int sja1000_set_mode(struct net_device *dev, enum can_mode mode) 189static int sja1000_set_mode(struct net_device *dev, enum can_mode mode)
190{ 190{
191 struct sja1000_priv *priv = netdev_priv(dev);
192
193 if (!priv->open_time)
194 return -EINVAL;
195
196 switch (mode) { 191 switch (mode) {
197 case CAN_MODE_START: 192 case CAN_MODE_START:
198 sja1000_start(dev); 193 sja1000_start(dev);
@@ -579,7 +574,6 @@ static int sja1000_open(struct net_device *dev)
579 574
580 /* init and start chi */ 575 /* init and start chi */
581 sja1000_start(dev); 576 sja1000_start(dev);
582 priv->open_time = jiffies;
583 577
584 netif_start_queue(dev); 578 netif_start_queue(dev);
585 579
@@ -598,8 +592,6 @@ static int sja1000_close(struct net_device *dev)
598 592
599 close_candev(dev); 593 close_candev(dev);
600 594
601 priv->open_time = 0;
602
603 return 0; 595 return 0;
604} 596}
605 597
diff --git a/drivers/net/can/sja1000/sja1000.h b/drivers/net/can/sja1000/sja1000.h
index 23fff06875f5..afa99847a510 100644
--- a/drivers/net/can/sja1000/sja1000.h
+++ b/drivers/net/can/sja1000/sja1000.h
@@ -152,7 +152,6 @@
152 */ 152 */
153struct sja1000_priv { 153struct sja1000_priv {
154 struct can_priv can; /* must be the first member */ 154 struct can_priv can; /* must be the first member */
155 int open_time;
156 struct sk_buff *echo_skb; 155 struct sk_buff *echo_skb;
157 156
158 /* the lower-layer is responsible for appropriate locking */ 157 /* the lower-layer is responsible for appropriate locking */
diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c
index 086fa321677a..c69f0b72b352 100644
--- a/drivers/net/can/usb/ems_usb.c
+++ b/drivers/net/can/usb/ems_usb.c
@@ -245,7 +245,6 @@ struct ems_tx_urb_context {
245 245
246struct ems_usb { 246struct ems_usb {
247 struct can_priv can; /* must be the first member */ 247 struct can_priv can; /* must be the first member */
248 int open_time;
249 248
250 struct sk_buff *echo_skb[MAX_TX_URBS]; 249 struct sk_buff *echo_skb[MAX_TX_URBS];
251 250
@@ -728,7 +727,6 @@ static int ems_usb_open(struct net_device *netdev)
728 return err; 727 return err;
729 } 728 }
730 729
731 dev->open_time = jiffies;
732 730
733 netif_start_queue(netdev); 731 netif_start_queue(netdev);
734 732
@@ -878,8 +876,6 @@ static int ems_usb_close(struct net_device *netdev)
878 876
879 close_candev(netdev); 877 close_candev(netdev);
880 878
881 dev->open_time = 0;
882
883 return 0; 879 return 0;
884} 880}
885 881
@@ -905,9 +901,6 @@ static int ems_usb_set_mode(struct net_device *netdev, enum can_mode mode)
905{ 901{
906 struct ems_usb *dev = netdev_priv(netdev); 902 struct ems_usb *dev = netdev_priv(netdev);
907 903
908 if (!dev->open_time)
909 return -EINVAL;
910
911 switch (mode) { 904 switch (mode) {
912 case CAN_MODE_START: 905 case CAN_MODE_START:
913 if (ems_usb_write_mode(dev, SJA1000_MOD_NORMAL)) 906 if (ems_usb_write_mode(dev, SJA1000_MOD_NORMAL))
diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c
index 124e0dd3490c..9b74d1e3ad44 100644
--- a/drivers/net/can/usb/esd_usb2.c
+++ b/drivers/net/can/usb/esd_usb2.c
@@ -217,7 +217,6 @@ struct esd_usb2_net_priv {
217 struct usb_anchor tx_submitted; 217 struct usb_anchor tx_submitted;
218 struct esd_tx_urb_context tx_contexts[MAX_TX_URBS]; 218 struct esd_tx_urb_context tx_contexts[MAX_TX_URBS];
219 219
220 int open_time;
221 struct esd_usb2 *usb2; 220 struct esd_usb2 *usb2;
222 struct net_device *netdev; 221 struct net_device *netdev;
223 int index; 222 int index;
@@ -695,8 +694,6 @@ static int esd_usb2_open(struct net_device *netdev)
695 return err; 694 return err;
696 } 695 }
697 696
698 priv->open_time = jiffies;
699
700 netif_start_queue(netdev); 697 netif_start_queue(netdev);
701 698
702 return 0; 699 return 0;
@@ -864,8 +861,6 @@ static int esd_usb2_close(struct net_device *netdev)
864 861
865 close_candev(netdev); 862 close_candev(netdev);
866 863
867 priv->open_time = 0;
868
869 return 0; 864 return 0;
870} 865}
871 866
@@ -941,11 +936,6 @@ static int esd_usb2_get_berr_counter(const struct net_device *netdev,
941 936
942static int esd_usb2_set_mode(struct net_device *netdev, enum can_mode mode) 937static int esd_usb2_set_mode(struct net_device *netdev, enum can_mode mode)
943{ 938{
944 struct esd_usb2_net_priv *priv = netdev_priv(netdev);
945
946 if (!priv->open_time)
947 return -EINVAL;
948
949 switch (mode) { 939 switch (mode) {
950 case CAN_MODE_START: 940 case CAN_MODE_START:
951 netif_wake_queue(netdev); 941 netif_wake_queue(netdev);
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.c b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
index c4643c400d46..d9290ea788e0 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_core.c
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_core.c
@@ -520,7 +520,6 @@ static int peak_usb_ndo_open(struct net_device *netdev)
520 return err; 520 return err;
521 } 521 }
522 522
523 dev->open_time = jiffies;
524 netif_start_queue(netdev); 523 netif_start_queue(netdev);
525 524
526 return 0; 525 return 0;
@@ -576,7 +575,6 @@ static int peak_usb_ndo_stop(struct net_device *netdev)
576 575
577 close_candev(netdev); 576 close_candev(netdev);
578 577
579 dev->open_time = 0;
580 dev->can.state = CAN_STATE_STOPPED; 578 dev->can.state = CAN_STATE_STOPPED;
581 579
582 /* can set bus off now */ 580 /* can set bus off now */
@@ -661,9 +659,6 @@ static int peak_usb_set_mode(struct net_device *netdev, enum can_mode mode)
661 struct peak_usb_device *dev = netdev_priv(netdev); 659 struct peak_usb_device *dev = netdev_priv(netdev);
662 int err = 0; 660 int err = 0;
663 661
664 if (!dev->open_time)
665 return -EINVAL;
666
667 switch (mode) { 662 switch (mode) {
668 case CAN_MODE_START: 663 case CAN_MODE_START:
669 err = peak_usb_restart(dev); 664 err = peak_usb_restart(dev);
diff --git a/drivers/net/can/usb/peak_usb/pcan_usb_core.h b/drivers/net/can/usb/peak_usb/pcan_usb_core.h
index c8e5e91d7cb5..073b47ff8eee 100644
--- a/drivers/net/can/usb/peak_usb/pcan_usb_core.h
+++ b/drivers/net/can/usb/peak_usb/pcan_usb_core.h
@@ -104,7 +104,6 @@ struct peak_usb_device {
104 struct can_priv can; 104 struct can_priv can;
105 struct peak_usb_adapter *adapter; 105 struct peak_usb_adapter *adapter;
106 unsigned int ctrl_idx; 106 unsigned int ctrl_idx;
107 int open_time;
108 u32 state; 107 u32 state;
109 108
110 struct sk_buff *echo_skb[PCAN_USB_MAX_TX_URBS]; 109 struct sk_buff *echo_skb[PCAN_USB_MAX_TX_URBS];