Lines Matching refs:xp_node
52 struct avc_xperms_node *xp_node;
188 struct avc_xperms_node *xp_node)
192 list_for_each_entry(xpd_node, &xp_node->xpd_head, xpd_list) {
217 static void avc_xperms_allow_perm(struct avc_xperms_node *xp_node,
221 security_xperm_set(xp_node->xp.drivers.p, driver);
222 xpd = avc_xperms_decision_lookup(driver, xp_node);
241 static void avc_xperms_free(struct avc_xperms_node *xp_node)
245 if (!xp_node)
248 list_for_each_entry_safe(xpd_node, tmp, &xp_node->xpd_head, xpd_list) {
252 kmem_cache_free(avc_xperms_cachep, xp_node);
335 node->ae.xp_node->xp.len++;
340 list_add(&dest_xpd->xpd_list, &node->ae.xp_node->xpd_head);
346 struct avc_xperms_node *xp_node;
348 xp_node = kmem_cache_zalloc(avc_xperms_cachep, GFP_NOWAIT | __GFP_NOWARN);
349 if (!xp_node)
350 return xp_node;
351 INIT_LIST_HEAD(&xp_node->xpd_head);
352 return xp_node;
379 node->ae.xp_node = dest;
437 avc_xperms_free(node->ae.xp_node);
451 avc_xperms_free(node->ae.xp_node);
604 * @xp_node: resulting extended permissions
619 struct avc_xperms_node *xp_node)
635 if (avc_xperms_populate(node, xp_node)) {
899 if (orig->ae.xp_node) {
900 rc = avc_xperms_populate(node, orig->ae.xp_node);
910 if (node->ae.xp_node && (flags & AVC_EXTENDED_PERMS))
911 avc_xperms_allow_perm(node->ae.xp_node, driver, xperm);
1006 struct avc_xperms_node *xp_node)
1009 INIT_LIST_HEAD(&xp_node->xpd_head);
1010 security_compute_av(state, ssid, tsid, tclass, avd, &xp_node->xp);
1012 return avc_insert(state->avc, ssid, tsid, tclass, avd, xp_node);
1053 struct avc_xperms_node *xp_node;
1056 xp_node = &local_xp_node;
1064 node = avc_compute_av(state, ssid, tsid, tclass, &avd, xp_node);
1067 xp_node = node->ae.xp_node;
1070 if (!xp_node || !xp_node->xp.len)
1077 xpd = avc_xperms_decision_lookup(driver, xp_node);
1083 if (!security_xperm_test(xp_node->xp.drivers.p, driver)) {
1144 struct avc_xperms_node xp_node;
1155 node = avc_compute_av(state, ssid, tsid, tclass, avd, &xp_node);