The patch titled Subject: ipc: rename ipcctl_pre_down_nolock() has been added to the -mm tree. Its filename is ipc-rename-ipcctl_pre_down_nolock.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/ipc-rename-ipcctl_pre_down_nolock.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/ipc-rename-ipcctl_pre_down_nolock.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx> Subject: ipc: rename ipcctl_pre_down_nolock() Both the comment and the name of ipcctl_pre_down_nolock() are misleading: The function must be called while holdling the rw semaphore. Therefore the patch renames the function to ipcctl_obtain_check(): This name matches the other names used in util.c: - "obtain" function look up a pointer in the idr, without acquiring the object lock. - The caller is responsible for locking. - _check means that the sequence number is checked. Link: http://lkml.kernel.org/r/20180709151019.1336-5-manfred@xxxxxxxxxxxxxxxx Signed-off-by: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx> Reviewed-by: Davidlohr Bueso <dbueso@xxxxxxx> Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Cc: Kees Cook <keescook@xxxxxxxxxxxx> Cc: Michael Kerrisk <mtk.manpages@xxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- ipc/msg.c | 2 +- ipc/sem.c | 2 +- ipc/shm.c | 2 +- ipc/util.c | 8 ++++---- ipc/util.h | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff -puN ipc/msg.c~ipc-rename-ipcctl_pre_down_nolock ipc/msg.c --- a/ipc/msg.c~ipc-rename-ipcctl_pre_down_nolock +++ a/ipc/msg.c @@ -385,7 +385,7 @@ static int msgctl_down(struct ipc_namesp down_write(&msg_ids(ns).rwsem); rcu_read_lock(); - ipcp = ipcctl_pre_down_nolock(ns, &msg_ids(ns), msqid, cmd, + ipcp = ipcctl_obtain_check(ns, &msg_ids(ns), msqid, cmd, &msqid64->msg_perm, msqid64->msg_qbytes); if (IS_ERR(ipcp)) { err = PTR_ERR(ipcp); diff -puN ipc/sem.c~ipc-rename-ipcctl_pre_down_nolock ipc/sem.c --- a/ipc/sem.c~ipc-rename-ipcctl_pre_down_nolock +++ a/ipc/sem.c @@ -1595,7 +1595,7 @@ static int semctl_down(struct ipc_namesp down_write(&sem_ids(ns).rwsem); rcu_read_lock(); - ipcp = ipcctl_pre_down_nolock(ns, &sem_ids(ns), semid, cmd, + ipcp = ipcctl_obtain_check(ns, &sem_ids(ns), semid, cmd, &semid64->sem_perm, 0); if (IS_ERR(ipcp)) { err = PTR_ERR(ipcp); diff -puN ipc/shm.c~ipc-rename-ipcctl_pre_down_nolock ipc/shm.c --- a/ipc/shm.c~ipc-rename-ipcctl_pre_down_nolock +++ a/ipc/shm.c @@ -868,7 +868,7 @@ static int shmctl_down(struct ipc_namesp down_write(&shm_ids(ns).rwsem); rcu_read_lock(); - ipcp = ipcctl_pre_down_nolock(ns, &shm_ids(ns), shmid, cmd, + ipcp = ipcctl_obtain_check(ns, &shm_ids(ns), shmid, cmd, &shmid64->shm_perm, 0); if (IS_ERR(ipcp)) { err = PTR_ERR(ipcp); diff -puN ipc/util.c~ipc-rename-ipcctl_pre_down_nolock ipc/util.c --- a/ipc/util.c~ipc-rename-ipcctl_pre_down_nolock +++ a/ipc/util.c @@ -703,7 +703,7 @@ int ipc_update_perm(struct ipc64_perm *i } /** - * ipcctl_pre_down_nolock - retrieve an ipc and check permissions for some IPC_XXX cmd + * ipcctl_obtain_check - retrieve an ipc object and check permissions * @ns: ipc namespace * @ids: the table of ids where to look for the ipc * @id: the id of the ipc to retrieve @@ -713,16 +713,16 @@ int ipc_update_perm(struct ipc64_perm *i * * This function does some common audit and permissions check for some IPC_XXX * cmd and is called from semctl_down, shmctl_down and msgctl_down. - * It must be called without any lock held and: * - * - retrieves the ipc with the given id in the given table. + * It: + * - retrieves the ipc object with the given id in the given table. * - performs some audit and permission check, depending on the given cmd * - returns a pointer to the ipc object or otherwise, the corresponding * error. * * Call holding the both the rwsem and the rcu read lock. */ -struct kern_ipc_perm *ipcctl_pre_down_nolock(struct ipc_namespace *ns, +struct kern_ipc_perm *ipcctl_obtain_check(struct ipc_namespace *ns, struct ipc_ids *ids, int id, int cmd, struct ipc64_perm *perm, int extra_perm) { diff -puN ipc/util.h~ipc-rename-ipcctl_pre_down_nolock ipc/util.h --- a/ipc/util.h~ipc-rename-ipcctl_pre_down_nolock +++ a/ipc/util.h @@ -148,7 +148,7 @@ struct kern_ipc_perm *ipc_obtain_object_ void kernel_to_ipc64_perm(struct kern_ipc_perm *in, struct ipc64_perm *out); void ipc64_perm_to_ipc_perm(struct ipc64_perm *in, struct ipc_perm *out); int ipc_update_perm(struct ipc64_perm *in, struct kern_ipc_perm *out); -struct kern_ipc_perm *ipcctl_pre_down_nolock(struct ipc_namespace *ns, +struct kern_ipc_perm *ipcctl_obtain_check(struct ipc_namespace *ns, struct ipc_ids *ids, int id, int cmd, struct ipc64_perm *perm, int extra_perm); _ Patches currently in -mm which might be from manfred@xxxxxxxxxxxxxxxx are ipc-reorganize-initialization-of-kern_ipc_permid.patch ipc-reorganize-initialization-of-kern_ipc_permseq.patch ipc-utilc-use-ipc_rcu_putref-for-failues-in-ipc_addid.patch ipc-rename-ipcctl_pre_down_nolock.patch ipc-utilc-correct-comment-in-ipc_obtain_object_check.patch ipc-rename-ipc_lock-to-ipc_lock_idr.patch ipc-utilc-further-ipc_idr_alloc-cleanups.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html