22 Jun, 2016

1 commit

  • Now that we do have pci_request_mem_regions() and pci_release_mem_regions()
    at hand, use it in the genwqe driver.

    [bhelgaas: fix build issues]
    Suggested-by: Christoph Hellwig
    Signed-off-by: Johannes Thumshirn
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Christoph Hellwig
    CC: Frank Haverkamp
    CC: Greg Kroah-Hartman

    Johannes Thumshirn
     

09 Feb, 2016

1 commit


04 Oct, 2015

2 commits

  • Just fix a typo in the code comment.

    Signed-off-by: Geliang Tang
    Signed-off-by: Greg Kroah-Hartman

    Geliang Tang
     
  • we received reports of failed allocations in genwqe code:

    [ 733.550955] genwqe_gzip: page allocation failure: order:1, mode:0x20
    [ 733.550964] CPU: 2 PID: 1846 Comm: genwqe_gzip Not tainted 4.3.0-rc3-00042-g3225031 #78
    [ 733.550968] 000000002782b830 000000002782b8c0 0000000000000002 0000000000000000
    000000002782b960 000000002782b8d8 000000002782b8d8 00000000001134a0
    0000000000000000 0000000000892b2a 0000000000871d0a 000000000000000b
    000000002782b920 000000002782b8c0 0000000000000000 0000000000000000
    0000000000000000 00000000001134a0 000000002782b8c0 000000002782b920
    [ 733.551003] Call Trace:
    [ 733.551013] ([] show_trace+0xf8/0x158)
    [ 733.551018] [] show_stack+0x6a/0xe8
    [ 733.551024] [] dump_stack+0x7c/0xd8
    [ 733.551031] [] warn_alloc_failed+0xda/0x150
    [ 733.551036] [] __alloc_pages_nodemask+0x94e/0xbc0
    [ 733.551041] [] s390_dma_alloc+0x70/0x1a0
    [ 733.551054] [] __genwqe_alloc_consistent+0x84/0xd0 [genwqe_card]
    [ 733.551063] [] genwqe_alloc_sync_sgl+0x13a/0x328 [genwqe_card]
    [ 733.551066] [] do_execute_ddcb+0x1f8/0x388 [genwqe_card]
    [ 733.551069] [] genwqe_ioctl+0x598/0xd50 [genwqe_card]
    [ 733.551072] [] do_vfs_ioctl+0x3f4/0x590
    [ 733.551074] [] SyS_ioctl+0x9e/0xb0
    [ 733.551078] [] system_call+0xd6/0x258
    [ 733.551080] [] 0x3fffd25819a
    [ 733.551082] no locks held by genwqe_gzip/1846.

    This specific allocation and some others in genwqe are unnecessary flagged
    as atomic.

    All of genwqe's atomic allocations happen in a context where it's allowed
    to sleep. Change these to use GFP_KERNEL.

    Signed-off-by: Sebastian Ott
    Acked-by: Frank Haverkamp
    Signed-off-by: Greg Kroah-Hartman

    Sebastian Ott
     

11 Sep, 2015

1 commit

  • With two exceptions (drm/qxl and drm/radeon) all vm_operations_struct
    structs should be constant.

    Signed-off-by: Kirill A. Shutemov
    Reviewed-by: Oleg Nesterov
    Cc: "H. Peter Anvin"
    Cc: Andy Lutomirski
    Cc: Dave Hansen
    Cc: Ingo Molnar
    Cc: Minchan Kim
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     

12 Jan, 2015

1 commit


15 Dec, 2014

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here's the big char/misc driver update for 3.19-rc1

    Lots of little things all over the place in different drivers, and a
    new subsystem, "coresight" has been added. Full details are in the
    shortlog"

    * tag 'char-misc-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (73 commits)
    parport: parport_pc, do not remove parent devices early
    spmi: Remove shutdown/suspend/resume kernel-doc
    carma-fpga-program: drop videobuf dependency
    carma-fpga: drop videobuf dependency
    carma-fpga-program.c: fix compile errors
    i8k: Fix temperature bug handling in i8k_get_temp()
    cxl: Name interrupts in /proc/interrupt
    CXL: Return error to PSL if IRQ demultiplexing fails & print clearer warning
    coresight-replicator: remove .owner field for driver
    coresight: fixed comments in coresight.h
    coresight: fix typo in comment in coresight-priv.h
    coresight: bindings for coresight drivers
    coresight: Adding ABI documentation
    w1: support auto-load of w1_bq27000 module.
    w1: avoid potential u16 overflow
    cn: verify msg->len before making callback
    mei: export fw status registers through sysfs
    mei: read and print all six FW status registers
    mei: txe: add cherrytrail device id
    mei: kill cached host and me csr values
    ...

    Linus Torvalds
     

20 Nov, 2014

1 commit


08 Nov, 2014

1 commit

  • `genwqe_user_vmap()` calls `get_user_pages_fast()` and if the return
    value is less than the number of pages requested, it frees the pages and
    returns an error (`-EFAULT`). However, it fails to consider a negative
    error return value from `get_user_pages_fast()`. In that case, the test
    `if (rc < m->nr_pages)` will be false (due to promotion of `rc` to a
    large `unsigned int`) and the code will continue on to call
    `genwqe_map_pages()` with an invalid list of page pointers. Fix it by
    bailing out if `get_user_pages_fast()` returns a negative error value.

    Signed-off-by: Ian Abbott
    Cc: # 3.14.x # 3.15.x # 3.16.x # 3.17.x
    Signed-off-by: Greg Kroah-Hartman

    Ian Abbott
     

24 Sep, 2014

8 commits


19 Jul, 2014

1 commit


11 Jul, 2014

1 commit


10 Jul, 2014

5 commits

  • GenWQE used to call pci_enable_msi_block to allocate a desired number
    of MSI's. If that was not possible pci_enable_msi_block returned with a
    smaller number which might be possible to allocate. GenWQE then called
    pci_enable_msi_block with that number.

    Since commit a30d0108b
    "GenWQE: Use pci_enable_msi_exact() instead of pci_enable_msi_block()"
    pci_enable_msi_exact is used which fails if the desired number of MSI's
    was not possible to allocate. Change GenWQE to use pci_enable_msi_range
    to restore the old behavior.

    Signed-off-by: Sebastian Ott
    Reviewed-by: Alexander Gordeev
    Signed-off-by: Greg Kroah-Hartman

    Sebastian Ott
     
  • Increase genwqe driver version number.

    Signed-off-by: Kleber Sacilotto de Souza
    Acked-by: Frank Haverkamp
    Signed-off-by: Greg Kroah-Hartman

    Kleber Sacilotto de Souza
     
  • Currently, in the event of a fatal hardware error, the driver tries a
    recovery procedure that calls pci_reset_function() to reset the card.
    This is not sufficient in some cases, needing a fundamental reset to
    bring the card back.

    This patch implements a call to the platform fundamental reset procedure
    on the error recovery path if GENWQE_PLATFORM_ERROR_RECOVERY is enabled.
    This is implemented by default only on PPC64, since this can cause
    problems on other archs, e.g. zSeries, where the platform has its own
    recovery procedures, leading to a potencial race conditition. For these
    cases, the recovery is kept as it was before.

    Signed-off-by: Kleber Sacilotto de Souza
    Acked-by: Frank Haverkamp
    Signed-off-by: Greg Kroah-Hartman

    Kleber Sacilotto de Souza
     
  • This patch implements the callbacks and functions necessary to have EEH
    recovery support.

    It adds a config option to enable or disable explicit calls to trigger
    platform specific mechanisms on error recovery paths. This option is
    enabled by default only on PPC64 systems and can be overritten via
    debugfs. If this option is enabled, on the error recovery path the
    driver will call pci_channel_offline() to check for error condition and
    issue non-raw MMIO reads to trigger early EEH detection in case of
    hardware failures. This is necessary since the driver MMIO helper
    funtions use raw accessors.

    Signed-off-by: Kleber Sacilotto de Souza
    Acked-by: Frank Haverkamp
    Signed-off-by: Greg Kroah-Hartman

    Kleber Sacilotto de Souza
     
  • This patch adds an interface on sysfs for userspace to request a card
    bitstream reload. It sets the appropriate register and try to perform a
    fundamental reset on the PCIe slot for the card to reload the bitstream
    from the chosen partition.

    Signed-off-by: Kleber Sacilotto de Souza
    Acked-by: Frank Haverkamp
    Signed-off-by: Greg Kroah-Hartman

    Kleber Sacilotto de Souza
     

03 Jun, 2014

2 commits

  • …gregkh/char-misc into next

    Pull char/misc driver patches from Greg KH:
    "Here is the big char / misc driver update for 3.16-rc1.

    Lots of different driver updates for a variety of different drivers
    and minor driver subsystems.

    All have been in linux-next with no reported issues"

    * tag 'char-misc-3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (79 commits)
    hv: use correct order when freeing monitor_pages
    spmi: of: fixup generic SPMI devicetree binding example
    applicom: dereferencing NULL on error path
    misc: genwqe: fix uninitialized return value in genwqe_free_sync_sgl()
    miscdevice.h: Simple syntax fix to make pointers consistent.
    MAINTAINERS: Add miscdevice.h to file list for char/misc drivers.
    mcb: Add support for shared PCI IRQs
    drivers: Remove duplicate conditionally included subdirs
    misc: atmel_pwm: only build for supported platforms
    mei: me: move probe quirk to cfg structure
    mei: add per device configuration
    mei: me: read H_CSR after asserting reset
    mei: me: drop harmful wait optimization
    mei: me: fix hw ready reset flow
    mei: fix memory leak of mei_clients array
    uio: fix vma io range check in mmap
    drivers: uio_dmem_genirq: Fix memory leak in uio_dmem_genirq_probe()
    w1: do not unlock unheld list_mutex in __w1_remove_master_device()
    w1: optional bundling of netlink kernel replies
    connector: allow multiple messages to be sent in one packet
    ...

    Linus Torvalds
     
  • Pull PCI changes from Bjorn Helgaas:
    "Enumeration
    - Notify driver before and after device reset (Keith Busch)
    - Use reset notification in NVMe (Keith Busch)

    NUMA
    - Warn if we have to guess host bridge node information (Myron Stowe)
    - Work around AMD Fam15h BIOSes that fail to provide _PXM (Suravee
    Suthikulpanit)
    - Clean up and mark early_root_info_init() as deprecated (Suravee
    Suthikulpanit)

    Driver binding
    - Add "driver_override" for force specific binding (Alex Williamson)
    - Fail "new_id" addition for devices we already know about (Bandan
    Das)

    Resource management
    - Support BAR sizes up to 8GB (Nikhil Rao, Alan Cox)
    - Don't move IORESOURCE_PCI_FIXED resources (Bjorn Helgaas)
    - Mark SBx00 HPET BAR as IORESOURCE_PCI_FIXED (Bjorn Helgaas)
    - Fail safely if we can't handle BARs larger than 4GB (Bjorn Helgaas)
    - Reject BAR above 4GB if dma_addr_t is too small (Bjorn Helgaas)
    - Don't convert BAR address to resource if dma_addr_t is too small
    (Bjorn Helgaas)
    - Don't set BAR to zero if dma_addr_t is too small (Bjorn Helgaas)
    - Don't print anything while decoding is disabled (Bjorn Helgaas)
    - Don't add disabled subtractive decode bus resources (Bjorn Helgaas)
    - Add resource allocation comments (Bjorn Helgaas)
    - Restrict 64-bit prefetchable bridge windows to 64-bit resources
    (Yinghai Lu)
    - Assign i82875p_edac PCI resources before adding device (Yinghai Lu)

    PCI device hotplug
    - Remove unnecessary "dev->bus" test (Bjorn Helgaas)
    - Use PCI_EXP_SLTCAP_PSN define (Bjorn Helgaas)
    - Fix rphahp endianess issues (Laurent Dufour)
    - Acknowledge spurious "cmd completed" event (Rajat Jain)
    - Allow hotplug service drivers to operate in polling mode (Rajat Jain)
    - Fix cpqphp possible NULL dereference (Rickard Strandqvist)

    MSI
    - Replace pci_enable_msi_block() by pci_enable_msi_exact()
    (Alexander Gordeev)
    - Replace pci_enable_msix() by pci_enable_msix_exact() (Alexander Gordeev)
    - Simplify populate_msi_sysfs() (Jan Beulich)

    Virtualization
    - Add Intel Patsburg (X79) root port ACS quirk (Alex Williamson)
    - Mark RTL8110SC INTx masking as broken (Alex Williamson)

    Generic host bridge driver
    - Add generic PCI host controller driver (Will Deacon)

    Freescale i.MX6
    - Use new clock names (Lucas Stach)
    - Drop old IRQ mapping (Lucas Stach)
    - Remove optional (and unused) IRQs (Lucas Stach)
    - Add support for MSI (Lucas Stach)
    - Fix imx6_add_pcie_port() section mismatch warning (Sachin Kamat)

    Renesas R-Car
    - Add gen2 device tree support (Ben Dooks)
    - Use new OF interrupt mapping when possible (Lucas Stach)
    - Add PCIe driver (Phil Edworthy)
    - Add PCIe MSI support (Phil Edworthy)
    - Add PCIe device tree bindings (Phil Edworthy)

    Samsung Exynos
    - Remove unnecessary OOM messages (Jingoo Han)
    - Fix add_pcie_port() section mismatch warning (Sachin Kamat)

    Synopsys DesignWare
    - Make MSI ISR shared IRQ aware (Lucas Stach)

    Miscellaneous
    - Check for broken config space aliasing (Alex Williamson)
    - Update email address (Ben Hutchings)
    - Fix Broadcom CNB20LE unintended sign extension (Bjorn Helgaas)
    - Fix incorrect vgaarb conditional in WARN_ON() (Bjorn Helgaas)
    - Remove unnecessary __ref annotations (Bjorn Helgaas)
    - Add arch/x86/kernel/quirks.c to MAINTAINERS PCI file patterns
    (Bjorn Helgaas)
    - Fix use of uninitialized MPS value (Bjorn Helgaas)
    - Tidy x86/gart messages (Bjorn Helgaas)
    - Fix return value from pci_user_{read,write}_config_*() (Gavin Shan)
    - Turn pcibios_penalize_isa_irq() into a weak function (Hanjun Guo)
    - Remove unused serial device IDs (Jean Delvare)
    - Use designated initialization in PCI_VDEVICE (Mark Rustad)
    - Fix powerpc NULL dereference in pci_root_buses traversal (Mike Qiu)
    - Configure MPS on ARM (Murali Karicheri)
    - Remove unnecessary includes of (Paul Gortmaker)
    - Move Open Firmware devspec attribute to PCI common code (Sebastian Ott)
    - Use pdev->dev.groups for attribute creation on s390 (Sebastian Ott)
    - Remove pcibios_add_platform_entries() (Sebastian Ott)
    - Add new ID for Intel GPU "spurious interrupt" quirk (Thomas Jarosch)
    - Rename pci_is_bridge() to pci_has_subordinate() (Yijing Wang)
    - Add and use new pci_is_bridge() interface (Yijing Wang)
    - Make pci_bus_add_device() void (Yijing Wang)

    DMA API
    - Clarify physical/bus address distinction in docs (Bjorn Helgaas)
    - Fix typos in docs (Emilio López)
    - Update dma_pool_create ()and dma_pool_alloc() descriptions (Gioh Kim)
    - Change dma_declare_coherent_memory() CPU address to phys_addr_t
    (Bjorn Helgaas)
    - Pass GAPSPCI_DMA_BASE CPU & bus address to dma_declare_coherent_memory()
    (Bjorn Helgaas)"

    * tag 'pci-v3.16-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (92 commits)
    MAINTAINERS: Add generic PCI host controller driver
    PCI: generic: Add generic PCI host controller driver
    PCI: imx6: Add support for MSI
    PCI: designware: Make MSI ISR shared IRQ aware
    PCI: imx6: Remove optional (and unused) IRQs
    PCI: imx6: Drop old IRQ mapping
    PCI: imx6: Use new clock names
    i82875p_edac: Assign PCI resources before adding device
    ARM/PCI: Call pcie_bus_configure_settings() to set MPS
    PCI: imx6: Fix imx6_add_pcie_port() section mismatch warning
    PCI: Make pci_bus_add_device() void
    PCI: exynos: Fix add_pcie_port() section mismatch warning
    PCI: Introduce new device binding path using pci_dev.driver_override
    PCI: rcar: Add gen2 device tree support
    PCI: cpqphp: Fix possible null pointer dereference
    PCI: rcar: Add R-Car PCIe device tree bindings
    PCI: rcar: Add MSI support for PCIe
    PCI: rcar: Add Renesas R-Car PCIe driver
    PCI: Fix return value from pci_user_{read,write}_config_*()
    PCI: exynos: Remove unnecessary OOM messages
    ...

    Linus Torvalds
     

28 May, 2014

1 commit


04 May, 2014

1 commit


26 Apr, 2014

1 commit

  • As result of deprecation of MSI-X/MSI enablement functions
    pci_enable_msix() and pci_enable_msi_block() all drivers using these two
    interfaces need to be updated to use the new pci_enable_msi_range() or
    pci_enable_msi_exact() and pci_enable_msix_range() or
    pci_enable_msix_exact() interfaces.

    Signed-off-by: Alexander Gordeev
    Signed-off-by: Bjorn Helgaas
    Acked-by: Frank Haverkamp
    Acked-by: Greg Kroah-Hartman

    Alexander Gordeev
     

17 Apr, 2014

5 commits


19 Feb, 2014

1 commit


08 Feb, 2014

2 commits


09 Jan, 2014

3 commits