Commit 9c5413ea authored by Darrick J. Wong's avatar Darrick J. Wong Committed by Linus Torvalds

ibmaem: prevent infinite probing loop on x3650 M2 systems

On older machines, probing for a nonexistent AEM interface returned an
IPMI error; when we saw this, we'd stop probing.  On the x3650 M2 and
(presumably) later, we are returned a value indicating success and a
buffer full of garbage or zeroes.  This causes the probe function to run
in an infinite loop.  To fix this, we add one last check--if the
interface number we're looking for is higher than the number of
interfaces that AEM claims to have, stop probing.
Signed-off-by: default avatarDarrick J. Wong <djwong@us.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent eb93b7df
...@@ -676,7 +676,8 @@ static int aem_find_aem2(struct aem_ipmi_data *data, ...@@ -676,7 +676,8 @@ static int aem_find_aem2(struct aem_ipmi_data *data,
return -ETIMEDOUT; return -ETIMEDOUT;
if (data->rx_result || data->rx_msg_len != sizeof(*fi_resp) || if (data->rx_result || data->rx_msg_len != sizeof(*fi_resp) ||
memcmp(&fi_resp->id, &system_x_id, sizeof(system_x_id))) memcmp(&fi_resp->id, &system_x_id, sizeof(system_x_id)) ||
fi_resp->num_instances <= instance_num)
return -ENOENT; return -ENOENT;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment