Page MenuHomeFreeBSD

Make cam_getccb(3) zero the whole ccb, not just the header
ClosedPublic

Authored by trasz on Nov 23 2020, 1:33 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, May 2, 6:49 PM
Unknown Object (File)
Tue, Apr 30, 4:12 PM
Unknown Object (File)
Tue, Apr 30, 3:36 PM
Unknown Object (File)
Thu, Apr 25, 2:06 PM
Unknown Object (File)
Thu, Apr 25, 2:06 PM
Unknown Object (File)
Mon, Apr 22, 9:53 AM
Unknown Object (File)
Mon, Apr 22, 9:39 AM
Unknown Object (File)
Fri, Apr 19, 8:33 AM
Subscribers

Details

Summary

Make cam_getccb(3) zero the whole ccb, not just the header.

Leaving zeroing to the clients leads to error-prone pointer
tricks (zeroing needs to preserve the CCB header), and this
code is not performance-critical, so there's really no reason
to not do it.

Diff Detail

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

Event Timeline

trasz requested review of this revision.Nov 23 2020, 1:33 PM
rpokala added a subscriber: rpokala.

LGTM, but I'm not authoritative when it comes to CAM.

I believe this is a good change. There's no performance reason to avoid zeroing, and in the kernel we do this:

new_ccb = malloc(sizeof(*new_ccb), M_CAMCCB, M_ZERO|M_WAITOK);

so this makes code that runs in both places more similar.

This revision is now accepted and ready to land.Nov 23 2020, 7:12 PM