Message ID | DM6PR22MB183653311FF3549B7D473020C59A9@DM6PR22MB1836.namprd22.prod.outlook.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [v2] mm: Fixed incorrect comment for _kmem_cache_create function | expand |
On 4/11/23 16:13, zhaoxinchao wrote: > diff --git a/mm/slab.c b/mm/slab.c > index edbe722fb..399daa4d0 100644 > --- a/mm/slab.c > +++ b/mm/slab.c > @@ -1893,7 +1893,12 @@ static bool set_on_slab_cache(struct kmem_cache *cachep, > * @cachep: cache management descriptor > * @flags: SLAB flags > * > - * Returns a ptr to the cache on success, NULL on failure. > + * Returns zero on success, nonzero on failure. > + * This function has three return positions. > + * In addition to successfully return 0, the > + * first failed position will return - E2BIG, > + * and the second position will return nonzero > + * value for setup_cpu_cache function failure. > * Cannot be called within an int, but can be interrupted. > * The @ctor is run when new pages are allocated by the cache. > * I don't see any visible changes in my htmldocs build (since the kernel-doc is for inline version of kmem_cache_create()). You will also need to update kernel-doc comment for kmem_cache_create_usercopy() and kmem_cache_create() in mm/slab_common.c. Since the latter function is actually a wrapper on the former, the return value description (Return: field) should be same on both. Thanks.
I don't think kmem_cache_create is associated with __kmem_cache_create, __kmem_cache_create is not exported as an API, it is a function called internally by the kernel. So the kernel documentation does not document this internal interface. -----邮件原件----- 发件人: Bagas Sanjaya [mailto:bagasdotme@gmail.com] 发送时间: 2023年4月12日 11:40 收件人: zhaoxinchao <ChrisXinchao@outlook.com> 抄送: akpm@linux-foundation.org; cl@linux.com; iamjoonsoo.kim@lge.com; linux-kernel@vger.kernel.org; linux-mm@kvack.org; penberg@kernel.org; rientjes@google.com; vbabka@suse.cz 主题: Re: [PATCH v2] mm: Fixed incorrect comment for _kmem_cache_create function On 4/11/23 16:13, zhaoxinchao wrote: > diff --git a/mm/slab.c b/mm/slab.c > index edbe722fb..399daa4d0 100644 > --- a/mm/slab.c > +++ b/mm/slab.c > @@ -1893,7 +1893,12 @@ static bool set_on_slab_cache(struct kmem_cache *cachep, > * @cachep: cache management descriptor > * @flags: SLAB flags > * > - * Returns a ptr to the cache on success, NULL on failure. > + * Returns zero on success, nonzero on failure. > + * This function has three return positions. > + * In addition to successfully return 0, the > + * first failed position will return - E2BIG, > + * and the second position will return nonzero > + * value for setup_cpu_cache function failure. > * Cannot be called within an int, but can be interrupted. > * The @ctor is run when new pages are allocated by the cache. > * I don't see any visible changes in my htmldocs build (since the kernel-doc is for inline version of kmem_cache_create()). You will also need to update kernel-doc comment for kmem_cache_create_usercopy() and kmem_cache_create() in mm/slab_common.c. Since the latter function is actually a wrapper on the former, the return value description (Return: field) should be same on both. Thanks. -- An old man doll... just what I always wanted! - Clara
On 4/11/23 11:13, zhaoxinchao wrote: > From: zhaoxinchao <chrisxinchao@outlook.com> > > Actually __kmem_cache_create() returns a status : > 0 is success > nonezero are failed. > > This function has three return positions. In addition to successfully > return 0, the first failed position will return - E2BIG, and the second > position will return nonzero value for setup_cpu_cache function failure. > > Signed-off-by: zhaoxinchao <chrisxinchao@outlook.com> > --- > mm/slab.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/mm/slab.c b/mm/slab.c > index edbe722fb..399daa4d0 100644 > --- a/mm/slab.c > +++ b/mm/slab.c > @@ -1893,7 +1893,12 @@ static bool set_on_slab_cache(struct kmem_cache *cachep, > * @cachep: cache management descriptor > * @flags: SLAB flags > * > - * Returns a ptr to the cache on success, NULL on failure. > + * Returns zero on success, nonzero on failure. OK. > + * This function has three return positions. > + * In addition to successfully return 0, the > + * first failed position will return - E2BIG, > + * and the second position will return nonzero > + * value for setup_cpu_cache function failure. I don't think we need to be so specific here, so we can drop this block. > * Cannot be called within an int, but can be interrupted. > * The @ctor is run when new pages are allocated by the cache. > * You missed that there's also: * Return: a pointer to the created cache or %NULL in case of error */ int __kmem_cache_create(struct kmem_cache *cachep, slab_flags_t flags) I guess we can drop the first mention of returns and fix up this one. Also I'd make this a non-kerneldoc comment (/* instead of /**) as it's for a SLAB-specific internal implementation only. Only kmem_cache_create() is meant as an API.
diff --git a/mm/slab.c b/mm/slab.c index edbe722fb..399daa4d0 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -1893,7 +1893,12 @@ static bool set_on_slab_cache(struct kmem_cache *cachep, * @cachep: cache management descriptor * @flags: SLAB flags * - * Returns a ptr to the cache on success, NULL on failure. + * Returns zero on success, nonzero on failure. + * This function has three return positions. + * In addition to successfully return 0, the + * first failed position will return - E2BIG, + * and the second position will return nonzero + * value for setup_cpu_cache function failure. * Cannot be called within an int, but can be interrupted. * The @ctor is run when new pages are allocated by the cache. *