diff mbox series

[v2] mm: Fixed incorrect comment for _kmem_cache_create function

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

Commit Message

zhaoxinchao April 11, 2023, 9:13 a.m. UTC
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(-)

Comments

Bagas Sanjaya April 12, 2023, 3:40 a.m. UTC | #1
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.
zhaoxinchao April 12, 2023, 6:17 a.m. UTC | #2
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
Vlastimil Babka April 17, 2023, 3:47 p.m. UTC | #3
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 mbox series

Patch

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.
  *