From 8d5e8fcf7a1cd2b9b59e9c7907445974acf294b1 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Sat, 12 Apr 2014 15:28:34 +1000 Subject: [PATCH] Incorrect byteswap in SOL maximum payload code max_inbound_payload_size, max_outbound_payload_size and port are assembled byte by byte using shifts. This works correctly in both little and big endian and doing a subsequent byte swap is wrong. To highlight this issue I dumped the values on a big endian machine: max_inbound_payload_size 51200 max_outbound_payload_size 51200 port 28418 And after this fix: max_inbound_payload_size 200 max_outbound_payload_size 200 port 623 Signed-off-by: Zdenek Styblik --- lib/ipmi_sol.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/lib/ipmi_sol.c b/lib/ipmi_sol.c index 6a02e91..a5b962f 100644 --- a/lib/ipmi_sol.c +++ b/lib/ipmi_sol.c @@ -1830,17 +1830,6 @@ ipmi_sol_activate(struct ipmi_intf * intf, int looptest, int interval, (ap_rsp.payload_udp_port[1] << 8) | ap_rsp.payload_udp_port[0]; - - #if WORDS_BIGENDIAN - intf->session->sol_data.max_inbound_payload_size = - BSWAP_16(intf->session->sol_data.max_inbound_payload_size); - intf->session->sol_data.max_outbound_payload_size = - BSWAP_16(intf->session->sol_data.max_outbound_payload_size); - intf->session->sol_data.port = - BSWAP_16(intf->session->sol_data.port); - #endif - - intf->session->timeout = 1;