Message ID | 20120921150259.5fb75a794fae33ac60e5f0d9@llnl.gov (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Ira Weiny |
Headers | show |
On 9/21/2012 6:02 PM, Ira Weiny wrote: > > > Signed-off-by: Ira Weiny <weiny2@llnl.gov> > --- > src/ibdiag_sa.c | 30 +++++++++++++++++++++++++++--- > 1 files changed, 27 insertions(+), 3 deletions(-) > > diff --git a/src/ibdiag_sa.c b/src/ibdiag_sa.c > index 2b84bfa..2a9f008 100644 > --- a/src/ibdiag_sa.c > +++ b/src/ibdiag_sa.c > @@ -192,19 +192,43 @@ static inline const char *ib_sa_err_str(IN uint8_t status) > return (ib_sa_error_str[status]); > } > > +static const char *ib_mad_inv_field_str[] = { > + "MAD No invalid fields", > + "MAD Bad version", > + "MAD Method specified is not supported", > + "MAD Method/Attribute combination is not supported", > + "MAD Reserved", > + "MAD Reserved", > + "MAD Reserved", > + "MAD fields or attribute modifier; invalid value" Perhaps "MAD Invalid value in field(s) of Attribute or Attribute Modifier" ? -- Hal > + "MAD UNKNOWN ERROR" > +}; > +#define MAD_ERR_UNKNOWN (ARR_SIZE(ib_mad_inv_field_str) - 1) > + > +static inline const char *ib_mad_inv_field_err_str(IN uint8_t f) > +{ > + if (f > MAD_ERR_UNKNOWN) > + f = MAD_ERR_UNKNOWN; > + return (ib_mad_inv_field_str[f]); > +} > + > void sa_report_err(int status) > { > int st = status & 0xff; > - char sm_err_str[64] = { 0 }; > + char mad_err_str[64] = { 0 }; > char sa_err_str[64] = { 0 }; > > if (st) > - sprintf(sm_err_str, " SM(%s)", ib_get_err_str(st)); > + sprintf(mad_err_str, " (%s; %s; %s)", > + (st & 0x1) ? "BUSY" : "", > + (st & 0x2) ? "Redirection Required" : "", > + ib_mad_inv_field_err_str(st>>2)); > + > > st = status >> 8; > if (st) > sprintf(sa_err_str, " SA(%s)", ib_sa_err_str((uint8_t) st)); > > fprintf(stderr, "ERROR: Query result returned 0x%04x, %s%s\n", > - status, sm_err_str, sa_err_str); > + status, mad_err_str, sa_err_str); > } -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 10 Oct 2012 10:28:50 -0400 Hal Rosenstock <hal@dev.mellanox.co.il> wrote: > On 9/21/2012 6:02 PM, Ira Weiny wrote: > > > > > > Signed-off-by: Ira Weiny <weiny2@llnl.gov> > > --- > > src/ibdiag_sa.c | 30 +++++++++++++++++++++++++++--- > > 1 files changed, 27 insertions(+), 3 deletions(-) > > > > diff --git a/src/ibdiag_sa.c b/src/ibdiag_sa.c > > index 2b84bfa..2a9f008 100644 > > --- a/src/ibdiag_sa.c > > +++ b/src/ibdiag_sa.c > > @@ -192,19 +192,43 @@ static inline const char *ib_sa_err_str(IN uint8_t status) > > return (ib_sa_error_str[status]); > > } > > > > +static const char *ib_mad_inv_field_str[] = { > > + "MAD No invalid fields", > > + "MAD Bad version", > > + "MAD Method specified is not supported", > > + "MAD Method/Attribute combination is not supported", > > + "MAD Reserved", > > + "MAD Reserved", > > + "MAD Reserved", > > + "MAD fields or attribute modifier; invalid value" > > Perhaps "MAD Invalid value in field(s) of Attribute or Attribute Modifier" ? Ok, that's better. Slight modification: "MAD Invalid value in Attribute field(s) or Attribute Modifier" Ira > > -- Hal > > > + "MAD UNKNOWN ERROR" > > +}; > > +#define MAD_ERR_UNKNOWN (ARR_SIZE(ib_mad_inv_field_str) - 1) > > + > > +static inline const char *ib_mad_inv_field_err_str(IN uint8_t f) > > +{ > > + if (f > MAD_ERR_UNKNOWN) > > + f = MAD_ERR_UNKNOWN; > > + return (ib_mad_inv_field_str[f]); > > +} > > + > > void sa_report_err(int status) > > { > > int st = status & 0xff; > > - char sm_err_str[64] = { 0 }; > > + char mad_err_str[64] = { 0 }; > > char sa_err_str[64] = { 0 }; > > > > if (st) > > - sprintf(sm_err_str, " SM(%s)", ib_get_err_str(st)); > > + sprintf(mad_err_str, " (%s; %s; %s)", > > + (st & 0x1) ? "BUSY" : "", > > + (st & 0x2) ? "Redirection Required" : "", > > + ib_mad_inv_field_err_str(st>>2)); > > + > > > > st = status >> 8; > > if (st) > > sprintf(sa_err_str, " SA(%s)", ib_sa_err_str((uint8_t) st)); > > > > fprintf(stderr, "ERROR: Query result returned 0x%04x, %s%s\n", > > - status, sm_err_str, sa_err_str); > > + status, mad_err_str, sa_err_str); > > } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/src/ibdiag_sa.c b/src/ibdiag_sa.c index 2b84bfa..2a9f008 100644 --- a/src/ibdiag_sa.c +++ b/src/ibdiag_sa.c @@ -192,19 +192,43 @@ static inline const char *ib_sa_err_str(IN uint8_t status) return (ib_sa_error_str[status]); } +static const char *ib_mad_inv_field_str[] = { + "MAD No invalid fields", + "MAD Bad version", + "MAD Method specified is not supported", + "MAD Method/Attribute combination is not supported", + "MAD Reserved", + "MAD Reserved", + "MAD Reserved", + "MAD fields or attribute modifier; invalid value" + "MAD UNKNOWN ERROR" +}; +#define MAD_ERR_UNKNOWN (ARR_SIZE(ib_mad_inv_field_str) - 1) + +static inline const char *ib_mad_inv_field_err_str(IN uint8_t f) +{ + if (f > MAD_ERR_UNKNOWN) + f = MAD_ERR_UNKNOWN; + return (ib_mad_inv_field_str[f]); +} + void sa_report_err(int status) { int st = status & 0xff; - char sm_err_str[64] = { 0 }; + char mad_err_str[64] = { 0 }; char sa_err_str[64] = { 0 }; if (st) - sprintf(sm_err_str, " SM(%s)", ib_get_err_str(st)); + sprintf(mad_err_str, " (%s; %s; %s)", + (st & 0x1) ? "BUSY" : "", + (st & 0x2) ? "Redirection Required" : "", + ib_mad_inv_field_err_str(st>>2)); + st = status >> 8; if (st) sprintf(sa_err_str, " SA(%s)", ib_sa_err_str((uint8_t) st)); fprintf(stderr, "ERROR: Query result returned 0x%04x, %s%s\n", - status, sm_err_str, sa_err_str); + status, mad_err_str, sa_err_str); }
Signed-off-by: Ira Weiny <weiny2@llnl.gov> --- src/ibdiag_sa.c | 30 +++++++++++++++++++++++++++--- 1 files changed, 27 insertions(+), 3 deletions(-)