So cb is saved in ev->ev_cb and called later in zfs_zevent_free():
/* Run provided cleanup callback */
ev->ev_cb(ev->ev_nvl, ev->ev_detector);

But it seemed OK to call zfs_zevent_post(cb==NULL):
zfs_ereport_send_interim_checksum(zio_cksum_report_t *report)                                                                                                                                                                                                  
{
#ifdef _KERNEL
        zfs_zevent_post(report->zcr_ereport, report->zcr_detector, NULL);

Then would zfs_zevent_free() dereference a NULL pointer when calling ev_cb without checking it against NULL?