09 Apr, 2019

1 commit

  • %pF and %pf are functionally equivalent to %pS and %ps conversion
    specifiers. The former are deprecated, therefore switch the current users
    to use the preferred variant.

    The changes have been produced by the following command:

    git grep -l '%p[fF]' | grep -v '^\(tools\|Documentation\)/' | \
    while read i; do perl -i -pe 's/%pf/%ps/g; s/%pF/%pS/g;' $i; done

    And verifying the result.

    Link: http://lkml.kernel.org/r/20190325193229.23390-1-sakari.ailus@linux.intel.com
    Cc: Andy Shevchenko
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: sparclinux@vger.kernel.org
    Cc: linux-um@lists.infradead.org
    Cc: xen-devel@lists.xenproject.org
    Cc: linux-acpi@vger.kernel.org
    Cc: linux-pm@vger.kernel.org
    Cc: drbd-dev@lists.linbit.com
    Cc: linux-block@vger.kernel.org
    Cc: linux-mmc@vger.kernel.org
    Cc: linux-nvdimm@lists.01.org
    Cc: linux-pci@vger.kernel.org
    Cc: linux-scsi@vger.kernel.org
    Cc: linux-btrfs@vger.kernel.org
    Cc: linux-f2fs-devel@lists.sourceforge.net
    Cc: linux-mm@kvack.org
    Cc: ceph-devel@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Signed-off-by: Sakari Ailus
    Acked-by: David Sterba (for btrfs)
    Acked-by: Mike Rapoport (for mm/memblock.c)
    Acked-by: Bjorn Helgaas (for drivers/pci)
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Petr Mladek

    Sakari Ailus
     

13 Jan, 2018

2 commits

  • Add injectable error types for each error-injectable function.

    One motivation of error injection test is to find software flaws,
    mistakes or mis-handlings of expectable errors. If we find such
    flaws by the test, that is a program bug, so we need to fix it.

    But if the tester miss input the error (e.g. just return success
    code without processing anything), it causes unexpected behavior
    even if the caller is correctly programmed to handle any errors.
    That is not what we want to test by error injection.

    To clarify what type of errors the caller must expect for each
    injectable function, this introduces injectable error types:

    - EI_ETYPE_NULL : means the function will return NULL if it
    fails. No ERR_PTR, just a NULL.
    - EI_ETYPE_ERRNO : means the function will return -ERRNO
    if it fails.
    - EI_ETYPE_ERRNO_NULL : means the function will return -ERRNO
    (ERR_PTR) or NULL.

    ALLOW_ERROR_INJECTION() macro is expanded to get one of
    NULL, ERRNO, ERRNO_NULL to record the error type for
    each function. e.g.

    ALLOW_ERROR_INJECTION(open_ctree, ERRNO)

    This error types are shown in debugfs as below.

    ====
    / # cat /sys/kernel/debug/error_injection/list
    open_ctree [btrfs] ERRNO
    io_ctl_init [btrfs] ERRNO
    ====

    Signed-off-by: Masami Hiramatsu
    Reviewed-by: Josef Bacik
    Signed-off-by: Alexei Starovoitov

    Masami Hiramatsu
     
  • Since error-injection framework is not limited to be used
    by kprobes, nor bpf. Other kernel subsystems can use it
    freely for checking safeness of error-injection, e.g.
    livepatch, ftrace etc.
    So this separate error-injection framework from kprobes.

    Some differences has been made:

    - "kprobe" word is removed from any APIs/structures.
    - BPF_ALLOW_ERROR_INJECTION() is renamed to
    ALLOW_ERROR_INJECTION() since it is not limited for BPF too.
    - CONFIG_FUNCTION_ERROR_INJECTION is the config item of this
    feature. It is automatically enabled if the arch supports
    error injection feature for kprobe or ftrace etc.

    Signed-off-by: Masami Hiramatsu
    Reviewed-by: Josef Bacik
    Signed-off-by: Alexei Starovoitov

    Masami Hiramatsu