05 Aug, 2020

1 commit

  • Pull documentation updates from Jonathan Corbet:
    "It's been a busy cycle for documentation - hopefully the busiest for a
    while to come. Changes include:

    - Some new Chinese translations

    - Progress on the battle against double words words and non-HTTPS
    URLs

    - Some block-mq documentation

    - More RST conversions from Mauro. At this point, that task is
    essentially complete, so we shouldn't see this kind of churn again
    for a while. Unless we decide to switch to asciidoc or
    something...:)

    - Lots of typo fixes, warning fixes, and more"

    * tag 'docs-5.9' of git://git.lwn.net/linux: (195 commits)
    scripts/kernel-doc: optionally treat warnings as errors
    docs: ia64: correct typo
    mailmap: add entry for
    doc/zh_CN: add cpu-load Chinese version
    Documentation/admin-guide: tainted-kernels: fix spelling mistake
    MAINTAINERS: adjust kprobes.rst entry to new location
    devices.txt: document rfkill allocation
    PCI: correct flag name
    docs: filesystems: vfs: correct flag name
    docs: filesystems: vfs: correct sync_mode flag names
    docs: path-lookup: markup fixes for emphasis
    docs: path-lookup: more markup fixes
    docs: path-lookup: fix HTML entity mojibake
    CREDITS: Replace HTTP links with HTTPS ones
    docs: process: Add an example for creating a fixes tag
    doc/zh_CN: add Chinese translation prefer section
    doc/zh_CN: add clearing-warn-once Chinese version
    doc/zh_CN: add admin-guide index
    doc:it_IT: process: coding-style.rst: Correct __maybe_unused compiler label
    futex: MAINTAINERS: Re-add selftests directory
    ...

    Linus Torvalds
     

24 Jul, 2020

1 commit


03 Jul, 2020

1 commit

  • Rationale:
    Reduces attack surface on kernel devs opening the links for MITM
    as HTTPS traffic is much harder to manipulate.

    Deterministic algorithm:
    For each file:
    If not .svg:
    For each line:
    If doesn't contain `\bxmlns\b`:
    For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
    If both the HTTP and HTTPS versions
    return 200 OK and serve the same content:
    Replace HTTP with HTTPS.

    Signed-off-by: Alexander A. Klimov
    Reviewed-by: Petr Mladek
    Reviewed-by: Sergey Senozhatsky
    Signed-off-by: Petr Mladek
    Link: https://lore.kernel.org/r/20200702200536.13389-1-grandmaster@al2klimov.de

    Alexander A. Klimov
     

02 Jun, 2020

2 commits

  • Pull documentation updates from Jonathan Corbet:
    "A fair amount of stuff this time around, dominated by yet another
    massive set from Mauro toward the completion of the RST conversion. I
    *really* hope we are getting close to the end of this. Meanwhile,
    those patches reach pretty far afield to update document references
    around the tree; there should be no actual code changes there. There
    will be, alas, more of the usual trivial merge conflicts.

    Beyond that we have more translations, improvements to the sphinx
    scripting, a number of additions to the sysctl documentation, and lots
    of fixes"

    * tag 'docs-5.8' of git://git.lwn.net/linux: (130 commits)
    Documentation: fixes to the maintainer-entry-profile template
    zswap: docs/vm: Fix typo accept_threshold_percent in zswap.rst
    tracing: Fix events.rst section numbering
    docs: acpi: fix old http link and improve document format
    docs: filesystems: add info about efivars content
    Documentation: LSM: Correct the basic LSM description
    mailmap: change email for Ricardo Ribalda
    docs: sysctl/kernel: document unaligned controls
    Documentation: admin-guide: update bug-hunting.rst
    docs: sysctl/kernel: document ngroups_max
    nvdimm: fixes to maintainter-entry-profile
    Documentation/features: Correct RISC-V kprobes support entry
    Documentation/features: Refresh the arch support status files
    Revert "docs: sysctl/kernel: document ngroups_max"
    docs: move locking-specific documents to locking/
    docs: move digsig docs to the security book
    docs: move the kref doc into the core-api book
    docs: add IRQ documentation at the core-api book
    docs: debugging-via-ohci1394.txt: add it to the core-api book
    docs: fix references for ipmi.rst file
    ...

    Linus Torvalds
     
  • Pull printk updates from Petr Mladek:

    - Benjamin Herrenschmidt solved a problem with non-matched console
    aliases by first checking consoles defined on the command line. It is
    a more conservative approach than the previous attempts.

    - Benjamin also made sure that the console accessible via /dev/console
    always has CON_CONSDEV flag.

    - Andy Shevchenko added the %ptT modifier for printing struct time64_t.
    It extends the existing %ptR handling for struct rtc_time.

    - Bruno Meneguele fixed /dev/kmsg error value returned by unsupported
    SEEK_CUR.

    - Tetsuo Handa removed unused pr_cont_once().

    ... and a few small fixes.

    * tag 'printk-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
    printk: Remove pr_cont_once()
    printk: handle blank console arguments passed in.
    kernel/printk: add kmsg SEEK_CUR handling
    printk: Fix a typo in comment "interator"->"iterator"
    usb: pulse8-cec: Switch to use %ptT
    ARM: bcm2835: Switch to use %ptT
    lib/vsprintf: Print time64_t in human readable format
    lib/vsprintf: update comment about simple_strto() functions
    printk: Correctly set CON_CONSDEV even when preferred console was not registered
    printk: Fix preferred console selection with multiple matches
    printk: Move console matching logic into a separate function
    printk: Convert a use of sprintf to snprintf in console_unlock

    Linus Torvalds
     

20 May, 2020

1 commit

  • There are users which print time and date represented by content of
    time64_t type in human readable format.

    Instead of open coding that each time introduce %ptT[dt][r] specifier.

    Few test cases for %ptT specifier has been added as well.

    Link: https://lore.kernel.org/r/20200415170046.33374-2-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko
    Reviewed-by: Alexandre Belloni
    Acked-by: Sergey Senozhatsky
    Rewieved-by: Petr Mladek
    Signed-off-by: Petr Mladek

    Andy Shevchenko
     

15 May, 2020

1 commit

  • Usage of plain %s conversion specifier in bpf_trace_printk() suffers from the
    very same issue as bpf_probe_read{,str}() helpers, that is, it is broken on
    archs with overlapping address ranges.

    While the helpers have been addressed through work in 6ae08ae3dea2 ("bpf: Add
    probe_read_{user, kernel} and probe_read_{user, kernel}_str helpers"), we need
    an option for bpf_trace_printk() as well to fix it.

    Similarly as with the helpers, force users to make an explicit choice by adding
    %pks and %pus specifier to bpf_trace_printk() which will then pick the corresponding
    strncpy_from_unsafe*() variant to perform the access under KERNEL_DS or USER_DS.
    The %pk* (kernel specifier) and %pu* (user specifier) can later also be extended
    for other objects aside strings that are probed and printed under tracing, and
    reused out of other facilities like bpf_seq_printf() or BTF based type printing.

    Existing behavior of %s for current users is still kept working for archs where it
    is not broken and therefore gated through CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE.
    For archs not having this property we fall-back to pick probing under KERNEL_DS as
    a sensible default.

    Fixes: 8d3b7dce8622 ("bpf: add support for %s specifier to bpf_trace_printk()")
    Reported-by: Linus Torvalds
    Reported-by: Christoph Hellwig
    Signed-off-by: Daniel Borkmann
    Signed-off-by: Alexei Starovoitov
    Cc: Masami Hiramatsu
    Cc: Brendan Gregg
    Link: https://lore.kernel.org/bpf/20200515101118.6508-4-daniel@iogearbox.net

    Daniel Borkmann
     

21 Apr, 2020

1 commit

  • Add kerneldocs comments to the pr_*() macros in printk.h.

    Add a new rst node in the core-api manual describing the basic usage of
    printk and the related macro aliases.

    Signed-off-by: Ricardo Cañuelo
    Link: https://lore.kernel.org/r/20200403093617.18003-1-ricardo.canuelo@collabora.com
    Signed-off-by: Jonathan Corbet

    Ricardo Cañuelo
     

03 Dec, 2019

1 commit

  • Pull Documentation updates from Jonathan Corbet:
    "Here are the main documentation changes for 5.5:

    - Various kerneldoc script enhancements.

    - More RST conversions; those are slowing down as we run out of
    things to convert, but we're a ways from done still.

    - Dan's "maintainer profile entry" work landed at last. Now we just
    need to get maintainers to fill in the profiles...

    - A reworking of the parallel build setup to work better with a
    variety of systems (and to not take over huge systems entirely in
    particular).

    - The MAINTAINERS file is now converted to RST during the build.
    Hopefully nobody ever tries to print this thing, or they will need
    to load a lot of paper.

    - A script and documentation making it easy for maintainers to add
    Link: tags at commit time.

    Also included is the removal of a bunch of spurious CR characters"

    * tag 'docs-5.5a' of git://git.lwn.net/linux: (91 commits)
    docs: remove a bunch of stray CRs
    docs: fix up the maintainer profile document
    libnvdimm, MAINTAINERS: Maintainer Entry Profile
    Maintainer Handbook: Maintainer Entry Profile
    MAINTAINERS: Reclaim the P: tag for Maintainer Entry Profile
    docs, parallelism: Rearrange how jobserver reservations are made
    docs, parallelism: Do not leak blocking mode to other readers
    docs, parallelism: Fix failure path and add comment
    Documentation: Remove bootmem_debug from kernel-parameters.txt
    Documentation: security: core.rst: fix warnings
    Documentation/process/howto/kokr: Update for 4.x -> 5.x versioning
    Documentation/translation: Use Korean for Korean translation title
    docs/memory-barriers.txt: Remove remaining references to mmiowb()
    docs/memory-barriers.txt/kokr: Update I/O section to be clearer about CPU vs thread
    docs/memory-barriers.txt/kokr: Fix style, spacing and grammar in I/O section
    Documentation/kokr: Kill all references to mmiowb()
    docs/memory-barriers.txt/kokr: Rewrite "KERNEL I/O BARRIER EFFECTS" section
    docs: Add initial documentation for devfreq
    Documentation: Document how to get links with git am
    docs: Add request_irq() documentation
    ...

    Linus Torvalds
     

27 Nov, 2019

1 commit

  • Pull device properties framework updates from Rafael Wysocki:
    "Add support for printing fwnode names using a new conversion specifier
    "%pfw" (Sakari Ailus), clean up the software node and
    efi/apple-properties code in preparation for improved software node
    reference properties handling (Dmitry Torokhov) and fix the struct
    fwnode_operations description (Heikki Krogerus)"

    * tag 'devprop-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (22 commits)
    software node: simplify property_entry_read_string_array()
    software node: unify PROPERTY_ENTRY_XXX macros
    software node: remove property_entry_read_uNN_array functions
    software node: get rid of property_set_pointer()
    software node: clean up property_copy_string_array()
    software node: mark internal macros with double underscores
    efi/apple-properties: use PROPERTY_ENTRY_U8_ARRAY_LEN
    software node: introduce PROPERTY_ENTRY_XXX_ARRAY_LEN()
    software node: remove DEV_PROP_MAX
    device property: Fix the description of struct fwnode_operations
    lib/test_printf: Add tests for %pfw printk modifier
    lib/vsprintf: Add %pfw conversion specifier for printing fwnode names
    lib/vsprintf: OF nodes are first and foremost, struct device_nodes
    lib/vsprintf: Make use of fwnode API to obtain node names and separators
    lib/vsprintf: Add a note on re-using %pf or %pF
    lib/vsprintf: Remove support for %pF and %pf in favour of %pS and %ps
    device property: Add a function to obtain a node's prefix
    device property: Add fwnode_get_name for returning the name of a node
    device property: Add functions for accessing node's parents
    device property: Move fwnode_get_parent() up
    ...

    Linus Torvalds
     

26 Nov, 2019

1 commit

  • Pull printk updates from Petr Mladek:

    - Allow to print symbolic error names via new %pe modifier.

    - Use pr_warn() instead of the remaining pr_warning() calls. Fix
    formatting of the related lines.

    - Add VSPRINTF entry to MAINTAINERS.

    * tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (32 commits)
    checkpatch: don't warn about new vsprintf pointer extension '%pe'
    MAINTAINERS: Add VSPRINTF
    tools lib api: Renaming pr_warning to pr_warn
    ASoC: samsung: Use pr_warn instead of pr_warning
    lib: cpu_rmap: Use pr_warn instead of pr_warning
    trace: Use pr_warn instead of pr_warning
    dma-debug: Use pr_warn instead of pr_warning
    vgacon: Use pr_warn instead of pr_warning
    fs: afs: Use pr_warn instead of pr_warning
    sh/intc: Use pr_warn instead of pr_warning
    scsi: Use pr_warn instead of pr_warning
    platform/x86: intel_oaktrail: Use pr_warn instead of pr_warning
    platform/x86: asus-laptop: Use pr_warn instead of pr_warning
    platform/x86: eeepc-laptop: Use pr_warn instead of pr_warning
    oprofile: Use pr_warn instead of pr_warning
    of: Use pr_warn instead of pr_warning
    macintosh: Use pr_warn instead of pr_warning
    idsn: Use pr_warn instead of pr_warning
    ide: Use pr_warn instead of pr_warning
    crypto: n2: Use pr_warn instead of pr_warning
    ...

    Linus Torvalds
     

08 Nov, 2019

1 commit


17 Oct, 2019

1 commit

  • It has been suggested several times to extend vsnprintf() to be able
    to convert the numeric value of ENOSPC to print "ENOSPC". This
    implements that as a %p extension: With %pe, one can do

    if (IS_ERR(foo)) {
    pr_err("Sorry, can't do that: %pe\n", foo);
    return PTR_ERR(foo);
    }

    instead of what is seen in quite a few places in the kernel:

    if (IS_ERR(foo)) {
    pr_err("Sorry, can't do that: %ld\n", PTR_ERR(foo));
    return PTR_ERR(foo);
    }

    If the value passed to %pe is an ERR_PTR, but the library function
    errname() added here doesn't know about the value, the value is simply
    printed in decimal. If the value passed to %pe is not an ERR_PTR, we
    treat it as an ordinary %p and thus print the hashed value (passing
    non-ERR_PTR values to %pe indicates a bug in the caller, but we can't
    do much about that).

    With my embedded hat on, and because it's not very invasive to do,
    I've made it possible to remove this. The errname() function and
    associated lookup tables take up about 3K. For most, that's probably
    quite acceptable and a price worth paying for more readable
    dmesg (once this starts getting used), while for those that disable
    printk() it's of very little use - I don't see a
    procfs/sysfs/seq_printf() file reasonably making use of this - and
    they clearly want to squeeze vmlinux as much as possible. Hence the
    default y if PRINTK.

    The symbols to include have been found by massaging the output of

    find arch include -iname 'errno*.h' | xargs grep -E 'define\s*E'

    In the cases where some common aliasing exists
    (e.g. EAGAIN=EWOULDBLOCK on all platforms, EDEADLOCK=EDEADLK on most),
    I've moved the more popular one (in terms of 'git grep -w Efoo | wc)
    to the bottom so that one takes precedence.

    Link: http://lkml.kernel.org/r/20191015190706.15989-1-linux@rasmusvillemoes.dk
    To: "Jonathan Corbet"
    To: linux-kernel@vger.kernel.org
    Cc: "Andy Shevchenko"
    Cc: "Andrew Morton"
    Cc: "Joe Perches"
    Cc: linux-doc@vger.kernel.org
    Signed-off-by: Rasmus Villemoes
    Acked-by: Uwe Kleine-König
    Reviewed-by: Petr Mladek
    [andy.shevchenko@gmail.com: use abs()]
    Acked-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Rasmus Villemoes
     

11 Oct, 2019

2 commits

  • Add support for %pfw conversion specifier (with "f" and "P" modifiers) to
    support printing full path of the node, including its name ("f") and only
    the node's name ("P") in the printk family of functions. The two flags
    have equivalent functionality to existing %pOF with the same two modifiers
    ("f" and "P") on OF based systems. The ability to do the same on ACPI
    based systems is added by this patch.

    On ACPI based systems the resulting strings look like

    \_SB.PCI0.CIO2.port@1.endpoint@0

    where the nodes are separated by a dot (".") and the first three are
    ACPI device nodes and the latter two ACPI data nodes.

    Signed-off-by: Sakari Ailus
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Petr Mladek
    Signed-off-by: Rafael J. Wysocki

    Sakari Ailus
     
  • %pS and %ps are now the preferred conversion specifiers to print function
    names. The functionality is equivalent; remove the old, deprecated %pF
    and %pf support.

    Depends-on: commit 2d44d165e939 ("scsi: lpfc: Convert existing %pf users to %ps")
    Depends-on: commit b295c3e39c13 ("tools lib traceevent: Convert remaining %p[fF] users to %p[sS]")
    Signed-off-by: Sakari Ailus
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Petr Mladek
    Signed-off-by: Rafael J. Wysocki

    Sakari Ailus
     

14 Sep, 2019

1 commit

  • Standard integer promotion is already done and %hx and %hhx is useless
    so do not encourage the use of %hh[xudi] or %h[xudi].

    As Linus said in:
    https://lore.kernel.org/lkml/CAHk-=wgoxnmsj8GEVFJSvTwdnWm8wVJthefNk2n6+4TC=20e0Q@mail.gmail.com/

    It's a pointless warning, making for more complex code, and
    making people remember esoteric printf format details that have no
    reason for existing.

    The "h" and "hh" things should never be used. The only reason for them
    being used if if you have an "int", but you want to print it out as a
    "char" (and honestly, that is a really bad reason, you'd be better off
    just using a proper cast to make the code more obvious).

    So if what you have a "char" (or unsigned char) you should always just
    print it out as an "int", knowing that the compiler already did the
    proper type conversion.

    Signed-off-by: Joe Perches
    Reviewed-by: Louis Taylor
    Signed-off-by: Jonathan Corbet

    Joe Perches
     

15 Jul, 2019

2 commits

  • The stuff under sysctl describes /sys interface from userspace
    point of view. So, add it to the admin-guide and remove the
    :orphan: from its index file.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Rename the /proc/sys/ documentation files to ReST, using the
    README file as a template for an index.rst, adding the other
    files there via TOC markup.

    Despite being written on different times with different
    styles, try to make them somewhat coherent with a similar
    look and feel, ensuring that they'll look nice as both
    raw text file and as via the html output produced by the
    Sphinx build system.

    At its new index.rst, let's add a :orphan: while this is not linked to
    the main index.rst file, in order to avoid build warnings.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

26 Apr, 2019

2 commits

  • We are able to detect invalid values handled by %p[iI] printk specifier.
    The current error message is "invalid address". It might cause confusion
    against "(efault)" reported by the generic valid_pointer_address() check.

    Let's unify the style and use the more appropriate error code description
    "(einval)".

    Link: http://lkml.kernel.org/r/20190417115350.20479-10-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     
  • We already prevent crash when dereferencing some obviously broken
    pointers. But the handling is not consistent. Sometimes we print "(null)"
    only for pure NULL pointer, sometimes for pointers in the first
    page and sometimes also for pointers in the last page (error codes).

    Note that printk() call this code under logbuf_lock. Any recursive
    printks are redirected to the printk_safe implementation and the messages
    are stored into per-CPU buffers. These buffers might be eventually flushed
    in printk_safe_flush_on_panic() but it is not guaranteed.

    This patch adds a check using probe_kernel_read(). It is not a full-proof
    test. But it should help to see the error message in 99% situations where
    the kernel would silently crash otherwise.

    Also it makes the error handling unified for "%s" and the many %p*
    specifiers that need to read the data from a given address. We print:

    + (null) when accessing data on pure pure NULL address
    + (efault) when accessing data on an invalid address

    It does not affect the %p* specifiers that just print the given address
    in some form, namely %pF, %pf, %pS, %ps, %pB, %pK, %px, and plain %p.

    Note that we print (efault) from security reasons. In fact, the real
    address can be seen only by %px or eventually %pK.

    Link: http://lkml.kernel.org/r/20190417115350.20479-9-pmladek@suse.com
    To: Rasmus Villemoes
    Cc: Linus Torvalds
    Cc: "Tobin C . Harding"
    Cc: Joe Perches
    Cc: Andrew Morton
    Cc: Michal Hocko
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Petr Mladek
     

10 Mar, 2019

1 commit

  • Pull printk updates from Petr Mladek:

    - Allow to sort mixed lines by an extra information about the caller

    - Remove no longer used LOG_PREFIX.

    - Some clean up and documentation update.

    * tag 'printk-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
    printk/docs: Add extra integer types to printk-formats
    printk: Remove no longer used LOG_PREFIX.
    lib/vsprintf: Remove %pCr remnant in comment
    printk: Pass caller information to log_store().
    printk: Add caller information to printk() output.

    Linus Torvalds
     

04 Mar, 2019

1 commit

  • A few commonly used integer types were absent from this table, so add
    them.

    Link: https://github.com/ClangBuiltLinux/linux/issues/378
    Suggested-by: Nick Desaulniers
    Link: http://lkml.kernel.org/r/20190303123647.22020-1-louis@kragniz.eu
    Cc: pmladek@suse.com
    Cc: geert+renesas@glider.be
    Cc: andriy.shevchenko@linux.intel.com
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: clang-built-linux@googlegroups.com
    Cc: ndesaulniers@google.com
    Cc: jflat@chromium.org
    Cc: Louis Taylor
    Signed-off-by: Louis Taylor
    [pmladek@suse.com: sorted both variants the same way by size]
    Signed-off-by: Petr Mladek

    Louis Taylor
     

11 Dec, 2018

1 commit

  • There are users which print time and date represented by content of
    struct rtc_time in human readable format.

    Instead of open coding that each time introduce %ptR[dt][r] specifier.

    Cc: Arnd Bergmann
    Cc: Bartlomiej Zolnierkiewicz
    Cc: Dmitry Torokhov
    Cc: Geert Uytterhoeven
    Cc: Guan Xuetao
    Cc: Ingo Molnar
    Cc: Jason Wessel
    Cc: Jonathan Corbet
    Cc: Jonathan Hunter
    Cc: Krzysztof Kozlowski
    Cc: "Rafael J. Wysocki"
    Cc: Thierry Reding
    Cc: Petr Mladek
    Signed-off-by: Andy Shevchenko
    Reviewed-by: Petr Mladek
    Signed-off-by: Alexandre Belloni

    Andy Shevchenko
     

26 Oct, 2018

1 commit

  • Pull printk updates from Petr Mladek:

    - Fix two more locations where printf formatting leaked pointers

    - Better log_buf_len parameter handling

    - Add prefix to messages from printk code

    - Do not miss messages on other consoles when the log is replayed on a
    new one

    - Reduce race between console registration and panic() when the log
    might get replayed on all consoles

    - Some cont buffer code clean up

    - Call console only when there is something to do (log vs cont buffer)

    * tag 'printk-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
    lib/vsprintf: Hash printed address for netdev bits fallback
    lib/vsprintf: Hash legacy clock addresses
    lib/vsprintf: Prepare for more general use of ptr_to_id()
    lib/vsprintf: Make ptr argument conts in ptr_to_id()
    printk: fix integer overflow in setup_log_buf()
    printk: do not preliminary split up cont buffer
    printk: lock/unlock console only for new logbuf entries
    printk: keep kernel cont support always enabled
    printk: Give error on attempt to set log buffer length to over 2G
    printk: Add KBUILD_MODNAME and remove a redundant print prefix
    printk: Correct wrong casting
    printk: Fix panic caused by passing log_buf_len to command line
    printk: CON_PRINTBUFFER console registration is a bit racy
    printk: Do not miss new messages when replaying the log

    Linus Torvalds
     

13 Oct, 2018

1 commit

  • When converting from text to rst, the kobjects section and its sole
    subsection about device tree nodes were coalesced into a single section,
    yielding an inconsistent result.

    Remove all references to kobjects, as
    1. Device tree object pointers are not compatible to kobject pointers
    (the former may embed the latter, though), and
    2. there are no printk formats defined for kobject types.

    Update the vsprintf() source code comments to match the above.

    Fixes: b3ed23213eab1e08 ("doc: convert printk-formats.txt to rst")
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Jonathan Corbet

    Geert Uytterhoeven
     

12 Oct, 2018

1 commit

  • On platforms using the Common Clock Framework, "%pC" prints the clock's
    name. On legacy platforms, it prints the unhashed clock's address,
    potentially leaking sensitive information regarding the kernel layout in
    memory.

    Avoid this leak by printing the hashed address instead. To distinguish
    between clocks, a 32-bit unique identifier is as good as an actual
    pointer value.

    Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
    Link: http://lkml.kernel.org/r/20181011084249.4520-3-geert+renesas@glider.be
    To: "Tobin C . Harding"
    To: Andrew Morton
    To: Jonathan Corbet
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Petr Mladek

    Geert Uytterhoeven
     

05 Jun, 2018

1 commit

  • "%pCr" formats the current rate of a clock, and calls clk_get_rate().
    The latter obtains a mutex, hence it must not be called from atomic
    context.

    Remove support for this rarely-used format, as vsprintf() (and e.g.
    printk()) must be callable from any context.

    Any remaining out-of-tree users will start seeing the clock's name
    printed instead of its rate.

    Reported-by: Jia-Ju Bai
    Fixes: 900cca2944254edd ("lib/vsprintf: add %pC{,n,r} format specifiers for clocks")
    Link: http://lkml.kernel.org/r/1527845302-12159-5-git-send-email-geert+renesas@glider.be
    To: Jia-Ju Bai
    To: Jonathan Corbet
    To: Michael Turquette
    To: Stephen Boyd
    To: Zhang Rui
    To: Eduardo Valentin
    To: Eric Anholt
    To: Stefan Wahren
    To: Greg Kroah-Hartman
    Cc: Sergey Senozhatsky
    Cc: Petr Mladek
    Cc: Linus Torvalds
    Cc: Steven Rostedt
    Cc: linux-doc@vger.kernel.org
    Cc: linux-clk@vger.kernel.org
    Cc: linux-pm@vger.kernel.org
    Cc: linux-serial@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Geert Uytterhoeven
    Cc: stable@vger.kernel.org # 4.1+
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Petr Mladek

    Geert Uytterhoeven
     

24 Mar, 2018

1 commit


02 Feb, 2018

1 commit

  • Pull printk updates from Petr Mladek:

    - Add a console_msg_format command line option:

    The value "default" keeps the old "[time stamp] text\n" format. The
    value "syslog" allows to see the syslog-like "[timestamp] text" format.

    This feature was requested by people doing regression tests, for
    example, 0day robot. They want to have both filtered and full logs
    at hands.

    - Reduce the risk of softlockup:

    Pass the console owner in a busy loop.

    This is a new approach to the old problem. It was first proposed by
    Steven Rostedt on Kernel Summit 2017. It marks a context in which
    the console_lock owner calls console drivers and could not sleep.
    On the other side, printk() callers could detect this state and use
    a busy wait instead of a simple console_trylock(). Finally, the
    console_lock owner checks if there is a busy waiter at the end of
    the special context and eventually passes the console_lock to the
    waiter.

    The hand-off works surprisingly well and helps in many situations.
    Well, there is still a possibility of the softlockup, for example,
    when the flood of messages stops and the last owner still has too
    much to flush.

    There is increasing number of people having problems with
    printk-related softlockups. We might eventually need to get better
    solution. Anyway, this looks like a good start and promising
    direction.

    - Do not allow to schedule in console_unlock() called from printk():

    This reverts an older controversial commit. The reschedule helped
    to avoid softlockups. But it also slowed down the console output.
    This patch is obsoleted by the new console waiter logic described
    above. In fact, the reschedule made the hand-off less effective.

    - Deprecate "%pf" and "%pF" format specifier:

    It was needed on ia64, ppc64 and parisc64 to dereference function
    descriptors and show the real function address. It is done
    transparently by "%ps" and "pS" format specifier now.

    Sergey Senozhatsky found that all the function descriptors were in
    a special elf section and could be easily detected.

    - Remove printk_symbol() API:

    It has been obsoleted by "%pS" format specifier, and this change
    helped to remove few continuous lines and a less intuitive old API.

    - Remove redundant memsets:

    Sergey removed unnecessary memset when processing printk.devkmsg
    command line option.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (27 commits)
    printk: drop redundant devkmsg_log_str memsets
    printk: Never set console_may_schedule in console_trylock()
    printk: Hide console waiter logic into helpers
    printk: Add console owner and waiter logic to load balance console writes
    kallsyms: remove print_symbol() function
    checkpatch: add pF/pf deprecation warning
    symbol lookup: introduce dereference_symbol_descriptor()
    parisc64: Add .opd based function descriptor dereference
    powerpc64: Add .opd based function descriptor dereference
    ia64: Add .opd based function descriptor dereference
    sections: split dereference_function_descriptor()
    openrisc: Fix conflicting types for _exext and _stext
    lib: do not use print_symbol()
    irq debug: do not use print_symbol()
    sysfs: do not use print_symbol()
    drivers: do not use print_symbol()
    x86: do not use print_symbol()
    unicore32: do not use print_symbol()
    sh: do not use print_symbol()
    mn10300: do not use print_symbol()
    ...

    Linus Torvalds
     

22 Dec, 2017

1 commit

  • Documentation/printk-formats.txt is a candidate for conversion to
    ReStructuredText format. Some effort has already been made to do this
    conversion even thought the suffix is currently .txt

    Changes required to complete conversion

    - Move printk-formats.txt to core-api/printk-formats.rst
    - Add entry to Documentation/core-api/index.rst
    - Remove entry from Documentation/00-INDEX
    - Fix minor grammatical errors.
    - Order heading adornments as suggested by rst docs.
    - Use 'Passed by reference' uniformly.
    - Update pointer documentation around %px specifier.
    - Fix erroneous double backticks (to commas).
    - Remove extraneous double backticks (suggested by Jonathan Corbet).
    - Simplify documentation for kobject.

    Signed-off-by: Tobin C. Harding
    [jc: downcased "kernel"]
    Signed-off-by: Jonathan Corbet

    Tobin C. Harding