HomeFreeBSD

bhyve: Appease warning about a potentially unaligned pointer.

Description

bhyve: Appease warning about a potentially unaligned pointer.

When initializing the device model for a PCI pass through device that
uses MSI-X, bhyve reads the MSI-X capability from the real device to
save a copy in the emulated PCI config space. It also saves a copy in
a local struct msixcap on the stack. Since struct msixcap is packed,
GCC complains that casting a pointer to the struct to a uint32_t
pointer may result in an unaligned pointer.

This path is not performance critical, so to appease the compiler,
simply change the pointer to a char * and use memcpy to copy the 4
bytes read in each iteration of the loop.

Reviewed by: corvink, bz, markj
Differential Revision: https://reviews.freebsd.org/D37490

(cherry picked from commit 32b21dd2719f87811b66deeeb513acf7067f8fac)

Details

Provenance
jhbAuthored on Nov 29 2022, 1:10 AM
Reviewer
corvink
Differential Revision
D37490: bhyve: Appease warning about a potentially unaligned pointer.
Parents
rGf995c129a527: bhyve: Fix sign compare warnings in the NVMe device model.
Branches
Unknown
Tags
Unknown