Lines Matching refs:ipcp
173 struct kern_ipc_perm *ipcp; in ipc_findkey() local
175 ipcp = rhashtable_lookup_fast(&ids->key_ht, &key, in ipc_findkey()
177 if (!ipcp) in ipc_findkey()
181 ipc_lock_object(ipcp); in ipc_findkey()
182 return ipcp; in ipc_findkey()
336 struct kern_ipc_perm *ipcp, in ipc_check_perms() argument
342 if (ipcperms(ns, ipcp, params->flg)) in ipc_check_perms()
345 err = ops->associate(ipcp, params->flg); in ipc_check_perms()
347 err = ipcp->id; in ipc_check_perms()
370 struct kern_ipc_perm *ipcp; in ipcget_public() local
379 ipcp = ipc_findkey(ids, params->key); in ipcget_public()
380 if (ipcp == NULL) { in ipcget_public()
394 err = ops->more_checks(ipcp, params); in ipcget_public()
400 err = ipc_check_perms(ns, ipcp, ops, params); in ipcget_public()
402 ipc_unlock(ipcp); in ipcget_public()
417 static void ipc_kht_remove(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) in ipc_kht_remove() argument
419 if (ipcp->key != IPC_PRIVATE) in ipc_kht_remove()
420 rhashtable_remove_fast(&ids->key_ht, &ipcp->khtnode, in ipc_kht_remove()
432 void ipc_rmid(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) in ipc_rmid() argument
434 int idx = ipcid_to_idx(ipcp->id); in ipc_rmid()
437 ipc_kht_remove(ids, ipcp); in ipc_rmid()
439 ipcp->deleted = true; in ipc_rmid()
459 void ipc_set_key_private(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) in ipc_set_key_private() argument
461 ipc_kht_remove(ids, ipcp); in ipc_set_key_private()
462 ipcp->key = IPC_PRIVATE; in ipc_set_key_private()
490 int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag) in ipcperms() argument
495 audit_ipc_obj(ipcp); in ipcperms()
497 granted_mode = ipcp->mode; in ipcperms()
498 if (uid_eq(euid, ipcp->cuid) || in ipcperms()
499 uid_eq(euid, ipcp->uid)) in ipcperms()
501 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid)) in ipcperms()
508 return security_ipc_permission(ipcp, flag); in ipcperms()
665 struct kern_ipc_perm *ipcp; in ipcctl_obtain_check() local
667 ipcp = ipc_obtain_object_check(ids, id); in ipcctl_obtain_check()
668 if (IS_ERR(ipcp)) { in ipcctl_obtain_check()
669 err = PTR_ERR(ipcp); in ipcctl_obtain_check()
673 audit_ipc_obj(ipcp); in ipcctl_obtain_check()
679 if (uid_eq(euid, ipcp->cuid) || uid_eq(euid, ipcp->uid) || in ipcctl_obtain_check()
681 return ipcp; /* successful lookup */ in ipcctl_obtain_check()