At DVB, we have, at some structs, things like (see struct dvb_demux_feed, at dvb_demux.h): union { struct dmx_ts_feed ts; struct dmx_section_feed sec; } feed; union { dmx_ts_cb ts; dmx_section_cb sec; } cb; Fix the nested parser to avoid it to eat the first union. Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> --- v2: handle embedded structs/unions from inner to outer When we have multiple levels of embedded structs, like (see v4l2-async.h): struct v4l2_async_subdev { enum v4l2_async_match_type match_type; union { struct { struct fwnode_handle *fwnode; } fwnode; struct { const char *name; } device_name; struct { int adapter_id; unsigned short address; } i2c; struct { bool (*match)(struct device *, struct v4l2_async_subdev *); void *priv; } custom; } match; ... } we need a smarter rule that will be removing nested structs from the inner to the outer ones. So, changed the parsing rule to remove nested structs/unions from the inner ones to the outer ones, while it matches. scripts/kernel-doc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 9d3eafea58f0..443e1bcc78db 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2173,7 +2173,7 @@ sub dump_struct($$) { my $members = $3; # ignore embedded structs or unions - $members =~ s/({.*})//g; + while ($members =~ s/({[^\{\}]*})//g) {}; $nested = $1; # ignore members marked private: -- 2.13.5 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html