diff options
| -rw-r--r-- | net/irda/ircomm/ircomm_tty.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c index a39cca8331df..b3cc8b3989a9 100644 --- a/net/irda/ircomm/ircomm_tty.c +++ b/net/irda/ircomm/ircomm_tty.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #include <linux/seq_file.h> | 38 | #include <linux/seq_file.h> |
| 39 | #include <linux/termios.h> | 39 | #include <linux/termios.h> |
| 40 | #include <linux/tty.h> | 40 | #include <linux/tty.h> |
| 41 | #include <linux/tty_flip.h> | ||
| 41 | #include <linux/interrupt.h> | 42 | #include <linux/interrupt.h> |
| 42 | #include <linux/device.h> /* for MODULE_ALIAS_CHARDEV_MAJOR */ | 43 | #include <linux/device.h> /* for MODULE_ALIAS_CHARDEV_MAJOR */ |
| 43 | 44 | ||
| @@ -1132,7 +1133,6 @@ static int ircomm_tty_data_indication(void *instance, void *sap, | |||
| 1132 | struct sk_buff *skb) | 1133 | struct sk_buff *skb) |
| 1133 | { | 1134 | { |
| 1134 | struct ircomm_tty_cb *self = (struct ircomm_tty_cb *) instance; | 1135 | struct ircomm_tty_cb *self = (struct ircomm_tty_cb *) instance; |
| 1135 | struct tty_ldisc *ld; | ||
| 1136 | 1136 | ||
| 1137 | IRDA_DEBUG(2, "%s()\n", __func__ ); | 1137 | IRDA_DEBUG(2, "%s()\n", __func__ ); |
| 1138 | 1138 | ||
| @@ -1161,15 +1161,11 @@ static int ircomm_tty_data_indication(void *instance, void *sap, | |||
| 1161 | } | 1161 | } |
| 1162 | 1162 | ||
| 1163 | /* | 1163 | /* |
| 1164 | * Just give it over to the line discipline. There is no need to | 1164 | * Use flip buffer functions since the code may be called from interrupt |
| 1165 | * involve the flip buffers, since we are not running in an interrupt | 1165 | * context |
| 1166 | * handler | ||
| 1167 | */ | 1166 | */ |
| 1168 | 1167 | tty_insert_flip_string(self->tty, skb->data, skb->len); | |
| 1169 | ld = tty_ldisc_ref(self->tty); | 1168 | tty_flip_buffer_push(self->tty); |
| 1170 | if (ld) | ||
| 1171 | ld->ops->receive_buf(self->tty, skb->data, NULL, skb->len); | ||
| 1172 | tty_ldisc_deref(ld); | ||
| 1173 | 1169 | ||
| 1174 | /* No need to kfree_skb - see ircomm_ttp_data_indication() */ | 1170 | /* No need to kfree_skb - see ircomm_ttp_data_indication() */ |
| 1175 | 1171 | ||
