On Sun, 30 Dec 2018, I wrote:
The rationale for the ops struct was that it offers introspection. [...] those platforms which need checksum validation always set byte-at-a-time methods to NULL. [...] The NULL methods in the ops struct allow the nvram.c misc device to avoid inefficient byte-at-a-time accessors where possible, just as arch/powerpc/kernel/nvram_64.c presently does.
Hopefully my message makes more sense with the tangential irrelevancies removed. I will document these considerations in nvram.h for the next revision. --