HomeFreeBSD

MFC r330876, r330945

Description

MFC r330876, r330945

r330876:
Fix ISP_FC_LIP and ISP_RESCAN on big-endian 64-bit systems.

For _IO() ioctls, addr is a pointer to uap->data which is a caddr_t.
When the caddr_t stores an int, dereferencing addr as an (int *) results
in truncation on little-endian 64-bit systems and corruption (owing to
extracting top bits) on big-endian 64-bit systems. In practice the
value of chan was probably always zero on systems of the latter type as
all such FreeBSD platforms use a register-based calling convention.

Reviewed by: mav
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D14673

r330945:
Add opt_compat.h to isp(4) as required by r330876.

Details

Provenance
brooksAuthored on
Reviewer
mav
Differential Revision
D14673: Fix ISP_FC_LIP and ISP_RESCAN on big-endian 64-bit systems.
Parents
rS331634: MFC r330876, r330945
Branches
Unknown
Tags
Unknown