fix(ff-a): fix memory send/retrieve error code on attributes validation

Memory send (share/lend/donate) and retrieve should return FFA_DENIED
and not FFA_INVALID_PARAMETERS when called with unsupported memory
type/attributes.

Change-Id: I604f1fddaea38f1d38eb33bb8f568121738b2a1c
Signed-off-by: Federico Recanati <federico.recanati@arm.com>
diff --git a/src/ffa_memory.c b/src/ffa_memory.c
index 773e588..98fd688 100644
--- a/src/ffa_memory.c
+++ b/src/ffa_memory.c
@@ -1360,21 +1360,21 @@
 	if (memory_type != FFA_MEMORY_NORMAL_MEM) {
 		dlog_verbose("Invalid memory type %#x, expected %#x.\n",
 			     memory_type, FFA_MEMORY_NORMAL_MEM);
-		return ffa_error(FFA_INVALID_PARAMETERS);
+		return ffa_error(FFA_DENIED);
 	}
 
 	cacheability = ffa_get_memory_cacheability_attr(attributes);
 	if (cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
 		dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
 			     cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
-		return ffa_error(FFA_INVALID_PARAMETERS);
+		return ffa_error(FFA_DENIED);
 	}
 
 	shareability = ffa_get_memory_shareability_attr(attributes);
 	if (shareability != FFA_MEMORY_INNER_SHAREABLE) {
 		dlog_verbose("Invalid shareability %#x, expected #%x.\n",
 			     shareability, FFA_MEMORY_INNER_SHAREABLE);
-		return ffa_error(FFA_INVALID_PARAMETERS);
+		return ffa_error(FFA_DENIED);
 	}
 
 	return (struct ffa_value){.func = FFA_SUCCESS_32};
diff --git a/test/vmapi/primary_with_secondaries/memory_sharing.c b/test/vmapi/primary_with_secondaries/memory_sharing.c
index 30a3671..6080709 100644
--- a/test/vmapi/primary_with_secondaries/memory_sharing.c
+++ b/test/vmapi/primary_with_secondaries/memory_sharing.c
@@ -2230,8 +2230,7 @@
 		for (uint32_t j = 0; j < ARRAY_SIZE(send_function); j++) {
 			ret = send_function[j](msg_size, msg_size);
 			EXPECT_EQ(ret.func, FFA_ERROR_32);
-			EXPECT_TRUE(ffa_error_code(ret) ==
-				    FFA_INVALID_PARAMETERS);
+			EXPECT_EQ(ffa_error_code(ret), FFA_DENIED);
 		}
 	}
 }
@@ -2329,8 +2328,7 @@
 		{.address = (uint64_t)pages + PAGE_SIZE * 3, .page_count = 1},
 	};
 
-	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail_invalid_parameters",
-		       mb.send);
+	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail_denied", mb.send);
 
 	struct {
 		enum ffa_memory_type memory_type;