30 Jun, 2020

1 commit

  • Remove the use of dev->archdata.iommu_domain and use the private
    per-device pointer provided by IOMMU core code instead.

    Signed-off-by: Joerg Roedel
    Reviewed-by: Jerry Snitselaar
    Link: https://lore.kernel.org/r/20200625130836.1916-8-joro@8bytes.org

    Joerg Roedel
     

05 May, 2020

1 commit


05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details you should have received a copy of the gnu general
    public license along with this program if not write to the free
    software foundation 51 franklin street fifth floor boston ma 02110
    1301 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 67 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Alexios Zavras
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141333.953658117@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

11 Oct, 2018

1 commit


25 Sep, 2018

3 commits


01 Sep, 2017

1 commit


23 Aug, 2017

1 commit

  • Commit 68a17f0be6fe introduced an initialization order
    problem, where devices are linked against an iommu which is
    not yet initialized. Fix it by initializing the iommu-device
    before the iommu-ops are registered against the bus.

    Reported-by: Michael Ellerman
    Fixes: 68a17f0be6fe ('iommu/pamu: Add support for generic iommu-device')
    Signed-off-by: Joerg Roedel

    Joerg Roedel
     

15 Aug, 2017

1 commit


26 Jul, 2017

1 commit

  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Signed-off-by: Rob Herring
    Cc: Joerg Roedel
    Cc: Heiko Stuebner
    Cc: iommu@lists.linux-foundation.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-rockchip@lists.infradead.org
    Reviewed-by: Heiko Stuebner
    Signed-off-by: Joerg Roedel

    Rob Herring
     

22 Oct, 2015

1 commit


31 Mar, 2015

1 commit


04 Feb, 2015

1 commit

  • Currently a PAMU driver patch is very likely to receive some
    checkpatch complaints about the code in the context of the
    patch. This patch is an attempt to fix most of that and make
    the driver more readable

    Also fixed a subset of the sparse and coccinelle reported
    issues.

    Signed-off-by: Emil Medve
    Signed-off-by: Joerg Roedel

    Emil Medve
     

25 Sep, 2014

1 commit


05 Sep, 2014

1 commit

  • iommu_group_get_for_dev determines the iommu group for the PCI device and adds
    the device to the group.

    In the PAMU driver we were again adding the device to the same group without checking
    if the device already had an iommu group. This resulted in the following warning.

    sysfs: cannot create duplicate filename '/devices/ffe200000.pcie/pci0000:00/0000:00:00.0/iommu_group'
    ------------[ cut here ]------------
    WARNING: at fs/sysfs/dir.c:31
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.17.0-rc3-00002-g7505cea-dirty #126
    task: c0000001fe0a0000 ti: c0000001fe044000 task.ti: c0000001fe044000
    NIP: c00000000018879c LR: c000000000188798 CTR: c00000000001ea50
    REGS: c0000001fe047040 TRAP: 0700 Not tainted (3.17.0-rc3-00002-g7505cea-dirty)
    MSR: 0000000080029000 CR: 24ad8e22 XER: 20000000
    SOFTE: 1
    GPR00: c000000000188798 c0000001fe0472c0 c0000000009a52e0 0000000000000065
    GPR04: 0000000000000001 0000000000000000 3a30303a00000000 0000000027000000
    GPR08: 2f696f6d00000000 c0000000008d3830 c0000000009b3938 c0000000009bb3d0
    GPR12: 0000000028ad8e24 c00000000fff4000 c00000000000205c 0000000000000000
    GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    GPR20: 0000000000000000 0000000000000000 0000000000000000 c0000000008a4c70
    GPR24: c0000000007e9010 c0000001fe0140a8 ffffffffffffffef 0000000000000001
    GPR28: c0000001fe22ebb8 c0000000007e9010 c00000000090bf10 c0000001fe220000
    NIP [c00000000018879c] .sysfs_warn_dup+0x74/0xa4
    LR [c000000000188798] .sysfs_warn_dup+0x70/0xa4
    Call Trace:
    [c0000001fe0472c0] [c000000000188798] .sysfs_warn_dup+0x70/0xa4 (unreliable)
    [c0000001fe047350] [c000000000188d34] .sysfs_do_create_link_sd.clone.2+0x168/0x174
    [c0000001fe047400] [c0000000004b3cf8] .iommu_group_add_device+0x78/0x244
    [c0000001fe0474b0] [c0000000004b6964] .fsl_pamu_add_device+0x88/0x1a8
    [c0000001fe047570] [c0000000004b3960] .iommu_bus_notifier+0xdc/0x15c
    [c0000001fe047600] [c000000000059848] .notifier_call_chain+0x8c/0xe8
    [c0000001fe0476a0] [c000000000059d04] .__blocking_notifier_call_chain+0x58/0x84
    [c0000001fe047750] [c00000000036619c] .device_add+0x464/0x5c8
    [c0000001fe047820] [c000000000300ebc] .pci_device_add+0x14c/0x17c
    [c0000001fe0478c0] [c000000000300fbc] .pci_scan_single_device+0xd0/0xf4
    [c0000001fe047970] [c00000000030104c] .pci_scan_slot+0x6c/0x18c
    [c0000001fe047a10] [c00000000030226c] .pci_scan_child_bus+0x40/0x114
    [c0000001fe047ac0] [c000000000021974] .pcibios_scan_phb+0x240/0x2c8
    [c0000001fe047b70] [c00000000085a970] .pcibios_init+0x64/0xc8
    [c0000001fe047c00] [c000000000001884] .do_one_initcall+0xbc/0x224
    [c0000001fe047d00] [c000000000852d50] .kernel_init_freeable+0x14c/0x21c
    [c0000001fe047db0] [c000000000002078] .kernel_init+0x1c/0xfa4
    [c0000001fe047e30] [c000000000000884] .ret_from_kernel_thread+0x58/0xd4
    Instruction dump:
    7c7f1b79 4182001c 7fe4fb78 7f83e378 38a01000 4bffc905 60000000 7c641b78
    e87e8008 7fa5eb78 48482ff5 60000000 7fe3fb78 4bf7bd39 60000000

    Signed-off-by: Varun Sethi
    Cc: stable@vger.kernel.org
    Signed-off-by: Joerg Roedel

    Varun Sethi
     

01 Aug, 2014

1 commit


07 Jul, 2014

4 commits


04 Jul, 2014

3 commits


07 Jan, 2014

1 commit


14 Aug, 2013

2 commits

  • Signed-off-by: Joerg Roedel

    Joerg Roedel
     
  • Following is a brief description of the PAMU hardware:
    PAMU determines what action to take and whether to authorize the action on
    the basis of the memory address, a Logical IO Device Number (LIODN), and
    PAACT table (logically) indexed by LIODN and address. Hardware devices which
    need to access memory must provide an LIODN in addition to the memory address.

    Peripheral Access Authorization and Control Tables (PAACTs) are the primary
    data structures used by PAMU. A PAACT is a table of peripheral access
    authorization and control entries (PAACE).Each PAACE defines the range of
    I/O bus address space that is accessible by the LIOD and the associated access
    capabilities.

    There are two types of PAACTs: primary PAACT (PPAACT) and secondary PAACT
    (SPAACT).A given physical I/O device may be able to act as one or more
    independent logical I/O devices (LIODs). Each such logical I/O device is
    assigned an identifier called logical I/O device number (LIODN). A LIODN is
    allocated a contiguous portion of the I/O bus address space called the DSA window
    for performing DSA operations. The DSA window may optionally be divided into
    multiple sub-windows, each of which may be used to map to a region in system
    storage space. The first sub-window is referred to as the primary sub-window
    and the remaining are called secondary sub-windows.

    This patch provides the PAMU driver (fsl_pamu.c) and the corresponding IOMMU
    API implementation (fsl_pamu_domain.c). The PAMU hardware driver (fsl_pamu.c)
    has been derived from the work done by Ashish Kalra and Timur Tabi.

    [For iommu group support]
    Acked-by: Alex Williamson

    Signed-off-by: Timur Tabi
    Signed-off-by: Varun Sethi
    Signed-off-by: Joerg Roedel

    Varun Sethi