14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

08 Jun, 2019

1 commit


02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

14 Jun, 2017

1 commit

  • Reuse mce_amd_inj's debugfs interface so that mce-inject can
    benefit from it too. The old functionality is still preserved under
    CONFIG_X86_MCELOG_LEGACY.

    Tested-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Acked-by: Yazen Ghannam
    Cc: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Link: http://lkml.kernel.org/r/20170613162835.30750-4-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     

28 Mar, 2017

1 commit

  • Introduce a simple data structure for collecting correctable errors
    along with accessors. More detailed description in the code itself.

    The error decoding is done with the decoding chain now and
    mce_first_notifier() gets to see the error first and the CEC decides
    whether to log it and then the rest of the chain doesn't hear about it -
    basically the main reason for the CE collector - or to continue running
    the notifiers.

    When the CEC hits the action threshold, it will try to soft-offine the
    page containing the ECC and then the whole decoding chain gets to see
    the error.

    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/20170327093304.10683-5-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     

24 Jan, 2017

1 commit

  • Change dependency to mce.c as we're using mce_inject_log() now to stick
    an MCE into the MCA subsystem.

    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: Yazen Ghannam
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/20170123183514.13356-6-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     

09 Nov, 2016

1 commit


26 Sep, 2016

2 commits

  • Simplify exit_mce_inject() by using debugfs_remove_recursive() and do
    away with the noodling over the dentry elements.

    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Link: http://lkml.kernel.org/r/20160926083152.30848-3-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     
  • Change predecrement compare to post decrement compare to avoid an
    unsigned integer wrap-around comparisomn when decrementing in the while
    loop.

    For example, if the debugfs_create_file() fails when 'i' is zero, the
    current situation will predecrement 'i' in the while loop, wrapping 'i' to
    the maximum signed integer and cause multiple out of bounds reads on
    dfs_fls[i].d as the loop interates to zero.

    Also, as Borislav Petkov suggested, return -ENODEV rather than -ENOMEM
    on the error condition.

    Signed-off-by: Colin Ian King
    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Yazen Ghannam
    Link: http://lkml.kernel.org/r/20160926083152.30848-2-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Colin Ian King
     

13 Sep, 2016

3 commits

  • In particular:

    arch/x86/ras/mce_amd_inj.c: In function ‘prepare_msrs’:
    arch/x86/ras/mce_amd_inj.c:249:13: warning: declaration of ‘i_mce’ shadows a global declaration [-Wshadow]
    struct mce i_mce = *(struct mce *)info;
    ^~~~~

    arch/x86/ras/mce_amd_inj.c: In function ‘init_mce_inject’:
    arch/x86/ras/mce_amd_inj.c:453:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (i = 0; i < ARRAY_SIZE(dfs_fls); i++) {

    Signed-off-by: Borislav Petkov
    Link: http://lkml.kernel.org/r/20160912075941.24699-16-bp@alien8.de
    Signed-off-by: Thomas Gleixner

    Borislav Petkov
     
  • Bank 4 is reserved on family 0x17 and shouldn't generate any MCE
    records. However, broken hardware and software is not something unheard
    of so warn about bank 4 errors. They shouldn't be coming from bank 4
    naturally but users can still use mce_amd_inj to simulate errors from it
    for testing purposed.

    Also, avoid special handling in the injector mce_amd_inj like it is
    being done on the older families.

    [ bp: Rewrite commit message and merge into one patch. Use boot_cpu_data. ]

    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Reviewed-by: Aravind Gopalakrishnan
    Link: http://lkml.kernel.org/r/1473384591-5323-1-git-send-email-Yazen.Ghannam@amd.com
    Link: http://lkml.kernel.org/r/1473384591-5323-2-git-send-email-Yazen.Ghannam@amd.com
    Signed-off-by: Thomas Gleixner

    Yazen Ghannam
     
  • Add a debugfs file which holds the error syndrome (written into
    MCA_SYND) of an injected error. Only write it on SMCA systems. Update
    README file, while at it.

    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Link: http://lkml.kernel.org/r/1467633035-32080-3-git-send-email-Yazen.Ghannam@amd.com
    Signed-off-by: Thomas Gleixner

    Yazen Ghannam
     

08 Jul, 2016

1 commit

  • We currently use wrmsr_on_cpu() 4 times when prepping for an error
    injection. This will generate 4 IPIs for each MSR write. We can reduce
    the number of IPIs to 1 by grouping the MSR writes and executing them
    serially on the appropriate CPU.

    Suggested-by: Borislav Petkov
    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Cc: Andy Lutomirski
    Cc: Aravind Gopalakrishnan
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Josh Poimboeuf
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1467968983-4874-3-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Yazen Ghannam
     

12 May, 2016

1 commit

  • Use SMCA MSRs when writing to MCA_{STATUS,ADDR,MISC} and
    MCA_DE{STAT,ADDR} when injecting Deferred Errors on SMCA platforms.

    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Cc: Andy Lutomirski
    Cc: Aravind Gopalakrishnan
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/1462971509-3856-8-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Yazen Ghannam
     

13 Apr, 2016

1 commit

  • ... to be the same like the file name of injection module itself to
    avoid confusion when grepping.

    No functionality change.

    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Link: http://lkml.kernel.org/r/1459929916-12852-2-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov
     

29 Mar, 2016

1 commit

  • It turns out AMD gets x86_max_cores wrong when there are compute
    units.

    The issue is that Linux assumes:

    nr_logical_cpus = nr_cores * nr_siblings

    But AMD reports its CU unit as 2 cores, but then sets num_smp_siblings
    to 2 as well.

    Boris: fixup ras/mce_amd_inj.c too, to compute the Node Base Core
    properly, according to the new nomenclature.

    Fixes: 1f12e32f4cd5 ("x86/topology: Create logical package id")
    Reported-by: Xiong Zhou
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Borislav Petkov
    Cc: Andreas Herrmann
    Cc: Andy Lutomirski
    Link: http://lkml.kernel.org/r/20160317095220.GO6344@twins.programming.kicks-ass.net
    Signed-off-by: Thomas Gleixner

    Peter Zijlstra
     

12 Oct, 2015

3 commits

  • Bank 4 MCEs are logged and reported only on the node base core
    (NBC) in a socket. Refer to the D18F3x44[NbMcaToMstCpuEn] field
    in Fam10h and later BKDGs. The node base core (NBC) is the
    lowest numbered core in the node.

    This patch ensures that we inject the error on the NBC for bank
    4 errors. Otherwise, triggering #MC or APIC interrupts on a core
    which is not the NBC would not have any effect on the system,
    i.e. we would not see any relevant output on kernel logs for the
    error we just injected.

    Signed-off-by: Aravind Gopalakrishnan
    [ Cleanup comments. ]
    [ Add a missing dependency on AMD_NB caught by Randy Dunlap. ]
    Signed-off-by: Borislav Petkov
    Acked-by: Randy Dunlap
    Cc: Borislav Petkov
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Link: http://lkml.kernel.org/r/1443190851-2172-4-git-send-email-Aravind.Gopalakrishnan@amd.com
    Link: http://lkml.kernel.org/r/1444641762-9437-5-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Aravind Gopalakrishnan
     
  • Add the capability to trigger deferred error interrupts and
    threshold interrupts in order to test the APIC interrupt handler
    functionality for these type of errors.

    Update README section about the same too.

    Reported by: kbuild test robot
    Signed-off-by: Aravind Gopalakrishnan
    [ Cleanup comments. ]
    [ Include asm/irq_vectors.h directly so that misc randbuilds don't fail. ]
    Signed-off-by: Borislav Petkov
    Cc: Borislav Petkov
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Link: http://lkml.kernel.org/r/1443190851-2172-3-git-send-email-Aravind.Gopalakrishnan@amd.com
    Link: http://lkml.kernel.org/r/1444641762-9437-4-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Aravind Gopalakrishnan
     
  • Invalid inputs such as these are currently reported in dmesg as
    failing:

    $> echo sweet > flags
    [ 122.079139] flags_write: Invalid flags value: et

    even though the 'flags' attribute has been updated correctly:

    $> cat flags
    sw

    This is because userspace keeps writing the remaining buffer
    until it encounters an error.

    However, the input as a whole is wrong and we should not be
    writing anything to the file. Therefore, correct flags_write()
    to return -EINVAL immediately on bad input strings.

    Signed-off-by: Aravind Gopalakrishnan
    Signed-off-by: Borislav Petkov
    Cc: Borislav Petkov
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Link: http://lkml.kernel.org/r/1443190851-2172-2-git-send-email-Aravind.Gopalakrishnan@amd.com
    Link: http://lkml.kernel.org/r/1444641762-9437-3-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Aravind Gopalakrishnan
     

13 Aug, 2015

1 commit

  • This is an x86-specific module and would benefit from being
    closer to the arch code. Move it there. Update copyright while
    at it.

    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Tony Luck
    Link: http://lkml.kernel.org/r/1439396985-12812-14-git-send-email-bp@alien8.de
    Signed-off-by: Ingo Molnar

    Borislav Petkov