The patch titled Subject: ipc: rename ipc_lock() to ipc_lock_idr() has been added to the -mm tree. Its filename is ipc-rename-ipc_lock-to-ipc_lock_idr.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/ipc-rename-ipc_lock-to-ipc_lock_idr.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/ipc-rename-ipc_lock-to-ipc_lock_idr.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 ipc_lock() to ipc_lock_idr() ipc/util.c contains multiple functions to get the ipc object pointer given an id number. There are two sets of function: One set verifies the sequence counter part of the id number, other functions do not check the sequence counter. The standard for function names in ipc/util.c is - ..._check() functions verify the sequence counter - ..._idr() functions do not verify the sequence counter ipc_lock() is an exception: It does not verify the sequence counter value, but this is not obvious from the function name. Therefore: Rename the function to ipc_lock_idr(), to make it obvious that it does not check the sequence counter. Link: http://lkml.kernel.org/r/20180709151019.1336-7-manfred@xxxxxxxxxxxxxxxx Signed-off-by: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx> Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx> 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/shm.c | 4 ++-- ipc/util.c | 10 ++++++---- ipc/util.h | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff -puN ipc/shm.c~ipc-rename-ipc_lock-to-ipc_lock_idr ipc/shm.c --- a/ipc/shm.c~ipc-rename-ipc_lock-to-ipc_lock_idr +++ a/ipc/shm.c @@ -179,11 +179,11 @@ static inline struct shmid_kernel *shm_o */ static inline struct shmid_kernel *shm_lock(struct ipc_namespace *ns, int id) { - struct kern_ipc_perm *ipcp = ipc_lock(&shm_ids(ns), id); + struct kern_ipc_perm *ipcp = ipc_lock_idr(&shm_ids(ns), id); /* * Callers of shm_lock() must validate the status of the returned ipc - * object pointer (as returned by ipc_lock()), and error out as + * object pointer (as returned by ipc_lock_idr()), and error out as * appropriate. */ if (IS_ERR(ipcp)) diff -puN ipc/util.c~ipc-rename-ipc_lock-to-ipc_lock_idr ipc/util.c --- a/ipc/util.c~ipc-rename-ipc_lock-to-ipc_lock_idr +++ a/ipc/util.c @@ -604,15 +604,17 @@ struct kern_ipc_perm *ipc_obtain_object_ } /** - * ipc_lock - lock an ipc structure without rwsem held + * ipc_lock_idr - lock an ipc structure without rwsem held * @ids: ipc identifier set * @id: ipc id to look for * * Look for an id in the ipc ids idr and lock the associated ipc object. + * The function does not check if the sequence counter matches the + * found ipc object. * * The ipc object is locked on successful exit. */ -struct kern_ipc_perm *ipc_lock(struct ipc_ids *ids, int id) +struct kern_ipc_perm *ipc_lock_idr(struct ipc_ids *ids, int id) { struct kern_ipc_perm *out; @@ -624,8 +626,8 @@ struct kern_ipc_perm *ipc_lock(struct ip spin_lock(&out->lock); /* - * ipc_rmid() may have already freed the ID while ipc_lock() - * was spinning: here verify that the structure is still valid. + * ipc_rmid() may have already freed the ID while waiting for + * the lock. Here verify that the structure is still valid. * Upon races with RMID, return -EIDRM, thus indicating that * the ID points to a removed identifier. */ diff -puN ipc/util.h~ipc-rename-ipc_lock-to-ipc_lock_idr ipc/util.h --- a/ipc/util.h~ipc-rename-ipc_lock-to-ipc_lock_idr +++ a/ipc/util.h @@ -142,7 +142,7 @@ int ipc_rcu_getref(struct kern_ipc_perm void ipc_rcu_putref(struct kern_ipc_perm *ptr, void (*func)(struct rcu_head *head)); -struct kern_ipc_perm *ipc_lock(struct ipc_ids *, int); +struct kern_ipc_perm *ipc_lock_idr(struct ipc_ids *ids, int id); struct kern_ipc_perm *ipc_obtain_object_idr(struct ipc_ids *ids, int id); void kernel_to_ipc64_perm(struct kern_ipc_perm *in, struct ipc64_perm *out); _ 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