map_offset = map->offset - dev->sg->handle; 
map_offset = map->offset - (unsigned long)dev->sg->virtual; 
static __inline__ struct page *drm_do_vm_sg_nopage(struct vm_area_struct *vma,						    unsigned long address){	drm_map_t        *map    = (drm_map_t *)vma->vm_private_data;	drm_file_t *priv = vma->vm_file->private_data;	drm_device_t *dev = priv->head->dev;	drm_sg_mem_t *entry = dev->sg;	unsigned long offset;	unsigned long map_offset;	unsigned long page_offset;	struct page *page;	if (!entry)                return NOPAGE_SIGBUS; /* Error */	if (address > vma->vm_end) return NOPAGE_SIGBUS; /* Disallow mremap */	if (!entry->pagelist)      return NOPAGE_OOM ;  /* Nothing allocated */	offset = address - vma->vm_start;	map_offset = map->offset - dev->sg->handle;	page_offset = (offset >> PAGE_SHIFT) + (map_offset >> PAGE_SHIFT);	page = entry->pagelist[page_offset];	get_page(page);	return page;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d1f2b55ad2c11f46e30547a9f7754e99b478348e/drm_vm.c/buggy/drivers/char/drm/drm_vm.c