From: Dima Zavin <dima@android.com>
Date: Tue, 2 Mar 2010 23:47:57 +0000 (-0800)
Subject: pmem: Add cache flush ioctl for pmem buffers
X-Git-Tag: firefly_0821_release~9833^2~5^2~225
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d5fb3c725b05af74430fcbe52e6ae2fc9bfa5a1e;p=firefly-linux-kernel-4.4.55.git

pmem: Add cache flush ioctl for pmem buffers

Change-Id: I9156bad829e8c65087f122b48cc57638902fab12
Signed-off-by: Dima Zavin <dima@android.com>
---

diff --git a/drivers/misc/pmem.c b/drivers/misc/pmem.c
index 55c4de81b177..7f3b53217560 100644
--- a/drivers/misc/pmem.c
+++ b/drivers/misc/pmem.c
@@ -1148,6 +1148,16 @@ static long pmem_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 		DLOG("connect\n");
 		return pmem_connect(arg, file);
 		break;
+	case PMEM_CACHE_FLUSH:
+		{
+			struct pmem_region region;
+			DLOG("flush\n");
+			if (copy_from_user(&region, (void __user *)arg,
+					   sizeof(struct pmem_region)))
+				return -EFAULT;
+			flush_pmem_file(file, region.offset, region.len);
+			break;
+		}
 	default:
 		if (pmem[id].ioctl)
 			return pmem[id].ioctl(file, cmd, arg);
diff --git a/include/linux/android_pmem.h b/include/linux/android_pmem.h
index 398997c3386b..f633621f5be3 100644
--- a/include/linux/android_pmem.h
+++ b/include/linux/android_pmem.h
@@ -33,6 +33,7 @@
  * struct (with offset set to 0). 
  */
 #define PMEM_GET_TOTAL_SIZE	_IOW(PMEM_IOCTL_MAGIC, 7, unsigned int)
+#define PMEM_CACHE_FLUSH	_IOW(PMEM_IOCTL_MAGIC, 8, unsigned int)
 
 struct android_pmem_platform_data
 {