Well, I thought that was the case, so I changed the call from FILE_LOCK to mtx_lock:
static int capidev_read
(struct file *fp,
struct uio *pUio,
struct ucred *pCred,
int iFlags,
d_thread_t *pThread)
{
<snip>
-- FILE_LOCK (fp);
++ mtx_lock(fp->f_mtxp) //...