Message ID | 5ca84614.1c69fb81.e2ab3.2e61@mx.google.com |
---|---|
State | New |
Headers | show |
Series | stable/linux-5.0.y boot bisection: v5.0.7 on meson-gxl-s805x-p241 | expand |
On Fri, 2019-04-05 at 23:24 -0700, kernelci.org bot wrote: > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * This automated bisection report was sent to you on the basis * > * that you may be involved with the breaking commit it has * > * found. No manual investigation has been done to verify it, * > * and the root cause of the problem may be somewhere else. * > * Hope this helps! * > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > > stable/linux-5.0.y boot bisection: v5.0.7 on meson-gxl-s805x-p241 > > Summary: > Start: 8b298d3a0bd5 Linux 5.0.7 > Details: https://kernelci.org/boot/id/5ca7df3959b5141abafe6036 > Plain log: https://storage.kernelci.org//stable/linux-5.0.y/v5.0.7/arm64/defconfig/gcc-7/lab-baylibre/boot-meson-gxl-s805x-p241.txt > HTML log: https://storage.kernelci.org//stable/linux-5.0.y/v5.0.7/arm64/defconfig/gcc-7/lab-baylibre/boot-meson-gxl-s805x-p241.html > Result: 9b0f430450cf clk: meson: clean-up clock registration > > Checks: > revert: PASS > verify: PASS > > Parameters: > Tree: stable > URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git > Branch: linux-5.0.y > Target: meson-gxl-s805x-p241 > CPU arch: arm64 > Lab: lab-baylibre > Compiler: gcc-7 > Config: defconfig > Test suite: boot > > Breaking commit found: The problem is that one of the clock (the cec clock) is registered twice. > gxbb-aoclkc c8100000.sys-ctrl:clock-controller: Clock registration failed > gxbb-aoclkc: probe of c8100000.sys-ctrl:clock-controller failed with error -17 It is not a problem on mainline because there has been some rework on AO clock controller before this particular patch. It is safe to drop this patch from the stable branch, it does fix anything. It is a clean up. If you prefer, I can try to submit a fixup to keep the patch in stable. Status is the same for the stable/linux-4.19.y. > > ------------------------------------------------------------------------------- > commit 9b0f430450cf230e736bc40f95bf34fbdb99cead > Author: Jerome Brunet <jbrunet@baylibre.com> > Date: Fri Dec 21 17:02:36 2018 +0100 > > clk: meson: clean-up clock registration > > [ Upstream commit 8d9981efbcab066d17af4d3c85c169200f6f78df ] > > Order, ids and size between the table of regmap clocks and the onecell > data table could be different. > > Set regmap pointer in all the regmap clocks before starting the > registration using the onecell data, to make sure we don't > get into an incoherent situation. > > Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> > Acked-by: Neil Armstrong <narmstrong@baylibre.com> > Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> > Link: https://lkml.kernel.org/r/20181221160239.26265-3-jbrunet@baylibre.com > Signed-off-by: Sasha Levin <sashal@kernel.org> > > diff --git a/drivers/clk/meson/meson-aoclk.c b/drivers/clk/meson/meson-aoclk.c > index f965845917e3..258c8d259ea1 100644 > --- a/drivers/clk/meson/meson-aoclk.c > +++ b/drivers/clk/meson/meson-aoclk.c > @@ -65,15 +65,20 @@ int meson_aoclkc_probe(struct platform_device *pdev) > return ret; > } > > - /* > - * Populate regmap and register all clks > - */ > - for (clkid = 0; clkid < data->num_clks; clkid++) { > + /* Populate regmap */ > + for (clkid = 0; clkid < data->num_clks; clkid++) > data->clks[clkid]->map = regmap; > > + /* Register all clks */ > + for (clkid = 0; clkid < data->hw_data->num; clkid++) { > + if (!data->hw_data->hws[clkid]) > + continue; > + > ret = devm_clk_hw_register(dev, data->hw_data->hws[clkid]); > - if (ret) > + if (ret) { > + dev_err(dev, "Clock registration failed\n"); > return ret; > + } > } > > return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, > ------------------------------------------------------------------------------- > > > Git bisection log: > > ------------------------------------------------------------------------------- > git bisect start > # good: [820c1fa515010d280551075da59fc2668ba8b3ae] Linux 5.0.6 > git bisect good 820c1fa515010d280551075da59fc2668ba8b3ae > # bad: [8b298d3a0bd5feeb47129c4889356b38b78ab231] Linux 5.0.7 > git bisect bad 8b298d3a0bd5feeb47129c4889356b38b78ab231 > # good: [55d7152d37dccfa9add45df82fd45c373e032f46] cgroup, rstat: Don't flush subtree root unless necessary > git bisect good 55d7152d37dccfa9add45df82fd45c373e032f46 > # good: [8b3b22aa7c558e713a179710a6f1e2fdbef44b20] block, bfq: fix queue removal from weights tree > git bisect good 8b3b22aa7c558e713a179710a6f1e2fdbef44b20 > # good: [ebd0f3066c35bd27d3a4b224135e638eeaf70b8d] netfilter: physdev: relax br_netfilter dependency > git bisect good ebd0f3066c35bd27d3a4b224135e638eeaf70b8d > # bad: [9b0f430450cf230e736bc40f95bf34fbdb99cead] clk: meson: clean-up clock registration > git bisect bad 9b0f430450cf230e736bc40f95bf34fbdb99cead > # good: [bfb59eabe2c940c6869f128200f2047d46215845] drm: Auto-set allow_fb_modifiers when given modifiers at plane init > git bisect good bfb59eabe2c940c6869f128200f2047d46215845 > # good: [ab79dc3ef0244c9b3d712d0cef17b74c363d6069] brcmfmac: Use firmware_request_nowarn for the clm_blob > git bisect good ab79dc3ef0244c9b3d712d0cef17b74c363d6069 > # good: [c8a8dd1d85ca715ec65169feac54a7a06b8d2a29] x86/build: Mark per-CPU symbols as absolute explicitly for LLD > git bisect good c8a8dd1d85ca715ec65169feac54a7a06b8d2a29 > # good: [a644d2d28baf8472368903b28823cf85c9a13a1d] drm/fb-helper: fix leaks in error path of drm_fb_helper_fbdev_setup > git bisect good a644d2d28baf8472368903b28823cf85c9a13a1d > # first bad commit: [9b0f430450cf230e736bc40f95bf34fbdb99cead] clk: meson: clean-up clock registration > -------------------------------------------------------------------------------
diff --git a/drivers/clk/meson/meson-aoclk.c b/drivers/clk/meson/meson-aoclk.c index f965845917e3..258c8d259ea1 100644 --- a/drivers/clk/meson/meson-aoclk.c +++ b/drivers/clk/meson/meson-aoclk.c @@ -65,15 +65,20 @@ int meson_aoclkc_probe(struct platform_device *pdev) return ret; } - /* - * Populate regmap and register all clks - */ - for (clkid = 0; clkid < data->num_clks; clkid++) { + /* Populate regmap */ + for (clkid = 0; clkid < data->num_clks; clkid++) data->clks[clkid]->map = regmap; + /* Register all clks */ + for (clkid = 0; clkid < data->hw_data->num; clkid++) { + if (!data->hw_data->hws[clkid]) + continue; + ret = devm_clk_hw_register(dev, data->hw_data->hws[clkid]); - if (ret) + if (ret) { + dev_err(dev, "Clock registration failed\n"); return ret; + } } return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get,