Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 202638
b: refs/heads/master
c: c1f8fc5
h: refs/heads/master
v: v3
  • Loading branch information
Dan Carpenter authored and David S. Miller committed Jun 2, 2010
1 parent 629c4f6 commit 7206e94
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7c25492871a50f9f72f4d1350bdea53169024864
refs/heads/master: c1f8fc57c046903b5e7c891f2922592d5f775af3
9 changes: 9 additions & 0 deletions trunk/drivers/net/caif/caif_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ static void ldisc_receive(struct tty_struct *tty, const u8 *data,
struct ser_device *ser;
int ret;
u8 *p;

ser = tty->disc_data;

/*
Expand Down Expand Up @@ -221,6 +222,7 @@ static int handle_tx(struct ser_device *ser)
struct tty_struct *tty;
struct sk_buff *skb;
int tty_wr, len, room;

tty = ser->tty;
ser->tx_started = true;

Expand Down Expand Up @@ -281,6 +283,7 @@ static int handle_tx(struct ser_device *ser)
static int caif_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct ser_device *ser;

BUG_ON(dev == NULL);
ser = netdev_priv(dev);

Expand All @@ -299,6 +302,7 @@ static int caif_xmit(struct sk_buff *skb, struct net_device *dev)
static void ldisc_tx_wakeup(struct tty_struct *tty)
{
struct ser_device *ser;

ser = tty->disc_data;
BUG_ON(ser == NULL);
BUG_ON(ser->tty != tty);
Expand Down Expand Up @@ -348,6 +352,7 @@ static void ldisc_close(struct tty_struct *tty)
struct ser_device *ser = tty->disc_data;
/* Remove may be called inside or outside of rtnl_lock */
int islocked = rtnl_is_locked();

if (!islocked)
rtnl_lock();
/* device is freed automagically by net-sysfs */
Expand All @@ -374,6 +379,7 @@ static struct tty_ldisc_ops caif_ldisc = {
static int register_ldisc(void)
{
int result;

result = tty_register_ldisc(N_CAIF, &caif_ldisc);
if (result < 0) {
pr_err("cannot register CAIF ldisc=%d err=%d\n", N_CAIF,
Expand All @@ -391,6 +397,7 @@ static const struct net_device_ops netdev_ops = {
static void caifdev_setup(struct net_device *dev)
{
struct ser_device *serdev = netdev_priv(dev);

dev->features = 0;
dev->netdev_ops = &netdev_ops;
dev->type = ARPHRD_CAIF;
Expand Down Expand Up @@ -423,6 +430,7 @@ static int caif_net_close(struct net_device *dev)
static int __init caif_ser_init(void)
{
int ret;

ret = register_ldisc();
debugfsdir = debugfs_create_dir("caif_serial", NULL);
return ret;
Expand All @@ -433,6 +441,7 @@ static void __exit caif_ser_exit(void)
struct ser_device *ser = NULL;
struct list_head *node;
struct list_head *_tmp;

list_for_each_safe(node, _tmp, &ser_list) {
ser = list_entry(node, struct ser_device, node);
dev_close(ser->dev);
Expand Down

0 comments on commit 7206e94

Please sign in to comment.