|
@@ -692,10 +692,7 @@ static int SetArea(DEVICE_EXTENSION *pdx, int nArea, char __user *puBuf,
|
|
__func__, puBuf, dwLength, bCircular);
|
|
__func__, puBuf, dwLength, bCircular);
|
|
|
|
|
|
/* To pin down user pages we must first acquire the mapping semaphore. */
|
|
/* To pin down user pages we must first acquire the mapping semaphore. */
|
|
- down_read(¤t->mm->mmap_sem); /* get memory map semaphore */
|
|
|
|
- nPages = get_user_pages(current, current->mm, ulStart, len, 1, 0,
|
|
|
|
- pPages, NULL);
|
|
|
|
- up_read(¤t->mm->mmap_sem); /* release the semaphore */
|
|
|
|
|
|
+ nPages = get_user_pages_fast(ulStart, len, 1, pPages);
|
|
dev_dbg(&pdx->interface->dev, "%s nPages = %d", __func__, nPages);
|
|
dev_dbg(&pdx->interface->dev, "%s nPages = %d", __func__, nPages);
|
|
|
|
|
|
if (nPages > 0) { /* if we succeeded */
|
|
if (nPages > 0) { /* if we succeeded */
|