Re: [PATCH 11/12] IMA: turn ima_policy_flags into __wr_after_init

From: Igor Stoppa
Date: Thu Dec 20 2018 - 12:50:01 EST


Hi,

On 20/12/2018 19:30, Thiago Jung Bauermann wrote:

Hello Igor,

Igor Stoppa <igor.stoppa@xxxxxxxxx> writes:

diff --git a/security/integrity/ima/ima_init.c b/security/integrity/ima/ima_init.c
index 59d834219cd6..5f4e13e671bf 100644
--- a/security/integrity/ima/ima_init.c
+++ b/security/integrity/ima/ima_init.c
@@ -21,6 +21,7 @@
#include <linux/scatterlist.h>
#include <linux/slab.h>
#include <linux/err.h>
+#include <linux/prmem.h>

#include "ima.h"

@@ -98,9 +99,9 @@ void __init ima_load_x509(void)
{
int unset_flags = ima_policy_flag & IMA_APPRAISE;

- ima_policy_flag &= ~unset_flags;
+ wr_assign(ima_policy_flag, ima_policy_flag & ~unset_flags);
integrity_load_x509(INTEGRITY_KEYRING_IMA, CONFIG_IMA_X509_PATH);
- ima_policy_flag |= unset_flags;
+ wr_assign(ima_policy_flag, ima_policy_flag | unset_flags);
}
#endif

In the cover letter, you said:

As the name implies, the write protection kicks in only after init()
is completed; before that moment, the data is modifiable in the usual
way.

Given that, is it still necessary or useful to use wr_assign() in a
function marked with __init?

I might have been over enthusiastic of using the wr interface.
You are right, I can drop these two. Thank you.

--
igor