selinux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.
@ 2019-12-18  6:00 Ravi Kumar Siddojigari
  2019-12-19  2:08 ` Paul Moore
  0 siblings, 1 reply; 3+ messages in thread
From: Ravi Kumar Siddojigari @ 2019-12-18  6:00 UTC (permalink / raw)
  To: selinux; +Cc: 'Paul Moore', 'Stephen Smalley'

Updated the  subject to reflect the  change . 

-----Original Message-----
From: selinux-owner@vger.kernel.org <selinux-owner@vger.kernel.org> On Behalf Of Ravi Kumar Siddojigari
Sent: Tuesday, December 17, 2019 8:42 PM
To: 'Paul Moore' <paul@paul-moore.com>
Cc: selinux@vger.kernel.org
Subject: RE: [PATCH] selinux: move pkey sid cache based retrieval under defconfig

Yes Paul,  it should be under  CONFIG_SECURITY_INFINIBAND thanks for correcting this . 
Hope  we can taken it fwd as all the targets with disabled  InfiniBand can be gained .
Please find the updated path for review . 

From 6a8c60eacd0b6e5189722bb1823864b6728c2e34 Mon Sep 17 00:00:00 2001
From: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
Date: Wed, 11 Dec 2019 19:57:24 +0530
Subject: [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.

Move cache based  pkey sid  retrieval code which was added with  Commit 409dcf31. under CONFIG_SECURITY_INFINIBAND.
As its  going to alloc a new cache which may impact low ram devices which was enabled by default.

Change-Id: I80a13fb7bce8723c8c880cb77cbaee42db413a7a
Signed-off-by: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
---
 security/selinux/Makefile         | 4 +++-
 security/selinux/hooks.c          | 6 ++++++
 security/selinux/include/objsec.h | 2 ++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/security/selinux/Makefile b/security/selinux/Makefile index c7161f8..bf67fc8 100644
--- a/security/selinux/Makefile
+++ b/security/selinux/Makefile
@@ -6,12 +6,14 @@
 obj-$(CONFIG_SECURITY_SELINUX) := selinux.o
 
 selinux-y := avc.o hooks.o selinuxfs.o netlink.o nlmsgtab.o netif.o \
-	     netnode.o netport.o ibpkey.o exports.o \
+	     netnode.o netport.o exports.o \	
 	     ss/ebitmap.o ss/hashtab.o ss/symtab.o ss/sidtab.o ss/avtab.o \
 	     ss/policydb.o ss/services.o ss/conditional.o ss/mls.o ss/status.o
 
 selinux-$(CONFIG_SECURITY_NETWORK_XFRM) += xfrm.o
 
+selinux-$(CONFIG_SECURITY_INFINIBAND) += ibpkey.o
+
 selinux-$(CONFIG_NETLABEL) += netlabel.o
 
 ccflags-y := -I$(srctree)/security/selinux -I$(srctree)/security/selinux/include
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index b1a9ac9..157faaf 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -94,7 +94,11 @@
 #include "netif.h"
 #include "netnode.h"
 #include "netport.h"
+
+#ifdef CONFIG_SECURITY_INFINIBAND
 #include "ibpkey.h"
+#endif
+
 #include "xfrm.h"
 #include "netlabel.h"
 #include "audit.h"
@@ -198,7 +202,9 @@ static int selinux_netcache_avc_callback(u32 event)  static int selinux_lsm_notifier_avc_callback(u32 event)  {
 	if (event == AVC_CALLBACK_RESET) {
+#ifdef CONFIG_SECURITY_INFINIBAND
 		sel_ib_pkey_flush();
+#endif
 		call_lsm_notifier(LSM_POLICY_CHANGE, NULL);
 	}
 
diff --git a/security/selinux/include/objsec.h b/security/selinux/include/objsec.h
index 4b0da5f..94e6322 100644
--- a/security/selinux/include/objsec.h
+++ b/security/selinux/include/objsec.h
@@ -149,11 +149,13 @@ struct ib_security_struct {
 	u32 sid;        /* SID of the queue pair or MAD agent */
 };
 
+#ifdef CONFIG_SECURITY_INFINIBAND
 struct pkey_security_struct {
 	u64	subnet_prefix; /* Port subnet prefix */
 	u16	pkey;	/* PKey number */
 	u32	sid;	/* SID of pkey */
 };
+#endif
 
 struct bpf_security_struct {
 	u32 sid;  /*SID of bpf obj creater*/
--
1.9.1


Regards,
Ravi


-----Original Message-----
From: selinux-owner@vger.kernel.org <selinux-owner@vger.kernel.org> On Behalf Of Paul Moore
Sent: Monday, December 16, 2019 7:56 PM
To: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
Cc: selinux@vger.kernel.org
Subject: Re: [PATCH] selinux: move pkey sid cache based retrieval under defconfig

On Mon, Dec 16, 2019 at 5:13 AM Ravi Kumar Siddojigari <rsiddoji@codeaurora.org> wrote:
> Hi Team,
> We see an increase in the memory consumption from 4.9 ->4.19 kernel 
> which is impacting the low_ram device .
> So thought of enabling only that are really needed for the such  
> device where performance might not be of priority list .
> One such patch is on the  pkey sid cache  which was added with commit :"
> 409dcf31"
> which can be moved under defconfig where enabled by default and only 
> disabled for low_ram targets.
> Which is going to save ram/reduce slub usage .

Why not just reuse CONFIG_SECURITY_INFINIBAND?  I'm guessing these systems are using the SELinux/IB controls at all, so why not remove them completely?

--
paul moore
www.paul-moore.com

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.
  2019-12-18  6:00 [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND Ravi Kumar Siddojigari
@ 2019-12-19  2:08 ` Paul Moore
  2019-12-19 14:18   ` Ravi Kumar Siddojigari
  0 siblings, 1 reply; 3+ messages in thread
From: Paul Moore @ 2019-12-19  2:08 UTC (permalink / raw)
  To: Ravi Kumar Siddojigari; +Cc: selinux, Stephen Smalley

On Wed, Dec 18, 2019 at 1:01 AM Ravi Kumar Siddojigari
<rsiddoji@codeaurora.org> wrote:
> -----Original Message-----
> From: selinux-owner@vger.kernel.org <selinux-owner@vger.kernel.org> On Behalf Of Ravi Kumar Siddojigari
> Sent: Tuesday, December 17, 2019 8:42 PM
> To: 'Paul Moore' <paul@paul-moore.com>
> Cc: selinux@vger.kernel.org
> Subject: RE: [PATCH] selinux: move pkey sid cache based retrieval under defconfig
>
> Yes Paul,  it should be under  CONFIG_SECURITY_INFINIBAND thanks for correcting this .
> Hope  we can taken it fwd as all the targets with disabled  InfiniBand can be gained .
> Please find the updated path for review .
>
> From 6a8c60eacd0b6e5189722bb1823864b6728c2e34 Mon Sep 17 00:00:00 2001
> From: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
> Date: Wed, 11 Dec 2019 19:57:24 +0530
> Subject: [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.
>
> Move cache based  pkey sid  retrieval code which was added with  Commit 409dcf31. under CONFIG_SECURITY_INFINIBAND.
> As its  going to alloc a new cache which may impact low ram devices which was enabled by default.
>
> Change-Id: I80a13fb7bce8723c8c880cb77cbaee42db413a7a
> Signed-off-by: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
> ---
>  security/selinux/Makefile         | 4 +++-
>  security/selinux/hooks.c          | 6 ++++++
>  security/selinux/include/objsec.h | 2 ++
>  3 files changed, 11 insertions(+), 1 deletion(-)

...

> diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index b1a9ac9..157faaf 100644
> --- a/security/selinux/hooks.c
> +++ b/security/selinux/hooks.c
> @@ -94,7 +94,11 @@
>  #include "netif.h"
>  #include "netnode.h"
>  #include "netport.h"
> +
> +#ifdef CONFIG_SECURITY_INFINIBAND
>  #include "ibpkey.h"
> +#endif

See the comments below ...


>  #include "xfrm.h"
>  #include "netlabel.h"
>  #include "audit.h"
> @@ -198,7 +202,9 @@ static int selinux_netcache_avc_callback(u32 event)  static int selinux_lsm_notifier_avc_callback(u32 event)  {
>         if (event == AVC_CALLBACK_RESET) {
> +#ifdef CONFIG_SECURITY_INFINIBAND
>                 sel_ib_pkey_flush();
> +#endif
>                 call_lsm_notifier(LSM_POLICY_CHANGE, NULL);
>         }

In cases like the you see directly above, and in the #include further
up, the kernel usually solves this by creating dummy function in the
header file.  In this case, ibpkey.h would look something like this:

>>>
/* header comments, blah blah blah */

#ifndef _SELINUX_IB_PKEY_H
#define _SELINUX_IB_PKEY_H

#ifdef CONFIG_SECURITY_INFINIBAND
void sel_ib_pkey_flush(void);
int sel_ib_pkey_sid(u64 subnet_prefix, u16 pkey, u32 *sid);
#else
static inline void sel_ib_pkey_flush(void)
{
  return;
}
static inline int sel_ib_pkey_sid(u64 subnet_prefix, u16 pkey, u32 *sid)
{
  *sid = SECINITSID_UNLABELED;
  return 0;
}
#endif

#endif
>>>

Does that make sense?

--
paul moore
www.paul-moore.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.
  2019-12-19  2:08 ` Paul Moore
@ 2019-12-19 14:18   ` Ravi Kumar Siddojigari
  0 siblings, 0 replies; 3+ messages in thread
From: Ravi Kumar Siddojigari @ 2019-12-19 14:18 UTC (permalink / raw)
  To: 'Paul Moore'; +Cc: selinux, 'Stephen Smalley'

Updated the path , moved header file also under the config key which was missed out in earlier patch.
--
From a53941d36621ccb53fba900cb9a762dded41dc96 Mon Sep 17 00:00:00 2001
From: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
Date: Wed, 11 Dec 2019 19:57:24 +0530
Subject: [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.

Move cache based  pkey sid  retrieval code which was added
with  Commit 409dcf31. under CONFIG_SECURITY_INFINIBAND.
As its  going to alloc a new cache which may impact
low ram devices which was enabled by default.

Change-Id: I80a13fb7bce8723c8c880cb77cbaee42db413a7a
Suggested-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
---
 security/selinux/Makefile         | 4 +++-
 security/selinux/hooks.c          | 6 ++++++
 security/selinux/include/ibpkey.h | 2 ++
 security/selinux/include/objsec.h | 2 ++
 4 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/security/selinux/Makefile b/security/selinux/Makefile
index c7161f8..bf67fc8 100644
--- a/security/selinux/Makefile
+++ b/security/selinux/Makefile
@@ -6,12 +6,14 @@
 obj-$(CONFIG_SECURITY_SELINUX) := selinux.o
 
 selinux-y := avc.o hooks.o selinuxfs.o netlink.o nlmsgtab.o netif.o \
-	     netnode.o netport.o ibpkey.o exports.o \
+	     netnode.o netport.o exports.o \
 	     ss/ebitmap.o ss/hashtab.o ss/symtab.o ss/sidtab.o ss/avtab.o \
 	     ss/policydb.o ss/services.o ss/conditional.o ss/mls.o ss/status.o
 
 selinux-$(CONFIG_SECURITY_NETWORK_XFRM) += xfrm.o
 
+selinux-$(CONFIG_SECURITY_INFINIBAND) += ibpkey.o
+
 selinux-$(CONFIG_NETLABEL) += netlabel.o
 
 ccflags-y := -I$(srctree)/security/selinux -I$(srctree)/security/selinux/include
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index b1a9ac9..157faaf 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -94,7 +94,11 @@
 #include "netif.h"
 #include "netnode.h"
 #include "netport.h"
+
+#ifdef CONFIG_SECURITY_INFINIBAND
 #include "ibpkey.h"
+#endif
+
 #include "xfrm.h"
 #include "netlabel.h"
 #include "audit.h"
@@ -198,7 +202,9 @@ static int selinux_netcache_avc_callback(u32 event)
 static int selinux_lsm_notifier_avc_callback(u32 event)
 {
 	if (event == AVC_CALLBACK_RESET) {
+#ifdef CONFIG_SECURITY_INFINIBAND
 		sel_ib_pkey_flush();
+#endif
 		call_lsm_notifier(LSM_POLICY_CHANGE, NULL);
 	}
 
diff --git a/security/selinux/include/ibpkey.h b/security/selinux/include/ibpkey.h
index b17a19e..c90251b 100644
--- a/security/selinux/include/ibpkey.h
+++ b/security/selinux/include/ibpkey.h
@@ -24,8 +24,10 @@
 #ifndef _SELINUX_IB_PKEY_H
 #define _SELINUX_IB_PKEY_H
 
+#ifdef CONFIG_SECURITY_INFINIBAND
 void sel_ib_pkey_flush(void);
 
 int sel_ib_pkey_sid(u64 subnet_prefix, u16 pkey, u32 *sid);
 
 #endif
+#endif
diff --git a/security/selinux/include/objsec.h b/security/selinux/include/objsec.h
index 4b0da5f..94e6322 100644
--- a/security/selinux/include/objsec.h
+++ b/security/selinux/include/objsec.h
@@ -149,11 +149,13 @@ struct ib_security_struct {
 	u32 sid;        /* SID of the queue pair or MAD agent */
 };
 
+#ifdef CONFIG_SECURITY_INFINIBAND
 struct pkey_security_struct {
 	u64	subnet_prefix; /* Port subnet prefix */
 	u16	pkey;	/* PKey number */
 	u32	sid;	/* SID of pkey */
 };
+#endif
 
 struct bpf_security_struct {
 	u32 sid;  /*SID of bpf obj creater*/
-- 
1.9.1


Br,



-----Original Message-----
From: Paul Moore <paul@paul-moore.com> 
Sent: Thursday, December 19, 2019 7:39 AM
To: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
Cc: selinux@vger.kernel.org; Stephen Smalley <sds@tycho.nsa.gov>
Subject: Re: [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.

On Wed, Dec 18, 2019 at 1:01 AM Ravi Kumar Siddojigari <rsiddoji@codeaurora.org> wrote:
> -----Original Message-----
> From: selinux-owner@vger.kernel.org <selinux-owner@vger.kernel.org> On 
> Behalf Of Ravi Kumar Siddojigari
> Sent: Tuesday, December 17, 2019 8:42 PM
> To: 'Paul Moore' <paul@paul-moore.com>
> Cc: selinux@vger.kernel.org
> Subject: RE: [PATCH] selinux: move pkey sid cache based retrieval 
> under defconfig
>
> Yes Paul,  it should be under  CONFIG_SECURITY_INFINIBAND thanks for correcting this .
> Hope  we can taken it fwd as all the targets with disabled  InfiniBand can be gained .
> Please find the updated path for review .
>
> From 6a8c60eacd0b6e5189722bb1823864b6728c2e34 Mon Sep 17 00:00:00 2001
> From: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
> Date: Wed, 11 Dec 2019 19:57:24 +0530
> Subject: [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.
>
> Move cache based  pkey sid  retrieval code which was added with  Commit 409dcf31. under CONFIG_SECURITY_INFINIBAND.
> As its  going to alloc a new cache which may impact low ram devices which was enabled by default.
>
> Change-Id: I80a13fb7bce8723c8c880cb77cbaee42db413a7a
> Signed-off-by: Ravi Kumar Siddojigari <rsiddoji@codeaurora.org>
> ---
>  security/selinux/Makefile         | 4 +++-
>  security/selinux/hooks.c          | 6 ++++++
>  security/selinux/include/objsec.h | 2 ++
>  3 files changed, 11 insertions(+), 1 deletion(-)

...

> diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 
> b1a9ac9..157faaf 100644
> --- a/security/selinux/hooks.c
> +++ b/security/selinux/hooks.c
> @@ -94,7 +94,11 @@
>  #include "netif.h"
>  #include "netnode.h"
>  #include "netport.h"
> +
> +#ifdef CONFIG_SECURITY_INFINIBAND
>  #include "ibpkey.h"
> +#endif

See the comments below ...


>  #include "xfrm.h"
>  #include "netlabel.h"
>  #include "audit.h"
> @@ -198,7 +202,9 @@ static int selinux_netcache_avc_callback(u32 event)  static int selinux_lsm_notifier_avc_callback(u32 event)  {
>         if (event == AVC_CALLBACK_RESET) {
> +#ifdef CONFIG_SECURITY_INFINIBAND
>                 sel_ib_pkey_flush();
> +#endif
>                 call_lsm_notifier(LSM_POLICY_CHANGE, NULL);
>         }

In cases like the you see directly above, and in the #include further up, the kernel usually solves this by creating dummy function in the header file.  In this case, ibpkey.h would look something like this:

>>>
/* header comments, blah blah blah */

#ifndef _SELINUX_IB_PKEY_H
#define _SELINUX_IB_PKEY_H

#ifdef CONFIG_SECURITY_INFINIBAND
void sel_ib_pkey_flush(void);
int sel_ib_pkey_sid(u64 subnet_prefix, u16 pkey, u32 *sid); #else static inline void sel_ib_pkey_flush(void) {
  return;
}
static inline int sel_ib_pkey_sid(u64 subnet_prefix, u16 pkey, u32 *sid) {
  *sid = SECINITSID_UNLABELED;
  return 0;
}
#endif

#endif
>>>

Does that make sense?

--
paul moore
www.paul-moore.com

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-12-19 14:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-18  6:00 [PATCH] selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND Ravi Kumar Siddojigari
2019-12-19  2:08 ` Paul Moore
2019-12-19 14:18   ` Ravi Kumar Siddojigari

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).