11 Nov, 2019

40 commits

  • Since commit 707816c8b050 ("netfilter: remove deprecation warnings from
    uapi headers."), you can compile linux/netfilter_ipv4/ipt_LOG.h and
    linux/netfilter_ipv6/ip6t_LOG.h without warnings.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The local variable, ns_entry, is unneeded.

    While I was here, I also cleaned up the comparison with NULL or 0.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Matthias Maennich

    Masahiro Yamada
     
  • scripts/nsdeps is written to take care of only in-tree modules.
    Perhaps, this is not a bug, but just a design. At least,
    Documentation/core-api/symbol-namespaces.rst focuses on in-tree modules.

    Having said that, some people already tried nsdeps for external modules.
    So, it would be nice to support it.

    Reported-by: Steve French
    Reported-by: Jessica Yu
    Signed-off-by: Masahiro Yamada
    Tested-by: Jessica Yu
    Acked-by: Jessica Yu
    Reviewed-by: Matthias Maennich
    Tested-by: Matthias Maennich

    Masahiro Yamada
     
  • The modpost, with the -d option given, generates per-module .ns_deps
    files.

    Kbuild generates per-module .mod files to carry module information.
    This is convenient because Make handles multiple jobs in parallel
    when the -j option is given.

    On the other hand, the modpost always runs as a single thread.
    I do not see a strong reason to produce separate .ns_deps files.

    This commit changes the modpost to generate just one file,
    modules.nsdeps, each line of which has the following format:

    :

    Please note it contains *missing* namespaces instead of required ones.
    So, modules.nsdeps is empty if the namespace dependency is all good.

    This will work more efficiently because spatch will no longer process
    already imported namespaces. I removed the '(if needed)' from the
    nsdeps log since spatch is invoked only when needed.

    This also solves the stale .ns_deps problem reported by Jessica Yu:

    https://lkml.org/lkml/2019/10/28/467

    Signed-off-by: Masahiro Yamada
    Tested-by: Jessica Yu
    Acked-by: Jessica Yu
    Reviewed-by: Matthias Maennich
    Tested-by: Matthias Maennich

    Masahiro Yamada
     
  • buf_write() allocates memory. Free it.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • 'make nsdeps' invokes the modpost three times at most; before linking
    vmlinux, before building modules, and finally for generating .ns_deps
    files. Running the modpost again and again is not efficient.

    The last two can be unified. When the -d option is given, the modpost
    still does the usual job, and in addition, generates .ns_deps files.

    Signed-off-by: Masahiro Yamada
    Tested-by: Matthias Maennich
    Reviewed-by: Matthias Maennich

    Masahiro Yamada
     
  • Signed-off-by: Bhaskar Chowdhury
    Acked-by: Alexander Kapshuk
    Signed-off-by: Masahiro Yamada

    Bhaskar Chowdhury
     
  • If ncurses is installed, but at a non-default location, the previous
    error message was not helpful in resolving the situation. Now it will
    suggest that pkg-config might need to be installed in addition to
    ncurses.

    Signed-off-by: Alyssa Ross
    Signed-off-by: Masahiro Yamada

    Alyssa Ross
     
  • make listnewconfig will list the individual options that need to be set.
    This is useful but there's no easy way to get the help text associated
    with the options at the same time. Introduce a new targe
    'make helpnewconfig' which lists the full help text of all the
    new options as well. This makes it easier to automatically generate
    changes that are easy for humans to review. This command also adds
    markers between each option for easier parsing.

    Signed-off-by: Laura Abbott
    Acked-by: Randy Dunlap
    Signed-off-by: Masahiro Yamada

    Laura Abbott
     
  • Add a 'dir-pkg' target which just creates the same directory structures
    as in tar-pkg, but doesn't package anything.
    Useful when the user wants to copy the kernel tree on a machine using
    ssh, rsync or whatever.

    Signed-off-by: Matteo Croce
    Signed-off-by: Masahiro Yamada

    Matteo Croce
     
  • There are 6 defconfigs with names longer than 24 characters, breaking
    alignment in "make help".

    The "winner" is "ecovec24-romimage_defconfig", counting in at 27
    characters.

    Extend the defconfig field size to 27 to restore alignment.
    Don't use a larger value, to not encourage people to create even longer
    defconfig names.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Hans-Christian Egtvedt
    Signed-off-by: Masahiro Yamada

    Geert Uytterhoeven
     
  • Some "make help" text lines extend beyond 80 characters.
    Wrap them before an opening parenthesis, or before 80 characters.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Masahiro Yamada

    Geert Uytterhoeven
     
  • This patch replaces backquote to dollar parenthesis syntax for better
    readability.

    Signed-off-by: Bhaskar Chowdhury
    Acked-by: Randy Dunlap
    Acked-by: Nico Schottelius
    Signed-off-by: Masahiro Yamada

    Bhaskar Chowdhury
     
  • EXPORT_SYMBOL from assembly code produces an unused symbol __kcrctab_*.

    kcrctab is used as a section name (prefixed with three underscores),
    but never used as a symbol.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • For EXPORT_SYMBOL from C files, defines __ksymtab_*
    as local symbols.

    For EXPORT_SYMBOL from assembly, in contrast,
    produces globally-visible __ksymtab_* symbols due to this .globl
    directive.

    I do not know why this must be global. It still works without this.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Since commit 394053f4a4b3 ("kbuild: make single targets work more
    correctly"), building single targets is really slow.

    Speed it up by not descending into unrelated directories.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • KBUILD_SINGLE_TARGETS does not need to contain all the targets.
    Change it to keep track the targets only from the current directory
    and its subdirectories.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • When single-build is set, everything in $(MAKECMDGOALS) is a single
    target. You can use $(MAKECMDGOALS) to list out the single targets.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This comment block explains why include/generated/compile.h is omitted,
    but nothing about include/generated/autoconf.h, which might be more
    difficult to understand. Add more comments.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • 'pushd' ... 'popd' is the last bash-specific code in this script.
    One way to avoid it is to run the code in a sub-shell.

    With that addressed, you can run this script with sh.

    I replaced $(BASH) with $(CONFIG_SHELL), and I changed the hashbang
    to #!/bin/sh.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This script copies headers by the cpio command twice; first from
    srctree, and then from objtree. However, when we building in-tree,
    we know the srctree and the objtree are the same. That is, all the
    headers copied by the first cpio are overwritten by the second one.

    Skip the first cpio when we are building in-tree.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This script computes md5sum of headers in srctree and in objtree.
    However, when we are building in-tree, we know the srctree and the
    objtree are the same. That is, we end up with the same computation
    twice. In fact, the first two lines of kernel/kheaders.md5 are always
    the same for in-tree builds.

    Unify the two md5sum calculations.

    For in-tree builds ($building_out_of_srctree is empty), we check
    only two directories, "include", and "arch/$SRCARCH/include".

    For out-of-tree builds ($building_out_of_srctree is 1), we check
    4 directories, "$srctree/include", "$srctree/arch/$SRCARCH/include",
    "include", and "arch/$SRCARCH/include" since we know they are all
    different.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The 'head' and 'tail' commands can take a file path directly.
    So, you do not need to run 'cat'.

    cat kernel/kheaders.md5 | head -1

    ... is equivalent to:

    head -1 kernel/kheaders.md5

    and the latter saves forking one process.

    While I was here, I replaced 'head -1' with 'head -n 1'.

    I also replaced '==' with '=' since we do not have a good reason to
    use the bashism.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Since commit 040fcc819a2e ("kbuild: improved modversioning support for
    external modules"), the external module build reads Module.symvers in
    the directory of the module itself, then dumps symbols back into it.
    It accumulates stale symbols in the file when you build an external
    module incrementally.

    The idea behind it was, as the commit log explained, you can copy
    Modules.symvers from one module to another when you need to pass symbol
    information between two modules. However, the manual copy of the file
    sounds questionable to me, and containing stale symbols is a downside.

    Some time later, commit 0d96fb20b7ed ("kbuild: Add new Kbuild variable
    KBUILD_EXTRA_SYMBOLS") introduced a saner approach.

    So, this commit removes the former one. Going forward, the external
    module build dumps symbols into Module.symvers to be carried via
    KBUILD_EXTRA_SYMBOLS, but never reads it automatically.

    With the -I option removed, there is no one to set the external_module
    flag unless KBUILD_EXTRA_SYMBOLS is passed. Now the -i option does it
    instead.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • When building external modules, $(objtree)/Module.symvers is scanned
    for symbol information of vmlinux and in-tree modules.

    Additionally, vmlinux is parsed if it exists in $(objtree)/.
    This is totally redundant since all the necessary information is
    contained in $(objtree)/Module.symvers.

    Do not parse vmlinux at all for external module builds. This makes
    sense because vmlinux is deleted by 'make clean'.

    'make clean' leaves all the build artifacts for building external
    modules. vmlinux is unneeded for that.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The comment line "When building external modules ..." explains
    the same thing as "Include the module's Makefile ..." a few lines
    below.

    The comment "they may be used when building the .mod.c file" is no
    longer true; .mod.c file is compiled in scripts/Makefile.modfinal
    since commit 9b9a3f20cbe0 ("kbuild: split final module linking out
    into Makefile.modfinal"). I still keep the code in case $(obj) or
    $(src) is used in the external module Makefile.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • util.c exists both in scripts/kconfig/ and scripts/kconfig/lxdialog.

    Prior to commit 54b8ae66ae1a ("kbuild: change *FLAGS_.o
    to take the path relative to $(obj)"), Kbuild could not pass different
    flags to source files with the same basename. Now that this issue
    was solved, you can split util.c out of parser.y and compile them
    independently of each other.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This tool is only used by drivers/video/logo/Makefile. No reason to
    keep it in scripts/.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Shorten the code. It still works in the same way.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • These are listed in include/uapi/asm-generic/Kbuild, so Kbuild will
    automatically generate them.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Remove hexagon-specific bitsperlong.h so that it falls back to
    include/uapi/asm-generic/bitsperlong.h

    Kbuild will automatically create a wrapper of it.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "A set of fixes that have trickled in over the last couple of weeks:

    - MAINTAINER update for Cavium/Marvell ThunderX2

    - stm32 tweaks to pinmux for Joystick/Camera, and RAM allocation for
    CAN interfaces

    - i.MX fixes for voltage regulator GPIO mappings, fixes voltage
    scaling issues

    - More i.MX fixes for various issues on i.MX eval boards: interrupt
    storm due to u-boot leaving pins in new states, fixing power button
    config, a couple of compatible-string corrections.

    - Powerdown and Suspend/Resume fixes for Allwinner A83-based tablets

    - A few documentation tweaks and a fix of a memory leak in the reset
    subsystem"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
    MAINTAINERS: update Cavium ThunderX2 maintainers
    ARM: dts: stm32: change joystick pinctrl definition on stm32mp157c-ev1
    ARM: dts: stm32: remove OV5640 pinctrl definition on stm32mp157c-ev1
    ARM: dts: stm32: Fix CAN RAM mapping on stm32mp157c
    ARM: dts: stm32: relax qspi pins slew-rate for stm32mp157
    arm64: dts: zii-ultra: fix ARM regulator GPIO handle
    ARM: sunxi: Fix CPU powerdown on A83T
    ARM: dts: sun8i-a83t-tbs-a711: Fix WiFi resume from suspend
    arm64: dts: imx8mn: fix compatible string for sdma
    arm64: dts: imx8mm: fix compatible string for sdma
    reset: fix reset_control_ops kerneldoc comment
    ARM: dts: imx6-logicpd: Re-enable SNVS power key
    soc: imx: gpc: fix initialiser format
    ARM: dts: imx6qdl-sabreauto: Fix storm of accelerometer interrupts
    arm64: dts: ls1028a: fix a compatible issue
    reset: fix reset_control_get_exclusive kerneldoc comment
    reset: fix reset_control_lookup kerneldoc comment
    reset: fix of_reset_control_get_count kerneldoc comment
    reset: fix of_reset_simple_xlate kerneldoc comment
    reset: Fix memory leak in reset_control_array_put()

    Linus Torvalds
     
  • Pull IIO fixes and staging driver from Greg KH:
    "Here is a mix of a number of IIO driver fixes for 5.4-rc7, and a whole
    new staging driver.

    The IIO fixes resolve some reported issues, all are tiny.

    The staging driver addition is the vboxsf filesystem, which is the
    VirtualBox guest shared folder code. Hans has been trying to get
    filesystem reviewers to review the code for many months now, and
    Christoph finally said to just merge it in staging now as it is
    stand-alone and the filesystem people can review it easier over time
    that way.

    I know it's late for this big of an addition, but it is stand-alone.

    The code has been in linux-next for a while, long enough to pick up a
    few tiny fixes for it already so people are looking at it.

    All of these have been in linux-next with no reported issues"

    * tag 'staging-5.4-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: Fix error return code in vboxsf_fill_super()
    staging: vboxsf: fix dereference of pointer dentry before it is null checked
    staging: vboxsf: Remove unused including
    staging: Add VirtualBox guest shared folder (vboxsf) support
    iio: adc: stm32-adc: fix stopping dma
    iio: imu: inv_mpu6050: fix no data on MPU6050
    iio: srf04: fix wrong limitation in distance measuring
    iio: imu: adis16480: make sure provided frequency is positive

    Linus Torvalds
     
  • Pull char/misc driver fixes from Greg KH:
    "Here are a number of late-arrival driver fixes for issues reported for
    some char/misc drivers for 5.4-rc7

    These all come from the different subsystem/driver maintainers as
    things that they had reports for and wanted to see fixed.

    All of these have been in linux-next with no reported issues"

    * tag 'char-misc-5.4-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    intel_th: pci: Add Jasper Lake PCH support
    intel_th: pci: Add Comet Lake PCH support
    intel_th: msu: Fix possible memory leak in mode_store()
    intel_th: msu: Fix overflow in shift of an unsigned int
    intel_th: msu: Fix missing allocation failure check on a kstrndup
    intel_th: msu: Fix an uninitialized mutex
    intel_th: gth: Fix the window switching sequence
    soundwire: slave: fix scanf format
    soundwire: intel: fix intel_register_dai PDI offsets and numbers
    interconnect: Add locking in icc_set_tag()
    interconnect: qcom: Fix icc_onecell_data allocation
    soundwire: depend on ACPI || OF
    soundwire: depend on ACPI
    thunderbolt: Drop unnecessary read when writing LC command in Ice Lake
    thunderbolt: Fix lockdep circular locking depedency warning
    thunderbolt: Read DP IN adapter first two dwords in one go

    Linus Torvalds
     
  • Pull configfs regression fix from Christoph Hellwig:
    "Fix a regression from this merge window in the configfs symlink
    handling (Honggang Li)"

    * tag 'configfs-for-5.4-2' of git://git.infradead.org/users/hch/configfs:
    configfs: calculate the depth of parent item

    Linus Torvalds
     
  • Pull x86 fixes from Thomas Gleixner:
    "A small set of fixes for x86:

    - Make the tsc=reliable/nowatchdog command line parameter work again.
    It was broken with the introduction of the early TSC clocksource.

    - Prevent the evaluation of exception stacks before they are set up.
    This causes a crash in dumpstack because the stack walk termination
    gets screwed up.

    - Prevent a NULL pointer dereference in the rescource control file
    system.

    - Avoid bogus warnings about APIC id mismatch related to the LDR
    which can happen when the LDR is not in use and therefore not
    initialized. Only evaluate that when the APIC is in logical
    destination mode"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tsc: Respect tsc command line paraemeter for clocksource_tsc_early
    x86/dumpstack/64: Don't evaluate exception stacks before setup
    x86/apic/32: Avoid bogus LDR warnings
    x86/resctrl: Prevent NULL pointer dereference when reading mondata

    Linus Torvalds
     
  • Pull timer fixes from Thomas Gleixner:
    "A small set of fixes for timekeepoing and clocksource drivers:

    - VDSO data was updated conditional on the availability of a VDSO
    capable clocksource. This causes the VDSO functions which do not
    depend on a VDSO capable clocksource to operate on stale data.
    Always update unconditionally.

    - Prevent a double free in the mediatek driver

    - Use the proper helper in the sh_mtu2 driver so it won't attempt to
    initialize non-existing interrupts"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    timekeeping/vsyscall: Update VDSO data unconditionally
    clocksource/drivers/sh_mtu2: Do not loop using platform_get_irq_by_name()
    clocksource/drivers/mediatek: Fix error handling

    Linus Torvalds
     
  • Pull scheduler fixes from Thomas Gleixner:
    "Two fixes for scheduler regressions:

    - Plug a subtle race condition which was introduced with the rework
    of the next task selection functionality. The change of task
    properties became unprotected which can be observed inconsistently
    causing state corruption.

    - A trivial compile fix for CONFIG_CGROUPS=n"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Fix pick_next_task() vs 'change' pattern race
    sched/core: Fix compilation error when cgroup not selected

    Linus Torvalds
     
  • Pull perf tooling fixes from Thomas Gleixner:

    - Fix the time sorting algorithm which was broken due to truncation of
    big numbers

    - Fix the python script generator fail caused by a broken tracepoint
    array iterator

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf tools: Fix time sorting
    perf tools: Remove unused trace_find_next_event()
    perf scripting engines: Iterate on tep event arrays directly

    Linus Torvalds