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
F82586247: D27333.id79892.diff
Tue, Apr 30, 4:12 PM
F82583871: D27333.id79892.diff
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
Unknown Object (File)
Jan 29 2024, 9:55 PM
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
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 34975
Build 31968: arc lint + arc unit

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