"ack_code" is assigned (and tested against) negative numbers, but was declared as "char". Which only works if "char" is signed - which it necessarily isn't. So make that signedness assumption specific.
@@ -38,8 +38,8 @@ struct hpsb_packet {
/* These are core internal. */
signed char tlabel;
- char ack_code;
- char tcode;
+ signed char ack_code;
+ unsigned char tcode;
unsigned expect_response:1;
unsigned no_waiter:1;