aboutsummaryrefslogtreecommitdiffstats
path: root/security/selinux/avc.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor@insightbb.com>2006-12-08 01:07:56 -0500
committerDmitry Torokhov <dtor@insightbb.com>2006-12-08 01:07:56 -0500
commitbef986502fa398b1785a3979b1aa17cd902d3527 (patch)
treeb59c1afe7b1dfcc001b86e54863f550d7ddc8c34 /security/selinux/avc.c
parent4bdbd2807deeccc0793d57fb5120d7a53f2c0b3c (diff)
parentc99767974ebd2a719d849fdeaaa1674456f5283f (diff)
Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts: drivers/usb/input/hid.h
Diffstat (limited to 'security/selinux/avc.c')
-rw-r--r--security/selinux/avc.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/security/selinux/avc.c b/security/selinux/avc.c
index a300702da527..e7c0b5e2066b 100644
--- a/security/selinux/avc.c
+++ b/security/selinux/avc.c
@@ -32,12 +32,7 @@
32#include "avc.h" 32#include "avc.h"
33#include "avc_ss.h" 33#include "avc_ss.h"
34 34
35static const struct av_perm_to_string 35static const struct av_perm_to_string av_perm_to_string[] = {
36{
37 u16 tclass;
38 u32 value;
39 const char *name;
40} av_perm_to_string[] = {
41#define S_(c, v, s) { c, v, s }, 36#define S_(c, v, s) { c, v, s },
42#include "av_perm_to_string.h" 37#include "av_perm_to_string.h"
43#undef S_ 38#undef S_
@@ -57,17 +52,21 @@ static const char *class_to_string[] = {
57#undef TE_ 52#undef TE_
58#undef S_ 53#undef S_
59 54
60static const struct av_inherit 55static const struct av_inherit av_inherit[] = {
61{
62 u16 tclass;
63 const char **common_pts;
64 u32 common_base;
65} av_inherit[] = {
66#define S_(c, i, b) { c, common_##i##_perm_to_string, b }, 56#define S_(c, i, b) { c, common_##i##_perm_to_string, b },
67#include "av_inherit.h" 57#include "av_inherit.h"
68#undef S_ 58#undef S_
69}; 59};
70 60
61const struct selinux_class_perm selinux_class_perm = {
62 av_perm_to_string,
63 ARRAY_SIZE(av_perm_to_string),
64 class_to_string,
65 ARRAY_SIZE(class_to_string),
66 av_inherit,
67 ARRAY_SIZE(av_inherit)
68};
69
71#define AVC_CACHE_SLOTS 512 70#define AVC_CACHE_SLOTS 512
72#define AVC_DEF_CACHE_THRESHOLD 512 71#define AVC_DEF_CACHE_THRESHOLD 512
73#define AVC_CACHE_RECLAIM 16 72#define AVC_CACHE_RECLAIM 16
@@ -125,7 +124,7 @@ DEFINE_PER_CPU(struct avc_cache_stats, avc_cache_stats) = { 0 };
125 124
126static struct avc_cache avc_cache; 125static struct avc_cache avc_cache;
127static struct avc_callback_node *avc_callbacks; 126static struct avc_callback_node *avc_callbacks;
128static kmem_cache_t *avc_node_cachep; 127static struct kmem_cache *avc_node_cachep;
129 128
130static inline int avc_hash(u32 ssid, u32 tsid, u16 tclass) 129static inline int avc_hash(u32 ssid, u32 tsid, u16 tclass)
131{ 130{
@@ -333,7 +332,7 @@ static struct avc_node *avc_alloc_node(void)
333{ 332{
334 struct avc_node *node; 333 struct avc_node *node;
335 334
336 node = kmem_cache_alloc(avc_node_cachep, SLAB_ATOMIC); 335 node = kmem_cache_alloc(avc_node_cachep, GFP_ATOMIC);
337 if (!node) 336 if (!node)
338 goto out; 337 goto out;
339 338
@@ -497,7 +496,7 @@ static inline void avc_print_ipv6_addr(struct audit_buffer *ab,
497 audit_log_format(ab, " %s=%d", name2, ntohs(port)); 496 audit_log_format(ab, " %s=%d", name2, ntohs(port));
498} 497}
499 498
500static inline void avc_print_ipv4_addr(struct audit_buffer *ab, u32 addr, 499static inline void avc_print_ipv4_addr(struct audit_buffer *ab, __be32 addr,
501 __be16 port, char *name1, char *name2) 500 __be16 port, char *name1, char *name2)
502{ 501{
503 if (addr) 502 if (addr)