Add a couple of missing error codes. Treat CPL_ERR_KEEPALV_NEG_ADVICE as
negative advice and not a fatal error. MFC after: 3 days
This commit is contained in:
parent
adfaf8f6ad
commit
dfd1b3a02f
sys/dev/cxgbe
@ -159,6 +159,8 @@ enum CPL_error {
|
|||||||
CPL_ERR_KEEPALIVE_TIMEDOUT = 34,
|
CPL_ERR_KEEPALIVE_TIMEDOUT = 34,
|
||||||
CPL_ERR_RTX_NEG_ADVICE = 35,
|
CPL_ERR_RTX_NEG_ADVICE = 35,
|
||||||
CPL_ERR_PERSIST_NEG_ADVICE = 36,
|
CPL_ERR_PERSIST_NEG_ADVICE = 36,
|
||||||
|
CPL_ERR_KEEPALV_NEG_ADVICE = 37,
|
||||||
|
CPL_ERR_WAIT_ARP_RPL = 41,
|
||||||
CPL_ERR_ABORT_FAILED = 42,
|
CPL_ERR_ABORT_FAILED = 42,
|
||||||
CPL_ERR_IWARP_FLM = 50,
|
CPL_ERR_IWARP_FLM = 50,
|
||||||
};
|
};
|
||||||
|
@ -196,7 +196,7 @@ do_act_open_rpl(struct sge_iq *iq, const struct rss_header *rss,
|
|||||||
CTR3(KTR_CXGBE, "%s: atid %u, status %u ", __func__, atid, status);
|
CTR3(KTR_CXGBE, "%s: atid %u, status %u ", __func__, atid, status);
|
||||||
|
|
||||||
/* Ignore negative advice */
|
/* Ignore negative advice */
|
||||||
if (status == CPL_ERR_RTX_NEG_ADVICE)
|
if (negative_advice(status))
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
free_atid(sc, atid);
|
free_atid(sc, atid);
|
||||||
|
@ -1018,8 +1018,7 @@ do_abort_req(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m)
|
|||||||
|
|
||||||
KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__));
|
KASSERT(toep->tid == tid, ("%s: toep tid mismatch", __func__));
|
||||||
|
|
||||||
if (cpl->status == CPL_ERR_RTX_NEG_ADVICE ||
|
if (negative_advice(cpl->status)) {
|
||||||
cpl->status == CPL_ERR_PERSIST_NEG_ADVICE) {
|
|
||||||
CTR4(KTR_CXGBE, "%s: negative advice %d for tid %d (0x%x)",
|
CTR4(KTR_CXGBE, "%s: negative advice %d for tid %d (0x%x)",
|
||||||
__func__, cpl->status, tid, toep->flags);
|
__func__, cpl->status, tid, toep->flags);
|
||||||
return (0); /* Ignore negative advice */
|
return (0); /* Ignore negative advice */
|
||||||
|
@ -835,8 +835,7 @@ do_abort_req_synqe(struct sge_iq *iq, const struct rss_header *rss,
|
|||||||
CTR6(KTR_CXGBE, "%s: tid %u, synqe %p (0x%x), lctx %p, status %d",
|
CTR6(KTR_CXGBE, "%s: tid %u, synqe %p (0x%x), lctx %p, status %d",
|
||||||
__func__, tid, synqe, synqe->flags, synqe->lctx, cpl->status);
|
__func__, tid, synqe, synqe->flags, synqe->lctx, cpl->status);
|
||||||
|
|
||||||
if (cpl->status == CPL_ERR_RTX_NEG_ADVICE ||
|
if (negative_advice(cpl->status))
|
||||||
cpl->status == CPL_ERR_PERSIST_NEG_ADVICE)
|
|
||||||
return (0); /* Ignore negative advice */
|
return (0); /* Ignore negative advice */
|
||||||
|
|
||||||
INP_WLOCK(inp);
|
INP_WLOCK(inp);
|
||||||
|
@ -547,6 +547,15 @@ set_tcpddp_ulp_mode(struct toepcb *toep)
|
|||||||
toep->ddp_score = DDP_LOW_SCORE;
|
toep->ddp_score = DDP_LOW_SCORE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
negative_advice(int status)
|
||||||
|
{
|
||||||
|
|
||||||
|
return (status == CPL_ERR_RTX_NEG_ADVICE ||
|
||||||
|
status == CPL_ERR_PERSIST_NEG_ADVICE ||
|
||||||
|
status == CPL_ERR_KEEPALV_NEG_ADVICE);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
alloc_tid_tabs(struct tid_info *t)
|
alloc_tid_tabs(struct tid_info *t)
|
||||||
{
|
{
|
||||||
|
@ -236,6 +236,7 @@ uint64_t calc_opt0(struct socket *, struct port_info *, struct l2t_entry *,
|
|||||||
int, int, int, int);
|
int, int, int, int);
|
||||||
uint32_t select_ntuple(struct port_info *, struct l2t_entry *, uint32_t);
|
uint32_t select_ntuple(struct port_info *, struct l2t_entry *, uint32_t);
|
||||||
void set_tcpddp_ulp_mode(struct toepcb *);
|
void set_tcpddp_ulp_mode(struct toepcb *);
|
||||||
|
int negative_advice(int);
|
||||||
struct clip_entry *hold_lip(struct tom_data *, struct in6_addr *);
|
struct clip_entry *hold_lip(struct tom_data *, struct in6_addr *);
|
||||||
void release_lip(struct tom_data *, struct clip_entry *);
|
void release_lip(struct tom_data *, struct clip_entry *);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user