mbox series

[00/21,Set,2] Rid W=1 warnings from Clock

Message ID 20210126124540.3320214-1-lee.jones@linaro.org
Headers show
Series Rid W=1 warnings from Clock | expand

Message

Lee Jones Jan. 26, 2021, 12:45 p.m. UTC
This set is part of a larger effort attempting to clean-up W=1
kernel builds, which are currently overwhelmingly riddled with
niggly little warnings.

This is the last set.  Clock is clean after this.

Lee Jones (21):
  clk: zynq: pll: Fix kernel-doc formatting in 'clk_register_zynq_pll's
    header
  clk: ti: clkt_dpll: Fix some kernel-doc misdemeanours
  clk: ti: dpll3xxx: Fix some kernel-doc headers and promote other
    worthy ones
  clk: qcom: clk-regmap: Provide missing description for
    'devm_clk_register_regmap()'s dev param
  clk: sunxi: clk-sun9i-core: Demote non-conformant kernel-doc headers
  clk: sunxi: clk-usb: Demote obvious kernel-doc abuse
  clk: tegra: clk-tegra30: Remove unused variable 'reg'
  clk: clkdev: Ignore suggestion to use gnu_printf() as it's not
    appropriate here
  clk: tegra: cvb: Provide missing description for
    'tegra_cvb_add_opp_table()'s align param
  clk: ti: dpll44xx: Fix some potential doc-rot
  clk: renesas: renesas-cpg-mssr: Fix formatting issues for
    'smstpcr_saved's documentation
  clk: sunxi: clk-sun6i-ar100: Demote non-conformant kernel-doc header
  clk: qcom: gcc-ipq4019: Remove unused variable 'ret'
  clk: clk-fixed-mmio: Demote obvious kernel-doc abuse
  clk: clk-npcm7xx: Remove unused static const tables 'npcm7xx_gates'
    and 'npcm7xx_divs_fx'
  clk: qcom: mmcc-msm8974: Remove unused static const tables
    'mmcc_xo_mmpll0_1_2_gpll0{map}'
  clk: clk-xgene: Add description for 'mask' and fix formatting for
    'flags'
  clk: qcom: clk-rpm: Remove a bunch of superfluous code
  clk: spear: Move prototype to accessible header
  clk: imx: Move 'imx6sl_set_wait_clk()'s prototype out to accessible
    header
  clk: zynqmp: divider: Add missing description for 'max_div'

 arch/arm/mach-imx/common.h             |   1 -
 arch/arm/mach-imx/cpuidle-imx6sl.c     |   1 +
 arch/arm/mach-imx/pm-imx6.c            |   1 +
 arch/arm/mach-spear/generic.h          |  12 ---
 arch/arm/mach-spear/spear13xx.c        |   1 +
 drivers/clk/clk-fixed-mmio.c           |   2 +-
 drivers/clk/clk-npcm7xx.c              | 108 -------------------------
 drivers/clk/clk-xgene.c                |   5 +-
 drivers/clk/clkdev.c                   |   7 ++
 drivers/clk/imx/clk-imx6sl.c           |   1 +
 drivers/clk/qcom/clk-regmap.c          |   1 +
 drivers/clk/qcom/clk-rpm.c             |  63 ---------------
 drivers/clk/qcom/gcc-ipq4019.c         |   7 +-
 drivers/clk/qcom/mmcc-msm8974.c        |  16 ----
 drivers/clk/renesas/renesas-cpg-mssr.c |   4 +-
 drivers/clk/spear/spear1310_clock.c    |   1 +
 drivers/clk/spear/spear1340_clock.c    |   1 +
 drivers/clk/sunxi/clk-sun6i-ar100.c    |   2 +-
 drivers/clk/sunxi/clk-sun9i-core.c     |   8 +-
 drivers/clk/sunxi/clk-usb.c            |   2 +-
 drivers/clk/tegra/clk-tegra30.c        |   5 +-
 drivers/clk/tegra/cvb.c                |   1 +
 drivers/clk/ti/clkt_dpll.c             |   3 +-
 drivers/clk/ti/dpll3xxx.c              |  20 ++---
 drivers/clk/ti/dpll44xx.c              |   6 +-
 drivers/clk/zynq/pll.c                 |  12 +--
 drivers/clk/zynqmp/divider.c           |   1 +
 include/linux/clk/imx.h                |  15 ++++
 include/linux/clk/spear.h              |  23 ++++++
 29 files changed, 92 insertions(+), 238 deletions(-)
 create mode 100644 include/linux/clk/imx.h
 create mode 100644 include/linux/clk/spear.h

Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: Andy Gross <agross@kernel.org>
Cc: Avi Fishman <avifishman70@gmail.com>
Cc: Benjamin Fair <benjaminfair@google.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: "Emilio López" <emilio@elopez.com.ar>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Jan Kotas <jank@cadence.com>
Cc: Jernej Skrabec <jernej.skrabec@siol.net>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: linux-omap@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-tegra@vger.kernel.org
Cc: Loc Ho <lho@apm.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Nancy Yuen <yuenn@google.com>
Cc: Nuvoton Technologies <tali.perry@nuvoton.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: openbmc@lists.ozlabs.org
Cc: Patrick Venture <venture@google.com>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Prashant Gaikwad <pgaikwad@nvidia.com>
Cc: Rajan Vaja <rajan.vaja@xilinx.com>
Cc: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Cc: Richard Woodruff <r-woodruff2@ti.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Shiraz Hashim <shiraz.linux.kernel@gmail.com>
Cc: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Tali Perry <tali.perry1@gmail.com>
Cc: Tero Kristo <kristo@kernel.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Tomer Maimon <tmaimon77@gmail.com>
Cc: Viresh Kumar <vireshk@kernel.org>

Comments

Michal Simek Jan. 26, 2021, 12:51 p.m. UTC | #1
On 1/26/21 1:45 PM, Lee Jones wrote:
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/zynqmp/divider.c:46: warning: Function parameter or member 'max_div' not described in 'zynqmp_clk_divider'
> 
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Rajan Vaja <rajan.vaja@xilinx.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/clk/zynqmp/divider.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/clk/zynqmp/divider.c b/drivers/clk/zynqmp/divider.c
> index 66da02b83d393..e9bf7958b8218 100644
> --- a/drivers/clk/zynqmp/divider.c
> +++ b/drivers/clk/zynqmp/divider.c
> @@ -35,6 +35,7 @@
>   * @is_frac:	The divider is a fractional divider
>   * @clk_id:	Id of clock
>   * @div_type:	divisor type (TYPE_DIV1 or TYPE_DIV2)
> + * @max_div:	maximum supported divisor (fetched from firmware)
>   */
>  struct zynqmp_clk_divider {
>  	struct clk_hw hw;
> 

In our soc tree we have
 * @max_div:    Maximum divisor value allowed

But your description should be also fine. Rajan please reply if I am
wrong. Otherwise:
Acked-by: Michal Simek <michal.simek@xilinx.com>

Thanks,
Michal
Michal Simek Jan. 26, 2021, 12:58 p.m. UTC | #2
On 1/26/21 1:45 PM, Lee Jones wrote:
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'name' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'parent' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'pll_ctrl' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'pll_status' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'lock_index' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'lock' not described in 'clk_register_zynq_pll'
> 
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/clk/zynq/pll.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/clk/zynq/pll.c b/drivers/clk/zynq/pll.c
> index dcb2037a95964..54f4184de89af 100644
> --- a/drivers/clk/zynq/pll.c
> +++ b/drivers/clk/zynq/pll.c
> @@ -173,12 +173,12 @@ static const struct clk_ops zynq_pll_ops = {
>  
>  /**
>   * clk_register_zynq_pll() - Register PLL with the clock framework
> - * @name	PLL name
> - * @parent	Parent clock name
> - * @pll_ctrl	Pointer to PLL control register
> - * @pll_status	Pointer to PLL status register
> - * @lock_index	Bit index to this PLL's lock status bit in @pll_status
> - * @lock	Register lock
> + * @name:	PLL name
> + * @parent:	Parent clock name
> + * @pll_ctrl:	Pointer to PLL control register
> + * @pll_status:	Pointer to PLL status register
> + * @lock_index:	Bit index to this PLL's lock status bit in @pll_status
> + * @lock:	Register lock
>   * Returns handle to the registered clock.
>   */
>  struct clk *clk_register_zynq_pll(const char *name, const char *parent,
> 

When you are on this we should also fix that Returns which are also
reported by kernel-doc

When your patch is applied:

[linux](master)$ ./scripts/kernel-doc -v -man drivers/clk/zynq/pll.c >
/dev/null
drivers/clk/zynq/pll.c:15: warning: missing initial short description on
line:
 * struct zynq_pll
drivers/clk/zynq/pll.c:15: info: Scanning doc for struct
drivers/clk/zynq/pll.c:45: info: Scanning doc for zynq_pll_round_rate
drivers/clk/zynq/pll.c:53: warning: No description found for return
value of 'zynq_pll_round_rate'
drivers/clk/zynq/pll.c:66: info: Scanning doc for zynq_pll_recalc_rate
drivers/clk/zynq/pll.c:73: warning: No description found for return
value of 'zynq_pll_recalc_rate'
drivers/clk/zynq/pll.c:88: info: Scanning doc for zynq_pll_is_enabled
drivers/clk/zynq/pll.c:96: warning: No description found for return
value of 'zynq_pll_is_enabled'
drivers/clk/zynq/pll.c:111: info: Scanning doc for zynq_pll_enable
drivers/clk/zynq/pll.c:116: warning: No description found for return
value of 'zynq_pll_enable'
drivers/clk/zynq/pll.c:141: info: Scanning doc for zynq_pll_disable
drivers/clk/zynq/pll.c:175: info: Scanning doc for clk_register_zynq_pll
drivers/clk/zynq/pll.c:187: warning: No description found for return
value of 'clk_register_zynq_pll'
6 warnings

Can you please also fix it? It can be done in separate patch if this is
not reported by W=1.

Acked-by: Michal Simek <michal.simek@xilinx.com>

Thanks,
Michal
Maxime Ripard Jan. 26, 2021, 3:54 p.m. UTC | #3
On Tue, Jan 26, 2021 at 12:45:31PM +0000, Lee Jones wrote:
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/sunxi/clk-sun6i-ar100.c:26: warning: Function parameter or member 'req' not described in 'sun6i_get_ar100_factors'
> 
> Cc: "Emilio López" <emilio@elopez.com.ar>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Jernej Skrabec <jernej.skrabec@siol.net>
> Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/clk/sunxi/clk-sun6i-ar100.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/sunxi/clk-sun6i-ar100.c b/drivers/clk/sunxi/clk-sun6i-ar100.c
> index e1b7d0929cf7f..54babc2b4b9ee 100644
> --- a/drivers/clk/sunxi/clk-sun6i-ar100.c
> +++ b/drivers/clk/sunxi/clk-sun6i-ar100.c
> @@ -16,7 +16,7 @@
>  
>  #include "clk-factors.h"
>  
> -/**
> +/*
>   * sun6i_get_ar100_factors - Calculates factors p, m for AR100
>   *
>   * AR100 rate is calculated as follows

This is the sixth patch doing the exact same thing over the files in
that folder you sent. Please fix all the occurences at once

Maxime
Lee Jones Jan. 26, 2021, 4:54 p.m. UTC | #4
On Tue, 26 Jan 2021, Maxime Ripard wrote:

> On Tue, Jan 26, 2021 at 12:45:31PM +0000, Lee Jones wrote:
> > Fixes the following W=1 kernel build warning(s):
> > 
> >  drivers/clk/sunxi/clk-sun6i-ar100.c:26: warning: Function parameter or member 'req' not described in 'sun6i_get_ar100_factors'
> > 
> > Cc: "Emilio López" <emilio@elopez.com.ar>
> > Cc: Michael Turquette <mturquette@baylibre.com>
> > Cc: Stephen Boyd <sboyd@kernel.org>
> > Cc: Maxime Ripard <mripard@kernel.org>
> > Cc: Chen-Yu Tsai <wens@csie.org>
> > Cc: Jernej Skrabec <jernej.skrabec@siol.net>
> > Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
> > Cc: linux-clk@vger.kernel.org
> > Cc: linux-arm-kernel@lists.infradead.org
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > ---
> >  drivers/clk/sunxi/clk-sun6i-ar100.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/clk/sunxi/clk-sun6i-ar100.c b/drivers/clk/sunxi/clk-sun6i-ar100.c
> > index e1b7d0929cf7f..54babc2b4b9ee 100644
> > --- a/drivers/clk/sunxi/clk-sun6i-ar100.c
> > +++ b/drivers/clk/sunxi/clk-sun6i-ar100.c
> > @@ -16,7 +16,7 @@
> >  
> >  #include "clk-factors.h"
> >  
> > -/**
> > +/*
> >   * sun6i_get_ar100_factors - Calculates factors p, m for AR100
> >   *
> >   * AR100 rate is calculated as follows
> 
> This is the sixth patch doing the exact same thing over the files in
> that folder you sent. Please fix all the occurences at once

No.  That would make the whole clean-up process 10x harder than it
already is

Before starting this endeavour there were 18,000+ warnings spread over
100's of files and 10's of subsystems that needed addressing (only a
couple thousand left now thankfully).  Some issues vastly different,
some duplicated (much too much copy/pasting going which made things
very frustrating at times).

Anyway, in order to work though them all gracefully and in a sensible
time-frame I had to come up with a workable plan.  Each subsystem is
compiled separately and a script attempts to take out duplicate
warnings and takes me through the build-log one file at a time.  Once
all of the warnings are fixed in a source-file, it moves on to the
next file.  The method is clean and allows me to handle this
gargantuan task in bite-sized chunks.

Going though and pairing up similar changes is unsustainable for a
task like this.  It would add a lot of additional overhead and would
slow down the rate of acceptance since source files tend to have
different reviewers/maintainers - some working faster to review
patches than others, leading to excessive lag times waiting for that
one reviewer who takes weeks to review.  Having each file addressed
in a separate patch also helps revertability and bisectability.  Not
such a big problem with the documentation patches, but still.

Admittedly doing it this way *can* look a bit odd in *some* patch-sets
when they hit the MLs - particularly clock it seems, where there
hasn't even been a vague attempt to document any of the parameters in
the kernel-doc headers - however the alternative would mean nothing
would get done!
Viresh Kumar Jan. 27, 2021, 4:36 a.m. UTC | #5
On 26-01-21, 12:45, Lee Jones wrote:
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/spear/spear1310_clock.c:385:13: warning: no previous prototype for ‘spear1310_clk_init’ [-Wmissing-prototypes]
>  drivers/clk/spear/spear1340_clock.c:442:13: warning: no previous prototype for ‘spear1340_clk_init’ [-Wmissing-prototypes]
> 
> Cc: Viresh Kumar <vireshk@kernel.org>
> Cc: Shiraz Hashim <shiraz.linux.kernel@gmail.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Rajeev Kumar <rajeev-dlh.kumar@st.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  arch/arm/mach-spear/generic.h       | 12 ------------
>  arch/arm/mach-spear/spear13xx.c     |  1 +
>  drivers/clk/spear/spear1310_clock.c |  1 +
>  drivers/clk/spear/spear1340_clock.c |  1 +
>  include/linux/clk/spear.h           | 23 +++++++++++++++++++++++
>  5 files changed, 26 insertions(+), 12 deletions(-)
>  create mode 100644 include/linux/clk/spear.h

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Lee Jones Feb. 3, 2021, 8:31 a.m. UTC | #6
On Tue, 26 Jan 2021, Lee Jones wrote:

> This set is part of a larger effort attempting to clean-up W=1
> kernel builds, which are currently overwhelmingly riddled with
> niggly little warnings.
> 
> This is the last set.  Clock is clean after this.

Out of interest, what normally happens to the patches which aren't
picked up by individual driver Maintainers?
Maxime Ripard Feb. 3, 2021, 9:27 a.m. UTC | #7
On Tue, Jan 26, 2021 at 04:54:59PM +0000, Lee Jones wrote:
> On Tue, 26 Jan 2021, Maxime Ripard wrote:
> 
> > On Tue, Jan 26, 2021 at 12:45:31PM +0000, Lee Jones wrote:
> > > Fixes the following W=1 kernel build warning(s):
> > > 
> > >  drivers/clk/sunxi/clk-sun6i-ar100.c:26: warning: Function parameter or member 'req' not described in 'sun6i_get_ar100_factors'
> > > 
> > > Cc: "Emilio López" <emilio@elopez.com.ar>
> > > Cc: Michael Turquette <mturquette@baylibre.com>
> > > Cc: Stephen Boyd <sboyd@kernel.org>
> > > Cc: Maxime Ripard <mripard@kernel.org>
> > > Cc: Chen-Yu Tsai <wens@csie.org>
> > > Cc: Jernej Skrabec <jernej.skrabec@siol.net>
> > > Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
> > > Cc: linux-clk@vger.kernel.org
> > > Cc: linux-arm-kernel@lists.infradead.org
> > > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > > ---
> > >  drivers/clk/sunxi/clk-sun6i-ar100.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/clk/sunxi/clk-sun6i-ar100.c b/drivers/clk/sunxi/clk-sun6i-ar100.c
> > > index e1b7d0929cf7f..54babc2b4b9ee 100644
> > > --- a/drivers/clk/sunxi/clk-sun6i-ar100.c
> > > +++ b/drivers/clk/sunxi/clk-sun6i-ar100.c
> > > @@ -16,7 +16,7 @@
> > >  
> > >  #include "clk-factors.h"
> > >  
> > > -/**
> > > +/*
> > >   * sun6i_get_ar100_factors - Calculates factors p, m for AR100
> > >   *
> > >   * AR100 rate is calculated as follows
> > 
> > This is the sixth patch doing the exact same thing over the files in
> > that folder you sent. Please fix all the occurences at once
> 
> No.  That would make the whole clean-up process 10x harder than it
> already is
> 
> Before starting this endeavour there were 18,000+ warnings spread over
> 100's of files and 10's of subsystems that needed addressing (only a
> couple thousand left now thankfully).  Some issues vastly different,
> some duplicated (much too much copy/pasting going which made things
> very frustrating at times).
> 
> Anyway, in order to work though them all gracefully and in a sensible
> time-frame I had to come up with a workable plan.  Each subsystem is
> compiled separately and a script attempts to take out duplicate
> warnings and takes me through the build-log one file at a time.  Once
> all of the warnings are fixed in a source-file, it moves on to the
> next file.  The method is clean and allows me to handle this
> gargantuan task in bite-sized chunks.

I mean, you have literally used the same commit log and the same changes
over six different files in the same directory. Sure changes across
different parts of the kernel can be painful, but it's really not what
we're discussing here.

> Going though and pairing up similar changes is unsustainable for a
> task like this.  It would add a lot of additional overhead and would
> slow down the rate of acceptance since source files tend to have
> different reviewers/maintainers - some working faster to review
> patches than others, leading to excessive lag times waiting for that
> one reviewer who takes weeks to review.

Are you arguing that sending the same patch 6 times is easier and faster
to review for the maintainer than the same changes in a single patch?

> Having each file addressed in a separate patch also helps
> revertability and bisectability. Not such a big problem with the
> documentation patches, but still.

There's nothing to revert or bisect, those changes aren't functional
changes.

> Admittedly doing it this way *can* look a bit odd in *some* patch-sets
> when they hit the MLs - particularly clock it seems, where there
> hasn't even been a vague attempt to document any of the parameters in
> the kernel-doc headers - however the alternative would mean nothing
> would get done!

Yeah, and even though properly documenting the functions would have been
the right way to fix those warnings, I didn't ask you to do that since I
was expecting it to be daunting. Surely we can meet half-way

Maxime
Lee Jones Feb. 3, 2021, 10:09 a.m. UTC | #8
On Wed, 03 Feb 2021, Maxime Ripard wrote:

> On Tue, Jan 26, 2021 at 04:54:59PM +0000, Lee Jones wrote:
> > On Tue, 26 Jan 2021, Maxime Ripard wrote:
> > 
> > > On Tue, Jan 26, 2021 at 12:45:31PM +0000, Lee Jones wrote:
> > > > Fixes the following W=1 kernel build warning(s):
> > > > 
> > > >  drivers/clk/sunxi/clk-sun6i-ar100.c:26: warning: Function parameter or member 'req' not described in 'sun6i_get_ar100_factors'
> > > > 
> > > > Cc: "Emilio López" <emilio@elopez.com.ar>
> > > > Cc: Michael Turquette <mturquette@baylibre.com>
> > > > Cc: Stephen Boyd <sboyd@kernel.org>
> > > > Cc: Maxime Ripard <mripard@kernel.org>
> > > > Cc: Chen-Yu Tsai <wens@csie.org>
> > > > Cc: Jernej Skrabec <jernej.skrabec@siol.net>
> > > > Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
> > > > Cc: linux-clk@vger.kernel.org
> > > > Cc: linux-arm-kernel@lists.infradead.org
> > > > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > > > ---
> > > >  drivers/clk/sunxi/clk-sun6i-ar100.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/drivers/clk/sunxi/clk-sun6i-ar100.c b/drivers/clk/sunxi/clk-sun6i-ar100.c
> > > > index e1b7d0929cf7f..54babc2b4b9ee 100644
> > > > --- a/drivers/clk/sunxi/clk-sun6i-ar100.c
> > > > +++ b/drivers/clk/sunxi/clk-sun6i-ar100.c
> > > > @@ -16,7 +16,7 @@
> > > >  
> > > >  #include "clk-factors.h"
> > > >  
> > > > -/**
> > > > +/*
> > > >   * sun6i_get_ar100_factors - Calculates factors p, m for AR100
> > > >   *
> > > >   * AR100 rate is calculated as follows
> > > 
> > > This is the sixth patch doing the exact same thing over the files in
> > > that folder you sent. Please fix all the occurences at once
> > 
> > No.  That would make the whole clean-up process 10x harder than it
> > already is
> > 
> > Before starting this endeavour there were 18,000+ warnings spread over
> > 100's of files and 10's of subsystems that needed addressing (only a
> > couple thousand left now thankfully).  Some issues vastly different,
> > some duplicated (much too much copy/pasting going which made things
> > very frustrating at times).
> > 
> > Anyway, in order to work though them all gracefully and in a sensible
> > time-frame I had to come up with a workable plan.  Each subsystem is
> > compiled separately and a script attempts to take out duplicate
> > warnings and takes me through the build-log one file at a time.  Once
> > all of the warnings are fixed in a source-file, it moves on to the
> > next file.  The method is clean and allows me to handle this
> > gargantuan task in bite-sized chunks.
> 
> I mean, you have literally used the same commit log and the same changes
> over six different files in the same directory.

Yes, that happens.  It's an unfortunate side-effect of the same ol'
issues repeating themselves over and over.  Mostly due to copy/paste
of mundane code segments such as function documentation.

> Sure changes across
> different parts of the kernel can be painful, but it's really not what
> we're discussing here.

It would have even been painful to post-process patches within the
same subsystem.  For instance, I've just finished cleaning up GPU
which was a mammoth task where most of the issues were perpetually
duplicated.

I will admit though, that here in Clock, it would be somewhat easier.

> > Going though and pairing up similar changes is unsustainable for a
> > task like this.  It would add a lot of additional overhead and would
> > slow down the rate of acceptance since source files tend to have
> > different reviewers/maintainers - some working faster to review
> > patches than others, leading to excessive lag times waiting for that
> > one reviewer who takes weeks to review.
> 
> Are you arguing that sending the same patch 6 times is easier and faster
> to review for the maintainer than the same changes in a single patch?

The issue I see with the Clock, is that some files are maintained by
individual driver Maintainers and others by subsystem Maintainers.  So
the post-process here is that much more painful (as it can't be
easily scripted using get_maintainer.pl) and the aforementioned
lag-time issues come into play while we wait for sleepy reviewers.

> > Having each file addressed in a separate patch also helps
> > revertability and bisectability. Not such a big problem with the
> > documentation patches, but still.
> 
> There's nothing to revert or bisect, those changes aren't functional
> changes.

Right, I did mention that.

> > Admittedly doing it this way *can* look a bit odd in *some* patch-sets
> > when they hit the MLs - particularly clock it seems, where there
> > hasn't even been a vague attempt to document any of the parameters in
> > the kernel-doc headers - however the alternative would mean nothing
> > would get done!
> 
> Yeah, and even though properly documenting the functions would have been
> the right way to fix those warnings, I didn't ask you to do that since I
> was expecting it to be daunting.

There are a couple of schools of thought on function documentation.
The conflicting one to yours is that Kernel-doc headers should only be
used if they are part of an API and have an accompanying kernel-doc::
tag in Documentation.  The functions touched here do not.

NB: Fortunately the functions we're discussing are all static or else
`scripts/find-unused-docs.sh` would complain about them also.

Personally, I am in the middle.  If authors have had a good go at
documenting functions and their parameters, I'll make the effort to
fix any doc-rot or oversights.  However if, like here, no such effort
has been made, they get demoted.  Nothing stopping authors fixing them
up properly and re-promoting them again though.  Essentially I'm
trying to avoid a situation where authors throw something together
half-heatedly, safe in the knowledge that someone will come fix and
beautify things for them.

> Surely we can meet half-way

I'm always happy to collaborate.  What does half-way look like?
Stephen Boyd Feb. 5, 2021, 6:55 p.m. UTC | #9
Quoting Lee Jones (2021-02-03 00:31:55)
> On Tue, 26 Jan 2021, Lee Jones wrote:
> 
> > This set is part of a larger effort attempting to clean-up W=1
> > kernel builds, which are currently overwhelmingly riddled with
> > niggly little warnings.
> > 
> > This is the last set.  Clock is clean after this.
> 
> Out of interest, what normally happens to the patches which aren't
> picked up by individual driver Maintainers?
> 

I have to go in and figure it out! :)
Lee Jones Feb. 5, 2021, 7:19 p.m. UTC | #10
On Fri, 05 Feb 2021, Stephen Boyd wrote:

> Quoting Lee Jones (2021-02-03 00:31:55)
> > On Tue, 26 Jan 2021, Lee Jones wrote:
> > 
> > > This set is part of a larger effort attempting to clean-up W=1
> > > kernel builds, which are currently overwhelmingly riddled with
> > > niggly little warnings.
> > > 
> > > This is the last set.  Clock is clean after this.
> > 
> > Out of interest, what normally happens to the patches which aren't
> > picked up by individual driver Maintainers?
> > 
> 
> I have to go in and figure it out! :)

Thanks mate, much obliged.
Tero Kristo Feb. 8, 2021, 6:45 a.m. UTC | #11
On 26/01/2021 14:45, Lee Jones wrote:
> This set is part of a larger effort attempting to clean-up W=1
> kernel builds, which are currently overwhelmingly riddled with
> niggly little warnings.
> 
> This is the last set.  Clock is clean after this.
> 
> Lee Jones (21):
>    clk: zynq: pll: Fix kernel-doc formatting in 'clk_register_zynq_pll's
>      header
>    clk: ti: clkt_dpll: Fix some kernel-doc misdemeanours
>    clk: ti: dpll3xxx: Fix some kernel-doc headers and promote other
>      worthy ones
>    clk: qcom: clk-regmap: Provide missing description for
>      'devm_clk_register_regmap()'s dev param
>    clk: sunxi: clk-sun9i-core: Demote non-conformant kernel-doc headers
>    clk: sunxi: clk-usb: Demote obvious kernel-doc abuse
>    clk: tegra: clk-tegra30: Remove unused variable 'reg'
>    clk: clkdev: Ignore suggestion to use gnu_printf() as it's not
>      appropriate here
>    clk: tegra: cvb: Provide missing description for
>      'tegra_cvb_add_opp_table()'s align param
>    clk: ti: dpll44xx: Fix some potential doc-rot
>    clk: renesas: renesas-cpg-mssr: Fix formatting issues for
>      'smstpcr_saved's documentation
>    clk: sunxi: clk-sun6i-ar100: Demote non-conformant kernel-doc header
>    clk: qcom: gcc-ipq4019: Remove unused variable 'ret'
>    clk: clk-fixed-mmio: Demote obvious kernel-doc abuse
>    clk: clk-npcm7xx: Remove unused static const tables 'npcm7xx_gates'
>      and 'npcm7xx_divs_fx'
>    clk: qcom: mmcc-msm8974: Remove unused static const tables
>      'mmcc_xo_mmpll0_1_2_gpll0{map}'
>    clk: clk-xgene: Add description for 'mask' and fix formatting for
>      'flags'
>    clk: qcom: clk-rpm: Remove a bunch of superfluous code
>    clk: spear: Move prototype to accessible header
>    clk: imx: Move 'imx6sl_set_wait_clk()'s prototype out to accessible
>      header
>    clk: zynqmp: divider: Add missing description for 'max_div'
> 
>   arch/arm/mach-imx/common.h             |   1 -
>   arch/arm/mach-imx/cpuidle-imx6sl.c     |   1 +
>   arch/arm/mach-imx/pm-imx6.c            |   1 +
>   arch/arm/mach-spear/generic.h          |  12 ---
>   arch/arm/mach-spear/spear13xx.c        |   1 +
>   drivers/clk/clk-fixed-mmio.c           |   2 +-
>   drivers/clk/clk-npcm7xx.c              | 108 -------------------------
>   drivers/clk/clk-xgene.c                |   5 +-
>   drivers/clk/clkdev.c                   |   7 ++
>   drivers/clk/imx/clk-imx6sl.c           |   1 +
>   drivers/clk/qcom/clk-regmap.c          |   1 +
>   drivers/clk/qcom/clk-rpm.c             |  63 ---------------
>   drivers/clk/qcom/gcc-ipq4019.c         |   7 +-
>   drivers/clk/qcom/mmcc-msm8974.c        |  16 ----
>   drivers/clk/renesas/renesas-cpg-mssr.c |   4 +-
>   drivers/clk/spear/spear1310_clock.c    |   1 +
>   drivers/clk/spear/spear1340_clock.c    |   1 +
>   drivers/clk/sunxi/clk-sun6i-ar100.c    |   2 +-
>   drivers/clk/sunxi/clk-sun9i-core.c     |   8 +-
>   drivers/clk/sunxi/clk-usb.c            |   2 +-
>   drivers/clk/tegra/clk-tegra30.c        |   5 +-
>   drivers/clk/tegra/cvb.c                |   1 +
>   drivers/clk/ti/clkt_dpll.c             |   3 +-
>   drivers/clk/ti/dpll3xxx.c              |  20 ++---
>   drivers/clk/ti/dpll44xx.c              |   6 +-

For the TI portions:

Reviewed-by: Tero Kristo <kristo@kernel.org>

>   drivers/clk/zynq/pll.c                 |  12 +--
>   drivers/clk/zynqmp/divider.c           |   1 +
>   include/linux/clk/imx.h                |  15 ++++
>   include/linux/clk/spear.h              |  23 ++++++
>   29 files changed, 92 insertions(+), 238 deletions(-)
>   create mode 100644 include/linux/clk/imx.h
>   create mode 100644 include/linux/clk/spear.h
> 
> Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Cc: Andy Gross <agross@kernel.org>
> Cc: Avi Fishman <avifishman70@gmail.com>
> Cc: Benjamin Fair <benjaminfair@google.com>
> Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
> Cc: Boris BREZILLON <boris.brezillon@free-electrons.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: "Emilio López" <emilio@elopez.com.ar>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Jan Kotas <jank@cadence.com>
> Cc: Jernej Skrabec <jernej.skrabec@siol.net>
> Cc: Jonathan Hunter <jonathanh@nvidia.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-arm-msm@vger.kernel.org
> Cc: linux-clk@vger.kernel.org
> Cc: linux-omap@vger.kernel.org
> Cc: linux-renesas-soc@vger.kernel.org
> Cc: linux-tegra@vger.kernel.org
> Cc: Loc Ho <lho@apm.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Nancy Yuen <yuenn@google.com>
> Cc: Nuvoton Technologies <tali.perry@nuvoton.com>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: openbmc@lists.ozlabs.org
> Cc: Patrick Venture <venture@google.com>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Prashant Gaikwad <pgaikwad@nvidia.com>
> Cc: Rajan Vaja <rajan.vaja@xilinx.com>
> Cc: Rajeev Kumar <rajeev-dlh.kumar@st.com>
> Cc: Richard Woodruff <r-woodruff2@ti.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: Shiraz Hashim <shiraz.linux.kernel@gmail.com>
> Cc: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Tali Perry <tali.perry1@gmail.com>
> Cc: Tero Kristo <kristo@kernel.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Tomer Maimon <tmaimon77@gmail.com>
> Cc: Viresh Kumar <vireshk@kernel.org>
>
Stephen Boyd Feb. 11, 2021, 7:23 p.m. UTC | #12
Quoting Lee Jones (2021-01-26 04:45:27)
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/clkdev.c: In function ‘vclkdev_alloc’:
>  drivers/clk/clkdev.c:173:3: warning: function ‘vclkdev_alloc’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
> 
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/clk/clkdev.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> index 0f2e3fcf0f19f..5e5f25d568724 100644
> --- a/drivers/clk/clkdev.c
> +++ b/drivers/clk/clkdev.c
> @@ -153,6 +153,11 @@ struct clk_lookup_alloc {
>         char    con_id[MAX_CON_ID];
>  };
>  
> +#pragma GCC diagnostic push
> +#ifndef __clang__
> +#pragma GCC diagnostic ignored "-Wsuggest-attribute=format"
> +#endif

Can this be some macro banished to compiler.h?

> +
>  static struct clk_lookup * __ref
>  vclkdev_alloc(struct clk_hw *hw, const char *con_id, const char *dev_fmt,
>         va_list ap)
> @@ -177,6 +182,8 @@ vclkdev_alloc(struct clk_hw *hw, const char *con_id, const char *dev_fmt,
>         return &cla->cl;
>  }
>  
> +#pragma GCC diagnostic pop
> +
>  static struct clk_lookup *
>  vclkdev_create(struct clk_hw *hw, const char *con_id, const char *dev_fmt,
>         va_list ap)
> -- 
> 2.25.1
>
Stephen Boyd Feb. 11, 2021, 7:54 p.m. UTC | #13
Quoting Lee Jones (2021-01-26 04:45:20)
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'name' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'parent' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'pll_ctrl' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'pll_status' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'lock_index' not described in 'clk_register_zynq_pll'
>  drivers/clk/zynq/pll.c:187: warning: Function parameter or member 'lock' not described in 'clk_register_zynq_pll'
> 
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---

Applied to clk-next
Stephen Boyd Feb. 11, 2021, 7:58 p.m. UTC | #14
Quoting Lee Jones (2021-01-26 04:45:38)
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/spear/spear1310_clock.c:385:13: warning: no previous prototype for ‘spear1310_clk_init’ [-Wmissing-prototypes]
>  drivers/clk/spear/spear1340_clock.c:442:13: warning: no previous prototype for ‘spear1340_clk_init’ [-Wmissing-prototypes]
> 
> Cc: Viresh Kumar <vireshk@kernel.org>
> Cc: Shiraz Hashim <shiraz.linux.kernel@gmail.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Rajeev Kumar <rajeev-dlh.kumar@st.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---

Applied to clk-next
Stephen Boyd Feb. 11, 2021, 7:58 p.m. UTC | #15
Quoting Lee Jones (2021-01-26 04:45:40)
> Fixes the following W=1 kernel build warning(s):
> 
>  drivers/clk/zynqmp/divider.c:46: warning: Function parameter or member 'max_div' not described in 'zynqmp_clk_divider'
> 
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Rajan Vaja <rajan.vaja@xilinx.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---

Applied to clk-next
Stephen Boyd Feb. 11, 2021, 8:47 p.m. UTC | #16
Quoting Lee Jones (2021-01-26 04:45:19)
> This set is part of a larger effort attempting to clean-up W=1
> kernel builds, which are currently overwhelmingly riddled with
> niggly little warnings.
> 
> This is the last set.  Clock is clean after this.

Is it possible to slam in some patch that makes W=1 the default for the
clk directory? I'm trying to avoid seeing this patch series again.
Lee Jones Feb. 11, 2021, 9:10 p.m. UTC | #17
On Thu, 11 Feb 2021, Stephen Boyd wrote:

> Quoting Lee Jones (2021-01-26 04:45:19)
> > This set is part of a larger effort attempting to clean-up W=1
> > kernel builds, which are currently overwhelmingly riddled with
> > niggly little warnings.
> > 
> > This is the last set.  Clock is clean after this.
> 
> Is it possible to slam in some patch that makes W=1 the default for the
> clk directory? I'm trying to avoid seeing this patch series again.

One of my main goals of this project is that everyone (contributors,
maintainers auto-builder robots etc) will be enabling W=1 builds
*locally*.

This isn't something you'll want to do at a global (i.e. in Mainline)
level.  That's kinda the point of W=1.
Stephen Boyd Feb. 12, 2021, 3:07 a.m. UTC | #18
Quoting Lee Jones (2021-02-11 13:10:54)
> On Thu, 11 Feb 2021, Stephen Boyd wrote:
> 
> > Quoting Lee Jones (2021-01-26 04:45:19)
> > > This set is part of a larger effort attempting to clean-up W=1
> > > kernel builds, which are currently overwhelmingly riddled with
> > > niggly little warnings.
> > > 
> > > This is the last set.  Clock is clean after this.
> > 
> > Is it possible to slam in some patch that makes W=1 the default for the
> > clk directory? I'm trying to avoid seeing this patch series again.
> 
> One of my main goals of this project is that everyone (contributors,
> maintainers auto-builder robots etc) will be enabling W=1 builds
> *locally*.
> 
> This isn't something you'll want to do at a global (i.e. in Mainline)
> level.  That's kinda the point of W=1.
> 

Agreed, but is it possible to pass W=1 in the drivers/clk/Makefile?
Lee Jones Feb. 12, 2021, 9:20 a.m. UTC | #19
On Thu, 11 Feb 2021, Stephen Boyd wrote:

> Quoting Lee Jones (2021-02-11 13:10:54)
> > On Thu, 11 Feb 2021, Stephen Boyd wrote:
> > 
> > > Quoting Lee Jones (2021-01-26 04:45:19)
> > > > This set is part of a larger effort attempting to clean-up W=1
> > > > kernel builds, which are currently overwhelmingly riddled with
> > > > niggly little warnings.
> > > > 
> > > > This is the last set.  Clock is clean after this.
> > > 
> > > Is it possible to slam in some patch that makes W=1 the default for the
> > > clk directory? I'm trying to avoid seeing this patch series again.
> > 
> > One of my main goals of this project is that everyone (contributors,
> > maintainers auto-builder robots etc) will be enabling W=1 builds
> > *locally*.
> > 
> > This isn't something you'll want to do at a global (i.e. in Mainline)
> > level.  That's kinda the point of W=1.
> > 
> 
> Agreed, but is it possible to pass W=1 in the drivers/clk/Makefile?

That would circumvent the point of W=1.  Level-1 warnings are deemed,
and I'm paraphrasing/making this up "not worth rejecting pull-requests
over".  In contrast, if Linus catches any W=0 warnings at pull-time,
he will reject the pull-request as 'untested'.

W=1 is defiantly something you'll want to enable locally though, and
subsequently push back on contributors submitting code adding new
ones.
Lee Jones Feb. 12, 2021, 9:36 a.m. UTC | #20
On Thu, 11 Feb 2021, Stephen Boyd wrote:

> Quoting Lee Jones (2021-01-26 04:45:27)
> > Fixes the following W=1 kernel build warning(s):
> > 
> >  drivers/clk/clkdev.c: In function ‘vclkdev_alloc’:
> >  drivers/clk/clkdev.c:173:3: warning: function ‘vclkdev_alloc’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
> > 
> > Cc: Russell King <linux@armlinux.org.uk>
> > Cc: linux-arm-kernel@lists.infradead.org
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > ---
> >  drivers/clk/clkdev.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> > index 0f2e3fcf0f19f..5e5f25d568724 100644
> > --- a/drivers/clk/clkdev.c
> > +++ b/drivers/clk/clkdev.c
> > @@ -153,6 +153,11 @@ struct clk_lookup_alloc {
> >         char    con_id[MAX_CON_ID];
> >  };
> >  
> > +#pragma GCC diagnostic push
> > +#ifndef __clang__
> > +#pragma GCC diagnostic ignored "-Wsuggest-attribute=format"
> > +#endif
> 
> Can this be some macro banished to compiler.h?

This is probably a question for Arnd.
Stephen Boyd Feb. 12, 2021, 9:02 p.m. UTC | #21
Quoting Lee Jones (2021-02-12 01:20:16)
> On Thu, 11 Feb 2021, Stephen Boyd wrote:
> 
> > Quoting Lee Jones (2021-02-11 13:10:54)
> > > On Thu, 11 Feb 2021, Stephen Boyd wrote:
> > > 
> > > > Quoting Lee Jones (2021-01-26 04:45:19)
> > > > > This set is part of a larger effort attempting to clean-up W=1
> > > > > kernel builds, which are currently overwhelmingly riddled with
> > > > > niggly little warnings.
> > > > > 
> > > > > This is the last set.  Clock is clean after this.
> > > > 
> > > > Is it possible to slam in some patch that makes W=1 the default for the
> > > > clk directory? I'm trying to avoid seeing this patch series again.
> > > 
> > > One of my main goals of this project is that everyone (contributors,
> > > maintainers auto-builder robots etc) will be enabling W=1 builds
> > > *locally*.
> > > 
> > > This isn't something you'll want to do at a global (i.e. in Mainline)
> > > level.  That's kinda the point of W=1.
> > > 
> > 
> > Agreed, but is it possible to pass W=1 in the drivers/clk/Makefile?
> 
> That would circumvent the point of W=1.  Level-1 warnings are deemed,
> and I'm paraphrasing/making this up "not worth rejecting pull-requests
> over".  In contrast, if Linus catches any W=0 warnings at pull-time,
> he will reject the pull-request as 'untested'.
> 
> W=1 is defiantly something you'll want to enable locally though, and
> subsequently push back on contributors submitting code adding new
> ones.
> 

Why should I install a land mine for others to trip over? Won't that
just take them more time because they won't know to compile with W=1 and
then will have to go for another round of review while I push back on
them submitting new warnings?
Lee Jones Feb. 12, 2021, 9:25 p.m. UTC | #22
On Fri, 12 Feb 2021, Stephen Boyd wrote:

> Quoting Lee Jones (2021-02-12 01:20:16)
> > On Thu, 11 Feb 2021, Stephen Boyd wrote:
> > 
> > > Quoting Lee Jones (2021-02-11 13:10:54)
> > > > On Thu, 11 Feb 2021, Stephen Boyd wrote:
> > > > 
> > > > > Quoting Lee Jones (2021-01-26 04:45:19)
> > > > > > This set is part of a larger effort attempting to clean-up W=1
> > > > > > kernel builds, which are currently overwhelmingly riddled with
> > > > > > niggly little warnings.
> > > > > > 
> > > > > > This is the last set.  Clock is clean after this.
> > > > > 
> > > > > Is it possible to slam in some patch that makes W=1 the default for the
> > > > > clk directory? I'm trying to avoid seeing this patch series again.
> > > > 
> > > > One of my main goals of this project is that everyone (contributors,
> > > > maintainers auto-builder robots etc) will be enabling W=1 builds
> > > > *locally*.
> > > > 
> > > > This isn't something you'll want to do at a global (i.e. in Mainline)
> > > > level.  That's kinda the point of W=1.
> > > > 
> > > 
> > > Agreed, but is it possible to pass W=1 in the drivers/clk/Makefile?
> > 
> > That would circumvent the point of W=1.  Level-1 warnings are deemed,
> > and I'm paraphrasing/making this up "not worth rejecting pull-requests
> > over".  In contrast, if Linus catches any W=0 warnings at pull-time,
> > he will reject the pull-request as 'untested'.
> > 
> > W=1 is defiantly something you'll want to enable locally though, and
> > subsequently push back on contributors submitting code adding new
> > ones.
> > 
> 
> Why should I install a land mine for others to trip over? Won't that
> just take them more time because they won't know to compile with W=1 and
> then will have to go for another round of review while I push back on
> them submitting new warnings?

The alternative is to not worry about it and review the slow drip of
fixes that will occur as a result.  The issues I just fixed were built
up over years.  They won't get to that level again.

In my mind contributors should be compiling their submissions with W=1
enabled by default.  I'm fairly sure the auto-builders do this now.

Once W=1 warnings are down to an acceptable level in the kernel as a
whole, we can provide some guidance in SubmittingPatches (or similar)
on how to enable them (hint: you add "W=1" on the compile line).

Enabling W=1 in the default build will only serve to annoy Linus IMHO.
If he wants them to be enabled by default, they wouldn't be W=1 in the
first place, they'd be W=0 which *is* the default build.
Lee Jones Feb. 12, 2021, 9:26 p.m. UTC | #23
On Fri, 12 Feb 2021, Lee Jones wrote:

> On Fri, 12 Feb 2021, Stephen Boyd wrote:
> 
> > Quoting Lee Jones (2021-02-12 01:20:16)
> > > On Thu, 11 Feb 2021, Stephen Boyd wrote:
> > > 
> > > > Quoting Lee Jones (2021-02-11 13:10:54)
> > > > > On Thu, 11 Feb 2021, Stephen Boyd wrote:
> > > > > 
> > > > > > Quoting Lee Jones (2021-01-26 04:45:19)
> > > > > > > This set is part of a larger effort attempting to clean-up W=1
> > > > > > > kernel builds, which are currently overwhelmingly riddled with
> > > > > > > niggly little warnings.
> > > > > > > 
> > > > > > > This is the last set.  Clock is clean after this.
> > > > > > 
> > > > > > Is it possible to slam in some patch that makes W=1 the default for the
> > > > > > clk directory? I'm trying to avoid seeing this patch series again.
> > > > > 
> > > > > One of my main goals of this project is that everyone (contributors,
> > > > > maintainers auto-builder robots etc) will be enabling W=1 builds
> > > > > *locally*.
> > > > > 
> > > > > This isn't something you'll want to do at a global (i.e. in Mainline)
> > > > > level.  That's kinda the point of W=1.
> > > > > 
> > > > 
> > > > Agreed, but is it possible to pass W=1 in the drivers/clk/Makefile?
> > > 
> > > That would circumvent the point of W=1.  Level-1 warnings are deemed,
> > > and I'm paraphrasing/making this up "not worth rejecting pull-requests
> > > over".  In contrast, if Linus catches any W=0 warnings at pull-time,
> > > he will reject the pull-request as 'untested'.
> > > 
> > > W=1 is defiantly something you'll want to enable locally though, and
> > > subsequently push back on contributors submitting code adding new
> > > ones.
> > > 
> > 
> > Why should I install a land mine for others to trip over? Won't that
> > just take them more time because they won't know to compile with W=1 and
> > then will have to go for another round of review while I push back on
> > them submitting new warnings?
> 
> The alternative is to not worry about it and review the slow drip of
> fixes that will occur as a result.  The issues I just fixed were built
> up over years.  They won't get to that level again.
> 
> In my mind contributors should be compiling their submissions with W=1
> enabled by default.  I'm fairly sure the auto-builders do this now.
> 
> Once W=1 warnings are down to an acceptable level in the kernel as a
> whole, we can provide some guidance in SubmittingPatches (or similar)
> on how to enable them (hint: you add "W=1" on the compile line).
> 
> Enabling W=1 in the default build will only serve to annoy Linus IMHO.
> If he wants them to be enabled by default, they wouldn't be W=1 in the
> first place, they'd be W=0 which *is* the default build.

Just to add real quick - my advice is to enable them for yourself and
send back any issues along with your normal review.  A W=1 issue is no
different to a semantic or coding style one.
Stephen Boyd Feb. 12, 2021, 10:05 p.m. UTC | #24
Quoting Lee Jones (2021-02-12 13:26:30)
> On Fri, 12 Feb 2021, Lee Jones wrote:
> 
> > The alternative is to not worry about it and review the slow drip of
> > fixes that will occur as a result.  The issues I just fixed were built
> > up over years.  They won't get to that level again.
> > 
> > In my mind contributors should be compiling their submissions with W=1
> > enabled by default.  I'm fairly sure the auto-builders do this now.

That's good.

> > 
> > Once W=1 warnings are down to an acceptable level in the kernel as a
> > whole, we can provide some guidance in SubmittingPatches (or similar)
> > on how to enable them (hint: you add "W=1" on the compile line).
> > 
> > Enabling W=1 in the default build will only serve to annoy Linus IMHO.
> > If he wants them to be enabled by default, they wouldn't be W=1 in the
> > first place, they'd be W=0 which *is* the default build.
> 
> Just to add real quick - my advice is to enable them for yourself and
> send back any issues along with your normal review.  A W=1 issue is no
> different to a semantic or coding style one.
> 

I'd like to enable it for only files under drivers/clk/ but it doesn't
seem to work. I'm not asking to enable it at the toplevel Makefile. I'm
asking to enable it for drivers/clk/ so nobody has to think about it now
that you've done the hard work of getting the numbers in this directory
down to zero or close to zero.
Lee Jones Feb. 12, 2021, 10:37 p.m. UTC | #25
On Fri, 12 Feb 2021, Stephen Boyd wrote:

> Quoting Lee Jones (2021-02-12 13:26:30)
> > On Fri, 12 Feb 2021, Lee Jones wrote:
> > 
> > > The alternative is to not worry about it and review the slow drip of
> > > fixes that will occur as a result.  The issues I just fixed were built
> > > up over years.  They won't get to that level again.
> > > 
> > > In my mind contributors should be compiling their submissions with W=1
> > > enabled by default.  I'm fairly sure the auto-builders do this now.
> 
> That's good.
> 
> > > 
> > > Once W=1 warnings are down to an acceptable level in the kernel as a
> > > whole, we can provide some guidance in SubmittingPatches (or similar)
> > > on how to enable them (hint: you add "W=1" on the compile line).
> > > 
> > > Enabling W=1 in the default build will only serve to annoy Linus IMHO.
> > > If he wants them to be enabled by default, they wouldn't be W=1 in the
> > > first place, they'd be W=0 which *is* the default build.
> > 
> > Just to add real quick - my advice is to enable them for yourself and
> > send back any issues along with your normal review.  A W=1 issue is no
> > different to a semantic or coding style one.
> > 
> 
> I'd like to enable it for only files under drivers/clk/ but it doesn't
> seem to work. I'm not asking to enable it at the toplevel Makefile. I'm
> asking to enable it for drivers/clk/ so nobody has to think about it now
> that you've done the hard work of getting the numbers in this directory
> down to zero or close to zero.

I'm not sure which one of us is confused.  Probably me, but ...

Even if you could enable it per-subsystem, how would that help you?

How can you ensure that contributors see any new W=1 warnings, but
Linus doesn't?  When Linus conducts his build-tests during the merge
window, he is also going to build W=1 for drivers/clk.

All that's going to achieve is put you in the firing line.

From my PoV W=1 builds should be enabled during the development phase
(i.e. contributor, auto-builder, maintainer).  By the time patches get
make it into Mainline the review/testing stage is over and only the
default W=0 warnings are meaningful.
Stephen Boyd Feb. 13, 2021, 12:06 a.m. UTC | #26
Quoting Lee Jones (2021-02-12 14:37:39)
> On Fri, 12 Feb 2021, Stephen Boyd wrote:
> 
> > 
> > I'd like to enable it for only files under drivers/clk/ but it doesn't
> > seem to work. I'm not asking to enable it at the toplevel Makefile. I'm
> > asking to enable it for drivers/clk/ so nobody has to think about it now
> > that you've done the hard work of getting the numbers in this directory
> > down to zero or close to zero.
> 
> I'm not sure which one of us is confused.  Probably me, but ...
> 
> Even if you could enable it per-subsystem, how would that help you?
> 
> How can you ensure that contributors see any new W=1 warnings, but
> Linus doesn't?  When Linus conducts his build-tests during the merge
> window, he is also going to build W=1 for drivers/clk.

The assumption is contributors would have compiled the code they're
sending, but that's obviously not always the case, so this assumption
relies on developers running make. If they do run make then the hope is
they would see the warnings now, without having to rely on them to know
about passing W=1 to make, and fix them before sending code. If
developers are ignoring build errors or warnings then we can't do
anything anyway.

> 
> All that's going to achieve is put you in the firing line.

Ok. Is this prior experience?

> 
> From my PoV W=1 builds should be enabled during the development phase
> (i.e. contributor, auto-builder, maintainer).  By the time patches get
> make it into Mainline the review/testing stage is over and only the
> default W=0 warnings are meaningful.
> 

Alright maybe I don't understand and W=1 builds are noisy for the
drivers/clk subdirectory even after applying these patches. Or it has
some false positives that won't be fixed? Or a new compiler can cause
new warnings to happen? I could see these things being a problem.

I'm trying to see if we can make lives better for everyone by exposing
the warnings by default in the drivers/clk/ directory now that there are
supposedly none left. Shouldn't we tighten the screws now that we've
cleaned them?
Andrew Lunn Feb. 13, 2021, 3:58 p.m. UTC | #27
On Thu, Feb 11, 2021 at 07:07:30PM -0800, Stephen Boyd wrote:
> Quoting Lee Jones (2021-02-11 13:10:54)
> > On Thu, 11 Feb 2021, Stephen Boyd wrote:
> > 
> > > Quoting Lee Jones (2021-01-26 04:45:19)
> > > > This set is part of a larger effort attempting to clean-up W=1
> > > > kernel builds, which are currently overwhelmingly riddled with
> > > > niggly little warnings.
> > > > 
> > > > This is the last set.  Clock is clean after this.
> > > 
> > > Is it possible to slam in some patch that makes W=1 the default for the
> > > clk directory? I'm trying to avoid seeing this patch series again.
> > 
> > One of my main goals of this project is that everyone (contributors,
> > maintainers auto-builder robots etc) will be enabling W=1 builds
> > *locally*.
> > 
> > This isn't something you'll want to do at a global (i.e. in Mainline)
> > level.  That's kinda the point of W=1.
> > 
> 
> Agreed, but is it possible to pass W=1 in the drivers/clk/Makefile?

About a cycle ago, Arnd and i played around with this idea. The
Ethernet PHY subsystem is W=1 clean, and most of he network stack
is. But keeping it clean is not so easy, when developers do sometimes
add new warnings, since they have no idea the code is W=1 clean.

You are also not the only one asking for such a feature. RDMA also
asked recently.

Arnd, do you plan to push the patches?

      Andrew
Andrew Lunn Feb. 13, 2021, 4:04 p.m. UTC | #28
> I'm trying to see if we can make lives better for everyone by exposing
> the warnings by default in the drivers/clk/ directory now that there are
> supposedly none left. Shouldn't we tighten the screws now that we've
> cleaned them?

Do you use patchwork? netdev has a bot attached which applies the
patch and does a W=1 build, and will report any new warnings. But it
does not email the developer, as far as i know. It is up to you as the
maintainer to reject the patch and say why.

	   Andrew
Andrew Lunn Feb. 14, 2021, 9:20 p.m. UTC | #29
On Sun, Feb 14, 2021 at 01:00:42PM -0800, Stephen Boyd wrote:
> Quoting Andrew Lunn (2021-02-13 08:04:34)
> > > I'm trying to see if we can make lives better for everyone by exposing
> > > the warnings by default in the drivers/clk/ directory now that there are
> > > supposedly none left. Shouldn't we tighten the screws now that we've
> > > cleaned them?
> > 
> > Do you use patchwork? netdev has a bot attached which applies the
> > patch and does a W=1 build, and will report any new warnings. But it
> > does not email the developer, as far as i know. It is up to you as the
> > maintainer to reject the patch and say why.
> > 
> 
> Yes the kernel.org patchwork instance is used but I don't see any bot
> putting test results there. How is that done?
> 
> https://patchwork.kernel.org/project/linux-clk/list/

Compare this with for example:

https://patchwork.kernel.org/project/netdevbpf/patch/20210213175257.28642-1-ap420073@gmail.com/

Jakub can explain how he added these checks.

      Andrew
Lee Jones Feb. 15, 2021, 8:49 a.m. UTC | #30
On Sun, 14 Feb 2021, Andrew Lunn wrote:

> On Sun, Feb 14, 2021 at 01:00:42PM -0800, Stephen Boyd wrote:
> > Quoting Andrew Lunn (2021-02-13 08:04:34)
> > > > I'm trying to see if we can make lives better for everyone by exposing
> > > > the warnings by default in the drivers/clk/ directory now that there are
> > > > supposedly none left. Shouldn't we tighten the screws now that we've
> > > > cleaned them?
> > > 
> > > Do you use patchwork? netdev has a bot attached which applies the
> > > patch and does a W=1 build, and will report any new warnings. But it
> > > does not email the developer, as far as i know. It is up to you as the
> > > maintainer to reject the patch and say why.
> > > 
> > 
> > Yes the kernel.org patchwork instance is used but I don't see any bot
> > putting test results there. How is that done?
> > 
> > https://patchwork.kernel.org/project/linux-clk/list/
> 
> Compare this with for example:
> 
> https://patchwork.kernel.org/project/netdevbpf/patch/20210213175257.28642-1-ap420073@gmail.com/

Oh, that's nice.

> Jakub can explain how he added these checks.

Yes, please share.
Jakub Kicinski Feb. 15, 2021, 5:45 p.m. UTC | #31
On Mon, 15 Feb 2021 08:49:52 +0000 Lee Jones wrote:
> > Jakub can explain how he added these checks.  
> 
> Yes, please share.

https://github.com/kuba-moo/nipa
Lee Jones Feb. 16, 2021, 8:20 a.m. UTC | #32
On Mon, 15 Feb 2021, Jakub Kicinski wrote:

> On Mon, 15 Feb 2021 08:49:52 +0000 Lee Jones wrote:
> > > Jakub can explain how he added these checks.  
> > 
> > Yes, please share.
> 
> https://github.com/kuba-moo/nipa

Thanks for this.

Oh, I see.  So you conduct tests locally, then post them up in a
section called 'Checks' using the provided API.  I assume that
Patchwork does not alert the user when something has gone awry?  Is
this something Nipa does?
Jakub Kicinski Feb. 17, 2021, 6:08 p.m. UTC | #33
On Tue, 16 Feb 2021 08:20:46 +0000 Lee Jones wrote:
> On Mon, 15 Feb 2021, Jakub Kicinski wrote:
> > On Mon, 15 Feb 2021 08:49:52 +0000 Lee Jones wrote:  
> > > Yes, please share.  
> > 
> > https://github.com/kuba-moo/nipa  
> 
> Thanks for this.
> 
> Oh, I see.  So you conduct tests locally, then post them up in a
> section called 'Checks' using the provided API.  

For some definition of "locally" - NIPA runs on a rented VM.

> I assume that Patchwork does not alert the user when something has
> gone awry?  Is this something Nipa does?

The way we run it on netdev is maintainer-centric, IOW we see 
the failures in patchwork and complain to people manually.
The netdev mailing list gets too many messages as is, if NIPA 
responded with results automatically (which is not that hard
technically) my concern is that people would be more likely to
send untested patches to the mailing list and rely on the bot.
Lee Jones Feb. 18, 2021, 9:31 a.m. UTC | #34
On Wed, 17 Feb 2021, Jakub Kicinski wrote:

> On Tue, 16 Feb 2021 08:20:46 +0000 Lee Jones wrote:
> > On Mon, 15 Feb 2021, Jakub Kicinski wrote:
> > > On Mon, 15 Feb 2021 08:49:52 +0000 Lee Jones wrote:  
> > > > Yes, please share.  
> > > 
> > > https://github.com/kuba-moo/nipa  
> > 
> > Thanks for this.
> > 
> > Oh, I see.  So you conduct tests locally, then post them up in a
> > section called 'Checks' using the provided API.  
> 
> For some definition of "locally" - NIPA runs on a rented VM.

Right.  Infrastructure that you control vs by Patchwork.

> > I assume that Patchwork does not alert the user when something has
> > gone awry?  Is this something Nipa does?
> 
> The way we run it on netdev is maintainer-centric, IOW we see 
> the failures in patchwork and complain to people manually.
> The netdev mailing list gets too many messages as is, if NIPA 
> responded with results automatically (which is not that hard
> technically) my concern is that people would be more likely to
> send untested patches to the mailing list and rely on the bot.

That makes sense.  Thank you for the explanation.
Lee Jones March 10, 2021, 8:59 a.m. UTC | #35
On Fri, 12 Feb 2021, Lee Jones wrote:

> On Thu, 11 Feb 2021, Stephen Boyd wrote:
> 
> > Quoting Lee Jones (2021-01-26 04:45:27)
> > > Fixes the following W=1 kernel build warning(s):
> > > 
> > >  drivers/clk/clkdev.c: In function ‘vclkdev_alloc’:
> > >  drivers/clk/clkdev.c:173:3: warning: function ‘vclkdev_alloc’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
> > > 
> > > Cc: Russell King <linux@armlinux.org.uk>
> > > Cc: linux-arm-kernel@lists.infradead.org
> > > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > > ---
> > >  drivers/clk/clkdev.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > > 
> > > diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> > > index 0f2e3fcf0f19f..5e5f25d568724 100644
> > > --- a/drivers/clk/clkdev.c
> > > +++ b/drivers/clk/clkdev.c
> > > @@ -153,6 +153,11 @@ struct clk_lookup_alloc {
> > >         char    con_id[MAX_CON_ID];
> > >  };
> > >  
> > > +#pragma GCC diagnostic push
> > > +#ifndef __clang__
> > > +#pragma GCC diagnostic ignored "-Wsuggest-attribute=format"
> > > +#endif
> > 
> > Can this be some macro banished to compiler.h?
> 
> This is probably a question for Arnd.

UPDATE: Arnd and I are working on a solution for this.