Hi Jon, On Wed, 9 Nov 2022 23:45:06 +0900, Akira Yokosawa wrote: > Hi Jon, > > On Wed, 2 Nov 2022 20:48:01 +0900, Akira Yokosawa wrote: >> Since merge of tty-6.0-rc1, "make htmldocs" with Sphinx >=3.1 emits >> a bunch of warnings indicating duplicate kernel-doc comments from >> drivers/tty/serial/serial_core.c. >> >> This is due to the kernel-doc directive for serial_core.c in >> serial/drivers.rst added in the merge. It conflicts with an existing >> kernel-doc directive in miscellaneous.rst. >> >> Remove the latter directive and resolve the duplicates. >> >> Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> >> Fixes: 607ca0f742b7 ("Merge tag 'tty-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty") >> Cc: stable@xxxxxxxxxxxxxxx # 6.0 >> Cc: Jiri Slaby <jslaby@xxxxxxx> >> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> >> --- [...] > > Jon, Greg has added this to his tty tree and (hopefully) it will > soon land Linus' tree (v6.1-rcX). > I'll ask you a back-merge once it happens. This change has landed at v6.1-rc6 as commit 3ec17cb325ac ("docs/driver-api/miscellaneous: Remove kernel-doc of serial_core.c"). Can you please consider backmerging v6.1-rc6? There is another fix landed at v6.1-rc5 which fixed another duplicate kernel-doc, commit c18c20f16219 ("mm, slab: remove duplicate kernel-doc comment for ksize()") authored by Vlastimil. For your reference, appended below is the diff of warnings of duplicate from Sphinx >=3.1 (line numbers are omitted): --- htmldocs-duplicate-docs-next.log 2022-11-21 22:18:19.787652881 +0900 +++ htmldocs-duplicate-backmerge-6.1-rc6.log 2022-11-21 22:18:33.563052797 +0900 @@ -4,126 +4,6 @@ Declaration is '.. c:function:: int ssam_request_sync (struct ssam_controller *ctrl, const struct ssam_request *spec, struct ssam_response *rsp)'. /linux/Documentation/driver-api/usb/usb: ./drivers/usb/core/message.c: WARNING: Duplicate C declaration, also defined at driver-api/usb/gadget. Declaration is '.. c:function:: int usb_string (struct usb_device *dev, int index, char *buf, size_t size)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: void uart_write_wakeup(struct uart_port *port)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *port'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: void uart_update_timeout(struct uart_port *port, unsigned int cflag, unsigned int baud)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *port'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int cflag'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int baud'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: unsigned int uart_get_baud_rate(struct uart_port *port, struct ktermios *termios, const struct ktermios *old, unsigned int min, unsigned int max)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *port'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct ktermios *termios'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: const struct ktermios *old'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int min'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int max'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: unsigned int uart_get_divisor(struct uart_port *port, unsigned int baud)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *port'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int baud'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: void uart_console_write(struct uart_port *port, const char *s, unsigned int count, void (*putchar)(struct uart_port*, unsigned char))'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *port'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: const char *s'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int count'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: void (*putchar)(struct uart_port*, unsigned char)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: int uart_parse_earlycon(char *p, unsigned char *iotype, resource_size_t *addr, char **options)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: char *p'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned char *iotype'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: resource_size_t *addr'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: char **options'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: void uart_parse_options(const char *options, int *baud, int *parity, int *bits, int *flow)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: const char *options'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int *baud'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int *parity'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int *bits'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int *flow'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: int uart_set_options(struct uart_port *port, struct console *co, int baud, int parity, int bits, int flow)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *port'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct console *co'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int baud'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int parity'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int bits'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: int flow'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: int uart_register_driver(struct uart_driver *drv)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_driver *drv'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: void uart_unregister_driver(struct uart_driver *drv)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_driver *drv'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: int uart_add_one_port(struct uart_driver *drv, struct uart_port *uport)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_driver *drv'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *uport'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: int uart_remove_one_port(struct uart_driver *drv, struct uart_port *uport)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_driver *drv'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *uport'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: bool uart_match_port(const struct uart_port *port1, const struct uart_port *port2)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: const struct uart_port *port1'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: const struct uart_port *port2'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: void uart_handle_dcd_change(struct uart_port *uport, unsigned int status)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *uport'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int status'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: void uart_handle_cts_change(struct uart_port *uport, unsigned int status)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *uport'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int status'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:function:: bool uart_try_toggle_sysrq(struct uart_port *port, unsigned int ch)'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: struct uart_port *port'. -/linux/Documentation/driver-api/serial/driver.rst: WARNING: Duplicate C declaration, also defined at driver-api/miscellaneous. -Declaration is '.. c:None:: unsigned int ch'. /linux/Documentation/driver-api/usb/usb.rst: WARNING: Duplicate C declaration, also defined at driver-api/usb/gadget. Declaration is '.. c:struct:: usb_string'. /linux/Documentation/gpu/amdgpu/driver-core: ./drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c: WARNING: Duplicate C declaration, also defined at gpu/amdgpu/driver-core. @@ -142,5 +22,3 @@ Declaration is '.. c:function:: void cfg80211_rx_assoc_resp (struct net_device *dev, struct cfg80211_rx_assoc_resp *data)'. /linux/Documentation/driver-api/80211/mac80211: ./include/net/mac80211.h: WARNING: Duplicate C declaration, also defined at driver-api/80211/mac80211. Declaration is '.. c:function:: void ieee80211_tx_status (struct ieee80211_hw *hw, struct sk_buff *skb)'. -/linux/Documentation/core-api/mm-api: ./mm/slab_common.c: WARNING: Duplicate C declaration, also defined at core-api/mm-api. -Declaration is '.. c:function:: size_t ksize (const void *objp)'. Thanks, Akira