Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fed2c6fd authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'for-davem' of git://gitorious.org/linux-can/linux-can-next



Marc Kleine-Budde says:

====================
this pull request is for net-next/master. There is a patch by Alexander
Stein fixing a reference counter problem which can make driver
unloading impossible (stable Cc'ed). And several patches by me which
remove an obsolete mechanism from several drivers, which is already
handled at the infrastructure level.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 481af03b 823d7a1f
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -609,8 +609,7 @@ void close_candev(struct net_device *dev)
{
{
	struct can_priv *priv = netdev_priv(dev);
	struct can_priv *priv = netdev_priv(dev);


	if (del_timer_sync(&priv->restart_timer))
	del_timer_sync(&priv->restart_timer);
		dev_put(dev);
	can_flush_echo_skb(dev);
	can_flush_echo_skb(dev);
}
}
EXPORT_SYMBOL_GPL(close_candev);
EXPORT_SYMBOL_GPL(close_candev);
+0 −8
Original line number Original line Diff line number Diff line
@@ -517,12 +517,8 @@ static irqreturn_t mscan_isr(int irq, void *dev_id)


static int mscan_do_set_mode(struct net_device *dev, enum can_mode mode)
static int mscan_do_set_mode(struct net_device *dev, enum can_mode mode)
{
{
	struct mscan_priv *priv = netdev_priv(dev);
	int ret = 0;
	int ret = 0;


	if (!priv->open_time)
		return -EINVAL;

	switch (mode) {
	switch (mode) {
	case CAN_MODE_START:
	case CAN_MODE_START:
		ret = mscan_restart(dev);
		ret = mscan_restart(dev);
@@ -590,8 +586,6 @@ static int mscan_open(struct net_device *dev)
		goto exit_napi_disable;
		goto exit_napi_disable;
	}
	}


	priv->open_time = jiffies;

	if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)
	if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)
		setbits8(&regs->canctl1, MSCAN_LISTEN);
		setbits8(&regs->canctl1, MSCAN_LISTEN);
	else
	else
@@ -606,7 +600,6 @@ static int mscan_open(struct net_device *dev)
	return 0;
	return 0;


exit_free_irq:
exit_free_irq:
	priv->open_time = 0;
	free_irq(dev->irq, dev);
	free_irq(dev->irq, dev);
exit_napi_disable:
exit_napi_disable:
	napi_disable(&priv->napi);
	napi_disable(&priv->napi);
@@ -627,7 +620,6 @@ static int mscan_close(struct net_device *dev)
	mscan_set_mode(dev, MSCAN_INIT_MODE);
	mscan_set_mode(dev, MSCAN_INIT_MODE);
	close_candev(dev);
	close_candev(dev);
	free_irq(dev->irq, dev);
	free_irq(dev->irq, dev);
	priv->open_time = 0;


	return 0;
	return 0;
}
}
+0 −1
Original line number Original line Diff line number Diff line
@@ -281,7 +281,6 @@ struct tx_queue_entry {
struct mscan_priv {
struct mscan_priv {
	struct can_priv can;	/* must be the first member */
	struct can_priv can;	/* must be the first member */
	unsigned int type; 	/* MSCAN type variants */
	unsigned int type; 	/* MSCAN type variants */
	long open_time;
	unsigned long flags;
	unsigned long flags;
	void __iomem *reg_base;	/* ioremap'ed address to registers */
	void __iomem *reg_base;	/* ioremap'ed address to registers */
	u8 shadow_statflg;
	u8 shadow_statflg;
+0 −8
Original line number Original line Diff line number Diff line
@@ -188,11 +188,6 @@ static void sja1000_start(struct net_device *dev)


static int sja1000_set_mode(struct net_device *dev, enum can_mode mode)
static int sja1000_set_mode(struct net_device *dev, enum can_mode mode)
{
{
	struct sja1000_priv *priv = netdev_priv(dev);

	if (!priv->open_time)
		return -EINVAL;

	switch (mode) {
	switch (mode) {
	case CAN_MODE_START:
	case CAN_MODE_START:
		sja1000_start(dev);
		sja1000_start(dev);
@@ -579,7 +574,6 @@ static int sja1000_open(struct net_device *dev)


	/* init and start chi */
	/* init and start chi */
	sja1000_start(dev);
	sja1000_start(dev);
	priv->open_time = jiffies;


	netif_start_queue(dev);
	netif_start_queue(dev);


@@ -598,8 +592,6 @@ static int sja1000_close(struct net_device *dev)


	close_candev(dev);
	close_candev(dev);


	priv->open_time = 0;

	return 0;
	return 0;
}
}


+0 −1
Original line number Original line Diff line number Diff line
@@ -152,7 +152,6 @@
 */
 */
struct sja1000_priv {
struct sja1000_priv {
	struct can_priv can;	/* must be the first member */
	struct can_priv can;	/* must be the first member */
	int open_time;
	struct sk_buff *echo_skb;
	struct sk_buff *echo_skb;


	/* the lower-layer is responsible for appropriate locking */
	/* the lower-layer is responsible for appropriate locking */
Loading