diff options
-rw-r--r-- | zaptel.c | 29 |
1 files changed, 17 insertions, 12 deletions
@@ -6260,6 +6260,22 @@ static inline void __zt_putbuf_chunk(struct zt_chan *ss, unsigned char *rxb) __putbuf_chunk(ss, rxb, ZT_CHUNKSIZE); } +extern void __zt_hdlc_abort(struct zt_chan *ss, int event) +{ + if (ss->inreadbuf >= 0) + ss->readidx[ss->inreadbuf] = 0; + if ((ss->flags & ZT_FLAG_OPEN) && !ss->span->alarms) + __qevent(ss->master, event); +} + +extern void zt_hdlc_abort(struct zt_chan *ss, int event) +{ + unsigned long flags; + spin_lock_irqsave(&ss->lock, flags); + __zt_hdlc_abort(ss, event); + spin_unlock_irqrestore(&ss->lock, flags); +} + extern void zt_hdlc_putbuf(struct zt_chan *ss, unsigned char *rxb, int bytes) { unsigned long flags; @@ -6289,23 +6305,12 @@ extern void zt_hdlc_putbuf(struct zt_chan *ss, unsigned char *rxb, int bytes) #ifdef CONFIG_ZAPATA_DEBUG printk("HDLC frame isn't fit into buffer space\n"); #endif - zt_hdlc_abort(ss, ZT_EVENT_OVERRUN); + __zt_hdlc_abort(ss, ZT_EVENT_OVERRUN); } res = left; spin_unlock_irqrestore(&ss->lock, flags); } -extern void zt_hdlc_abort(struct zt_chan *ss, int event) -{ - unsigned long flags; - spin_lock_irqsave(&ss->lock, flags); - if (ss->inreadbuf >= 0) - ss->readidx[ss->inreadbuf] = 0; - if ((ss->flags & ZT_FLAG_OPEN) && !ss->span->alarms) - __qevent(ss->master, event); - spin_unlock_irqrestore(&ss->lock, flags); -} - extern void zt_hdlc_finish(struct zt_chan *ss) { int oldreadbuf; |