From a1dc62b0c8efe79f27d048d03daac4764cb7c46c Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <greg@kroah.com>
Date: Sat, 13 Sep 2014 17:28:19 -0700
Subject: [PATCH] greybus: core: verify major/minor number of greybus protocol

---
 drivers/staging/greybus/core.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/greybus/core.c b/drivers/staging/greybus/core.c
index 1d9efd4b5f590..bad40bafae4c2 100644
--- a/drivers/staging/greybus/core.c
+++ b/drivers/staging/greybus/core.c
@@ -385,7 +385,15 @@ struct greybus_device *greybus_new_module(struct device *parent,
 	version_major = manifest->header.version_major;
 	version_minor = manifest->header.version_minor;
 
-	// FIXME - check version major/minor here!
+	/* Validate major/minor number */
+	if ((version_major != GREYBUS_VERSION_MAJOR) ||
+	    (version_minor != GREYBUS_VERSION_MINOR)) {
+		dev_err(parent,
+			"Invalid greybus versions, expected %d.%d, got %d.%d\n",
+			GREYBUS_VERSION_MAJOR, GREYBUS_VERSION_MINOR,
+			version_major, version_minor);
+		goto error;
+	}
 
 	size -= sizeof(manifest->header);
 	data += sizeof(manifest->header);
-- 
2.30.2