|
@@ -1778,9 +1778,14 @@ static int read_nonraw(struct ldc_channel *lp, void *buf, unsigned int size)
|
|
|
|
|
|
lp->rcv_nxt = p->seqid;
|
|
|
|
|
|
+ /*
|
|
|
+ * If this is a control-only packet, there is nothing
|
|
|
+ * else to do but advance the rx queue since the packet
|
|
|
+ * was already processed above.
|
|
|
+ */
|
|
|
if (!(p->type & LDC_DATA)) {
|
|
|
new = rx_advance(lp, new);
|
|
|
- goto no_data;
|
|
|
+ break;
|
|
|
}
|
|
|
if (p->stype & (LDC_ACK | LDC_NACK)) {
|
|
|
err = data_ack_nack(lp, p);
|