Re: [PATCH v4 19/52] memblock: get rid of a :c:type leftover

From: Mauro Carvalho Chehab
Date: Wed Sep 30 2020 - 11:13:42 EST


Em Wed, 30 Sep 2020 17:23:23 +0300
Mike Rapoport <rppt@xxxxxxxxxx> escreveu:

> Hello Mauro,
>
> On Wed, Sep 30, 2020 at 03:24:42PM +0200, Mauro Carvalho Chehab wrote:
> > chanseset b3a7bb1851c8 ("docs: get rid of :c:type explicit declarations for structs")
> > removed several :c:type: markups, except by one.
> >
> > Now, Sphinx 3.x complains about it:
> >
> > .../Documentation/core-api/boot-time-mm:26: ../mm/memblock.c:51: WARNING: Unparseable C cross-reference: 'struct\nmemblock_type'
> > Invalid C declaration: Expected identifier in nested name, got keyword: struct [error at 6]
> > struct
> > memblock_type
> > ------^
>
> Maybe this warning is caused by '\n' between struct and memblock_type?
> There are two more occurences of :c:type: around and they do not seem to
> cause warnings.

Yeah, maybe. Yet, according with:

https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#c-roles

c:type: should only be used together with ".. c:type", and this
doesn't work anymore for declaring structs, as the only valid
ways of using it after Sphinx 3.0 are:

.. c:type:: typedef-like declaration
.. c:type:: name

So, the old syntax generated by kernel doc:

.. c:type:: struct foo

Doesn't work anymore. Kernel-doc now uses, instead:

.. c:struct:: foo

(if version >= 3.0)

So, the right tag would be: :c:struct`foo`, if Sphinx > 3
or c:type:`foo` for older versions.

Better to rely on having the automarkup solving this for
us.

-

>
> > As, on Sphinx 3.x, the right markup is c:struct:`foo`.
> >
> > So, let's remove it, relying on automarkup.py to convert it.
> >
> > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
> > ---
> > mm/memblock.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/mm/memblock.c b/mm/memblock.c
> > index 165f40a8a254..326c6b3fec1d 100644
> > --- a/mm/memblock.c
> > +++ b/mm/memblock.c
> > @@ -50,8 +50,8 @@
> > *
> > * Each region is represented by :c:type:`struct memblock_region` that
>
> Can you please also convert this one?
>
> > * defines the region extents, its attributes and NUMA node id on NUMA
> > - * systems. Every memory type is described by the :c:type:`struct
> > - * memblock_type` which contains an array of memory regions along with
> > + * systems. Every memory type is described by the struct memblock_type
> > + * which contains an array of memory regions along with
> > * the allocator metadata. The "memory" and "reserved" types are nicely
> > * wrapped with :c:type:`struct memblock`. This structure is statically
>
> And this?

Good point.

I'll change those too for the next version.


>
> > * initialized at build time. The region arrays are initially sized to
> > --
> > 2.26.2
> >
>



Thanks,
Mauro