Commit 8575f314 authored by Marc Kleine-Budde's avatar Marc Kleine-Budde

Merge branch 'can-slcan-checkpatch-cleanups'

Marc Kleine-Budde says:

====================
can: slcan: checkpatch cleanups

This is a patch series consisting of various checkpatch cleanups for
the slcan driver.
====================

Link: https://lore.kernel.org/all/20220704125954.1587880-1-mkl@pengutronix.deSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parents 0159a930 18de712a
...@@ -67,13 +67,14 @@ MODULE_AUTHOR("Oliver Hartkopp <socketcan@hartkopp.net>"); ...@@ -67,13 +67,14 @@ MODULE_AUTHOR("Oliver Hartkopp <socketcan@hartkopp.net>");
#define SLCAN_MAGIC 0x53CA #define SLCAN_MAGIC 0x53CA
static int maxdev = 10; /* MAX number of SLCAN channels; static int maxdev = 10; /* MAX number of SLCAN channels;
This can be overridden with * This can be overridden with
insmod slcan.ko maxdev=nnn */ * insmod slcan.ko maxdev=nnn
*/
module_param(maxdev, int, 0); module_param(maxdev, int, 0);
MODULE_PARM_DESC(maxdev, "Maximum number of slcan interfaces"); MODULE_PARM_DESC(maxdev, "Maximum number of slcan interfaces");
/* maximum rx buffer len: extended CAN frame with timestamp */ /* maximum rx buffer len: extended CAN frame with timestamp */
#define SLC_MTU (sizeof("T1111222281122334455667788EA5F\r")+1) #define SLC_MTU (sizeof("T1111222281122334455667788EA5F\r") + 1)
#define SLC_CMD_LEN 1 #define SLC_CMD_LEN 1
#define SLC_SFF_ID_LEN 3 #define SLC_SFF_ID_LEN 3
...@@ -139,12 +140,11 @@ int slcan_enable_err_rst_on_open(struct net_device *ndev, bool on) ...@@ -139,12 +140,11 @@ int slcan_enable_err_rst_on_open(struct net_device *ndev, bool on)
return 0; return 0;
} }
/************************************************************************ /*************************************************************************
* SLCAN ENCAPSULATION FORMAT * * SLCAN ENCAPSULATION FORMAT *
************************************************************************/ *************************************************************************/
/* /* A CAN frame has a can_id (11 bit standard frame format OR 29 bit extended
* A CAN frame has a can_id (11 bit standard frame format OR 29 bit extended
* frame format) a data length code (len) which can be from 0 to 8 * frame format) a data length code (len) which can be from 0 to 8
* and up to <len> data bytes as payload. * and up to <len> data bytes as payload.
* Additionally a CAN frame may become a remote transmission frame if the * Additionally a CAN frame may become a remote transmission frame if the
...@@ -174,9 +174,9 @@ int slcan_enable_err_rst_on_open(struct net_device *ndev, bool on) ...@@ -174,9 +174,9 @@ int slcan_enable_err_rst_on_open(struct net_device *ndev, bool on)
* *
*/ */
/************************************************************************ /*************************************************************************
* STANDARD SLCAN DECAPSULATION * * STANDARD SLCAN DECAPSULATION *
************************************************************************/ *************************************************************************/
/* Send one completely decapsulated can_frame to the network layer */ /* Send one completely decapsulated can_frame to the network layer */
static void slc_bump_frame(struct slcan *sl) static void slc_bump_frame(struct slcan *sl)
...@@ -469,26 +469,26 @@ static void slcan_unesc(struct slcan *sl, unsigned char s) ...@@ -469,26 +469,26 @@ static void slcan_unesc(struct slcan *sl, unsigned char s)
{ {
if ((s == '\r') || (s == '\a')) { /* CR or BEL ends the pdu */ if ((s == '\r') || (s == '\a')) { /* CR or BEL ends the pdu */
if (!test_and_clear_bit(SLF_ERROR, &sl->flags) && if (!test_and_clear_bit(SLF_ERROR, &sl->flags) &&
(sl->rcount > 4)) { sl->rcount > 4)
slc_bump(sl); slc_bump(sl);
}
sl->rcount = 0; sl->rcount = 0;
} else { } else {
if (!test_bit(SLF_ERROR, &sl->flags)) { if (!test_bit(SLF_ERROR, &sl->flags)) {
if (sl->rcount < SLC_MTU) { if (sl->rcount < SLC_MTU) {
sl->rbuff[sl->rcount++] = s; sl->rbuff[sl->rcount++] = s;
return; return;
} else {
sl->dev->stats.rx_over_errors++;
set_bit(SLF_ERROR, &sl->flags);
} }
sl->dev->stats.rx_over_errors++;
set_bit(SLF_ERROR, &sl->flags);
} }
} }
} }
/************************************************************************ /*************************************************************************
* STANDARD SLCAN ENCAPSULATION * * STANDARD SLCAN ENCAPSULATION *
************************************************************************/ *************************************************************************/
/* Encapsulate one can_frame and stuff into a TTY queue. */ /* Encapsulate one can_frame and stuff into a TTY queue. */
static void slc_encaps(struct slcan *sl, struct can_frame *cf) static void slc_encaps(struct slcan *sl, struct can_frame *cf)
...@@ -575,7 +575,8 @@ static void slcan_transmit(struct work_struct *work) ...@@ -575,7 +575,8 @@ static void slcan_transmit(struct work_struct *work)
} }
/* Now serial buffer is almost free & we can start /* Now serial buffer is almost free & we can start
* transmission of another packet */ * transmission of another packet
*/
sl->dev->stats.tx_packets++; sl->dev->stats.tx_packets++;
clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags); clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags);
spin_unlock_bh(&sl->lock); spin_unlock_bh(&sl->lock);
...@@ -589,8 +590,7 @@ static void slcan_transmit(struct work_struct *work) ...@@ -589,8 +590,7 @@ static void slcan_transmit(struct work_struct *work)
spin_unlock_bh(&sl->lock); spin_unlock_bh(&sl->lock);
} }
/* /* Called by the driver when there's room for more data.
* Called by the driver when there's room for more data.
* Schedule the transmit. * Schedule the transmit.
*/ */
static void slcan_write_wakeup(struct tty_struct *tty) static void slcan_write_wakeup(struct tty_struct *tty)
...@@ -618,13 +618,13 @@ static netdev_tx_t slc_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -618,13 +618,13 @@ static netdev_tx_t slc_xmit(struct sk_buff *skb, struct net_device *dev)
netdev_warn(dev, "xmit: iface is down\n"); netdev_warn(dev, "xmit: iface is down\n");
goto out; goto out;
} }
if (sl->tty == NULL) { if (!sl->tty) {
spin_unlock(&sl->lock); spin_unlock(&sl->lock);
goto out; goto out;
} }
netif_stop_queue(sl->dev); netif_stop_queue(sl->dev);
slc_encaps(sl, (struct can_frame *) skb->data); /* encaps & send */ slc_encaps(sl, (struct can_frame *)skb->data); /* encaps & send */
spin_unlock(&sl->lock); spin_unlock(&sl->lock);
out: out:
...@@ -632,7 +632,6 @@ static netdev_tx_t slc_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -632,7 +632,6 @@ static netdev_tx_t slc_xmit(struct sk_buff *skb, struct net_device *dev)
return NETDEV_TX_OK; return NETDEV_TX_OK;
} }
/****************************************** /******************************************
* Routines looking at netdevice side. * Routines looking at netdevice side.
******************************************/ ******************************************/
...@@ -708,7 +707,7 @@ static int slc_open(struct net_device *dev) ...@@ -708,7 +707,7 @@ static int slc_open(struct net_device *dev)
unsigned char cmd[SLC_MTU]; unsigned char cmd[SLC_MTU];
int err, s; int err, s;
if (sl->tty == NULL) if (!sl->tty)
return -ENODEV; return -ENODEV;
/* The baud rate is not set with the command /* The baud rate is not set with the command
...@@ -736,7 +735,6 @@ static int slc_open(struct net_device *dev) ...@@ -736,7 +735,6 @@ static int slc_open(struct net_device *dev)
/* The CAN framework has already validate the bitrate value, /* The CAN framework has already validate the bitrate value,
* so we can avoid to check if `s' has been properly set. * so we can avoid to check if `s' has been properly set.
*/ */
snprintf(cmd, sizeof(cmd), "C\rS%d\r", s); snprintf(cmd, sizeof(cmd), "C\rS%d\r", s);
err = slcan_transmit_cmd(sl, cmd); err = slcan_transmit_cmd(sl, cmd);
if (err) { if (err) {
...@@ -792,23 +790,21 @@ static const struct net_device_ops slc_netdev_ops = { ...@@ -792,23 +790,21 @@ static const struct net_device_ops slc_netdev_ops = {
}; };
/****************************************** /******************************************
Routines looking at TTY side. * Routines looking at TTY side.
******************************************/ ******************************************/
/* /* Handle the 'receiver data ready' interrupt.
* Handle the 'receiver data ready' interrupt.
* This function is called by the 'tty_io' module in the kernel when * This function is called by the 'tty_io' module in the kernel when
* a block of SLCAN data has been received, which can now be decapsulated * a block of SLCAN data has been received, which can now be decapsulated
* and sent on to some IP layer for further processing. This will not * and sent on to some IP layer for further processing. This will not
* be re-entered while running but other ldisc functions may be called * be re-entered while running but other ldisc functions may be called
* in parallel * in parallel
*/ */
static void slcan_receive_buf(struct tty_struct *tty, static void slcan_receive_buf(struct tty_struct *tty,
const unsigned char *cp, const char *fp, const unsigned char *cp, const char *fp,
int count) int count)
{ {
struct slcan *sl = (struct slcan *) tty->disc_data; struct slcan *sl = (struct slcan *)tty->disc_data;
if (!sl || sl->magic != SLCAN_MAGIC || !netif_running(sl->dev)) if (!sl || sl->magic != SLCAN_MAGIC || !netif_running(sl->dev))
return; return;
...@@ -838,7 +834,7 @@ static void slc_sync(void) ...@@ -838,7 +834,7 @@ static void slc_sync(void)
for (i = 0; i < maxdev; i++) { for (i = 0; i < maxdev; i++) {
dev = slcan_devs[i]; dev = slcan_devs[i];
if (dev == NULL) if (!dev)
break; break;
sl = netdev_priv(dev); sl = netdev_priv(dev);
...@@ -858,9 +854,8 @@ static struct slcan *slc_alloc(void) ...@@ -858,9 +854,8 @@ static struct slcan *slc_alloc(void)
for (i = 0; i < maxdev; i++) { for (i = 0; i < maxdev; i++) {
dev = slcan_devs[i]; dev = slcan_devs[i];
if (dev == NULL) if (!dev)
break; break;
} }
/* Sorry, too many, all slots in use */ /* Sorry, too many, all slots in use */
...@@ -890,8 +885,7 @@ static struct slcan *slc_alloc(void) ...@@ -890,8 +885,7 @@ static struct slcan *slc_alloc(void)
return sl; return sl;
} }
/* /* Open the high-level part of the SLCAN channel.
* Open the high-level part of the SLCAN channel.
* This function is called by the TTY module when the * This function is called by the TTY module when the
* SLCAN line discipline is called for. Because we are * SLCAN line discipline is called for. Because we are
* sure the tty line exists, we only have to link it to * sure the tty line exists, we only have to link it to
...@@ -899,7 +893,6 @@ static struct slcan *slc_alloc(void) ...@@ -899,7 +893,6 @@ static struct slcan *slc_alloc(void)
* *
* Called in process context serialized from other ldisc calls. * Called in process context serialized from other ldisc calls.
*/ */
static int slcan_open(struct tty_struct *tty) static int slcan_open(struct tty_struct *tty)
{ {
struct slcan *sl; struct slcan *sl;
...@@ -908,12 +901,12 @@ static int slcan_open(struct tty_struct *tty) ...@@ -908,12 +901,12 @@ static int slcan_open(struct tty_struct *tty)
if (!capable(CAP_NET_ADMIN)) if (!capable(CAP_NET_ADMIN))
return -EPERM; return -EPERM;
if (tty->ops->write == NULL) if (!tty->ops->write)
return -EOPNOTSUPP; return -EOPNOTSUPP;
/* RTnetlink lock is misused here to serialize concurrent /* RTnetlink lock is misused here to serialize concurrent
opens of slcan channels. There are better ways, but it is * opens of slcan channels. There are better ways, but it is
the simplest one. * the simplest one.
*/ */
rtnl_lock(); rtnl_lock();
...@@ -930,7 +923,7 @@ static int slcan_open(struct tty_struct *tty) ...@@ -930,7 +923,7 @@ static int slcan_open(struct tty_struct *tty)
/* OK. Find a free SLCAN channel to use. */ /* OK. Find a free SLCAN channel to use. */
err = -ENFILE; err = -ENFILE;
sl = slc_alloc(); sl = slc_alloc();
if (sl == NULL) if (!sl)
goto err_exit; goto err_exit;
sl->tty = tty; sl->tty = tty;
...@@ -974,17 +967,15 @@ static int slcan_open(struct tty_struct *tty) ...@@ -974,17 +967,15 @@ static int slcan_open(struct tty_struct *tty)
return err; return err;
} }
/* /* Close down a SLCAN channel.
* Close down a SLCAN channel.
* This means flushing out any pending queues, and then returning. This * This means flushing out any pending queues, and then returning. This
* call is serialized against other ldisc functions. * call is serialized against other ldisc functions.
* *
* We also use this method for a hangup event. * We also use this method for a hangup event.
*/ */
static void slcan_close(struct tty_struct *tty) static void slcan_close(struct tty_struct *tty)
{ {
struct slcan *sl = (struct slcan *) tty->disc_data; struct slcan *sl = (struct slcan *)tty->disc_data;
/* First make sure we're connected. */ /* First make sure we're connected. */
if (!sl || sl->magic != SLCAN_MAGIC || sl->tty != tty) if (!sl || sl->magic != SLCAN_MAGIC || sl->tty != tty)
...@@ -1014,7 +1005,7 @@ static void slcan_hangup(struct tty_struct *tty) ...@@ -1014,7 +1005,7 @@ static void slcan_hangup(struct tty_struct *tty)
static int slcan_ioctl(struct tty_struct *tty, unsigned int cmd, static int slcan_ioctl(struct tty_struct *tty, unsigned int cmd,
unsigned long arg) unsigned long arg)
{ {
struct slcan *sl = (struct slcan *) tty->disc_data; struct slcan *sl = (struct slcan *)tty->disc_data;
unsigned int tmp; unsigned int tmp;
/* First make sure we're connected. */ /* First make sure we're connected. */
...@@ -1065,7 +1056,7 @@ static int __init slcan_init(void) ...@@ -1065,7 +1056,7 @@ static int __init slcan_init(void)
/* Fill in our line protocol discipline, and register it */ /* Fill in our line protocol discipline, and register it */
status = tty_register_ldisc(&slc_ldisc); status = tty_register_ldisc(&slc_ldisc);
if (status) { if (status) {
printk(KERN_ERR "slcan: can't register line discipline\n"); pr_err("slcan: can't register line discipline\n");
kfree(slcan_devs); kfree(slcan_devs);
} }
return status; return status;
...@@ -1079,7 +1070,7 @@ static void __exit slcan_exit(void) ...@@ -1079,7 +1070,7 @@ static void __exit slcan_exit(void)
unsigned long timeout = jiffies + HZ; unsigned long timeout = jiffies + HZ;
int busy = 0; int busy = 0;
if (slcan_devs == NULL) if (!slcan_devs)
return; return;
/* First of all: check for active disciplines and hangup them. /* First of all: check for active disciplines and hangup them.
...@@ -1104,7 +1095,8 @@ static void __exit slcan_exit(void) ...@@ -1104,7 +1095,8 @@ static void __exit slcan_exit(void)
} while (busy && time_before(jiffies, timeout)); } while (busy && time_before(jiffies, timeout));
/* FIXME: hangup is async so we should wait when doing this second /* FIXME: hangup is async so we should wait when doing this second
phase */ * phase
*/
for (i = 0; i < maxdev; i++) { for (i = 0; i < maxdev; i++) {
dev = slcan_devs[i]; dev = slcan_devs[i];
...@@ -1112,9 +1104,8 @@ static void __exit slcan_exit(void) ...@@ -1112,9 +1104,8 @@ static void __exit slcan_exit(void)
continue; continue;
sl = netdev_priv(dev); sl = netdev_priv(dev);
if (sl->tty) { if (sl->tty)
netdev_err(dev, "tty discipline still running\n"); netdev_err(dev, "tty discipline still running\n");
}
slc_close(dev); slc_close(dev);
unregister_candev(dev); unregister_candev(dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment