}
}
+ if (unlikely(h3c->err)) {
+ /* Should be dead code : err conn must be handled directly after frame parsing and redirected to err label. */
+ WARN_ON(1, "h3c error not correctly handled");
+ if (!(qcs->qcc->flags & (QC_CF_ERR_CONN|QC_CF_ERRL)))
+ qcc_set_error(qcs->qcc, h3c->err, 1, muxc_tevt_type_proto_err);
+ goto err;
+ }
+
/* Reset demux frame type for traces. */
if (!h3s->demux_frame_len)
h3s->demux_frame_type = H3_FT_UNINIT;
total += b_data(b);
goto done;
}
- else if (h3c->err) {
- qcc_set_error(qcs->qcc, h3c->err, 1, muxc_tevt_type_proto_err);
- total += b_data(b);
- goto done;
- }
else if (unlikely(ret < 0)) {
qcc_set_error(qcs->qcc, H3_ERR_INTERNAL_ERROR, 1, muxc_tevt_type_internal_err);
goto err;