There was an ambiguity in which functions of the si_ops struct could be null or not. only ->update doesn't exist in one of the si_ops (the embedded one), all others are always defined. ->shutr and ->shutw were never tested. However ->chk_rcv() and ->chk_snd() were tested, causing confusion about the proper way to wake the other side up if undefined (which never happens). Let's update the comments to state these functions are mandatory and remove the offending checks.