27 Jul, 2018

2 commits


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 Feb, 2015

1 commit

  • Commit 8f243af42ade ("sections: fix const sections for crc32 table")
    removed the compile-time generated crc32 tables from the RO sections,
    because it conflicts with the definition of __cacheline_aligned which
    puts all such aligned data into .data..cacheline_aligned section
    optimized for wasting less space, and can cause alignment issues when
    used in combination with const with some gcc versions like 4.7.0 due to
    a gcc bug [1].

    Given that most gcc versions should have the fix by now, we can just use
    ____cacheline_aligned, which only aligns the data but doesn't move it
    into specific sections as opposed to __cacheline_aligned. In case of
    gcc versions having the mentioned bug, the alignment attribute will have
    no effect, but the data will still be made RO.

    After patch tables are in RO:

    $ nm -v lib/crc32.o | grep -1 -E "crc32c?table"
    0000000000000000 t arch_local_irq_enable
    0000000000000000 r crc32ctable_le
    0000000000000000 t crc32_exit
    --
    0000000000000960 t test_buf
    0000000000002000 r crc32table_be
    0000000000004000 r crc32table_le
    000000001d1056e5 A __crc_crc32_be

    [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52181

    Signed-off-by: Daniel Borkmann
    Cc: Joe Mario
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Borkmann
     

06 Oct, 2012

1 commit

  • Fix the const sections for the code generated by crc32 table. There's
    no ro version of the cacheline aligned section, so we cannot put in
    const data without a conflict Just don't make the crc tables const for
    now.

    [ak@linux.intel.com: some fixes and new description]
    [akpm@linux-foundation.org: checkpatch fixes]
    Signed-off-by: Joe Mario
    Signed-off-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Mario
     

24 Mar, 2012

4 commits

  • Reuse the existing crc32 code to stamp out a crc32c implementation.

    Signed-off-by: Darrick J. Wong
    Cc: Herbert Xu
    Cc: Bob Pearson
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Darrick J. Wong
     
  • Add slicing-by-8 algorithm to the existing slicing-by-4 algorithm. This
    consists of:

    - extend largest BITS size from 32 to 64
    - extend tables from tab[4][256] to up to tab[8][256]
    - Add code for inner loop.

    [djwong@us.ibm.com: Minor changelog tweaks]
    Signed-off-by: Bob Pearson
    Signed-off-by: Darrick J. Wong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bob Pearson
     
  • crc32.c provides a choice of one of several algorithms for computing the
    LSB and LSB versions of the CRC32 checksum based on the parameters
    CRC_LE_BITS and CRC_BE_BITS.

    In the original version the values 1, 2, 4 and 8 respectively selected
    versions of the alrogithm that computed the crc 1, 2, 4 and 32 bits as a
    time.

    This patch series adds a new version that computes the CRC 64 bits at a
    time. To make things easier to understand the parameter has been
    reinterpreted to actually stand for the number of bits processed in each
    step of the algorithm so that the old value 8 has been replaced with the
    value 32.

    This also allows us to add in a widely used crc algorithm that computes
    the crc 8 bits at a time called the Sarwate algorithm.

    [djwong@us.ibm.com: Minor changelog tweaks]
    Signed-off-by: Bob Pearson
    Signed-off-by: Darrick J. Wong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bob Pearson
     
  • Misc cleanup of lib/crc32.c and related files.

    - remove unnecessary header files.

    - straighten out some convoluted ifdef's

    - rewrite some references to 2 dimensional arrays as 1 dimensional
    arrays to make them correct. I.e. replace tab[i] with tab[0][i].

    - a few trivial whitespace changes

    - fix a warning in gen_crc32tables.c caused by a mismatch in the type of
    the pointer passed to output table. Since the table is only used at
    kernel compile time, it is simpler to make the table big enough to hold
    the largest column size used. One cannot make the column size smaller
    in output_table because it has to be used by both the le and be tables
    and they can have different column sizes.

    [djwong@us.ibm.com: Minor changelog tweaks]
    Signed-off-by: Bob Pearson
    Signed-off-by: Darrick J. Wong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bob Pearson
     

25 May, 2010

1 commit

  • Precompute more crc32 values(0xcc00, 0xcc0000 and 0xcc000000) into tables.
    This increases the table size from 1KB to 4KB but the performance benfit
    makes it worth it:

    28% faster on MPC8321, 266 MHz
    2x faster on Core 2 Duo, 3.1GHz

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Joakim Tjernlund
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joakim Tjernlund
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds