Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review/opal irq #185

Closed
wants to merge 28 commits into from
Closed

Review/opal irq #185

wants to merge 28 commits into from

Commits on May 11, 2015

  1. powerpc: Constify irq_domain_ops

    The irq_domain_ops are not modified by the driver and the irqdomain core
    code accepts pointer to a const data.
    
    Signed-off-by: Krzysztof Kozlowski <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    krzk authored and mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    202648a View commit details
    Browse the repository at this point in the history
  2. powerpc/pseries: Fix possible leaked device node reference

    Failure return from dlpar_configure_connector when dlpar adding cpus
    results in leaking references to the cpus parent device node. Move the
    call to of_node_put() prior to checking the result of
    dlpar_configure_connector.
    
    Fixes: 8d5ff32 ("powerpc/pseries: Make dlpar_configure_connector parent node aware")
    
    Signed-off-by: Nathan Fontenot <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    nfont authored and mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    2222ce0 View commit details
    Browse the repository at this point in the history
  3. powerpc: Make STRICT_MM_TYPECHECKS a config option

    The STRICT_MM_TYPECHECKS code has bit-rotted over the years. To make it
    possible to easily build test it, make it a CONFIG option.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    f1e7c20 View commit details
    Browse the repository at this point in the history
  4. powerpc/pasemi: Only the build the pasemi MSI code for PASEMI=y

    The pasemi MSI code is currently always built when MPIC=y && PCI_MSI=y.
    It should not have any effect on other platforms, because it immediately
    checks the MPIC's compatible property for "pasemi,pwrficient-openpic".
    
    However it's odd that it's still built even when PASEMI=n. It also
    needn't be in sysdev, as it's only used by pasemi. So move it into
    platforms/pasemi, whereby it will only be built for PASEMI=y.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    5af7a6f View commit details
    Browse the repository at this point in the history
  5. powerpc: Show utsname->machine in boot-up banner

    Currently we print "Starting Linux PPC64" at boot. But we don't mention
    anywhere whether the kernel is big or little endian.
    
    If we print the utsname->machine value instead we get either "ppc64" or
    "ppc64le" which is much more informative, eg:
    
      Starting Linux ppc64le #1 SMP Wed Apr 15 12:12:20 AEST 2015
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    5c0aebf View commit details
    Browse the repository at this point in the history
  6. powerpc: Don't do gcc version checks if we're building with clang

    We have several checks for bad gcc versions in our Makefile. These don't
    apply if we're building with clang, so skip them in that case.
    
    The obvious check would be for ${COMPILER} = "gcc", but because of the
    way the logic in the top level Makefile conditionally sets COMPILER,
    it's possible that we're building with gcc but COMPILER was not set.
    
    So instead check for ${COMPILER} != "clang", which we know is currently
    the only other possibility.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    e79c838 View commit details
    Browse the repository at this point in the history
  7. powerpc: Reject binutils 2.24 when building little endian

    There is a bug in binutils 2.24 which causes miscompilation if we're
    building little endian and using weak symbols (which the kernel does).
    
    It is fixed in binutils commit 57fa7b8c7e59 "Correct elf_merge_st_other
    arguments for weak symbols", which is in binutils 2.25 and has been
    backported to the binutils 2.24 branch and has been picked up by most
    distros it seems.
    
    However if we're running stock 2.24 (no extra version) then the bug is
    present, so check for that and bail.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    60e065f View commit details
    Browse the repository at this point in the history
  8. powerpc/vdso: Remove unused debug code

    It's in the git history if we ever need it back.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    63da88d View commit details
    Browse the repository at this point in the history
  9. powerpc/vdso: Combine start/size variables

    In vdso_fixup_features() we have start64/start32 and size64/size32, but
    they have the same types, ie. void * and unsigned long.
    
    They're only used to save the return value from find_sectionXX() for the
    subsequent call to do_feature_fixups(), so there's no overlap in their
    usage either.
    
    So we can just consolidate them into start/size and avoid the
    duplication.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    6e5c077 View commit details
    Browse the repository at this point in the history
  10. powerpc/vdso: Disable building the 32-bit VDSO on little endian

    The only little endian configuration we support is ppc64le. As such if
    we're building little endian we don't need a 32-bit VDSO, because there
    is no 32-bit userspace.
    
    This patch is a fairly ugly mess of #ifdefs, but is the minimal logic
    required to disable the 32-bit VDSO. We can hopefully clean up the
    result in future with some further refactoring.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    e0d0059 View commit details
    Browse the repository at this point in the history
  11. powerpc/cell: Drop cbe-oss-dev mailing list from MAINTAINERS

    Traffic on the cbe-oss-dev list is more or less non-existent, other than
    CC's from linuxppc.
    
    It's seems like we may as well just send everyone to linuxppc and
    archive the list.
    
    Signed-off-by: Michael Ellerman <[email protected]>
    Acked-by: Jeremy Kerr <[email protected]>
    mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    a14ab6b View commit details
    Browse the repository at this point in the history
  12. powerpc/powernv: Silence SYSPARAM warning on boot

    OpenPower BMC machines do not place any sysparams in the device tree, so
    at every boot we get a warning:
    
     [    0.437176] SYSPARAM: Opal sysparam node not found
    
    Remove the warning, and reorder the init so we don't peform allocations
    when there is no sysparam node in the device tree.
    
    Signed-off-by: Joel Stanley <[email protected]>
    Acked-by: Neelesh Gupta <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    shenki authored and mpe committed May 11, 2015
    Configuration menu
    Copy the full SHA
    38c0488 View commit details
    Browse the repository at this point in the history

Commits on May 12, 2015

  1. powerpc/eeh: Move PE state constants around

    There are two equivalent sets of PE state constants, defined in
    arch/powerpc/include/asm/eeh.h and include/uapi/linux/vfio.h.
    Though the names are different, their corresponding values are
    exactly same. The former is used by EEH core and the latter is
    used by userspace.
    
    The patch moves those constants from arch/powerpc/include/asm/eeh.h
    to arch/powerpc/include/uapi/asm/eeh.h, which are expected to be
    used by userspace from now on. We can't delete those constants in
    vfio.h as it's uncertain that those constants have been or will be
    used by userspace.
    
    Suggested-by: David Gibson <[email protected]>
    Signed-off-by: Gavin Shan <[email protected]>
    Reviewed-by: David Gibson <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Gavin Shan authored and mpe committed May 12, 2015
    Configuration menu
    Copy the full SHA
    ed3e81f View commit details
    Browse the repository at this point in the history
  2. powerpc/eeh: Introduce eeh_pe_inject_err()

    The patch defines PCI error types and functions in uapi/asm/eeh.h
    and exports function eeh_pe_inject_err(), which will be called by
    VFIO driver to inject the specified PCI error to the indicated
    PE for testing purpose.
    
    Signed-off-by: Gavin Shan <[email protected]>
    Reviewed-by: David Gibson <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Gavin Shan authored and mpe committed May 12, 2015
    Configuration menu
    Copy the full SHA
    ec33d36 View commit details
    Browse the repository at this point in the history
  3. drivers/vfio: Support EEH error injection

    The patch adds one more EEH sub-command (VFIO_EEH_PE_INJECT_ERR)
    to inject the specified EEH error, which is represented by
    (struct vfio_eeh_pe_err), to the indicated PE for testing purpose.
    
    Signed-off-by: Gavin Shan <[email protected]>
    Reviewed-by: David Gibson <[email protected]>
    Acked-by: Alex Williamson <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Gavin Shan authored and mpe committed May 12, 2015
    Configuration menu
    Copy the full SHA
    68cbbc3 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2015

  1. powerpc/eeh: fix start/end/flags type in struct pci_io_addr_range{}

    struct pci_io_addr_range{} stores the information of pci resources. It
    would be better to keep these related fields have the same type as in
    struct resource{}.
    
    This patch fixes the start/end/flags type in struct pci_io_addr_range{} to
    have the same type as in struct resource{}.
    
    Signed-off-by: Wei Yang <[email protected]>
    Acked-by: Gavin Shan <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Wei Yang authored and mpe committed May 13, 2015
    Configuration menu
    Copy the full SHA
    3721352 View commit details
    Browse the repository at this point in the history
  2. powerpc/eeh: fix comment for wait_state()

    To retrieve the PCI slot state, EEH driver would set a timeout for that.
    While current comment is not aligned to what the code does.
    
    This patch fixes those comments according to the code.
    
    Signed-off-by: Wei Yang <[email protected]>
    Acked-by: Gavin Shan <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Wei Yang authored and mpe committed May 13, 2015
    Configuration menu
    Copy the full SHA
    2ac3990 View commit details
    Browse the repository at this point in the history
  3. powerpc/eeh: fix powernv_eeh_wait_state delay logic

    As the comment indicates, powernv_eeh_get_state() will inform EEH core to
    delay 1 second. This means the delay doesn't happen when
    powernv_eeh_get_state() returns.
    
    This patch moves the delay subtraction just before msleep(), which is the
    same logic in pseries_eeh_wait_state().
    
    Signed-off-by: Wei Yang <[email protected]>
    Acked-by: Gavin Shan <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Wei Yang authored and mpe committed May 13, 2015
    Configuration menu
    Copy the full SHA
    e17866d View commit details
    Browse the repository at this point in the history
  4. powerpc/eeh: remove unused macro IS_BRIDGE

    Currently, the macro IS_BRIDGE is not used any where.
    This patch just removes it.
    
    Signed-off-by: Wei Yang <[email protected]>
    Acked-by: Gavin Shan <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Wei Yang authored and mpe committed May 13, 2015
    Configuration menu
    Copy the full SHA
    f77ceb7 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2015

  1. powerpc/powernv: Reorder OPAL subsystem initialisation

    Most of the OPAL subsystems are always compiled in for PowerNV and
    many of them need to be initialised before or after other OPAL
    subsystems. Rather than trying to control this ordering through
    machine initcalls it is clearer and easier to control initialisation
    order with explicit calls in opal_init.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Cc: Mahesh Jagannath Salgaonkar <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    636f0ca View commit details
    Browse the repository at this point in the history
  2. powerpc/powernv: Add a virtual irqchip for opal events

    Whenever an interrupt is received for opal the linux kernel gets a
    bitfield indicating certain events that have occurred and need handling
    by the various device drivers. Currently this is handled using a
    notifier interface where we call every device driver that has
    registered to receive opal events.
    
    This approach has several drawbacks. For example each driver has to do
    its own checking to see if the event is relevant as well as event
    masking. There is also no easy method of recording the number of times
    we receive particular events.
    
    This patch solves these issues by exposing opal events via the
    standard interrupt APIs by adding a new interrupt chip and
    domain. Drivers can then register for the appropriate events using
    standard kernel calls such as irq_of_parse_and_map().
    
    Signed-off-by: Alistair Popple <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    48d4d6a View commit details
    Browse the repository at this point in the history
  3. ipmi/powernv: Convert to irq event interface

    Convert the opal ipmi driver to use the new irq interface for events.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Acked-by: Corey Minyard <[email protected]>
    Cc: Corey Minyard <[email protected]>
    Cc: [email protected]
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    982209d View commit details
    Browse the repository at this point in the history
  4. hvc: Convert to using interrupts instead of opal events

    Convert the opal hvc driver to use the new irqchip to register for
    opal events. As older firmware versions may not have device tree
    bindings for the interrupt parent we just use a hardcoded hwirq based
    on the event number.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    581db24 View commit details
    Browse the repository at this point in the history
  5. powernv/eeh: Update the EEH code to use the opal irq domain

    The eeh code currently uses the old notifier method to get eeh events
    from OPAL. It also contains some logic to filter opal events which has
    been moved into the virtual irqchip. This patch converts the eeh code
    to the new event interface which simplifies event handling.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    d08367d View commit details
    Browse the repository at this point in the history
  6. powernv/opal: Convert opal message events to opal irq domain

    This patch converts the opal message event to use the new opal irq
    domain.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    b43cd82 View commit details
    Browse the repository at this point in the history
  7. powernv/elog: Convert elog to opal irq domain

    This patch converts the elog code to use the opal irq domain instead
    of notifier events.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    f363354 View commit details
    Browse the repository at this point in the history
  8. powernv/opal-dump: Convert to irq domain

    Convert the opal dump driver to the new opal irq domain.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    6afa005 View commit details
    Browse the repository at this point in the history
  9. opal: Remove events notifier

    All users of the old opal events notifier have been converted over to
    the irq domain so remove the event notifier functions.
    
    Signed-off-by: Alistair Popple <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    apopple authored and mpe committed May 20, 2015
    Configuration menu
    Copy the full SHA
    ab7937e View commit details
    Browse the repository at this point in the history