/* Map the first page of the FIFO read-only to user-space.  */
static int vmw_fifo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
/* Map the first page of the FIFO read-only to user-space.  */
static int vmw_fifo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
{
	int ret;
	unsigned long address = (unsigned long)vmf->virtual_address;
	if (address != vma->vm_start)
		return VM_FAULT_SIGBUS;
	ret = vm_insert_pfn(vma, address, vma->vm_pgoff);
	if (likely(ret == -EBUSY || ret == 0))
		return VM_FAULT_NOPAGE;
	else if (ret == -ENOMEM)
		return VM_FAULT_OOM;
	return VM_FAULT_SIGBUS;
}