The patch "proclock.diff" addresses problem (1) identified here.
The patch "ioctl.diff" addresses problems (2) and (3). Unfortunately, this patch is heavily redacted, due to the bulk of the changes having been made in non-open source parts of the driver. Note that changes to the Solaris interface layer are also redacted, due to the licensing for the Solaris driver: the Solaris interface layer changes are functionally equivalent to the Linux and FreeBSD changes.
The patch "proclock.diff" addresses problem (1) identified here.
The patch "ioctl.diff" addresses problems (2) and (3). Unfortunately, this patch is heavily redacted, due to the bulk of the changes having been made in non-open source parts of the driver. Note that changes to the Solaris interface layer are also redacted, due to the licensing for the Solaris driver: the Solaris interface layer changes are functionally equivalent to the Linux and FreeBSD changes.