When HTX content is transferred from qcs instance to upper stream
endpoint, a wakeup is conducted for MUX tasklet. However, this is only
necessary if demux was interrupted due to a full QCS HTX buffer.
This should be backported up to 2.7.
}
}
- if (ret) {
+ /* Restart demux if it was interrupted on full buffer. */
+ if (ret && qcs->flags & QC_SF_DEM_FULL) {
+ /* There must be data left for demux if it was interrupted on
+ * full buffer. If this assumption is incorrect wakeup is not
+ * necessary.
+ */
+ BUG_ON(!ncb_data(&qcs->rx.ncbuf, 0));
+
qcs->flags &= ~QC_SF_DEM_FULL;
tasklet_wakeup(qcs->qcc->wait_event.tasklet);
}