mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] ibmaem: Prevent infinite probing loop on x3650 M2 systems
@ 2008-08-13 22:40 Darrick J. Wong
  0 siblings, 0 replies; only message in thread
From: Darrick J. Wong @ 2008-08-13 22:40 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, lm-sensors

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: Darrick J. Wong <djwong@us.ibm.com>
---

 drivers/hwmon/ibmaem.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
index c1ee7dd..0f70dc2 100644
--- a/drivers/hwmon/ibmaem.c
+++ b/drivers/hwmon/ibmaem.c
@@ -682,7 +682,8 @@ static int aem_find_aem2(struct aem_ipmi_data *data,
 		return -ETIMEDOUT;
 
 	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 0;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-08-13 22:39 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-13 22:40 [PATCH] ibmaem: Prevent infinite probing loop on x3650 M2 systems Darrick J. Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®