09 Oct, 2020

1 commit


07 Sep, 2020

1 commit

  • when COMPILED_SOURCE is set, running 'make ARCH=x86_64 COMPILED_SOURCE=1
    cscope tags' in KBUILD_OUTPUT directory produces lots of "No such file
    or directory" warnings:
    ...
    realpath: sigchain.h: No such file or directory
    realpath: orc_gen.c: No such file or directory
    realpath: objtool.c: No such file or directory
    ...
    let's exclude tools directory from tags generation

    Fixes: 4f491bb6ea2a ("scripts/tags.sh: collect compiled source precisely")
    Link: https://lore.kernel.org/lkml/20200809210056.GA1344537@thinkpad
    Signed-off-by: Rustam Kovhaev
    Link: https://lore.kernel.org/r/20200810153650.1822316-1-rkovhaev@gmail.com
    Signed-off-by: Greg Kroah-Hartman

    Rustam Kovhaev
     

26 Aug, 2020

1 commit


08 Aug, 2020

1 commit

  • Parse compiled source from *.cmd but don't 'find' too many files that are
    not related to compilation.

    [xujialu@vimux.org: don't expand symlinks by add option -s for realpath]
    Link: http://lkml.kernel.org/r/5efc5bfb.1c69fb81.41bf5.7131SMTPIN_ADDED_MISSING@mx.google.com

    Signed-off-by: Jialu Xu
    Signed-off-by: Andrew Morton
    Cc: Greg Kroah-Hartman
    Cc: Masahiro Yamada
    Cc: Mauro Carvalho Chehab
    Cc: Jonathan Corbet
    Cc: Joe Perches
    Link: http://lkml.kernel.org/r/5ee5d8e3.1c69fb81.9b804.47b2SMTPIN_ADDED_MISSING@mx.google.com
    Signed-off-by: Linus Torvalds

    Jialu Xu
     

10 Jul, 2019

1 commit

  • In old days, Kbuild always used an absolute path for $(srctree).

    Since commit 890676c65d69 ("kbuild: Use relative path when building in
    the source tree"), $(srctree) is '.' when O= was not passed from the
    command line.

    Yet, using absolute paths is useful in some cases even without O=, for
    instance, to create a cscope file with absolute path tags.

    'O=.' was known to work as a workaround to force Kbuild to use absolute
    paths even when you are building in the source tree.

    Since commit 25b146c5b8ce ("kbuild: allow Kbuild to start from any
    directory"), Kbuild is too clever to be tricked. Even if you pass 'O=.'
    Kbuild notices you are building in the source tree, then use '.' for
    $(srctree).

    So, 'make O=. cscope' is no help to create absolute path tags.

    We cannot force one or the other according to commit e93bc1a0cab3
    ("Revert "kbuild: specify absolute paths for cscope""). Both of
    relative path and absolute path have pros and cons.

    This commit adds a new flag KBUILD_ABS_SRCTREE to allow users to
    choose the absolute path for $(srctree).

    'make KBUILD_ABS_SRCTREE=1 cscope' will work as a replacement of
    'make O=. cscope'.

    Reported-by: Pawan Gupta
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

09 Jul, 2019

2 commits


21 May, 2019

1 commit

  • Add SPDX license identifiers to all files which:

    - Have no license information of any form

    - Have EXPORT_.*_SYMBOL_GPL inside which was used in the
    initial scan/conversion to ignore the file

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

03 May, 2019

1 commit

  • I thought this script was run via "make tags" etc. but some people
    run it directly.

    Prior to commit a9a49c2ad9b9 ("kbuild: use $(srctree) instead of
    KBUILD_SRC to check out-of-tree build"), in such a usecase, "tree"
    was set empty since KBUILD_SRC is undefined. Now, "tree" is set to
    "${srctree}/", which is evaluated to "/".

    Fix it by taking into account the case where "srctree" is unset.

    Link: https://lkml.org/lkml/2019/4/19/501
    Fixes: a9a49c2ad9b9 ("kbuild: use $(srctree) instead of KBUILD_SRC to check out-of-tree build")
    Reported-by: Sergey Senozhatsky
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

02 Apr, 2019

1 commit

  • KBUILD_SRC was conventionally used for some different purposes:
    [1] To remember the source tree path
    [2] As a flag to check if sub-make is already done
    [3] As a flag to check if Kbuild runs out of tree

    For [1], we do not need to remember it because the top Makefile
    can compute it by $(realpath $(dir $(lastword $(MAKEFILE_LIST))))

    [2] has been replaced with self-commenting 'sub_make_done'.

    For [3], we can distinguish in-tree/out-of-tree by comparing
    $(srctree) and '.'

    This commit converts [3] to prepare for the KBUILD_SRC removal.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

29 Dec, 2018

1 commit

  • New declarations and identifier (__always_inline).

    Link: http://lkml.kernel.org/r/154505048571.504.18330420599768007443.stgit@localhost.localdomain
    Signed-off-by: Kirill Tkhai
    Cc: Masahiro Yamada
    Cc: Constantine Shulyupin
    Cc: Kirill Tkhai
    Cc: Joey Pabalinas
    Cc: Matthew Wilcox
    Cc: Arend van Spriel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill Tkhai
     

27 Oct, 2018

1 commit

  • In addition to DEFINE_HASHTABLE() add DECLARE_ variant.

    Link: http://lkml.kernel.org/r/153683203215.13678.11468076350083405643.stgit@localhost.localdomain
    Signed-off-by: Kirill Tkhai
    Reviewed-by: Andrew Morton
    Cc: Masahiro Yamada
    Cc: Constantine Shulyupin
    Cc: Arend van Spriel
    Cc: Daniel Borkmann
    Cc: Joey Pabalinas
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill Tkhai
     

19 Jul, 2018

1 commit

  • Pull networking fixes from David Miller:
    "Lots of fixes, here goes:

    1) NULL deref in qtnfmac, from Gustavo A. R. Silva.

    2) Kernel oops when fw download fails in rtlwifi, from Ping-Ke Shih.

    3) Lost completion messages in AF_XDP, from Magnus Karlsson.

    4) Correct bogus self-assignment in rhashtable, from Rishabh
    Bhatnagar.

    5) Fix regression in ipv6 route append handling, from David Ahern.

    6) Fix masking in __set_phy_supported(), from Heiner Kallweit.

    7) Missing module owner set in x_tables icmp, from Florian Westphal.

    8) liquidio's timeouts are HZ dependent, fix from Nicholas Mc Guire.

    9) Link setting fixes for sh_eth and ravb, from Vladimir Zapolskiy.

    10) Fix NULL deref when using chains in act_csum, from Davide Caratti.

    11) XDP_REDIRECT needs to check if the interface is up and whether the
    MTU is sufficient. From Toshiaki Makita.

    12) Net diag can do a double free when killing TCP_NEW_SYN_RECV
    connections, from Lorenzo Colitti.

    13) nf_defrag in ipv6 can unnecessarily hold onto dst entries for a
    full minute, delaying device unregister. From Eric Dumazet.

    14) Update MAC entries in the correct order in ixgbe, from Alexander
    Duyck.

    15) Don't leave partial mangles bpf program in jit_subprogs, from
    Daniel Borkmann.

    16) Fix pfmemalloc SKB state propagation, from Stefano Brivio.

    17) Fix ACK handling in DCTCP congestion control, from Yuchung Cheng.

    18) Use after free in tun XDP_TX, from Toshiaki Makita.

    19) Stale ipv6 header pointer in ipv6 gre code, from Prashant Bhole.

    20) Don't reuse remainder of RX page when XDP is set in mlx4, from
    Saeed Mahameed.

    21) Fix window probe handling of TCP rapair sockets, from Stefan
    Baranoff.

    22) Missing socket locking in smc_ioctl(), from Ursula Braun.

    23) IPV6_ILA needs DST_CACHE, from Arnd Bergmann.

    24) Spectre v1 fix in cxgb3, from Gustavo A. R. Silva.

    25) Two spots in ipv6 do a rol32() on a hash value but ignore the
    result. Fixes from Colin Ian King"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (176 commits)
    tcp: identify cryptic messages as TCP seq # bugs
    ptp: fix missing break in switch
    hv_netvsc: Fix napi reschedule while receive completion is busy
    MAINTAINERS: Drop inactive Vitaly Bordug's email
    net: cavium: Add fine-granular dependencies on PCI
    net: qca_spi: Fix log level if probe fails
    net: qca_spi: Make sure the QCA7000 reset is triggered
    net: qca_spi: Avoid packet drop during initial sync
    ipv6: fix useless rol32 call on hash
    ipv6: sr: fix useless rol32 call on hash
    net: sched: Using NULL instead of plain integer
    net: usb: asix: replace mii_nway_restart in resume path
    net: cxgb3_main: fix potential Spectre v1
    lib/rhashtable: consider param->min_size when setting initial table size
    net/smc: reset recv timeout after clc handshake
    net/smc: add error handling for get_user()
    net/smc: optimize consumer cursor updates
    net/nfc: Avoid stalls when nfc_alloc_send_skb() returned NULL.
    ipv6: ila: select CONFIG_DST_CACHE
    net: usb: rtl8150: demote allmulti message to dev_dbg()
    ...

    Linus Torvalds
     

17 Jul, 2018

1 commit


12 Jul, 2018

1 commit


08 Jun, 2018

1 commit

  • We're already using a union of many fields here, so stop abusing the
    _mapcount and make page_type its own field. That implies renaming some of
    the machinery that creates PageBuddy, PageBalloon and PageKmemcg; bring
    back the PG_buddy, PG_balloon and PG_kmemcg names.

    As suggested by Kirill, make page_type a bitmask. Because it starts out
    life as -1 (thanks to sharing the storage with _mapcount), setting a page
    flag means clearing the appropriate bit. This gives us space for probably
    twenty or so extra bits (depending how paranoid we want to be about
    _mapcount underflow).

    Link: http://lkml.kernel.org/r/20180518194519.3820-3-willy@infradead.org
    Signed-off-by: Matthew Wilcox
    Acked-by: Kirill A. Shutemov
    Acked-by: Vlastimil Babka
    Cc: Christoph Lameter
    Cc: Dave Hansen
    Cc: Jérôme Glisse
    Cc: Lai Jiangshan
    Cc: Martin Schwidefsky
    Cc: Pekka Enberg
    Cc: Randy Dunlap
    Cc: Andrey Ryabinin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     

22 May, 2018

1 commit

  • The current code includes 'Kconfig' in ALLSOURCE_ARCHS, but
    it should not (Kconfig is not an architecture). Replace this
    with a find-generated string and directly assign it to
    $ALLSOURCE_ARCHS. The find_all_archs() function is no longer
    needed for a one-liner with obvious semantics, so inline the
    arch generation into the surrounding conditional.

    Signed-off-by: Joey Pabalinas
    Signed-off-by: Masahiro Yamada

    Joey Pabalinas
     

01 Feb, 2018

1 commit

  • The current find done in find_other_sources() excludes directories in
    the kernel tree that are named 'include', eg.:

    ./security/apparmor/include
    ./security/selinux/include
    ./drivers/net/wireless/broadcom/brcm80211/include
    ./drivers/gpu/drm/amd/acp/include
    ./drivers/gpu/drm/amd/display/include
    ./drivers/gpu/drm/amd/include
    ./drivers/gpu/drm/nouveau/include

    This changes the find command in find_other_sources() to include those
    using the -path option.

    Link: http://lkml.kernel.org/r/1513335768-7852-1-git-send-email-arend.vanspriel@broadcom.com
    Signed-off-by: Arend van Spriel
    Cc: Robert Jarzmik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arend van Spriel
     

06 Jun, 2017

1 commit

  • When the kernel is compiled with an "O=" argument, the object files are
    not in the source tree, but in the build tree.

    This patch fixes O= build by looking for object files in the build tree.

    Fixes: 923e02ecf3f8 ("scripts/tags.sh: Support compiled source")
    Signed-off-by: Robert Jarzmik
    Signed-off-by: Masahiro Yamada

    Robert Jarzmik
     

23 Feb, 2017

1 commit

  • Kconfig files under arch/ directory are ignored by all_kconfigs(),
    so include them for tags generation.

    Link: http://lkml.kernel.org/r/1486206053-38223-1-git-send-email-houtao1@huawei.com
    Signed-off-by: Hou Tao
    Cc: Michal Marek
    Cc: Joe Perches
    Cc: Mathieu Maret
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hou Tao
     

13 Dec, 2016

1 commit

  • When SUBARCH is "omap1" or "omap2", plat-omap/ directory must be
    indexed. Handle this special case properly.

    While at it, check if mach- directory exists at all.

    Link: http://lkml.kernel.org/r/20161202122148.15001-1-joe.skb7@gmail.com
    Signed-off-by: Sam Protsenko
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sam Protsenko
     

12 Oct, 2016

1 commit

  • Vim, with the omnicppcomplete(#1) plugin, can do code completion using
    information build by ctags. Add flags needed by omnicppcomplete(#2) to
    have completion on member of structure.

    1: https://github.com/vim-scripts/omnicppcomplete
    2: https://github.com/vim-scripts/OmniCppComplete/blob/master/doc/omnicppcomplete.txt#L93

    Link: http://lkml.kernel.org/r/20160830191546.4469-1-mathieu.maret@gmail.com
    Signed-off-by: Mathieu Maret
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Maret
     

02 Sep, 2016

1 commit


27 Jul, 2016

1 commit

  • - Add a proper comment to page->_mapcount.

    - Introduce a macro for generating helper functions.

    - Place all special page->_mapcount values next to each other so that
    readers can see all possible values and so we don't get duplicates.

    Link: http://lkml.kernel.org/r/502f49000e0b63e6c62e338fac6b420bf34fb526.1464079537.git.vdavydov@virtuozzo.com
    Signed-off-by: Vladimir Davydov
    Cc: Johannes Weiner
    Cc: Michal Hocko
    Cc: Eric Dumazet
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     

19 Feb, 2016

1 commit


21 Jan, 2016

1 commit

  • Pull misc kbuild updates from Michal Marek:
    - Fix for make O=... perf-tar*
    - make tags revamp and fix for the fallout. Patch for warnings about
    line breaks inside DEFINE_PER_CPU macros is pending
    - New coccinelle test

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    coccinelle: tests: unsigned value cannot be lesser than zero
    tags: Unify emacs and exuberant rules
    tags: Drop the _PE rule
    tags: Do not try to index defconfigs
    tags: Process Kconfig files in a single pass
    tags: Fix erroneous pattern match in a comment
    aic7xxx: Avoid name collision with
    tags: Treat header files as C code
    package Makefile: fix perf-tar targets when outdir is set
    scripts/tags.sh: Teach tags about more powerpc macros

    Linus Torvalds
     

16 Jan, 2016

1 commit


06 Jan, 2016

6 commits

  • The emacs rules were constantly lagging behind the exuberant ones. Use a
    single set of rules for both, to make the script easier to maintain.
    The language understood by both tools is basic regular expression with
    some limitations, which are documented in a comment. To be able to store
    the rules in an array and easily iterate over it, the script requires
    bash now. In the exuberant case, the change fixes some false matches in
    and also some too greedy matches in the arguments
    of the DECLARE_*/DEFINE_* macros. In the emacs case, several previously
    not working rules are matching now. Tested with these versions of the
    tools:

    Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
    etags (GNU Emacs 24.5)

    Signed-off-by: Michal Marek

    Michal Marek
     
  • We are not indexing the userspace tools, so the rules only match some
    false positives in the kernel code.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • The defconfig files are in predictable locations, so there is no need to
    index them. Plus, the script was only looking for files named
    'defconfig', which only works on a few architectures nowadays.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • Signed-off-by: Michal Marek

    Michal Marek
     
  • Apparently, ctags applies the rules before deleting comments:

    ctags: Warning: include/linux/completion.h:22: null expansion of name pattern "\2"

    Work around this particular case by requiring the group to contain at
    least one character. Leave the other patters as they are, until a better
    solution is found.

    Signed-off-by: Michal Marek

    Michal Marek
     
  • This allows to apply the same patters to both source and header files.
    The effect is mostly visible in the case of DECLARE_BITMAP, but there
    are small gains all over the place. There is also lots of random changes
    in the diff, I believe this is simply because there are still lots of
    unexpanded macros in the code and the C and C++ parsers fail and recover
    at different points. Also, qconf.h is parsed as C, but that's a
    negligible regression.

    Signed-off-by: Michal Marek

    Michal Marek
     

20 Nov, 2015

1 commit


13 Oct, 2015

1 commit


09 Sep, 2015

1 commit

  • Pull misc kbuild updates from Michal Marek:
    - deb-pkg:
    + module signing fix
    + dtb files are added to the package
    + do not require `hostname -f` to work during build
    + make deb-pkg generates a source package, bindeb-pkg has been
    added to only generate the binary package
    - rpm-pkg packages /lib/modules as well
    - new coccinelle patch and updates to existing ones
    - new stackusage & stackdelta script to collect and compare stack usage
    info (using gcc's -fstack-usage)
    - make tags understands trace_*_rcuidle() macros
    - .gitignore updates, misc cleanups

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (27 commits)
    deb-pkg: add source package
    package/Makefile: move source tar creation to a function
    scripts: add stackdelta script
    kbuild: remove *.su files generated by -fstack-usage
    .gitignore: add *.su pattern
    scripts: add stackusage script
    kbuild: avoid listing /lib/modules in kernel spec file
    fallback to hostname in scripts/package/builddeb
    coccinelle: api: extend spatch for dropping unnecessary owner
    deb-pkg: simplify directory creation
    scripts/tags.sh: Include trace_*_rcuidle() in tags
    scripts/package/Makefile: rpmbuild is needed for rpm targets
    Kbuild: Add ID files to .gitignore
    gitignore: Add MIPS vmlinux.32 to the list
    coccinelle: simple_return: Add a blank line
    coccinelle: irqf_oneshot.cocci: Improve the generated commit log
    coccinelle: api: add vma_pages.cocci
    scripts/coccinelle/misc/irqf_oneshot.cocci: Fix grammar
    scripts/coccinelle/misc/semicolon.cocci: Use imperative mood
    coccinelle: simple_open: Use imperative mood
    ...

    Linus Torvalds
     

19 Aug, 2015

1 commit


17 Jun, 2015

1 commit

  • The __cpuinit support was removed several releases ago in 3.11-rc1 with
    commit 22f0a27367742f65130c0fb25ef00f7297e032c1 ("init.h: remove __cpuinit
    sections from the kernel")

    People have had a chance to update their out of tree code, so now we remove
    the no-op stubs to ensure no more new use cases can creep back in.

    Also delete the mention of __cpuinitdata from the tag script.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

14 Oct, 2014

1 commit

  • Pull misc kbuild updates from Michal Marek:
    "This is the less critical kbuild stuff for v3.18-rc1:

    - make deb-pkg debuginfo fix, ppc64el support and warning fix for
    recent dpkg tools
    - make TAGS fixes
    - new coccinelle patch
    - kbuild documentation improvements"

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    deb-pkg: remove obsolete -isp option to dpkg-gencontrol
    coccinelle: misc: semantic patch to delete overly complex return code processing
    deb-pkg: Add support for powerpc little endian
    builddeb: put the dbg files into the correct directory
    scripts/tags.sh: fix DEFINE_HASHTABLE in emacs case
    scripts/tags.sh: remove *PCGFLAGS regular expressions
    scripts/tags.sh: Don't specify kind-spec for emacs' ctags/etags
    Documentation: kbuild: Improve grammar
    Documentation: kbuild: Remove obsolete dtc_cpp section
    Documentation: kbuild: Improve if_changed documentation
    Documentation: kbuild: Remove obsolete include/asm symlink step

    Linus Torvalds
     

25 Sep, 2014

1 commit

  • This will simplify code when we add new flags.

    v3:
    - Kees pointed out that no_new_privs should never be cleared, so we
    shouldn't define task_clear_no_new_privs(). we define 3 macros instead
    of a single one.

    v2:
    - updated scripts/tags.sh, suggested by Peter

    Cc: Ingo Molnar
    Cc: Miao Xie
    Cc: Tetsuo Handa
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Kees Cook
    Signed-off-by: Zefan Li
    Signed-off-by: Tejun Heo

    Zefan Li