16 Nov, 2013

1 commit

  • Pull misc kbuild changes from Michal Marek:
    - make tags fixes again
    - scripts/show_delta fix for newer python
    - scripts/kernel-doc does not fail on unknown function prototype
    - one less coccinelle check this time

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    scripts/tags.sh: remove obsolete __devinit[const|data]
    scripts/kernel-doc: make unknown function prototype a Warning instead of an Error
    show_delta: Update script to support python versions 2.5 through 3.3
    scripts/coccinelle/api: remove devm_request_and_ioremap.cocci
    scripts/tags.sh: Increase identifier list

    Linus Torvalds
     

13 Nov, 2013

1 commit

  • When using '!Ffile function' in a docbook template, and the function no
    longer exists, you get a "no structured comments found" error from the
    kernel-doc processing script. It's useful to know which functions it was
    looking for, so print them out in this case. Also do the same for '!Pfile
    doc-section'

    The same error also happens when using '!Efile' when some exported
    functions aren't documented (in the same file.) There's a very large
    number of such functions though, so don't print the message in this case
    -- right now it would give ~850 messages.

    Signed-off-by: Johannes Berg
    Cc: Rob Landley
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Berg
     

07 Nov, 2013

1 commit

  • When scripts/kernel-doc cannot understand a function prototype,
    it had been generating a fatal error and stopping immediately.
    Make this a Warning instead of an Error and keep going.

    Note that this can happen if the kernel-doc notation that is being
    parsed is not actually a function prototype; maybe it's a struct or
    something else, so I added "function" to the warning message to try
    to make it clearer that scripts/kernel-doc is looking for a function
    prototype here.

    Signed-off-by: Randy Dunlap
    Cc: Mark Brown
    Signed-off-by: Michal Marek

    Randy Dunlap
     

28 Feb, 2013

1 commit

  • Commit ef5da59f1260 ("scripts/kernel-doc: handle struct member
    __aligned") permits "char something [123] __aligned(8);".

    However, by using \d we constraint ourselves with integers. This is not
    always the case. In fact, it might be better to do char something[123]
    __aligned(sizeof(u16));

    For example, With wireless_dev defining:

    u8 address[ETH_ALEN] __aligned(sizeof(u16));

    With \d, scripts/kernel-doc erroneously says:

    Warning(include/net/cfg80211.h:2618): Excess struct/union/enum/typedef member 'address' description in 'wireless_dev'

    This is because the regex __aligned\s*\(\d+\) fails match at \d as
    sizeof is used.

    So replace \d with . to indicate "something" in kernel-doc to ignore
    __aligned(SOMETHING) in structs. With this change, we can use integers
    OR sizeof() or macros as we please.

    Signed-off-by: Nishanth Menon
    Cc: Fengguang Wu
    Cc: Johannes Berg
    Cc: Randy Dunlap
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nishanth Menon
     

04 Jan, 2013

1 commit

  • CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
    markings need to be removed.

    This change removes the last of the __dev* markings from the kernel from
    a variety of different, tiny, places.

    Based on patches originally written by Bill Pemberton, but redone by me
    in order to handle some of the coding style issues better, by hand.

    Cc: Bill Pemberton
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

28 Nov, 2012

1 commit

  • If a function has a return value, but its kernel-doc comment doesn't contain a
    "Return" section, then emit the following warning:

    Warning(file.h:129): No description found for return value of 'fct'

    Note: This check emits a lot of warnings at the moment, because many functions
    don't have a 'Return' doc section. So until the number of warnings goes
    sufficiently down, the check is only performed in verbose mode.

    Signed-off-by: Yacine Belkadi
    Signed-off-by: Rob Landley
    Signed-off-by: Jiri Kosina

    Yacine Belkadi
     

12 Oct, 2012

1 commit

  • Pull kbuild misc changes from Michal Marek:
    "In the non-critical part of kbuild, I have
    - Some make coccicheck improvements and two new tests
    - Support for a cleaner html output in scripts/kernel-doc, named
    html5 (no, it does not play videos, yet)

    BTW, Randy wants to route further kernel-doc patches through the
    kbuild tree."

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    Update SmPL/Coccinelle section of MAINTAINERS
    coccicheck: Add the rep+ctxt mode
    scripts/coccinelle/tests/odd_ptr_err.cocci: semantic patch for IS_ERR/PTR_ERR inconsistency
    scripts/tags.sh: Add magic for pci access functions
    scripts/coccinelle: ptr_ret: Add ternary operator version
    scripts/kernel-doc: drop maintainer
    scripts/kernel-doc: added support for html5

    Linus Torvalds
     

06 Oct, 2012

3 commits

  • A section with the name "Example" (case-insensitive) has a special meaning
    to kernel-doc. These sections are output using mono-type fonts. However,
    leading whitespace is stripped, thus robbing a lot of meaning from this,
    as indented code examples will be mangled.

    This patch preserves the leading whitespace for "Example" sections. More
    accurately, it preserves it for all sections, but removes it later if the
    section isn't an "Example" section.

    Signed-off-by: Daniel Santos
    Cc: Randy Dunlap
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • If you have a section named "Example" that contains an empty line,
    attempting to generate htmldocs give you the error:

    /path/Documentation/DocBook/kernel-api.xml:3455: parser error : Opening and ending tag mismatch: programlisting line 3449 and para

    ^
    /path/Documentation/DocBook/kernel-api.xml:3473: parser error : Opening and ending tag mismatch: para line 3467 and programlisting

    ^
    /path/Documentation/DocBook/kernel-api.xml:3678: parser error : Opening and ending tag mismatch: programlisting line 3672 and para

    ^
    /path/Documentation/DocBook/kernel-api.xml:3701: parser error : Opening and ending tag mismatch: para line 3690 and programlisting

    ^
    unable to parse
    /path/Documentation/DocBook/kernel-api.xml

    Essentially, the script attempts to close a with a
    closing tag for a block. This patch corrects the problem by
    simply not outputting anything extra when we're dumping pre-formatted
    text, since the empty line will be rendered correctly anyway.

    Signed-off-by: Daniel Santos
    Cc: Randy Dunlap
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Prior to this patch the following code breaks:

    /**
    * multiline_example - this breaks kernel-doc
    */
    #define multiline_example( \
    myparam)

    Producing this error:

    Error(somefile.h:983): cannot understand prototype: 'multiline_example( \ '

    This patch fixes the issue by appending all lines ending in a blackslash
    (optionally followed by whitespace), removing the backslash and any
    whitespace after it prior to appending (just like the C pre-processor
    would).

    This fixes a break in kerel-doc introduced by the additions to rbtree.h.

    Signed-off-by: Daniel Santos
    Cc: Randy Dunlap
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     

31 Aug, 2012

1 commit

  • New output option html5 writes validating HTML5 and adds
    CSS classes ready to be selected by third-party stylesheets.
    HTML ids have been added to block-level elements "article" for
    direct reference of particular objects via URL.

    Signed-off-by: Dan Luedtke
    Acked-by: Randy Dunlap
    Signed-off-by: Michal Marek

    Dan Luedtke
     

18 Aug, 2012

1 commit


24 Jan, 2012

1 commit

  • include/net/cfg80211.h uses __must_check in functions that
    have kernel-doc notation. This was confusing scripts/kernel-doc,
    so have scripts/kernel-doc ignore "__must_check".

    Error(include/net/cfg80211.h:2702): cannot understand prototype: 'struct cfg80211_bss * __must_check cfg80211_inform_bss(...)

    Signed-off-by: Randy Dunlap
    Cc: Johannes Berg
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

31 Mar, 2011

1 commit


07 Jan, 2011

1 commit

  • Move 'main' code vs. subroutines around so that they are not so
    intermixed, for better readability/understanding (relative to Perl).
    It was messy to follow the primary flow of code execution with the
    code being mixed. Now the code begins with data initialization,
    followed by all subroutines, then ends with the main code execution.

    This is almost totally source code movement, with a few changes as
    needed for forward declarations.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

19 Nov, 2010

1 commit

  • scripts/kernel-doc was leaving unescaped '', and '&' in
    generated xml output for structs. This causes xml parser errors.
    Convert these characters to "<", ">", and "&" as needed
    to prevent errors.

    Most of the conversion was already done; complete it just before
    output.

    Documentation/DocBook/device-drivers.xml:41883: parser error : StartTag: invalid element name
    #define INPUT_KEYMAP_BY_INDEX (1 << 0)

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

12 Sep, 2010

2 commits

  • When you don't use !E or !I but only !F, then it's very easy to miss
    including some functions, structs etc. in documentation. To help
    finding which ones were missed, allow printing out the unused ones as
    warnings.

    For example, using this on mac80211 yields a lot of warnings like this:

    Warning: didn't use docs for DOC: mac80211 workqueue
    Warning: didn't use docs for ieee80211_max_queues
    Warning: didn't use docs for ieee80211_bss_change
    Warning: didn't use docs for ieee80211_bss_conf

    when generating the documentation for it.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Berg
     
  • There are valid attributes that could have upper case letters, but we
    still want to remove, like for example
    __attribute__((aligned(NETDEV_ALIGN)))
    as encountered in the wireless code.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Berg
     

11 Aug, 2010

1 commit

  • Fix mtd/nand_base.c kernel-doc warnings and typos.

    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'mtd'
    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'ofs'
    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'len'
    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'invert'
    Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'mtd'
    Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'ofs'
    Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'len'
    Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'mtd'
    Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'ofs'
    Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'len'
    Warning(drivers/mtd/nand/nand_base.c:2087): No description found for parameter 'len'

    Signed-off-by: Randy Dunlap
    Cc: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

25 Mar, 2010

2 commits

  • Fix a fatal error in scripts/kernel-doc when a function signature uses
    __init_or_module (just ignore that string):

    Error(drivers/base/platform.c:568): cannot understand prototype: 'struct platform_device * __init_or_module platform_create_bundle(struct platform_driver *driver, int (*probe)(struct platform_device *), struct resource *res, unsigned int n_res, const void *data, size_t size) '

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • scripts/kernel-doc erroneously says:

    Warning(include/linux/skbuff.h:410): Excess struct/union/enum/typedef member 'cb' description in 'sk_buff'

    on this line in struct sk_buff:
    char cb[48] __aligned(8);

    due to treating the last field as the struct member name, so teach
    kernel-doc to ignore __aligned(x) in structs.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

13 Mar, 2010

1 commit

  • scripts/kernel-doc mishandles a function that has a multi-line function
    short description and no function parameters. The observed problem was
    from drivers/scsi/scsi_netlink.c:

    /**
    * scsi_netlink_init - Called by SCSI subsystem to intialize
    * the SCSI transport netlink interface
    *
    **/

    kernel-doc treated the " * " line as a Description: section with only a
    newline character in the Description contents. This caused
    output_highlight() to complain: "output_highlight got called with no
    args?", plus produce a perl call stack backtrace.

    The fix is just to ignore Description sections if they only contain "\n".

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

27 Feb, 2010

2 commits

  • I also found the -filelist option, but apparently the implementation
    is broken, and it was broken from the very first git commit.
    For the -filelist option I suggest the removal (I wasn't able to find
    any users of it, moreover it's not even listed in the
    usage() output, so presumably nobody knows about it).

    Signed-off-by: Ilya Dryomov
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Ilya Dryomov
     
  • The problem is that $. keeps track of the current record number (which
    is line number by default). But if you pass it multiple files, it does
    not wrap at the end of file, and therefore contains the *total* number
    of processed lines.
    I suppose we can fix line numbering by introducing a simple assignment
    $. = 1
    before processing every new file.

    Signed-off-by: Ilya Dryomov
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Ilya Dryomov
     

02 Dec, 2009

1 commit

  • The introduction of the new 'DECLARE_EVENT_CLASS()' obviates the
    need for the 'TRACE_EVENT()' macro in some cases. Thus, docbook
    style comments that used to live with 'TRACE_EVENT()' are now
    moved to 'DEFINE_EVENT()'. Thus, we need to make the docbook
    system understand the new 'DEFINE_EVENT()' macro. In addition
    I've tried to futureproof the patch, by also adding support for
    'DEFINE_SINGLE_EVENT()', since there has been discussion about
    renaming: TRACE_EVENT() -> DEFINE_SINGLE_EVENT().

    Without this patch the tracepoint docbook fails to build.

    I've verified that this patch correctly builds the tracepoint
    docbook which currently covers signals, and irqs.

    Changes in v2:
    - properly indent perl 'if' statements

    Signed-off-by: Jason Baron
    Acked-by: Steven Rostedt
    Acked-by: Randy Dunlap
    Cc: William Cohen
    Cc: Frederic Weisbecker
    Cc: Mathieu Desnoyers
    Cc: Masami Hiramatsu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jason Baron
     

19 Sep, 2009

1 commit

  • Allow the short description after symbol name and dash in a kernel-doc
    comment to span multiple lines, e.g. like this:

    /**
    * unmap_mapping_range - unmap the portion of all mmaps in the
    * specified address_space corresponding to the specified
    * page range in the underlying file.
    * @mapping: the address space containing mmaps to be unmapped.
    * ...
    */

    The short description ends with a parameter description, an empty line
    or the end of the comment block.

    Signed-off-by: Johannes Weiner
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     

02 Jul, 2009

1 commit


20 Jun, 2009

2 commits

  • Fix function actual parameter vs. kernel-doc description matching
    so that a warning is not printed when it should not be:

    Warning(include/linux/etherdevice.h:199): Excess function parameter 'addr' description in 'is_etherdev_addr'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     
  • Teach kernel-doc to ignore kmemcheck_bitfield_{begin,end} sugar
    so that it won't generate warnings like this:

    Warning(include/net/sock.h:297): No description found for parameter 'kmemcheck_bitfield_begin(flags)'
    Warning(include/net/sock.h:297): No description found for parameter 'kmemcheck_bitfield_end(flags)'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

15 Jun, 2009

1 commit

  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (53 commits)
    .gitignore: ignore *.lzma files
    kbuild: add generic --set-str option to scripts/config
    kbuild: simplify argument loop in scripts/config
    kbuild: handle non-existing options in scripts/config
    kallsyms: generalize text region handling
    kallsyms: support kernel symbols in Blackfin on-chip memory
    documentation: make version fix
    kbuild: fix a compile warning
    gitignore: Add GNU GLOBAL files to top .gitignore
    kbuild: fix delay in setlocalversion on readonly source
    README: fix misleading pointer to the defconf directory
    vmlinux.lds.h update
    kernel-doc: cleanup perl script
    Improve vmlinux.lds.h support for arch specific linker scripts
    kbuild: fix headers_exports with boolean expression
    kbuild/headers_check: refine extern check
    kbuild: fix "Argument list too long" error for "make headers_check",
    ignore *.patch files
    Remove bashisms from scripts
    menu: fix embedded menu presentation
    ...

    Linus Torvalds
     

10 Jun, 2009

1 commit

  • Various cleanups of scripts/kernel-doc:
    - don't use **/ as an ending kernel-doc block since it's not preferred;
    - typos/spellos
    - add whitespace around ==, after comma, & around . operator;

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

07 May, 2009

1 commit


03 May, 2009

1 commit

  • scripts/kernel-doc can (incorrectly) delete struct members that are
    surrounded by /* ... */ /* ... */ if there is a /*
    private: */ comment in there somewhere also.

    Fix that by making the "/* private:" only allow whitespace between /* and
    "private:", not anything/everything in the world.

    This fixes some erroneous kernel-doc warnings that popped up while
    processing include/linux/usb/composite.h.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

01 May, 2009

1 commit

  • Add support to kernel-doc for tracepoint comments above TRACE_EVENT()
    macro definitions. Paves the way for tracepoint docbook.

    [ Impact: extend DocBook infrastructure ]

    Signed-off-by: Jason Baron
    Acked-by: Randy Dunlap
    Cc: akpm@linux-foundation.org
    Cc: rostedt@goodmis.org
    Cc: fweisbec@gmail.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: wcohen@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jason Baron
     

12 Feb, 2009

1 commit

  • Fix kernel-doc processing of SYSCALL wrappers.

    The SYSCALL wrapper patches played havoc with kernel-doc for
    syscalls. Syscalls that were scanned for DocBook processing
    reported warnings like this one, for sys_tgkill:

    Warning(kernel/signal.c:2285): No description found for parameter 'tgkill'
    Warning(kernel/signal.c:2285): No description found for parameter 'pid_t'
    Warning(kernel/signal.c:2285): No description found for parameter 'int'

    because the macro parameters all "look like" function parameters,
    although they are not:

    /**
    * sys_tgkill - send signal to one specific thread
    * @tgid: the thread group ID of the thread
    * @pid: the PID of the thread
    * @sig: signal to be sent
    *
    * This syscall also checks the @tgid and returns -ESRCH even if the PID
    * exists but it's not belonging to the target process anymore. This
    * method solves the problem of threads exiting and PIDs getting reused.
    */
    SYSCALL_DEFINE3(tgkill, pid_t, tgid, pid_t, pid, int, sig)
    {
    ...

    This patch special-cases the handling SYSCALL_DEFINE* function
    prototypes by expanding them to
    long sys_foobar(type1 arg1, type1 arg2, ...)

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

20 Dec, 2008

1 commit

  • Add functionality to check for function parameters or structure (or
    union/typedef/enum) field members that are described in kernel-doc but
    are not part of the expected (declared) parameters or structure.
    These generate warnings that are called "Excess" descriptions.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

02 Dec, 2008

1 commit

  • The method for listing varargs in kernel-doc notation is:
    * @...: these arguments are printed by the @fmt argument

    but scripts/kernel-doc is confused: it always lists varargs as:
    ... variable arguments
    and ignores the @...: line's description, but then prints that
    line after the list of function parameters as though it's
    not part of the function parameters.

    This patch makes kernel-doc print the supplied @... description if it is
    present; otherwise a boilerplate "variable arguments" is printed.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

27 Oct, 2008

1 commit


23 Sep, 2008

1 commit

  • Struct members may be marked as private by using
    /* private: */
    before them, as noted in Documentation/kernel-doc-nano-HOWTO.txt

    Fix kernel-doc to handle structs whose members are all private;
    otherwise invalid XML is generated:

    xmlto: input does not validate (status 3)
    linux-2.6.27-rc6-git4/Documentation/DocBook/debugobjects.xml:146: element variablelist: validity error : Element variablelist content does not follow the DTD, expecting ((title , titleabbrev?)? , varlistentry+), got ()
    Document linux-2.6.27-rc6-git4/Documentation/DocBook/debugobjects.xml does not validate
    make[1]: *** [Documentation/DocBook/debugobjects.html] Error 3

    Signed-off-by: Randy Dunlap
    Reported-by: Roland McGrath
    Cc: Roland McGrath
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

06 Aug, 2008

1 commit

  • Fix handling of nested structs or unions. The regex to strip (eliminate)
    nested structs or unions was limited to only 0 or 1 matches. This can
    cause an uneven number of left/right braces to be stripped, which causes
    this:

    Warning(linux-2.6.27-rc1-git2//include/net/mac80211.h:336): No description found for parameter '}'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap