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