s390/zcrypt: Fix CCA and EP11 CPRB processing failure memory leak.
[linux-2.6-block.git] / drivers / s390 / crypto / ap_bus.h
index 02184cf35834a3755c40a20b9cb06eaed3a17119..6a273c5ebca5b00475091c8d5b75543a13f97fee 100644 (file)
@@ -198,11 +198,18 @@ struct ap_message {
  */
 static inline void ap_init_message(struct ap_message *ap_msg)
 {
-       ap_msg->psmid = 0;
-       ap_msg->length = 0;
-       ap_msg->rc = 0;
-       ap_msg->special = 0;
-       ap_msg->receive = NULL;
+       memset(ap_msg, 0, sizeof(*ap_msg));
+}
+
+/**
+ * ap_release_message() - Release ap_message.
+ * Releases all memory used internal within the ap_message struct
+ * Currently this is the message and private field.
+ */
+static inline void ap_release_message(struct ap_message *ap_msg)
+{
+       kzfree(ap_msg->message);
+       kzfree(ap_msg->private);
 }
 
 #define for_each_ap_card(_ac) \