diff options
Diffstat (limited to 'drivers/char/ipmi')
-rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index da09eb0ef788..4f560d0bb808 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
@@ -2380,20 +2380,9 @@ static int try_get_dev_id(struct smi_info *smi_info) | |||
2380 | /* Otherwise, we got some data. */ | 2380 | /* Otherwise, we got some data. */ |
2381 | resp_len = smi_info->handlers->get_result(smi_info->si_sm, | 2381 | resp_len = smi_info->handlers->get_result(smi_info->si_sm, |
2382 | resp, IPMI_MAX_MSG_LENGTH); | 2382 | resp, IPMI_MAX_MSG_LENGTH); |
2383 | if (resp_len < 14) { | ||
2384 | /* That's odd, it should be longer. */ | ||
2385 | rv = -EINVAL; | ||
2386 | goto out; | ||
2387 | } | ||
2388 | |||
2389 | if ((resp[1] != IPMI_GET_DEVICE_ID_CMD) || (resp[2] != 0)) { | ||
2390 | /* That's odd, it shouldn't be able to fail. */ | ||
2391 | rv = -EINVAL; | ||
2392 | goto out; | ||
2393 | } | ||
2394 | 2383 | ||
2395 | /* Record info from the get device id, in case we need it. */ | 2384 | /* Check and record info from the get device id, in case we need it. */ |
2396 | ipmi_demangle_device_id(resp+3, resp_len-3, &smi_info->device_id); | 2385 | rv = ipmi_demangle_device_id(resp, resp_len, &smi_info->device_id); |
2397 | 2386 | ||
2398 | out: | 2387 | out: |
2399 | kfree(resp); | 2388 | kfree(resp); |