Page MenuHomeFreeBSD

ipmi: handle ipmb requests
ClosedPublic

Authored by yuri_aetern.org on Jun 26 2022, 1:22 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Apr 22, 7:38 AM
Unknown Object (File)
Fri, Apr 19, 5:11 PM
Unknown Object (File)
Fri, Apr 19, 5:11 PM
Unknown Object (File)
Fri, Apr 19, 5:11 PM
Unknown Object (File)
Fri, Apr 19, 5:11 PM
Unknown Object (File)
Wed, Apr 17, 3:33 AM
Unknown Object (File)
Mon, Apr 1, 1:53 AM
Unknown Object (File)
Jan 29 2024, 8:52 AM

Details

Summary

Handle IPMB requests using SEND_MSG (sent as driver request as we do not need to return anything back to userland for this) and GET_MSG (sent as usual request so we can return the data for RECEIVE_MSG ioctl) pair.

Test Plan

Tested using ipmitool on HPE ProLiant DL380 Gen10 now properly showing all of the sensors.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sys/dev/ipmi/ipmi.c
388

this removal is likely unrelated and could be done separately, just a note that we are using the ipmi driver in illumos ported from FreeBSD with this part removed for *years*, so the more wide testing of this change is based on the assumption that this is removed

philip requested changes to this revision.Jul 3 2022, 5:48 AM
philip added a subscriber: philip.

I've tested this on a DL380 and can confirm it works.

I don't like the #if 0 bit. Other than that, I think this can be committed.

(I don't like the mix of u_char and uint8_t in this driver either, but that's a separate issue.)

sys/dev/ipmi/ipmi.c
251–252

Just delete it instead of #if 0 bracketing it. If we need to resurrect this code, we can get it back from Git.

This revision now requires changes to proceed.Jul 3 2022, 5:48 AM
This revision was not accepted when it landed; it landed in state Needs Review.Jul 4 2022, 5:33 AM
This revision was automatically updated to reflect the committed changes.
vangyzen added inline comments.
sys/dev/ipmi/ipmi.c
393

This uses kreq after freeing it. Coverity CID 1490456

sys/dev/ipmi/ipmi.c
393

Good catch! Thanks. I'll commit this fix.