mspec: use simple_malloc()/simple_free()
PATCH 7/7 mspec: use simple_malloc()/simple_free()
use simple_malloc()/simple_free() instead of current codes. and avoid use VMD_VMALLOCED flags
Signed-off-by Lai Jiangshan <[email protected]>
---
drivers/char/mspec.c +3 -15
@@ -94,14 +94,11 @@ struct vma_data {spinlock_t lock;/* Serialize access to this structure. */ int count;/* Number of pages allocated. */ enum mspec_page_type type;/* Type of pages allocated. */ -int flags;/* See VMD_xxx below. */ unsigned long vm_start;/* Original (unsplit) base. */ unsigned long vm_end;/* Original (unsplit) end. */ unsigned long maddr[0 ];/* Array of MSPEC addresses. */ }; -#define VMD_VMALLOCED 0x1/* vmalloc'd rather than kmalloc'd */ -/* used on shub2 to clear FOP cache in the HUB */ static unsigned long scratch_page[MAX_NUMNODES ];#define SH2_AMO_CACHE_ENTRIES 4
@@ -186,10 +183,7 @@ mspec_close(struct vm_area_struct *vma) "failed to zero page %ld\n", my_page); } -if (vdata->flags &VMD_VMALLOCED ) -vfree (vdata); -else -kfree (vdata); +simple_free (vdata); }/*
@@ -257,7 +251,7 @@ mspec_mmap(struct file *file, struct vm_area_struct *vma, enum mspec_page_type type) {struct vma_data *vdata; -int pages, vdata_size, flags =0 ; +int pages, vdata_size;if (vma->vm_pgoff !=0 )return -EINVAL ;
@@ -270,19 +264,13 @@ mspec_mmap(struct file *file, struct vm_area_struct *vma, pages = (vma->vm_end - vma->vm_start) >>PAGE_SHIFT ; vdata_size =sizeof (struct vma_data ) + pages *sizeof (long ); -if (vdata_size <=PAGE_SIZE ) - vdata =kmalloc (vdata_size,GFP_KERNEL ); -else { - vdata =vmalloc (vdata_size); - flags =VMD_VMALLOCED ; - } + vdata =simple_malloc (vdata_size);if (!vdata)return -ENOMEM ;memset (vdata,0 , vdata_size); vdata->vm_start = vma->vm_start; vdata->vm_end = vma->vm_end; - vdata->flags = flags; vdata->type = type;spin_lock_init (&vdata->lock); vdata->refcnt =ATOMIC_INIT (1 );