Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

arm64 all{mod,yes}config failure on next-20190830 #648

Closed
nathanchance opened this issue Sep 1, 2019 · 4 comments

Comments

@nathanchance
Copy link
Member

commented Sep 1, 2019

aarch64-linux-gnu-ld: mm/memcontrol.o: in function `__cmpxchg_mb':
memcontrol.c:(.text+0x1898): undefined reference to `__compiletime_assert_175'

This appears to come from https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/include/asm/cmpxchg.h?id=529952053dc1b27702fc762abe00f30fe11ce715#n166.

Bisect proved inconclusive (it appears to be an interaction between two trees because it points to a merge commit: https://git.kernel.org/next/linux-next/c/529952053dc1b27702fc762abe00f30fe11ce715).

# bad: [6d028043b55e54f48fbdf62ea8ce11a4ad830cac] Add linux-next specific files for 20190830
# good: [4a64489cf8e21a17fd6dd88935818ba7307ba996] Merge tag 'Wimplicit-fallthrough-5.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
git bisect start 'origin/master' 'origin/stable'
# bad: [199d454c0775386a645dd9e80b486c346816762f] Merge remote-tracking branch 'crypto/master'
git bisect bad 199d454c0775386a645dd9e80b486c346816762f
# bad: [0fdcb1ec5bc8e5a40eb6ede7ac1071cfae01a3c0] Merge remote-tracking branch 'hid/for-next'
git bisect bad 0fdcb1ec5bc8e5a40eb6ede7ac1071cfae01a3c0
# bad: [858364b05a8dc9674b93022eab1987b8671c2dc5] Merge remote-tracking branch 'tegra/for-next'
git bisect bad 858364b05a8dc9674b93022eab1987b8671c2dc5
# bad: [69c8ca5334edaa9ec384ab1f474ff2192fde686d] Merge remote-tracking branch 'actions/for-next'
git bisect bad 69c8ca5334edaa9ec384ab1f474ff2192fde686d
# good: [10826e8d36de850875acc8bf1cb8a58b3dd5e313] Merge remote-tracking branch 'dma-mapping/for-next'
git bisect good 10826e8d36de850875acc8bf1cb8a58b3dd5e313
# good: [e7e0da219c21d58170971e07c469a632ee258d94] Merge branches 'arm/soc', 'arm/fixes' and 'arm/drivers' into for-next
git bisect good e7e0da219c21d58170971e07c469a632ee258d94
# good: [98ee6cd3ed6691a2fa8f79f58824604c7bd6d2d3] Merge branches 'for-next/52-bit-kva', 'for-next/cpu-topology', 'for-next/error-injection', 'for-next/psci-cpuidle', 'for-next/rng', 'for-next/smpboot', 'for-next/tbi' and 'for-next/tlbi' into for-next/core
git bisect good 98ee6cd3ed6691a2fa8f79f58824604c7bd6d2d3
# good: [a39e44c197821f1cd54fd191db8454f3d51548ad] Merge remote-tracking branch 'arm/for-next'
git bisect good a39e44c197821f1cd54fd191db8454f3d51548ad
# good: [ff560c0d79d559b1918a4b678eb810e00a578c35] arm64: atomics: Use K constraint when toolchain appears to support it
git bisect good ff560c0d79d559b1918a4b678eb810e00a578c35
# good: [d239a8eb7137458c91ec01c772db5471fd087dd2] Merge branch 'for-next/atomics' into for-next/core
git bisect good d239a8eb7137458c91ec01c772db5471fd087dd2
# good: [fb9c1c1deb5ece57810afdbd743358d02e632d2c] Merge branch 'v4.20/drivers+s900-sps' into next
git bisect good fb9c1c1deb5ece57810afdbd743358d02e632d2c
# good: [236316d6bb486313c49450220ad777036c7a8e6d] Merge branch 'arm/fixes' into for-next
git bisect good 236316d6bb486313c49450220ad777036c7a8e6d
# bad: [afdaf3ac825c02687ec8c74040f3de56f2ad22b1] Merge remote-tracking branch 'arm-soc/for-next'
git bisect bad afdaf3ac825c02687ec8c74040f3de56f2ad22b1
# bad: [529952053dc1b27702fc762abe00f30fe11ce715] Merge remote-tracking branch 'arm64/for-next/core'
git bisect bad 529952053dc1b27702fc762abe00f30fe11ce715
# first bad commit: [529952053dc1b27702fc762abe00f30fe11ce715] Merge remote-tracking branch 'arm64/for-next/core'

It also appears to be a KASAN issue, at least according to tools/testing/ktest/config-bisect.pl:

%%%%%%%% FAILED TO FIND SINGLE BAD CONFIG %%%%%%%%
Hmm, can't make any more changes without making good == bad?
Difference between good (+) and bad (-)
-KASAN_SW_TAGS=n
-KASAN_OUTLINE=y
-CONSTRUCTORS=y
-TEST_KASAN=n
-KASAN_SHADOW_OFFSET=0xdfffffd000000000
-KASAN_INLINE=n
-KASAN_GENERIC=y
 KASAN n -> y
+VMAP_STACK=y

I'll try to look into this more over the next few days.

@nickdesaulniers

This comment has been minimized.

Copy link
Member

commented Sep 9, 2019

I think @arndb 's patch resolves this?
https://lkml.org/lkml/2019/9/9/683

@nathanchance

This comment has been minimized.

Copy link
Member Author

commented Sep 9, 2019

Yes, it should. Currently doing a set of builds, will post when the final results come back.

fengguang pushed a commit to 0day-ci/linux that referenced this issue Sep 10, 2019
On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
@nathanchance

This comment has been minimized.

Copy link
Member Author

commented Sep 17, 2019

Arnd sent a v2: https://lore.kernel.org/lkml/20190910115643.391995-1-arnd@arndb.de/

This regressed into mainline because it wasn't picked up, hopefully it can be added before 5.4-rc1.

@nathanchance nathanchance self-assigned this Sep 17, 2019
ColinIanKing pushed a commit to ColinIanKing/linux-next-mirror that referenced this issue Sep 19, 2019
On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
@nickdesaulniers

This comment has been minimized.

Copy link
Member

commented Sep 23, 2019

fixed: 920fdab

hnaz added a commit to hnaz/linux-mm that referenced this issue Sep 24, 2019
GIT 619e17cf75dd58905aa67ccd494a6ba5f19d6cc6

commit 5d4156ac48a4f4c0b7f980a51937e33362f78911
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Sep 22 11:31:15 2019 -0700

    firmware: bcm47xx_nvram: _really_ correct size_t printf format
    
    Commit feb4eb060c3a ("firmware: bcm47xx_nvram: Correct size_t printf
    format") was wrong, and changed a printout of 'header.len' - which is an
    u32 type - to use '%zu'.
    
    It apparently did pattern matching on the other case, where it printed
    out 'nvram_len', which is indeed of type 'size_t'.
    
    Rather than undoing the change, this just makes it use the variable that
    the change seemed to expect to be used.
    
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
    Cc: Paul Burton <paul.burton@mips.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 3e4d890a26d5411d0b64e5e8ecfdcdb435c1d3f8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Sep 22 11:15:14 2019 -0700

    modules: make MODULE_IMPORT_NS() work even when modular builds are disabled
    
    It's an unusual configuration, and was apparently never tested, and not
    caught in linux-next because of a combination of travels and it making
    it into the tree too late.
    
    The fix is to simply move the #define to outside the CONFIG_MODULE
    section, since MODULE_INFO() will do the right thing.
    
    Cc: Martijn Coenen <maco@android.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Matthias Maennich <maennich@google.com>
    Cc: Jessica Yu <jeyu@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 05d013a0366d50f4f0dbebf8c1b22b42020bf49a
Author: Paul Burton <paul.burton@mips.com>
Date:   Wed Sep 18 22:03:30 2019 +0000

    MIPS: Detect bad _PFN_SHIFT values
    
    2 recent commits have fixed issues where _PFN_SHIFT grew too large due
    to the introduction of too many pgprot bits in our PTEs for some MIPS32
    kernel configurations. Tracking down such issues can be tricky, so add a
    BUILD_BUG_ON() to help.
    
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: linux-mips@vger.kernel.org

commit d1af2ab36d80fcdc15dcaaead68f15352778aec7
Author: Paul Burton <paul.burton@mips.com>
Date:   Wed Sep 18 22:03:27 2019 +0000

    MIPS: Disable pte_special() for MIPS32 with RiXi
    
    Commit 61cbfff4b1a7 ("MIPS: pte_special()/pte_mkspecial() support")
    added a _PAGE_SPECIAL bit to the pgprot bits of our PTEs. Unfortunately
    for MIPS32 configurations with RiXi support this pushed the number of
    pgprot bits to 13. Since the PFN field in EntryLo begins at bit 12 this
    results in us shifting the most significant bit of the physical address
    beyond the end of the PTE, leading any mapped access to a physical
    address above 2GB to incorrectly access an address 2GB lower than
    intended.
    
    For now, disable the pte_special() support for MIPS32 configurations
    that support RiXi.
    
    Fixes: 61cbfff4b1a7 ("MIPS: pte_special()/pte_mkspecial() support")
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Cc: Dmitry Korotin <dkorotin@wavecomp.com>
    Cc: linux-mips@vger.kernel.org

commit b08918fb3f27d1843152986e6bc79ec723dba8cc
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Sep 20 09:06:26 2019 -0700

    lz4: do not export static symbol
    
    Kbuild now complains (rightly) about it.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 7f4804665b58ced5d09848785d835af0f7a51b3e
Author: Stephen Boyd <sboyd@kernel.org>
Date:   Mon Aug 26 16:47:29 2019 -0700

    clk: Drop !clk checks in debugfs dumping
    
    These recursive functions have checks for !clk being passed in, but the
    callers are always looping through lists and therefore the pointers
    can't be NULL. Drop the checks to simplify the code.
    
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Link: https://lkml.kernel.org/r/20190826234729.145593-1-sboyd@kernel.org

commit 18dd1793a340f8216e22c9295c0c7b95cdae1783
Author: Brian Cain <bcain@codeaurora.org>
Date:   Thu Sep 19 10:59:34 2019 -0500

    Hexagon: change maintainer to Brian Cain
    
    Signed-off-by: Brian Cain <bcain@codeaurora.org>
    Signed-off-by: Richard Kuo <rkuo@codeaurora.org>

commit b78b94b82122208902c0f83805e614e1239f9893
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Sep 18 17:55:55 2019 +0900

    selftests/ftrace: Update kprobe event error testcase
    
    Update kprobe event error testcase to test if it correctly
    finds the exact same probe event.
    
    Link: http://lkml.kernel.org/r/156879695513.31056.1580235733738840126.stgit@devnote2
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit fe60b0ce8e7335269722ec080173a9411a9d58a5
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Sep 18 17:55:46 2019 +0900

    tracing/probe: Reject exactly same probe event
    
    Reject exactly same probe events as existing probes.
    
    Multiprobe allows user to define multiple probes on same
    event. If user appends a probe which exactly same definition
    (same probe address and same arguments) on existing event,
    the event will record same probe information twice.
    That can be confusing users, so reject it.
    
    Link: http://lkml.kernel.org/r/156879694602.31056.5533024778165036763.stgit@devnote2
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit 44d00dc7ceab1732ebd5f5aae601b24dacdf10c5
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Sep 18 17:55:37 2019 +0900

    tracing/probe: Fix to allow user to enable events on unloaded modules
    
    Fix to allow user to enable probe events on unloaded modules.
    
    This operations was allowed before commit 60d53e2c3b75 ("tracing/probe:
    Split trace_event related data from trace_probe"), because if users
    need to probe module init functions, they have to enable those probe
    events before loading module.
    
    Link: http://lkml.kernel.org/r/156879693733.31056.9331322616994665167.stgit@devnote2
    
    Cc: stable@vger.kernel.org
    Fixes: 60d53e2c3b75 ("tracing/probe: Split trace_event related data from trace_probe")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit 59e9fcf8772bd97b6d681706fb8c9a972500c524
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Wed Sep 18 10:47:48 2019 +0200

    of: restore old handling of cells_name=NULL in of_*_phandle_with_args()
    
    Before commit e42ee61017f5 ("of: Let of_for_each_phandle fallback to
    non-negative cell_count") the iterator functions calling
    of_for_each_phandle assumed a cell count of 0 if cells_name was NULL.
    This corner case was missed when implementing the fallback logic in
    e42ee61017f5 and resulted in an endless loop.
    
    Restore the old behaviour of of_count_phandle_with_args() and
    of_parse_phandle_with_args() and add a check to
    of_phandle_iterator_init() to prevent a similar failure as a safety
    precaution. of_parse_phandle_with_args_map() doesn't need a similar fix
    as cells_name isn't NULL there.
    
    Affected drivers are:
     - drivers/base/power/domain.c
     - drivers/base/power/domain.c
     - drivers/clk/ti/clk-dra7-atl.c
     - drivers/hwmon/ibmpowernv.c
     - drivers/i2c/muxes/i2c-demux-pinctrl.c
     - drivers/iommu/mtk_iommu.c
     - drivers/net/ethernet/freescale/fman/mac.c
     - drivers/opp/of.c
     - drivers/perf/arm_dsu_pmu.c
     - drivers/regulator/of_regulator.c
     - drivers/remoteproc/imx_rproc.c
     - drivers/soc/rockchip/pm_domains.c
     - sound/soc/fsl/imx-audmix.c
     - sound/soc/fsl/imx-audmix.c
     - sound/soc/meson/axg-card.c
     - sound/soc/samsung/tm2_wm5110.c
     - sound/soc/samsung/tm2_wm5110.c
    
    Thanks to Geert Uytterhoeven for reporting the issue, Peter Rosin for
    helping pinpoint the actual problem and the testers for confirming this
    fix.
    
    Fixes: e42ee61017f5 ("of: Let of_for_each_phandle fallback to non-negative cell_count")
    Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Rob Herring <robh@kernel.org>

commit d9101bfa6adc831bda8836c4d774820553c14942
Author: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Date:   Wed Sep 18 20:23:28 2019 +0530

    powerpc/mm/mce: Keep irqs disabled during lockless page table walk
    
    __find_linux_mm_pte() returns a page table entry pointer after walking
    the page table without holding locks. To make it safe against a THP
    split and/or collapse, we disable interrupts around the lockless page
    table walk. However we need to keep interrupts disabled as long as we
    use the page table entry pointer that is returned.
    
    Fix addr_to_pfn() to do that.
    
    Fixes: ba41e1e1ccb9 ("powerpc/mce: Hookup derror (load/store) UE errors")
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    [mpe: Rearrange code slightly and tweak change log wording]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190918145328.28602-1-aneesh.kumar@linux.ibm.com

commit b60fe990c6b07ef6d4df67bc0530c7c90a62623a
Author: Matt Delco <delco@chromium.org>
Date:   Mon Sep 16 14:16:54 2019 -0700

    KVM: coalesced_mmio: add bounds checking
    
    The first/last indexes are typically shared with a user app.
    The app can change the 'last' index that the kernel uses
    to store the next result.  This change sanity checks the index
    before using it for writing to a potentially arbitrary address.
    
    This fixes CVE-2019-14821.
    
    Cc: stable@vger.kernel.org
    Fixes: 5f94c1741bdc ("KVM: Add coalesced MMIO support (common part)")
    Signed-off-by: Matt Delco <delco@chromium.org>
    Signed-off-by: Jim Mattson <jmattson@google.com>
    Reported-by: syzbot+983c866c3dd6efa3662a@syzkaller.appspotmail.com
    [Use READ_ONCE. - Paolo]
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

commit 799c85105233514309b201a2d2d7a7934458c999
Author: Jeremy Cline <jcline@redhat.com>
Date:   Tue Sep 17 19:52:27 2019 +0000

    arm64: Fix reference to docs for ARM64_TAGGED_ADDR_ABI
    
    The referenced file does not exist, but tagged-address-abi.rst does.
    
    Signed-off-by: Jeremy Cline <jcline@redhat.com>
    Signed-off-by: Will Deacon <will@kernel.org>

commit 60a8a148b2fb494981ba07474d1828d450053225
Author: Peng Fan <peng.fan@nxp.com>
Date:   Mon Sep 9 03:39:50 2019 +0000

    clk: imx: imx8mn: fix pll mux bit
    
    pll BYPASS bit should be kept inside pll driver for glitchless freq
    setting following spec. If exposing the bit, that means pll driver and
    clk driver has two paths to touch this bit, which is wrong.
    
    So use EXT_BYPASS bit here.
    
    And drop uneeded set parent, because EXT_BYPASS default is 0.
    
    Suggested-by: Jacky Bai <ping.bai@nxp.com>
    Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lkml.kernel.org/r/1568043491-20680-5-git-send-email-peng.fan@nxp.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 67315be33e9c04c589fb16a291477bb3983d4283
Author: Peng Fan <peng.fan@nxp.com>
Date:   Mon Sep 9 03:39:44 2019 +0000

    clk: imx: imx8mm: fix pll mux bit
    
    pll BYPASS bit should be kept inside pll driver for glitchless freq
    setting following spec. If exposing the bit, that means pll driver and
    clk driver has two paths to touch this bit, which is wrong.
    
    So use EXT_BYPASS bit here.
    
    And drop uneeded set parent, because EXT_BYPASS default is 0.
    
    Fixes: ba5625c3e272 ("clk: imx: Add clock driver support for imx8mm")
    Suggested-by: Jacky Bai <ping.bai@nxp.com>
    Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lkml.kernel.org/r/1568043491-20680-4-git-send-email-peng.fan@nxp.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit a9aa8306074d9519dd6e5fdf07240b01bac72e04
Author: Peng Fan <peng.fan@nxp.com>
Date:   Mon Sep 9 03:39:39 2019 +0000

    clk: imx: clk-pll14xx: unbypass PLL by default
    
    When registering the PLL, unbypass the PLL.
    The PLL has two bypass control bit, BYPASS and EXT_BYPASS.
    we will expose EXT_BYPASS to clk driver for mux usage, and keep
    BYPASS inside pll14xx usage. The PLL has a restriction that
    when M/P change, need to RESET/BYPASS pll to avoid glitch, so
    we could not expose BYPASS.
    
    To make it easy for clk driver usage, unbypass PLL which does
    not hurt current function.
    
    Fixes: 8646d4dcc7fb ("clk: imx: Add PLLs driver for imx8mm soc")
    Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lkml.kernel.org/r/1568043491-20680-3-git-send-email-peng.fan@nxp.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit dee1bc9c23cd41fe32549c0adbe6cb57cab02282
Author: Peng Fan <peng.fan@nxp.com>
Date:   Mon Sep 9 03:39:34 2019 +0000

    clk: imx: pll14xx: avoid glitch when set rate
    
    According to PLL1443XA and PLL1416X spec,
    "When BYPASS is 0 and RESETB is changed from 0 to 1, FOUT starts to
    output unstable clock until lock time passes. PLL1416X/PLL1443XA may
    generate a glitch at FOUT."
    
    So set BYPASS when RESETB is changed from 0 to 1 to avoid glitch.
    In the end of set rate, BYPASS will be cleared.
    
    When prepare clock, also need to take care to avoid glitch. So
    we also follow Spec to set BYPASS before RESETB changed from 0 to 1.
    And add a check if the RESETB is already 0, directly return 0;
    
    Fixes: 8646d4dcc7fb ("clk: imx: Add PLLs driver for imx8mm soc")
    Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lkml.kernel.org/r/1568043491-20680-2-git-send-email-peng.fan@nxp.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit c0448dce56a49812c889e5f670745c9f49176b00
Author: Ben Peled <bpeled@marvell.com>
Date:   Mon Aug 5 12:03:10 2019 +0200

    clk: mvebu: ap80x: add AP807 clock support
    
    Add driver support for AP807 clock.
    
    Signed-off-by: Ben Peled <bpeled@marvell.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-9-miquel.raynal@bootlin.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit be69e55df9afc2eb37a2a602ad607e28e1e553d7
Author: Ben Peled <bpeled@marvell.com>
Date:   Mon Aug 5 12:03:09 2019 +0200

    clk: mvebu: ap806: Prepare the introduction of AP807 clock support
    
    Factor out the code that is only useful to AP806 so it will be easier
    to support AP807. No functional changes.
    
    Signed-off-by: Ben Peled <bpeled@marvell.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-8-miquel.raynal@bootlin.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 0099dc446bb6a72ce24d4f86760d0f4fe4300138
Author: Omri Itach <omrii@marvell.com>
Date:   Mon Aug 5 12:03:08 2019 +0200

    clk: mvebu: ap806: add AP-DCLK (hclk) to system controller driver
    
    Add dynamic AP-DCLK clock (hclk) to system controller driver. AP-DCLK
    is half the rate of DDR clock, so its derrived from Sample At Reset
    configuration. The clock frequency is required for AP806 AXI monitor
    profiling feature.
    
    Signed-off-by: Omri Itach <omrii@marvell.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-7-miquel.raynal@bootlin.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit cd016cb01835e0b9f62fb675b336fbded912dcb6
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date:   Mon Aug 5 12:03:07 2019 +0200

    clk: mvebu: ap806: be more explicit on what SaR is
    
    "SaR" means Sample at Reset. DIP switches can be changed on the board,
    their states at reset time is available through a register read.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-6-miquel.raynal@bootlin.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 3b14e509ab997383e3ae243f1448886d748e3ac3
Author: Ben Peled <bpeled@marvell.com>
Date:   Mon Aug 5 12:03:06 2019 +0200

    clk: mvebu: ap80x-cpu: add AP807 CPU clock support
    
    Enhance the ap-cpu-clk driver to support both AP806 and AP807 CPU
    clocks.
    
    Signed-off-by: Ben Peled <bpeled@marvell.com>
    [<miquel.raynal@bootlin.com>: use device data instead of conditions on
    the compatible]
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-5-miquel.raynal@bootlin.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit a77f45eaa266e493e2bf190b5af6b88940dc0174
Author: Christine Gharzuzi <chrisg@marvell.com>
Date:   Mon Aug 5 12:03:05 2019 +0200

    clk: mvebu: ap806-cpu: prepare mapping of AP807 CPU clock
    
    This patch allows same flow to be executed on chips with different
    register mappings like AP806 and, in the future, AP807.
    
    Note: this patch has no functional effect, and only prepares the
    driver for additional chips to be supported by retrieving the right
    device data depenging on the compatible property.
    
    Signed-off-by: Christine Gharzuzi <chrisg@marvell.com>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-4-miquel.raynal@bootlin.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 64b379543e2aa64a1328ab3c7f4f34dd467b9474
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date:   Mon Aug 5 12:03:04 2019 +0200

    dt-bindings: ap806: Document AP807 clock compatible
    
    Add AP807 clock compatible to the bindings.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-3-miquel.raynal@bootlin.com
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit d827af8f37e9c0183d383fe1955338373da5f394
Author: Miquel Raynal <miquel.raynal@bootlin.com>
Date:   Mon Aug 5 12:03:03 2019 +0200

    dt-bindings: ap80x: Document AP807 CPU clock compatible
    
    Add AP807 CPU clock compatible to the bindings.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20190805100310.29048-2-miquel.raynal@bootlin.com
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 5e75ea9c67433a065b0e8595ad3c91c7c0ca0d2d
Author: Chunyan Zhang <chunyan.zhang@unisoc.com>
Date:   Thu Sep 5 18:30:09 2019 +0800

    clk: sprd: add missing kfree
    
    The number of config registers for different pll clocks probably are not
    same, so we have to use malloc, and should free the memory before return.
    
    Fixes: 3e37b005580b ("clk: sprd: add adjustable pll support")
    Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
    Signed-off-by: Chunyan Zhang <zhang.lyra@gmail.com>
    Link: https://lkml.kernel.org/r/20190905103009.27166-1-zhang.lyra@gmail.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 81a6b601f9f49be4e5972c351ad27cb13265c225
Author: Eugen Hristev <eugen.hristev@microchip.com>
Date:   Wed Sep 11 06:39:20 2019 +0000

    clk: at91: allow 24 Mhz clock as input for PLL
    
    The PLL input range needs to be able to allow 24 Mhz crystal as input
    Update the range accordingly in plla characteristics struct
    
    Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
    Link: https://lkml.kernel.org/r/1568183622-7858-1-git-send-email-eugen.hristev@microchip.com
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Fixes: c561e41ce4d2 ("clk: at91: add sama5d2 PMC driver")
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 7c1bb6bbf75d8ca5ec878627d3170effcaf54f27
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Thu Sep 5 23:50:30 2019 +0530

    powerpc: Use ftrace_graph_ret_addr() when unwinding
    
    With support for HAVE_FUNCTION_GRAPH_RET_ADDR_PTR,
    ftrace_graph_ret_addr() provides more robust unwinding when function
    graph is in use. Update show_stack() to use the same.
    
    With dump_stack() added to sysrq_sysctl_handler(), before this patch:
      root@(none):/sys/kernel/debug/tracing# cat /proc/sys/kernel/sysrq
      CPU: 0 PID: 218 Comm: cat Not tainted 5.3.0-rc7-00868-g8453ad4a078c-dirty #20
      Call Trace:
      [c0000000d1e13c30] [c00000000006ab98] return_to_handler+0x0/0x40 (dump_stack+0xe8/0x164) (unreliable)
      [c0000000d1e13c80] [c000000000145680] sysrq_sysctl_handler+0x48/0xb8
      [c0000000d1e13cd0] [c00000000006ab98] return_to_handler+0x0/0x40 (proc_sys_call_handler+0x274/0x2a0)
      [c0000000d1e13d60] [c00000000006ab98] return_to_handler+0x0/0x40 (return_to_handler+0x0/0x40)
      [c0000000d1e13d80] [c00000000006ab98] return_to_handler+0x0/0x40 (__vfs_read+0x3c/0x70)
      [c0000000d1e13dd0] [c00000000006ab98] return_to_handler+0x0/0x40 (vfs_read+0xb8/0x1b0)
      [c0000000d1e13e20] [c00000000006ab98] return_to_handler+0x0/0x40 (ksys_read+0x7c/0x140)
    
    After this patch:
      Call Trace:
      [c0000000d1e33c30] [c00000000006ab58] return_to_handler+0x0/0x40 (dump_stack+0xe8/0x164) (unreliable)
      [c0000000d1e33c80] [c000000000145680] sysrq_sysctl_handler+0x48/0xb8
      [c0000000d1e33cd0] [c00000000006ab58] return_to_handler+0x0/0x40 (proc_sys_call_handler+0x274/0x2a0)
      [c0000000d1e33d60] [c00000000006ab58] return_to_handler+0x0/0x40 (__vfs_read+0x3c/0x70)
      [c0000000d1e33d80] [c00000000006ab58] return_to_handler+0x0/0x40 (vfs_read+0xb8/0x1b0)
      [c0000000d1e33dd0] [c00000000006ab58] return_to_handler+0x0/0x40 (ksys_read+0x7c/0x140)
      [c0000000d1e33e20] [c00000000006ab58] return_to_handler+0x0/0x40 (system_call+0x5c/0x68)
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/dc89c9a887121342d9c7819482c3dabdece2a323.1567707399.git.naveen.n.rao@linux.vnet.ibm.com

commit 370011a27028d6f05e598ed6211a0ca2dc0213f7
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Thu Sep 5 23:50:29 2019 +0530

    powerpc/ftrace: Enable HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
    
    This associates entries in the ftrace_ret_stack with corresponding stack
    frames, enabling more robust stack unwinding. Also update the only user
    of ftrace_graph_ret_addr() to pass the stack pointer.
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/0224f2d0971b069c678e2ff678cfc2cd1e114cfe.1567707399.git.naveen.n.rao@linux.vnet.ibm.com

commit a3db31ff6ce31f5a544a66b61613a098029031cc
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Thu Sep 5 23:50:28 2019 +0530

    ftrace: Look up the address of return_to_handler() using helpers
    
    This ensures that we use the right address on architectures that use
    function descriptors.
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/8f6f14d192a994008ac370ce14036bbe67224c7d.1567707399.git.naveen.n.rao@linux.vnet.ibm.com

commit 9fe69a725e238ac279027f0132e50617a63b847d
Author: Bjorn Andersson <bjorn.andersson@linaro.org>
Date:   Mon Aug 19 21:16:56 2019 -0700

    rpmsg: glink-smem: Name the edge based on parent remoteproc
    
    Naming the glink edge device on the parent of_node short name causes
    collisions when multiple remoteproc instances with only different unit
    address are described on the platform_bus in DeviceTree.
    
    Base the edge's name on the parent remoteproc's name instead, to ensure
    that it's unique.
    
    Reviewed-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

commit fbbf779989d2ef9a51daaa4e53c0b2ecc8c55c4e
Author: Sahitya Tummala <stummala@codeaurora.org>
Date:   Tue Sep 17 10:19:23 2019 +0530

    f2fs: add a condition to detect overflow in f2fs_ioc_gc_range()
    
    end = range.start + range.len;
    
    If the range.start/range.len is a very large value, then end can overflow
    in this operation. It results into a crash in get_valid_blocks() when
    accessing the invalid range.start segno.
    
    This issue is reported in ioctl fuzz testing.
    
    Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

commit 7f81c2426587b34bf73e643c1a6d080dfa14cf8a
Author: Bjorn Andersson <bjorn.andersson@linaro.org>
Date:   Thu Sep 12 19:40:29 2019 -0700

    clk: Make clk_bulk_get_all() return a valid "id"
    
    The adreno driver expects the "id" field of the returned clk_bulk_data
    to be filled in with strings from the clock-names property.
    
    But due to the use of kmalloc_array() in of_clk_bulk_get_all() it
    receives a list of bogus pointers instead.
    
    Zero-initialize the "id" field and attempt to populate with strings from
    the clock-names property to resolve both these issues.
    
    Fixes: 616e45df7c4a ("clk: add new APIs to operate on all available clocks")
    Fixes: 8e3e791d20d2 ("drm/msm: Use generic bulk clock function")
    Cc: Dong Aisheng <aisheng.dong@nxp.com>
    Cc: Jordan Crouse <jcrouse@codeaurora.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lkml.kernel.org/r/20190913024029.2640-1-bjorn.andersson@linaro.org
    Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit ed309bfb4812e8b31a3eb877e157b8028a49e50c
Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Date:   Mon Sep 16 21:15:40 2019 +0530

    clk: actions: Fix factor clk struct member access
    
    Since the helper "owl_factor_helper_round_rate" is shared between factor
    and composite clocks, using the factor clk specific helper function
    like "hw_to_owl_factor" to access its members will create issues when
    called from composite clk specific code. Hence, pass the "factor_hw"
    struct pointer directly instead of fetching it using factor clk specific
    helpers.
    
    This issue has been observed when a composite clock like "sd0_clk" tried
    to call "owl_factor_helper_round_rate" resulting in pointer dereferencing
    error.
    
    While we are at it, let's rename the "clk_val_best" function to
    "owl_clk_val_best" since this is an owl SoCs specific helper.
    
    Fixes: 4bb78fc9744a ("clk: actions: Add factor clock support")
    Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Reviewed-by: Stephen Boyd <sboyd@kernel.org>
    Link: https://lkml.kernel.org/r/20190916154546.24982-2-manivannan.sadhasivam@linaro.org
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 21ea4b62e1f3dc258001a68da98c9663a9dbd6c7
Author: Taniya Das <tdas@codeaurora.org>
Date:   Wed May 8 23:54:53 2019 +0530

    clk: qcom: rcg: Return failure for RCG update
    
    In case of update config failure, return -EBUSY, so that consumers could
    handle the failure gracefully.
    
    Signed-off-by: Taniya Das <tdas@codeaurora.org>
    Link: https://lkml.kernel.org/r/1557339895-21952-2-git-send-email-tdas@codeaurora.org
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 863e53e6ed7ac1071c58abbe2438b70f86e6a1f8
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Thu Aug 22 11:31:26 2019 +0200

    clk: remove extra ---help--- tags in Kconfig
    
    Sometimes an extraneous "---help---" follows "help". That is probably a
    copy&paste error stemming from their inconsistent use. Remove those.
    
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Link: https://lkml.kernel.org/r/20190822093126.594013-1-lkundrak@v3.sk
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit d7aef6ef96e9ffa93e6248e21d864ce74e3b8b7d
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Tue Aug 20 12:05:36 2019 +0900

    clk: add include guard to clk-conf.h
    
    Add a header include guard just in case.
    
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Link: https://lkml.kernel.org/r/20190820030536.1181-1-yamada.masahiro@socionext.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit bdcf1dc253248542537a742ae1e7ccafdd03f2d3
Author: Stephen Boyd <sboyd@kernel.org>
Date:   Wed Aug 28 11:19:59 2019 -0700

    clk: Evict unregistered clks from parent caches
    
    We leave a dangling pointer in each clk_core::parents array that has an
    unregistered clk as a potential parent when that clk_core pointer is
    freed by clk{_hw}_unregister(). It is impossible for the true parent of
    a clk to be set with clk_set_parent() once the dangling pointer is left
    in the cache because we compare parent pointers in
    clk_fetch_parent_index() instead of checking for a matching clk name or
    clk_hw pointer.
    
    Before commit ede77858473a ("clk: Remove global clk traversal on fetch
    parent index"), we would check clk_hw pointers, which has a higher
    chance of being the same between registration and unregistration, but it
    can still be allocated and freed by the clk provider. In fact, this has
    been a long standing problem since commit da0f0b2c3ad2 ("clk: Correct
    lookup logic in clk_fetch_parent_index()") where we stopped trying to
    compare clk names and skipped over entries in the cache that weren't
    NULL.
    
    There are good (performance) reasons to not do the global tree lookup in
    cases where the cache holds dangling pointers to parents that have been
    unregistered. Let's take the performance hit on the uncommon
    registration path instead. Loop through all the clk_core::parents arrays
    when a clk is unregistered and set the entry to NULL when the parent
    cache entry and clk being unregistered are the same pointer. This will
    fix this problem and avoid the overhead for the "normal" case.
    
    Based on a patch by Bjorn Andersson.
    
    Fixes: da0f0b2c3ad2 ("clk: Correct lookup logic in clk_fetch_parent_index()")
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Tested-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Link: https://lkml.kernel.org/r/20190828181959.204401-1-sboyd@kernel.org

commit 327aa741563806f8b67fbf5e665be203acf5f4f5
Author: Weiyi Lu <weiyi.lu@mediatek.com>
Date:   Mon Sep 2 17:00:58 2019 +0800

    clk: mediatek: Runtime PM support for MT8183 mcucfg clock provider
    
    Enable the runtime PM support and forward the struct device pointer for
    registration of MT8183 mcucfg clocks.
    
    Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
    Link: https://lkml.kernel.org/r/1567414859-3244-3-git-send-email-weiyi.lu@mediatek.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit e4c23e19aa2a611c2068f7c55487d2cbfea690ef
Author: Weiyi Lu <weiyi.lu@mediatek.com>
Date:   Mon Sep 2 17:00:57 2019 +0800

    clk: mediatek: Register clock gate with device
    
    Allow those clocks under a power domain to do the runtime pm operation
    by forwarding the struct device pointer from clock provider.
    
    Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
    Link: https://lkml.kernel.org/r/1567414859-3244-2-git-send-email-weiyi.lu@mediatek.com
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit f9e55ac22ce9246c085e1c97ddda93608ce17eaf
Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
Date:   Wed Aug 28 16:22:13 2019 +0800

    clk: mediatek: add pericfg clocks for MT8183
    
    Add pericfg clocks for MT8183, it's used when support USB
    remote wakeup
    
    Cc: Weiyi Lu <weiyi.lu@mediatek.com>
    Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Link: https://lkml.kernel.org/r/1566980533-28282-2-git-send-email-chunfeng.yun@mediatek.com
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 5aa00ad3fd3338eba1ed8bbb1a142eb40f43d728
Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
Date:   Wed Aug 28 16:22:12 2019 +0800

    dt-bindings: clock: mediatek: add pericfg for MT8183
    
    This patch adds binding of pericfg for MT8183.
    
    Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Link: https://lkml.kernel.org/r/1566980533-28282-1-git-send-email-chunfeng.yun@mediatek.com
    Acked-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>

commit 5c5ba218c6dc1e469b2796345935b8b758162b66
Author: Stefan Wahren <wahrenst@gmx.net>
Date:   Sun Aug 18 18:23:44 2019 +0200

    clk: bcm2835: Mark PLLD_PER as CRITICAL
    
    The VPU firmware assume that the PLLD_PER isn't modified by the ARM core.
    Otherwise this could cause firmware lookups. So mark the clock as critical
    to avoid this.
    
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>

commit 42de9ad400afadd41ee027b5feef234a2d2918b9
Author: Stefan Wahren <wahrenst@gmx.net>
Date:   Sun Aug 18 18:23:43 2019 +0200

    clk: bcm2835: Add BCM2711_CLOCK_EMMC2 support
    
    The new BCM2711 supports an additional clock for the emmc2 block.
    So add a new compatible and register this clock only for BCM2711.
    
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Reviewed-by: Matthias Brugger <mbrugger@suse.com>
    Acked-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>

commit ee0a5a9013b2b2502571a763c3093d400d18191f
Author: Stefan Wahren <wahrenst@gmx.net>
Date:   Sun Aug 18 18:23:42 2019 +0200

    clk: bcm2835: Introduce SoC specific clock registration
    
    In order to support SoC specific clocks (e.g. emmc2 for BCM2711), we
    extend the description with a SoC support flag. This approach avoids long
    and mostly redundant lists of clock IDs. Since PLLH is specific to
    BCM2835, we register only rest of the clocks as common to all SoC.
    
    Suggested-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Reviewed-by: Matthias Brugger <mbrugger@suse.com>
    Acked-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>

commit 80766f87263c527b6c66a297e8d9c1d961d37eba
Author: Stefan Wahren <wahrenst@gmx.net>
Date:   Sun Aug 18 18:23:41 2019 +0200

    dt-bindings: bcm2835-cprman: Add bcm2711 support
    
    The new BCM2711 supports an additional clock for the emmc2 block.
    So we need an additional compatible.
    
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Acked-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>

commit 604e3548236de26ed6659b85bda8f27b28a7601b
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Fri Mar 22 15:09:23 2019 -0400

    selftests/ftrace: Select an existing function in kprobe_eventname test
    
    Running the ftrace selftests on the latest kernel caused the
    kprobe_eventname test to fail. It was due to the test that searches for
    a function with at "dot" in the name and adding a probe to that.
    Unfortunately, for this test, it picked:
    
     optimize_nops.isra.2.cold.4
    
    Which happens to be marked as "__init", which means it no longer exists
    in the kernel! (kallsyms keeps those function names around for tracing
    purposes)
    
    As only functions that still exist are in the
    available_filter_functions file, as they are removed when the functions
    are freed at boot or module exit, have the test search for a function
    with ".isra." in the name as well as being in the
    available_filter_functions (if the file exists).
    
    Link: http://lkml.kernel.org/r/20190322150923.1b58eca5@gandalf.local.home
    
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit aa28b98d6dbcdb1c822b53f90e509565dfc450b0
Author: Colin Ian King <colin.king@canonical.com>
Date:   Fri Sep 6 14:58:07 2019 +0100

    unicode: make array 'token' static const, makes object smaller
    
    Don't populate the array 'token' on the stack but instead make it
    static const. Makes the object code smaller by 234 bytes.
    
    Before:
       text    data     bss     dec     hex filename
       5371     272       0    5643    160b fs/unicode/utf8-core.o
    
    After:
       text    data     bss     dec     hex filename
       5041     368       0    5409    1521 fs/unicode/utf8-core.o
    
    (gcc version 9.2.1, amd64)
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Reviewed-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>

commit 334b427e96d10f6e07117a785636dac81c430141
Author: Krzysztof Wilczynski <kw@linux.com>
Date:   Fri Aug 30 15:13:49 2019 +0200

    unicode: Move static keyword to the front of declarations
    
    Move the static keyword to the front of declarations of nfdi_test_data
    and nfdicf_test_data, and resolve the following compiler warnings that
    can be seen when building with warnings enabled (W=1):
    
    fs/unicode/utf8-selftest.c:38:1: warning:
      ‘static’ is not at beginning of declaration [-Wold-style-declaration]
    
    fs/unicode/utf8-selftest.c:92:1: warning:
      ‘static’ is not at beginning of declaration [-Wold-style-declaration]
    
    Signed-off-by: Krzysztof Wilczynski <kw@linux.com>
    Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>

commit d59fae6fea39efe65bb3d3310aaa2a54b5f55c0d
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Tue Sep 17 14:11:37 2019 +0900

    tracing/kprobe: Fix NULL pointer access in trace_porbe_unlink()
    
    Fix NULL pointer access in trace_probe_unlink() by initializing
    trace_probe.list correctly in trace_probe_init().
    
    In the error case of trace_probe_init(), it can call trace_probe_unlink()
    before initializing trace_probe.list member. This causes NULL pointer
    dereference at list_del_init() in trace_probe_unlink().
    
    Syzbot reported :
    
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] PREEMPT SMP KASAN
    CPU: 1 PID: 8633 Comm: syz-executor797 Not tainted 5.3.0-rc8-next-20190915
    #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
    Google 01/01/2011
    RIP: 0010:__list_del_entry_valid+0x85/0xf5 lib/list_debug.c:51
    Code: 0f 84 e1 00 00 00 48 b8 22 01 00 00 00 00 ad de 49 39 c4 0f 84 e2 00
    00 00 48 b8 00 00 00 00 00 fc ff df 4c 89 e2 48 c1 ea 03 <80> 3c 02 00 75
    53 49 8b 14 24 4c 39 f2 0f 85 99 00 00 00 49 8d 7d
    RSP: 0018:ffff888090a7f9d8 EFLAGS: 00010246
    RAX: dffffc0000000000 RBX: ffff88809b6f90c0 RCX: ffffffff817c0ca9
    RDX: 0000000000000000 RSI: ffffffff817c0a73 RDI: ffff88809b6f90c8
    RBP: ffff888090a7f9f0 R08: ffff88809a04e600 R09: ffffed1015d26aed
    R10: ffffed1015d26aec R11: ffff8880ae935763 R12: 0000000000000000
    R13: 0000000000000000 R14: ffff88809b6f90c0 R15: ffff88809b6f90d0
    FS:  0000555556f99880(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000006cc090 CR3: 00000000962b2000 CR4: 00000000001406e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
      __list_del_entry include/linux/list.h:131 [inline]
      list_del_init include/linux/list.h:190 [inline]
      trace_probe_unlink+0x1f/0x200 kernel/trace/trace_probe.c:959
      trace_probe_cleanup+0xd3/0x110 kernel/trace/trace_probe.c:973
      trace_probe_init+0x3f2/0x510 kernel/trace/trace_probe.c:1011
      alloc_trace_uprobe+0x5e/0x250 kernel/trace/trace_uprobe.c:353
      create_local_trace_uprobe+0x109/0x4a0 kernel/trace/trace_uprobe.c:1508
      perf_uprobe_init+0x131/0x210 kernel/trace/trace_event_perf.c:314
      perf_uprobe_event_init+0x106/0x1a0 kernel/events/core.c:8898
      perf_try_init_event+0x135/0x590 kernel/events/core.c:10184
      perf_init_event kernel/events/core.c:10228 [inline]
      perf_event_alloc.part.0+0x1b89/0x33d0 kernel/events/core.c:10505
      perf_event_alloc kernel/events/core.c:10887 [inline]
      __do_sys_perf_event_open+0xa2d/0x2d00 kernel/events/core.c:10989
      __se_sys_perf_event_open kernel/events/core.c:10871 [inline]
      __x64_sys_perf_event_open+0xbe/0x150 kernel/events/core.c:10871
      do_syscall_64+0xfa/0x760 arch/x86/entry/common.c:290
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Link: http://lkml.kernel.org/r/156869709721.22406.5153754822203046939.stgit@devnote2
    
    Reported-by: syzbot+2f807f4d3a2a4e87f18f@syzkaller.appspotmail.com
    Fixes: ca89bc071d5e ("tracing/kprobe: Add multi-probe per event support")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit 17f8607a1658a8e70415eef67909f990d13017b5
Author: Tom Zanussi <zanussi@kernel.org>
Date:   Sun Sep 1 17:02:01 2019 -0500

    tracing: Make sure variable reference alias has correct var_ref_idx
    
    Original changelog from Steve Rostedt (except last sentence which
    explains the problem, and the Fixes: tag):
    
    I performed a three way histogram with the following commands:
    
    echo 'irq_lat u64 lat pid_t pid' > synthetic_events
    echo 'wake_lat u64 lat u64 irqlat pid_t pid' >> synthetic_events
    echo 'hist:keys=common_pid:irqts=common_timestamp.usecs if function == 0xffffffff81200580' > events/timer/hrtimer_start/trigger
    echo 'hist:keys=common_pid:lat=common_timestamp.usecs-$irqts:onmatch(timer.hrtimer_start).irq_lat($lat,pid) if common_flags & 1' > events/sched/sched_waking/trigger
    echo 'hist:keys=pid:wakets=common_timestamp.usecs,irqlat=lat' > events/synthetic/irq_lat/trigger
    echo 'hist:keys=next_pid:lat=common_timestamp.usecs-$wakets,irqlat=$irqlat:onmatch(synthetic.irq_lat).wake_lat($lat,$irqlat,next_pid)' > events/sched/sched_switch/trigger
    echo 1 > events/synthetic/wake_lat/enable
    
    Basically I wanted to see:
    
     hrtimer_start (calling function tick_sched_timer)
    
    Note:
    
      # grep tick_sched_timer /proc/kallsyms
    ffffffff81200580 t tick_sched_timer
    
    And save the time of that, and then record sched_waking if it is called
    in interrupt context and with the same pid as the hrtimer_start, it
    will record the latency between that and the waking event.
    
    I then look at when the task that is woken is scheduled in, and record
    the latency between the wakeup and the task running.
    
    At the end, the wake_lat synthetic event will show the wakeup to
    scheduled latency, as well as the irq latency in from hritmer_start to
    the wakeup. The problem is that I found this:
    
              <idle>-0     [007] d...   190.485261: wake_lat: lat=27 irqlat=190485230 pid=698
              <idle>-0     [005] d...   190.485283: wake_lat: lat=40 irqlat=190485239 pid=10
              <idle>-0     [002] d...   190.488327: wake_lat: lat=56 irqlat=190488266 pid=335
              <idle>-0     [005] d...   190.489330: wake_lat: lat=64 irqlat=190489262 pid=10
              <idle>-0     [003] d...   190.490312: wake_lat: lat=43 irqlat=190490265 pid=77
              <idle>-0     [005] d...   190.493322: wake_lat: lat=54 irqlat=190493262 pid=10
              <idle>-0     [005] d...   190.497305: wake_lat: lat=35 irqlat=190497267 pid=10
              <idle>-0     [005] d...   190.501319: wake_lat: lat=50 irqlat=190501264 pid=10
    
    The irqlat seemed quite large! Investigating this further, if I had
    enabled the irq_lat synthetic event, I noticed this:
    
              <idle>-0     [002] d.s.   249.429308: irq_lat: lat=164968 pid=335
              <idle>-0     [002] d...   249.429369: wake_lat: lat=55 irqlat=249429308 pid=335
    
    Notice that the timestamp of the irq_lat "249.429308" is awfully
    similar to the reported irqlat variable. In fact, all instances were
    like this. It appeared that:
    
      irqlat=$irqlat
    
    Wasn't assigning the old $irqlat to the new irqlat variable, but
    instead was assigning the $irqts to it.
    
    The issue is that assigning the old $irqlat to the new irqlat variable
    creates a variable reference alias, but the alias creation code
    forgets to make sure the alias uses the same var_ref_idx to access the
    reference.
    
    Link: http://lkml.kernel.org/r/1567375321.5282.12.camel@kernel.org
    
    Cc: Linux Trace Devel <linux-trace-devel@vger.kernel.org>
    Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
    Cc: stable@vger.kernel.org
    Fixes: 7e8b88a30b085 ("tracing: Add hist trigger support for variable reference aliases")
    Reported-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Tom Zanussi <zanussi@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit 119cdbdb95a66203c0bca09474427c297186f7a3
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Tue Aug 6 18:15:43 2019 +0300

    tracing: Be more clever when dumping hex in __print_hex()
    
    Hex dump as many as 16 bytes at once in trace_print_hex_seq()
    instead of byte-by-byte approach.
    
    Link: http://lkml.kernel.org/r/20190806151543.86061-1-andriy.shevchenko@linux.intel.com
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit 08468754c16e731d31538a8b1b0b433be2410a89
Author: Changbin Du <changbin.du@gmail.com>
Date:   Tue Sep 10 22:33:36 2019 +0800

    ftrace: Simplify ftrace hash lookup code in clear_func_from_hash()
    
    Function ftrace_lookup_ip() will check empty hash table. So we don't
    need extra check outside.
    
    Link: http://lkml.kernel.org/r/20190910143336.13472-1-changbin.du@gmail.com
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

commit f0b444b349e33ae0d3dd93e25ca365482a5d17d4
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Thu Sep 12 13:54:27 2019 -0400

    gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps
    
    In function sweep_bh_for_rgrps, which is a helper for punch_hole,
    it uses variable buf_in_tr to keep track of when it needs to commit
    pending block frees on a partial delete that overflows the
    transaction created for the delete. The problem is that the
    variable was initialized at the start of function sweep_bh_for_rgrps
    but it was never cleared, even when starting a new transaction.
    
    This patch reinitializes the variable when the transaction is
    ended, so the next transaction starts out with it cleared.
    
    Fixes: d552a2b9b33e ("GFS2: Non-recursive delete")
    Cc: stable@vger.kernel.org # v4.12+
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>

commit e7ca44ed3ba77fc26cf32650bb71584896662474
Author: Ganesh Goudar <ganeshgr@linux.ibm.com>
Date:   Wed Sep 4 13:29:49 2019 +0530

    powerpc: dump kernel log before carrying out fadump or kdump
    
    Since commit 4388c9b3a6ee ("powerpc: Do not send system reset request
    through the oops path"), pstore dmesg file is not updated when dump is
    triggered from HMC. This commit modified system reset (sreset) handler
    to invoke fadump or kdump (if configured), without pushing dmesg to
    pstore. This leaves pstore to have old dmesg data which won't be much
    of a help if kdump fails to capture the dump. This patch fixes that by
    calling kmsg_dump() before heading to fadump ot kdump.
    
    Fixes: 4388c9b3a6ee ("powerpc: Do not send system reset request through the oops path")
    Reviewed-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
    Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Ganesh Goudar <ganeshgr@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190904075949.15607-1-ganeshgr@linux.ibm.com

commit ad9b48c52296ddb7620e3f2b66a7479b78632dff
Author: Adam Zerella <adam.zerella@gmail.com>
Date:   Sun Sep 15 15:29:05 2019 +1000

    docs: powerpc: Add missing documentation reference
    
    The documentation pages for 'elfnote' and 'ultravisor'
    are not included in the powerpc documentation index, this
    generates Sphinx warnings:
    
    WARNING: document isn't included in any toctree
    
    Additionally, when one includes these missing doc pages,
    more Sphinx warnings appear. Unused footnote references,
    syntax highlighting and table of content ordering has
    been adjusted.
    
    Signed-off-by: Adam Zerella <adam.zerella@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190915052905.13431-1-adam.zerella@gmail.com

commit c27eccfe4d6c7481ce99f1c433ca043ab464080a
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Tue Sep 10 15:40:44 2019 -0700

    arm64: fix function types in COND_SYSCALL
    
    Define a weak function in COND_SYSCALL instead of a weak alias to
    sys_ni_syscall, which has an incompatible type. This fixes indirect
    call mismatches with Control-Flow Integrity (CFI) checking.
    
    Acked-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Signed-off-by: Will Deacon <will@kernel.org>

commit bd3841cd3bd852e7363218e71e48cb473de4fc06
Author: Andrey Konovalov <andreyknvl@google.com>
Date:   Wed Sep 4 18:41:00 2019 +0200

    selftests, arm64: add kernel headers path for tags_test
    
    tags_test.c relies on PR_SET_TAGGED_ADDR_CTRL/PR_TAGGED_ADDR_ENABLE being
    present in system headers. When this is not the case the build of this
    test fails with undeclared identifier errors.
    
    Fix by providing the path to the KSFT installed kernel headers in CFLAGS.
    
    Reported-by: Cristian Marussi <cristian.marussi@arm.com>
    Suggested-by: Cristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Will Deacon <will@kernel.org>

commit 920fdab7b3ce98c14c840261e364f490f3679a62
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Sep 10 13:56:22 2019 +0200

    arm64: fix unreachable code issue with cmpxchg
    
    On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
    when CONFIG_OPTIMIZE_INLINING is set.
    Clang then fails a compile-time assertion, because it cannot tell at
    compile time what the size of the argument is:
    
    mm/memcontrol.o: In function `__cmpxchg_mb':
    memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
    memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'
    
    Mark all of the cmpxchg() style functions as __always_inline to
    ensure that the compiler can see the result.
    
    Acked-by: Nick Desaulniers <ndesaulniers@google.com>
    Reported-by: Nathan Chancellor <natechancellor@gmail.com>
    Link: https://github.com/ClangBuiltLinux/linux/issues/648
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Tested-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Andrew Murray <andrew.murray@arm.com>
    Tested-by: Andrew Murray <andrew.murray@arm.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Will Deacon <will@kernel.org>

commit 556a0964e28c4441dcdd50fb07596fd042246bd5
Author: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Date:   Mon Sep 9 11:08:50 2019 +0200

    mailbox: qcom-apcs: fix max_register value
    
    The mailbox length is 0x1000 hence the max_register value is 0xFFC.
    
    Fixes: c6a8b171ca8e ("mailbox: qcom: Convert APCS IPC driver to use
    regmap")
    Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 88ae25e46cbe9980ad2029c287ec22426d44c532
Author: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
Date:   Fri Sep 13 17:26:08 2019 +0530

    mailbox: qcom: Add support for IPQ8074 APCS
    
    Add support of IPQ8074 with IPC register offset as 8.
    
    Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
    Signed-off-by: Sricharan R <sricharan@codeaurora.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 7090a4716972224912151d73dca4b84c09486a8a
Author: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
Date:   Fri Sep 13 17:26:07 2019 +0530

    dt-bindings: mailbox: qom: Add ipq8074 APPS compatible
    
    Add mailbox support required in IPQ8074 SoCs.
    
    Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
    Signed-off-by: Sricharan R <sricharan@codeaurora.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 08a81d3ac8f1a56b29fcc11a96cb61e7e3d7a08e
Author: Sibi Sankar <sibis@codeaurora.org>
Date:   Wed Aug 7 12:39:55 2019 +0530

    mailbox: qcom: Add support for Qualcomm SM8150 and SC7180 SoCs
    
    Add the corresponding APSS shared offset for SM8150 and SC7180 SoCs.
    
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Sibi Sankar <sibis@codeaurora.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit c0f5366f1472577f2db1d35d65a36646360d59b3
Author: Sibi Sankar <sibis@codeaurora.org>
Date:   Wed Aug 7 12:39:54 2019 +0530

    dt-bindings: mailbox: Add APSS shared for SM8150 and SC7180 SoCs
    
    Add SM8150 and SC7180 APSS shared to the list of possible bindings.
    
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Sibi Sankar <sibis@codeaurora.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 16d52f336ba45d83ea7103439a9d3fad27edc165
Author: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Date:   Thu Aug 29 10:27:59 2019 +0200

    mbox: qcom: replace integer with valid macro
    
    Use the correct macro when registering the platform device.
    
    Co-developed-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Reviewed-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 78c86458a440ff356073c21b568cb58ddb67b82b
Author: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Date:   Thu Aug 29 10:27:58 2019 +0200

    mbox: qcom: add APCS child device for QCS404
    
    There is clock controller functionality in the APCS hardware block of
    qcs404 devices similar to msm8916.
    
    Co-developed-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org>
    Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Reviewed-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 6058f11870b8e6d4f5cc7b591097c00bf69a000d
Author: Bibby Hsieh <bibby.hsieh@mediatek.com>
Date:   Thu Aug 29 09:48:12 2019 +0800

    mailbox: mediatek: cmdq: clear the event in cmdq initial flow
    
    GCE hardware stored event information in own internal sysram,
    if the initial value in those sysram is not zero value
    it will cause a situation that gce can wait the event immediately
    after client ask gce to wait event but not really trigger the
    corresponding hardware.
    
    In order to make sure that the wait event function is
    exactly correct, we need to clear the sysram value in
    cmdq initial flow.
    
    Fixes: 623a6143a845 ("mailbox: mediatek: Add Mediatek CMDQ driver")
    
    Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
    Reviewed-by: CK Hu <ck.hu@mediatek.com>
    Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 286358c444d5bcae260659bcd8a0b3bf317e9cc8
Author: Bibby Hsieh <bibby.hsieh@mediatek.com>
Date:   Thu Aug 29 09:48:11 2019 +0800

    mailbox: mediatek: cmdq: support mt8183 gce function
    
    add mt8183 compatible name for supporting gce function
    
    Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
    Reviewed-by: CK Hu <ck.hu@mediatek.com>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 2c49e4e846bf365e8e683e3229d240f70eef65fc
Author: Bibby Hsieh <bibby.hsieh@mediatek.com>
Date:   Thu Aug 29 09:48:10 2019 +0800

    mailbox: mediatek: cmdq: move the CMDQ_IRQ_MASK into cmdq driver data
    
    The interrupt mask and thread number has positive correlation,
    so we move the CMDQ_IRQ_MASK into cmdq driver data and calculate
    it by thread number.
    
    Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
    Reviewed-by: CK Hu <ck.hu@mediatek.com>
    Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 2d645217f1982190a54b2b0cb5f5ca42ec4d165e
Author: Bibby Hsieh <bibby.hsieh@mediatek.com>
Date:   Thu Aug 29 09:48:09 2019 +0800

    dt-binding: gce: add binding for gce client reg property
    
    cmdq driver provide a function that get the relationship
    of sub system number from device node for client.
    add specification for #subsys-cells, mediatek,gce-client-reg.
    
    Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 8fedf805fa42842c0ef0aece9dbee957d805a8ea
Author: Bibby Hsieh <bibby.hsieh@mediatek.com>
Date:   Thu Aug 29 09:48:08 2019 +0800

    dt-binding: gce: add gce header file for mt8183
    
    Add documentation for the mt8183 gce.
    
    Add gce header file defined the gce hardware event,
    subsys number and constant for mt8183.
    
    Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 472dff037178dffdf28b8d942f1b32c1b2531ad8
Author: Bibby Hsieh <bibby.hsieh@mediatek.com>
Date:   Thu Aug 29 09:48:07 2019 +0800

    dt-binding: gce: remove thread-num property
    
    "thread-num" is an unused property so we remove it from example.
    
    Signed-off-by: Bibby Hsieh <bibby.hsieh@mediatek.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit 2b983d124a060b7f2d0b6e53b4170c0e2b5c883c
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Mon Jul 22 21:37:23 2019 +0800

    mailbox: armada-37xx-rwtm: Use device-managed registration API
    
    Use devm_mbox_controller_register to get rid of
    redundant remove function.
    
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

commit b568db62c5c46c8d859f1b9538495ea0fcbe7000
Author: Thierry Reding <treding@nvidia.com>
Date:   Mon Sep 16 16:19:26 2019 +0200

    drm/nouveau/bar/gm20b: Avoid BAR1 teardown during init
    
    Writing the 0x1704 (BUS_BAR1_BLOCK) register causes the GPU to probe the
    memory region at the programmed address. The result is an address decode
    error in the external memory controller because address 0, which is what
    is written to the register, is not designated as accessible to devices.
    
    Avoid triggering DMA from the GPU by removing teardown of the BAR1.
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 641f53c07d2760f1a53288c3cab0300030f049cb
Author: Thierry Reding <treding@nvidia.com>
Date:   Mon Sep 16 16:19:25 2019 +0200

    drm/nouveau: Fix ordering between TTM and GEM release
    
    When the last reference to a TTM BO is dropped, ttm_bo_release() will
    acquire the DMA reservation object's wound/wait mutex while trying to
    clean up (ttm_bo_cleanup_refs_or_queue() via ttm_bo_release()). It is
    therefore essential that drm_gem_object_release() be called after the
    TTM BO has been uninitialized, otherwise drm_gem_object_release() has
    already destroyed the wound/wait mutex (via dma_resv_fini()).
    
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 0bb21c9677e5a5e2355f4f81a4e48afe62257a75
Author: Thierry Reding <treding@nvidia.com>
Date:   Mon Sep 16 16:19:24 2019 +0200

    drm/nouveau/prime: Extend DMA reservation object lock
    
    Prior to commit 019cbd4a4feb ("drm/nouveau: Initialize GEM object before
    TTM object"), the reservation object was locked across all of the buffer
    object creation.
    
    After splitting nouveau_bo_new() into separate nouveau_bo_alloc() and
    nouveau_bo_init() functions, the reservation object is passed to the
    latter, so the lock needs to be held across that function as well.
    
    Fixes: 019cbd4a4feb ("drm/nouveau: Initialize GEM object before TTM object")
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 9ca7f7968be74ebf02f3a89d605d36bcb636560e
Author: Thierry Reding <treding@nvidia.com>
Date:   Mon Sep 16 16:19:23 2019 +0200

    drm/nouveau: Fix fallout from reservation object rework
    
    Commit 019cbd4a4feb ("drm/nouveau: Initialize GEM object before TTM
    object") introduced a subtle change in how the buffer allocation size is
    handled. Prior to that change, the size would get aligned to at least a
    page, whereas after that change a non-page-aligned size would get passed
    through unmodified. This ultimately causes a BUG_ON() to trigger in
    drm_gem_private_object_init() and crashes the system.
    
    Fix this by restoring the code that align the allocation size.
    
    Fixes: 019cbd4a4feb ("drm/nouveau: Initialize GEM object before TTM object")
    Reported-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 698c1aa9f83b618de79e9e5e19a58f70a4a6ae0f
Author: Lyude Paul <lyude@redhat.com>
Date:   Fri Sep 13 18:03:50 2019 -0400

    drm/nouveau/kms/nv50-: Don't create MSTMs for eDP connectors
    
    On the ThinkPad P71, we have one eDP connector exposed along with 5 DP
    connectors, resulting in a total of 11 TMDS encoders. Since the GPU on
    this system is also capable of MST, we create an additional 4 fake MST
    encoders for each DP port. Unfortunately, we also do this for the eDP
    port as well, resulting in:
    
      1 eDP port: +1 TMDS encoder
                  +4 DPMST encoders
      5 DP ports: +2 TMDS encoders
                  +4 DPMST encoders
                  *5 ports
                  == 35 encoders
    
    Which breaks things, since DRM has a hard coded limit of 32 encoders.
    So, fix this by not creating MSTMs for any eDP connectors. This brings
    us down to 31 encoders, although we can do better.
    
    This fixes driver probing for nouveau on the ThinkPad P71.
    
    Signed-off-by: Lyude Paul <lyude@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>

commit 4d6bcba70aeb4a512ead9c9eaf9edc6bbab00b14
Author: Steve French <stfrench@microsoft.com>
Date:   Fri Sep 13 16:59:21 2019 -0500

    cifs: update internal module version number
    
    To 2.23
    
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit e37a02c7ebb9fa9af301c47c8c5a579cc51b509b
Author: Aurelien Aptel <aaptel@suse.com>
Date:   Tue Sep 17 01:47:27 2019 +0200

    cifs: modefromsid: write mode ACE first
    
    DACL should start with mode ACE first but we are putting it at the
    end. reorder them to put it first.
    
    Signed-off-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>

commit 69a6bcde7fd3fe6f3268ce26f31d9d9378384c98
Author: Eugen Hristev <eugen.hristev@microchip.com>
Date:   Mon Sep 9 15:30:34 2019 +0000

    clk: at91: select parent if main oscillator or bypass is enabled
    
    Selecting the right parent for the main clock is done using only
    main oscillator enabled bit.
    In case we have this oscillator bypassed by an external signal (no driving
    on the XOUT line), we still use external clock, but with BYPASS bit set.
    So, in this case we must select the same parent as before.
    Create a macro that will select the right parent …
mrchapp pushed a commit to mrchapp/linux that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
mrchapp pushed a commit to mrchapp/linux that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
mrchapp pushed a commit to mrchapp/linux that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Whissi pushed a commit to Whissi/linux-stable that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Whissi pushed a commit to Whissi/linux-stable that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Whissi pushed a commit to Whissi/linux-stable that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
woodsts pushed a commit to woodsts/linux-stable that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
woodsts pushed a commit to woodsts/linux-stable that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
isjerryxiao added a commit to archlinux-jerry/Amlogic_s905-kernel that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
iamsaalim added a commit to iamsaalim/kernel_violet-research that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Blacksuan19 added a commit to Blacksuan19/android_kernel_dark_ages that referenced this issue Oct 7, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Gah0 added a commit to Gah0/android_xiaomi_kernel_grus that referenced this issue Oct 8, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fiqri14082019 added a commit to STRIX-Project/kernel_xiaomi_vince-4.9 that referenced this issue Oct 8, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fiqri14082019 added a commit to STRIX-Project/kernel_xiaomi_vince-4.9 that referenced this issue Oct 8, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
EviraKernel added a commit to EviraKernel/EviraRework that referenced this issue Oct 9, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
freeza-inc added a commit to freeza-inc/bm-galaxy-note9-exynos-pie-remix that referenced this issue Oct 10, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
ctfrommn added a commit to ctfrommn/kernel_bonito that referenced this issue Oct 10, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Gah0 added a commit to Gah0/android_xiaomi_kernel_grus that referenced this issue Oct 11, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
acuicultor added a commit to acuicultor/Radioactive_kernel_op6 that referenced this issue Oct 11, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
jpuhlman pushed a commit to MontaVista-OpenSourceTechnology/linux-mvista-2.4 that referenced this issue Oct 11, 2019
Source: Kernel.org
MR: 100219
Type: Integration
Disposition: Backport from git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable linux-4.14.y
ChangeID: 8b524b10b62e4e40fb4a0e5bac112f036a264737
Description:

[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
fearlessiron added a commit to fearlessiron/android_kernel_motorola_msm8953 that referenced this issue Oct 12, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fearlessiron added a commit to fearlessiron/android_kernel_motorola_msm8953 that referenced this issue Oct 12, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fearlessiron added a commit to fearlessiron/android_kernel_motorola_msm8953 that referenced this issue Oct 12, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fiqri14082019 added a commit to STRIX-Project/kernel_xiaomi_vince-4.9 that referenced this issue Oct 12, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
DiseR-LawnX added a commit to DiseR-LawnX/sena_kernel_violet-sm6150 that referenced this issue Oct 12, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fearlessiron added a commit to fearlessiron/android_kernel_motorola_msm8953 that referenced this issue Oct 12, 2019
[ Upstream commit 920fdab ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
crimsonthunder pushed a commit to crimsonthunder/Crystal_Kernel_OP6T that referenced this issue Oct 13, 2019
[ Upstream commit 920fdab7b3ce98c14c840261e364f490f3679a62 ]

On arm64 build with clang, sometimes the __cmpxchg_mb is not inlined
when CONFIG_OPTIMIZE_INLINING is set.
Clang then fails a compile-time assertion, because it cannot tell at
compile time what the size of the argument is:

mm/memcontrol.o: In function `__cmpxchg_mb':
memcontrol.c:(.text+0x1a4c): undefined reference to `__compiletime_assert_175'
memcontrol.c:(.text+0x1a4c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__compiletime_assert_175'

Mark all of the cmpxchg() style functions as __always_inline to
ensure that the compiler can see the result.

Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reported-by: Nathan Chancellor <natechancellor@gmail.com>
Link: ClangBuiltLinux/linux#648
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Andrew Murray <andrew.murray@arm.com>
Tested-by: Andrew Murray <andrew.murray@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.