master/cdev.c
changeset 2061 7982704c8599
parent 2009 b5391b329b5d
child 2066 b544025bd696
child 2109 755e6ce823f0
equal deleted inserted replaced
2051:3a066ec73fb2 2061:7982704c8599
  3877         )
  3877         )
  3878 {
  3878 {
  3879     unsigned long offset;
  3879     unsigned long offset;
  3880     struct page *page = NOPAGE_SIGBUS;
  3880     struct page *page = NOPAGE_SIGBUS;
  3881     ec_cdev_priv_t *priv = (ec_cdev_priv_t *) vma->vm_private_data;
  3881     ec_cdev_priv_t *priv = (ec_cdev_priv_t *) vma->vm_private_data;
       
  3882     ec_master_t *master = priv->cdev->master;
  3882 
  3883 
  3883     offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT);
  3884     offset = (address - vma->vm_start) + (vma->vm_pgoff << PAGE_SHIFT);
  3884 
  3885 
  3885     if (offset >= priv->process_data_size)
  3886     if (offset >= priv->process_data_size)
  3886         return NOPAGE_SIGBUS;
  3887         return NOPAGE_SIGBUS;
  3887 
  3888 
  3888     page = vmalloc_to_page(priv->process_data + offset);
  3889     page = vmalloc_to_page(priv->process_data + offset);
  3889 
  3890 
  3890     EC_MASTER_DBG(master, "Nopage fault vma, address = %#lx,"
  3891     EC_MASTER_DBG(master, 1, "Nopage fault vma, address = %#lx,"
  3891             " offset = %#lx, page = %p\n", address, offset, page);
  3892             " offset = %#lx, page = %p\n", address, offset, page);
  3892 
  3893 
  3893     get_page(page);
  3894     get_page(page);
  3894     if (type)
  3895     if (type)
  3895         *type = VM_FAULT_MINOR;
  3896         *type = VM_FAULT_MINOR;