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
     

24 May, 2016

1 commit


11 Sep, 2015

1 commit


01 Apr, 2015

1 commit

  • This driver is 64 bit only, and so this driver and device are ready
    for 2038. This patch changes the driver to the new PHC and also
    carries the timespec64 parameter on out to the gxio_mpipe_get-
    set_timestamp functions, making explicit the fact that the tv_sec
    field is 64 bits wide.

    Not even compile tested.

    Signed-off-by: Richard Cochran
    Acked-by: Chris Metcalf
    Signed-off-by: David S. Miller

    Richard Cochran
     

12 Nov, 2014

1 commit

  • 'gxio_mpipe_adjust_timestamp', 'gxio_mpipe_link_instance',
    'gxio_mpipe_get_timestamp', and 'gxio_mpipe_set_timestamp' may be use by
    other tile modules, so export them.

    The related error (with allmodconfig under tile):

    MODPOST 4002 modules
    ERROR: "gxio_mpipe_link_instance" [drivers/net/ethernet/tile/tile_net.ko] undefined!
    ERROR: "gxio_mpipe_get_timestamp" [drivers/net/ethernet/tile/tile_net.ko] undefined!
    ERROR: "gxio_mpipe_set_timestamp" [drivers/net/ethernet/tile/tile_net.ko] undefined!
    ERROR: "gxio_mpipe_adjust_timestamp" [drivers/net/ethernet/tile/tile_net.ko] undefined!

    Signed-off-by: Chen Gang
    Signed-off-by: Chris Metcalf

    Chen Gang
     

02 Oct, 2014

1 commit

  • Both strncpy and strlcpy suffer from the fact that they do
    partial copies of strings into the destination when the target
    buffer is too small. This is frequently pointless since an
    overflow of the target buffer may make the result invalid.

    strncpy() makes it relatively hard to even detect the error
    condition, and with strlcpy() you have to duplicate the buffer
    size parameter to test to see if the result exceeds it.
    By returning zero in the failure case, we both make testing
    for it easy, and by simply not copying anything in that case,
    we make it mandatory for callers to test the error code.

    To catch lazy programmers who don't check, we also place a NUL at
    the start of the destination buffer (if there is space) to
    ensure that the result is an invalid string.

    At some point it may make sense to promote strscpy() to
    a global platform-independent function, but other than the
    reviewers, no one was interested on LKML, so for now leave
    the strscpy() function as file-static.

    Reviewed-by: Randy Dunlap
    Reviewed-by: Rickard Strandqvist
    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

17 Sep, 2013

1 commit


07 Sep, 2013

1 commit

  • Pull Tile arch updates from Chris Metcalf:
    "These changes bring in a bunch of new functionality that has been
    maintained internally at Tilera over the last year, plus other stray
    bits of work that I've taken into the tile tree from other folks.

    The changes include some PCI root complex work, interrupt-driven
    console support, support for performing fast-path unaligned data
    fixups by kernel-based JIT code generation, CONFIG_PREEMPT support,
    vDSO support for gettimeofday(), a serial driver for the tilegx
    on-chip UART, KGDB support, more optimized string routines, support
    for ftrace and kprobes, improved ASLR, and many bug fixes.

    We also remove support for the old TILE64 chip, which is no longer
    buildable"

    * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (85 commits)
    tile: refresh tile defconfig files
    tile: rework
    tile PCI RC: make default consistent DMA mask 32-bit
    tile: add null check for kzalloc in tile/kernel/setup.c
    tile: make __write_once a synonym for __read_mostly
    tile: remove support for TILE64
    tile: use asm-generic/bitops/builtin-*.h
    tile: eliminate no-op "noatomichash" boot argument
    tile: use standard tile_bundle_bits type in traps.c
    tile: simplify code referencing hypervisor API addresses
    tile: change to in comments
    tile: mark pcibios_init() as __init
    tile: check for correct compiler earlier in asm-offsets.c
    tile: use standard 'generic-y' model for
    tile: use asm-generic version of
    tile PCI RC: add comment about "PCI hole" problem
    tile: remove DEBUG_EXTRA_FLAGS kernel config option
    tile: add virt_to_kpte() API and clean up and document behavior
    tile: support FRAME_POINTER
    tile: support reporting Tilera hypervisor statistics
    ...

    Linus Torvalds
     

04 Sep, 2013

1 commit

  • The TILE-Gx chip includes an on-chip UART. This change adds support
    for using the UART from within the kernel. The UART shim has more
    functionality than is exposed here, but to keep the kernel code and
    binary simpler, this is a subset of the full API designed to enable
    a standard Linux tty serial driver only.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

07 Aug, 2013

1 commit

  • To support PCIe devices with higher number of MSI-X interrupt vectors,
    e.g. 16 for the LSI RAID card, enhance the Gx RC stack to provide more
    MSI-X vectors by using the TRIO Scatter Queues, which provide 8 more
    vectors in addition to ~10 from the Map Mem regions.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

02 Aug, 2013

3 commits


19 Jul, 2012

1 commit

  • This change adds support for accessing the USB shim from within the
    kernel. Note that this change by itself does not allow the kernel
    to act as a host or as a device; it merely exposes the built-in on-chip
    hardware to the kernel.

    The and headers are empty at
    the moment because the kernel does not require any types or definitions
    specific to the tilegx USB shim; the generic USB core code is all we need.
    The headers are left in as stubs so that we don't need to modify the
    hypervisor header (drv_usb_host_intf.h) from upstream.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

12 Jul, 2012

4 commits

  • Provide kernel support for the tilegx "Transaction I/O" (TRIO) on-chip
    hardware. This hardware implements the PCIe interface for tilegx;
    the driver changes to use TRIO for PCIe are in a subsequent commit.

    The change is layered on top of the tilegx GXIO IORPC subsystem.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     
  • The TILE-Gx chip includes a packet-processing network engine called
    mPIPE ("Multicore Programmable Intelligent Packet Engine"). This
    change adds support for using the mPIPE engine from within the
    kernel. The engine has more functionality than is exposed here,
    but to keep the kernel code and binary simpler, this is a subset
    of the full API designed to enable standard Linux networking only.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     
  • The dma_queue support is used by both the mPipe (networking)
    and Trio (PCI) hardware shims on tilegx. This common code is
    selected when either of those drivers is built.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     
  • The GXIO I/O RPC subsystem handles exporting I/O hardware resources to
    Linux and to applications running under Linux.

    For instance, memory which is made available for I/O DMA must be mapped
    by an I/O TLB; that means that such memory must be locked down by Linux,
    so that it is not swapped or otherwise reused, as long as those I/O
    TLB entries are active. Similarly, configuring direct hardware access
    introduces new validation requirements. If a user application registers
    memory, Linux must ensure that the supplied virtual addresses are valid,
    and turn them into client physical addresses. Similarly, when Linux then
    supplies those client physical addresses to the Tilera hypervisor, it
    must in turn validate those before turning them into the real physical
    addresses which are required by the hardware.

    To the extent that these sorts of activities were required on previous
    TILE architecture processors, they were implemented in a device-specific
    fashion. This meant that every I/O device had its own Tilera hypervisor
    driver, its own Linux driver, and in some cases its own user-level
    library support. There was a large amount of more-or-less functionally
    identical code in different places, particularly in the different Linux
    drivers. For TILE-Gx, this support has been generalized into a common
    framework, known as the I/O RPC framework or just IORPC.

    The two "gxio" directories (one for headers, one for sources) start
    with just a few files in each with this infrastructure commit, but
    after adding support for the on-board I/O shims for networking, PCI,
    USB, crypto, compression, I2CS, etc., there end up being about 20 files
    in each directory.

    More information on the IORPC framework is in the header,
    included in this commit.

    Signed-off-by: Chris Metcalf

    Chris Metcalf