Lines Matching refs:xp_node
52 struct avc_xperms_node *xp_node; member
179 struct avc_xperms_node *xp_node) in avc_xperms_decision_lookup() argument
183 list_for_each_entry(xpd_node, &xp_node->xpd_head, xpd_list) { in avc_xperms_decision_lookup()
209 static void avc_xperms_allow_perm(struct avc_xperms_node *xp_node, in avc_xperms_allow_perm() argument
213 security_xperm_set(xp_node->xp.drivers.p, driver); in avc_xperms_allow_perm()
214 xp_node->xp.base_perms |= base_perm; in avc_xperms_allow_perm()
215 xpd = avc_xperms_decision_lookup(driver, base_perm, xp_node); in avc_xperms_allow_perm()
234 static void avc_xperms_free(struct avc_xperms_node *xp_node) in avc_xperms_free() argument
238 if (!xp_node) in avc_xperms_free()
241 list_for_each_entry_safe(xpd_node, tmp, &xp_node->xpd_head, xpd_list) { in avc_xperms_free()
245 kmem_cache_free(avc_xperms_cachep, xp_node); in avc_xperms_free()
334 list_add(&dest_xpd->xpd_list, &node->ae.xp_node->xpd_head); in avc_add_xperms_decision()
335 node->ae.xp_node->xp.len++; in avc_add_xperms_decision()
341 struct avc_xperms_node *xp_node; in avc_xperms_alloc() local
343 xp_node = kmem_cache_zalloc(avc_xperms_cachep, GFP_NOWAIT | __GFP_NOWARN); in avc_xperms_alloc()
344 if (!xp_node) in avc_xperms_alloc()
345 return xp_node; in avc_xperms_alloc()
346 INIT_LIST_HEAD(&xp_node->xpd_head); in avc_xperms_alloc()
347 return xp_node; in avc_xperms_alloc()
375 node->ae.xp_node = dest; in avc_xperms_populate()
432 avc_xperms_free(node->ae.xp_node); in avc_node_free()
446 avc_xperms_free(node->ae.xp_node); in avc_node_kill()
607 struct av_decision *avd, struct avc_xperms_node *xp_node) in avc_insert() argument
623 if (avc_xperms_populate(node, xp_node)) { in avc_insert()
877 if (orig->ae.xp_node) { in avc_update_node()
878 rc = avc_xperms_populate(node, orig->ae.xp_node); in avc_update_node()
888 if (node->ae.xp_node && (flags & AVC_EXTENDED_PERMS)) in avc_update_node()
889 avc_xperms_allow_perm(node->ae.xp_node, driver, base_perm, xperm); in avc_update_node()
989 struct avc_xperms_node *xp_node) in avc_compute_av() argument
991 INIT_LIST_HEAD(&xp_node->xpd_head); in avc_compute_av()
992 security_compute_av(ssid, tsid, tclass, avd, &xp_node->xp); in avc_compute_av()
993 avc_insert(ssid, tsid, tclass, avd, xp_node); in avc_compute_av()
1032 struct avc_xperms_node *xp_node; in avc_has_extended_perms() local
1035 xp_node = &local_xp_node; in avc_has_extended_perms()
1043 avc_compute_av(ssid, tsid, tclass, &avd, xp_node); in avc_has_extended_perms()
1046 xp_node = node->ae.xp_node; in avc_has_extended_perms()
1049 if (!xp_node || !xp_node->xp.len) in avc_has_extended_perms()
1056 xpd = avc_xperms_decision_lookup(driver, base_perm, xp_node); in avc_has_extended_perms()
1062 if (!security_xperm_test(xp_node->xp.drivers.p, driver) || in avc_has_extended_perms()
1063 !(xp_node->xp.base_perms & base_perm)) { in avc_has_extended_perms()
1115 struct avc_xperms_node xp_node; in avc_perm_nonode() local
1117 avc_compute_av(ssid, tsid, tclass, avd, &xp_node); in avc_perm_nonode()