There is an issue with Host name Write command with payload size of 132 bytes. Currently ipmi driver limits max_xmit_msg_size to 63 bytes. Due to this all IPMI commands with request size more than 63 bytes will not work. This is seen with AMI OEM Host Name write command: payload 132 bytes. When a DNS host name set is tried from host through SSIF interface, the name gets truncated due to ipmi_ssif driver limiting the length to 63 bytes
As per IPMI Spec v2.0 section 12.3: The maximum message size returned by the Get SSIF Interface Capabilities command is 255 bytes. This patch updates the max_xmit_msg_size to 255 in case SSIF_MULTI_n_PART. Signee-off-by: Kamlakant Patel <kamlakant.pa...@cavium.com> --- drivers/char/ipmi/ipmi_ssif.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c index 18e4650..2bf6f07 100644 --- a/drivers/char/ipmi/ipmi_ssif.c +++ b/drivers/char/ipmi/ipmi_ssif.c @@ -88,6 +88,8 @@ #define SSIF_MSG_JIFFIES ((SSIF_MSG_USEC * 1000) / TICK_NSEC) #define SSIF_MSG_PART_JIFFIES ((SSIF_MSG_PART_USEC * 1000) / TICK_NSEC) +#define SSIF_MAX_MSG_LENGTH 255 + enum ssif_intf_state { SSIF_NORMAL, SSIF_GETTING_FLAGS, @@ -1500,8 +1502,8 @@ static int ssif_probe(struct i2c_client *client, const struct i2c_device_id *id) * to be 1-31 bytes in length. Not ideal, but * it should work. */ - if (ssif_info->max_xmit_msg_size > 63) - ssif_info->max_xmit_msg_size = 63; + if (ssif_info->max_xmit_msg_size > SSIF_MAX_MSG_LENGTH) + ssif_info->max_xmit_msg_size = SSIF_MAX_MSG_LENGTH; break; default: -- 2.7.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Openipmi-developer mailing list Openipmi-developer@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openipmi-developer