16 Nov, 2015

1 commit


13 Nov, 2015

1 commit

  • Pull second batch of kvm updates from Paolo Bonzini:
    "Four changes:

    - x86: work around two nasty cases where a benign exception occurs
    while another is being delivered. The endless stream of exceptions
    causes an infinite loop in the processor, which not even NMIs or
    SMIs can interrupt; in the virt case, there is no possibility to
    exit to the host either.

    - x86: support for Skylake per-guest TSC rate. Long supported by
    AMD, the patches mostly move things from there to common
    arch/x86/kvm/ code.

    - generic: remove local_irq_save/restore from the guest entry and
    exit paths when context tracking is enabled. The patches are a few
    months old, but we discussed them again at kernel summit. Andy
    will pick up from here and, in 4.5, try to remove it from the user
    entry/exit paths.

    - PPC: Two bug fixes, see merge commit 370289756becc for details"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (21 commits)
    KVM: x86: rename update_db_bp_intercept to update_bp_intercept
    KVM: svm: unconditionally intercept #DB
    KVM: x86: work around infinite loop in microcode when #AC is delivered
    context_tracking: avoid irq_save/irq_restore on guest entry and exit
    context_tracking: remove duplicate enabled check
    KVM: VMX: Dump TSC multiplier in dump_vmcs()
    KVM: VMX: Use a scaled host TSC for guest readings of MSR_IA32_TSC
    KVM: VMX: Setup TSC scaling ratio when a vcpu is loaded
    KVM: VMX: Enable and initialize VMX TSC scaling
    KVM: x86: Use the correct vcpu's TSC rate to compute time scale
    KVM: x86: Move TSC scaling logic out of call-back read_l1_tsc()
    KVM: x86: Move TSC scaling logic out of call-back adjust_tsc_offset()
    KVM: x86: Replace call-back compute_tsc_offset() with a common function
    KVM: x86: Replace call-back set_tsc_khz() with a common function
    KVM: x86: Add a common TSC scaling function
    KVM: x86: Add a common TSC scaling ratio field in kvm_vcpu_arch
    KVM: x86: Collect information for setting TSC scaling ratio
    KVM: x86: declare a few variables as __read_mostly
    KVM: x86: merge handle_mmio_page_fault and handle_mmio_page_fault_common
    KVM: PPC: Book3S HV: Don't dynamically split core when already split
    ...

    Linus Torvalds
     

11 Nov, 2015

1 commit

  • Pull block IO poll support from Jens Axboe:
    "Various groups have been doing experimentation around IO polling for
    (really) fast devices. The code has been reviewed and has been
    sitting on the side for a few releases, but this is now good enough
    for coordinated benchmarking and further experimentation.

    Currently O_DIRECT sync read/write are supported. A framework is in
    the works that allows scalable stats tracking so we can auto-tune
    this. And we'll add libaio support as well soon. Fow now, it's an
    opt-in feature for test purposes"

    * 'for-4.4/io-poll' of git://git.kernel.dk/linux-block:
    direct-io: be sure to assign dio->bio_bdev for both paths
    directio: add block polling support
    NVMe: add blk polling support
    block: add block polling support
    blk-mq: return tag/queue combo in the make_request_fn handlers
    block: change ->make_request_fn() and users to return a queue cookie

    Linus Torvalds
     

10 Nov, 2015

1 commit


08 Nov, 2015

1 commit


07 Nov, 2015

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "Resource management:
    - Add support for Enhanced Allocation devices (Sean O. Stalley)
    - Add Enhanced Allocation register entries (Sean O. Stalley)
    - Handle IORESOURCE_PCI_FIXED when sizing resources (David Daney)
    - Handle IORESOURCE_PCI_FIXED when assigning resources (David Daney)
    - Handle Enhanced Allocation capability for SR-IOV devices (David Daney)
    - Clear IORESOURCE_UNSET when reverting to firmware-assigned address (Bjorn Helgaas)
    - Make Enhanced Allocation bitmasks more obvious (Bjorn Helgaas)
    - Expand Enhanced Allocation BAR output (Bjorn Helgaas)
    - Add of_pci_check_probe_only to parse "linux,pci-probe-only" (Marc Zyngier)
    - Fix lookup of linux,pci-probe-only property (Marc Zyngier)
    - Add sparc mem64 resource parsing for root bus (Yinghai Lu)

    PCI device hotplug:
    - pciehp: Queue power work requests in dedicated function (Guenter Roeck)

    Driver binding:
    - Add builtin_pci_driver() to avoid registration boilerplate (Paul Gortmaker)

    Virtualization:
    - Set SR-IOV NumVFs to zero after enumeration (Alexander Duyck)
    - Remove redundant validation of SR-IOV offset/stride registers (Alexander Duyck)
    - Remove VFs in reverse order if virtfn_add() fails (Alexander Duyck)
    - Reorder pcibios_sriov_disable() (Alexander Duyck)
    - Wait 1 second between disabling VFs and clearing NumVFs (Alexander Duyck)
    - Fix sriov_enable() error path for pcibios_enable_sriov() failures (Alexander Duyck)
    - Enable SR-IOV ARI Capable Hierarchy before reading TotalVFs (Ben Shelton)
    - Don't try to restore VF BARs (Wei Yang)

    MSI:
    - Don't alloc pcibios-irq when MSI is enabled (Joerg Roedel)
    - Add msi_controller setup_irqs() method for special multivector setup (Lucas Stach)
    - Export all remapped MSIs to sysfs attributes (Romain Bezut)
    - Disable MSI on SiS 761 (Ondrej Zary)

    AER:
    - Clear error status registers during enumeration and restore (Taku Izumi)

    Generic host bridge driver:
    - Fix lookup of linux,pci-probe-only property (Marc Zyngier)
    - Allow multiple hosts with different map_bus() methods (David Daney)
    - Pass starting bus number to pci_scan_root_bus() (David Daney)
    - Fix address window calculation for non-zero starting bus (David Daney)

    Altera host bridge driver:
    - Add msi.h to ARM Kbuild (Ley Foon Tan)
    - Add Altera PCIe host controller driver (Ley Foon Tan)
    - Add Altera PCIe MSI driver (Ley Foon Tan)

    APM X-Gene host bridge driver:
    - Remove msi_controller assignment (Duc Dang)

    Broadcom iProc host bridge driver:
    - Fix header comment "Corporation" misspelling (Florian Fainelli)
    - Fix code comment to match code (Ray Jui)
    - Remove unused struct iproc_pcie.irqs[] (Ray Jui)
    - Call pci_fixup_irqs() for ARM64 as well as ARM (Ray Jui)
    - Fix PCIe reset logic (Ray Jui)
    - Improve link detection logic (Ray Jui)
    - Update PCIe device tree bindings (Ray Jui)
    - Add outbound mapping support (Ray Jui)

    Freescale i.MX6 host bridge driver:
    - Return real error code from imx6_add_pcie_port() (Fabio Estevam)
    - Add PCIE_PHY_RX_ASIC_OUT_VALID definition (Fabio Estevam)

    Freescale Layerscape host bridge driver:
    - Remove ls_pcie_establish_link() (Minghuan Lian)
    - Ignore PCIe controllers in Endpoint mode (Minghuan Lian)
    - Factor out SCFG related function (Minghuan Lian)
    - Update ls_add_pcie_port() (Minghuan Lian)
    - Remove unused fields from struct ls_pcie (Minghuan Lian)
    - Add support for LS1043a and LS2080a (Minghuan Lian)
    - Add ls_pcie_msi_host_init() (Minghuan Lian)

    HiSilicon host bridge driver:
    - Add HiSilicon SoC Hip05 PCIe driver (Zhou Wang)

    Marvell MVEBU host bridge driver:
    - Return zero for reserved or unimplemented config space (Russell King)
    - Use exact config access size; don't read/modify/write (Russell King)
    - Use of_get_available_child_count() (Russell King)
    - Use for_each_available_child_of_node() to walk child nodes (Russell King)
    - Report full node name when reporting a DT error (Russell King)
    - Use port->name rather than "PCIe%d.%d" (Russell King)
    - Move port parsing and resource claiming to separate function (Russell King)
    - Fix memory leaks and refcount leaks (Russell King)
    - Split port parsing and resource claiming from port setup (Russell King)
    - Use gpio_set_value_cansleep() (Russell King)
    - Use devm_kcalloc() to allocate an array (Russell King)
    - Use gpio_desc to carry around gpio (Russell King)
    - Improve clock/reset handling (Russell King)
    - Add PCI Express root complex capability block (Russell King)
    - Remove code restricting accesses to slot 0 (Russell King)

    NVIDIA Tegra host bridge driver:
    - Wrap static pgprot_t initializer with __pgprot() (Ard Biesheuvel)

    Renesas R-Car host bridge driver:
    - Build pci-rcar-gen2.c only on ARM (Geert Uytterhoeven)
    - Build pcie-rcar.c only on ARM (Geert Uytterhoeven)
    - Make PCI aware of the I/O resources (Phil Edworthy)
    - Remove dependency on ARM-specific struct hw_pci (Phil Edworthy)
    - Set root bus nr to that provided in DT (Phil Edworthy)
    - Fix I/O offset for multiple host bridges (Phil Edworthy)

    ST Microelectronics SPEAr13xx host bridge driver:
    - Fix dw_pcie_cfg_read/write() usage (Gabriele Paoloni)

    Synopsys DesignWare host bridge driver:
    - Make "clocks" and "clock-names" optional DT properties (Bhupesh Sharma)
    - Use exact access size in dw_pcie_cfg_read() (Gabriele Paoloni)
    - Simplify dw_pcie_cfg_read/write() interfaces (Gabriele Paoloni)
    - Require config accesses to be naturally aligned (Gabriele Paoloni)
    - Make "num-lanes" an optional DT property (Gabriele Paoloni)
    - Move calculation of bus addresses to DRA7xx (Gabriele Paoloni)
    - Replace ARM pci_sys_data->align_resource with global function pointer (Gabriele Paoloni)
    - Factor out MSI msg setup (Lucas Stach)
    - Implement multivector MSI IRQ setup (Lucas Stach)
    - Make get_msi_addr() return phys_addr_t, not u32 (Lucas Stach)
    - Set up high part of MSI target address (Lucas Stach)
    - Fix PORT_LOGIC_LINK_WIDTH_MASK (Zhou Wang)
    - Revert "PCI: designware: Program ATU with untranslated address" (Zhou Wang)
    - Use of_pci_get_host_bridge_resources() to parse DT (Zhou Wang)
    - Make driver arch-agnostic (Zhou Wang)

    Miscellaneous:
    - Make x86 pci_subsys_init() static (Alexander Kuleshov)
    - Turn off Request Attributes to avoid Chelsio T5 Completion erratum (Hariprasad Shenai)"

    * tag 'pci-v4.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (94 commits)
    PCI: altera: Add Altera PCIe MSI driver
    PCI: hisi: Add HiSilicon SoC Hip05 PCIe driver
    PCI: layerscape: Add ls_pcie_msi_host_init()
    PCI: layerscape: Add support for LS1043a and LS2080a
    PCI: layerscape: Remove unused fields from struct ls_pcie
    PCI: layerscape: Update ls_add_pcie_port()
    PCI: layerscape: Factor out SCFG related function
    PCI: layerscape: Ignore PCIe controllers in Endpoint mode
    PCI: layerscape: Remove ls_pcie_establish_link()
    PCI: designware: Make "clocks" and "clock-names" optional DT properties
    PCI: designware: Make driver arch-agnostic
    ARM/PCI: Replace pci_sys_data->align_resource with global function pointer
    PCI: designware: Use of_pci_get_host_bridge_resources() to parse DT
    Revert "PCI: designware: Program ATU with untranslated address"
    PCI: designware: Move calculation of bus addresses to DRA7xx
    PCI: designware: Make "num-lanes" an optional DT property
    PCI: designware: Require config accesses to be naturally aligned
    PCI: designware: Simplify dw_pcie_cfg_read/write() interfaces
    PCI: designware: Use exact access size in dw_pcie_cfg_read()
    PCI: spear: Fix dw_pcie_cfg_read/write() usage
    ...

    Linus Torvalds
     

06 Nov, 2015

9 commits

  • Pull powerpc updates from Michael Ellerman:

    - Kconfig: remove BE-only platforms from LE kernel build from Boqun
    Feng
    - Refresh ps3_defconfig from Geoff Levand
    - Emit GNU & SysV hashes for the vdso from Michael Ellerman
    - Define an enum for the bolted SLB indexes from Anshuman Khandual
    - Use a local to avoid multiple calls to get_slb_shadow() from Michael
    Ellerman
    - Add gettimeofday() benchmark from Michael Neuling
    - Avoid link stack corruption in __get_datapage() from Michael Neuling
    - Add virt_to_pfn and use this instead of opencoding from Aneesh Kumar
    K.V
    - Add ppc64le_defconfig from Michael Ellerman
    - pseries: extract of_helpers module from Andy Shevchenko
    - Correct string length in pseries_of_derive_parent() from Nathan
    Fontenot
    - Free the MSI bitmap if it was slab allocated from Denis Kirjanov
    - Shorten irq_chip name for the SIU from Christophe Leroy
    - Wait 1s for secondaries to enter OPAL during kexec from Samuel
    Mendoza-Jonas
    - Fix _ALIGN_* errors due to type difference, from Aneesh Kumar K.V
    - powerpc/pseries/hvcserver: don't memset pi_buff if it is null from
    Colin Ian King
    - Disable hugepd for 64K page size, from Aneesh Kumar K.V
    - Differentiate between hugetlb and THP during page walk from Aneesh
    Kumar K.V
    - Make PCI non-optional for pseries from Michael Ellerman
    - Individual System V IPC system calls from Sam bobroff
    - Add selftest of unmuxed IPC calls from Michael Ellerman
    - discard .exit.data at runtime from Stephen Rothwell
    - Delete old orphaned PrPMC 280/2800 DTS and boot file, from Paul
    Gortmaker
    - Use of_get_next_parent to simplify code from Christophe Jaillet
    - Paginate some xmon output from Sam bobroff
    - Add some more elements to the xmon PACA dump from Michael Ellerman
    - Allow the tm-syscall selftest to build with old headers from Michael
    Ellerman
    - Run EBB selftests only on POWER8 from Denis Kirjanov
    - Drop CONFIG_TUNE_CELL in favour of CONFIG_CELL_CPU from Michael
    Ellerman
    - Avoid reference to potentially freed memory in prom.c from Christophe
    Jaillet
    - Quieten boot wrapper output with run_cmd from Geoff Levand
    - EEH fixes and cleanups from Gavin Shan
    - Fix recursive fenced PHB on Broadcom shiner adapter from Gavin Shan
    - Use of_get_next_parent() in of_get_ibm_chip_id() from Michael
    Ellerman
    - Fix section mismatch warning in msi_bitmap_alloc() from Denis
    Kirjanov
    - Fix ps3-lpm white space from Rudhresh Kumar J
    - Fix ps3-vuart null dereference from Colin King
    - nvram: Add missing kfree in error path from Christophe Jaillet
    - nvram: Fix function name in some errors messages, from Christophe
    Jaillet
    - drivers/macintosh: adb: fix misleading Kconfig help text from Aaro
    Koskinen
    - agp/uninorth: fix a memleak in create_gatt_table from Denis Kirjanov
    - cxl: Free virtual PHB when removing from Andrew Donnellan
    - scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target from
    Michael Ellerman
    - scripts/kconfig/Makefile: Fix KBUILD_DEFCONFIG check when building
    with O= from Michael Ellerman
    - Freescale updates from Scott: Highlights include 64-bit book3e
    kexec/kdump support, a rework of the qoriq clock driver, device tree
    changes including qoriq fman nodes, support for a new 85xx board, and
    some fixes.
    - MPC5xxx updates from Anatolij: Highlights include a driver for
    MPC512x LocalPlus Bus FIFO with its device tree binding
    documentation, mpc512x device tree updates and some minor fixes.

    * tag 'powerpc-4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (106 commits)
    powerpc/msi: Fix section mismatch warning in msi_bitmap_alloc()
    powerpc/prom: Use of_get_next_parent() in of_get_ibm_chip_id()
    powerpc/pseries: Correct string length in pseries_of_derive_parent()
    powerpc/e6500: hw tablewalk: make sure we invalidate and write to the same tlb entry
    powerpc/mpc85xx: Add FSL QorIQ DPAA FMan support to the SoC device tree(s)
    powerpc/mpc85xx: Create dts components for the FSL QorIQ DPAA FMan
    powerpc/fsl: Add #clock-cells and clockgen label to clockgen nodes
    powerpc: handle error case in cpm_muram_alloc()
    powerpc: mpic: use IRQCHIP_SKIP_SET_WAKE instead of redundant mpic_irq_set_wake
    powerpc/book3e-64: Enable kexec
    powerpc/book3e-64/kexec: Set "r4 = 0" when entering spinloop
    powerpc/booke: Only use VIRT_PHYS_OFFSET on booke32
    powerpc/book3e-64/kexec: Enable SMP release
    powerpc/book3e-64/kexec: create an identity TLB mapping
    powerpc/book3e-64: Don't limit paca to 256 MiB
    powerpc/book3e/kdump: Enable crash_kexec_wait_realmode
    powerpc/book3e: support CONFIG_RELOCATABLE
    powerpc/booke64: Fix args to copy_and_flush
    powerpc/book3e-64: rename interrupt_end_book3e with __end_interrupts
    powerpc/e6500: kexec: Handle hardware threads
    ...

    Linus Torvalds
     
  • Merge patch-bomb from Andrew Morton:

    - inotify tweaks

    - some ocfs2 updates (many more are awaiting review)

    - various misc bits

    - kernel/watchdog.c updates

    - Some of mm. I have a huge number of MM patches this time and quite a
    lot of it is quite difficult and much will be held over to next time.

    * emailed patches from Andrew Morton : (162 commits)
    selftests: vm: add tests for lock on fault
    mm: mlock: add mlock flags to enable VM_LOCKONFAULT usage
    mm: introduce VM_LOCKONFAULT
    mm: mlock: add new mlock system call
    mm: mlock: refactor mlock, munlock, and munlockall code
    kasan: always taint kernel on report
    mm, slub, kasan: enable user tracking by default with KASAN=y
    kasan: use IS_ALIGNED in memory_is_poisoned_8()
    kasan: Fix a type conversion error
    lib: test_kasan: add some testcases
    kasan: update reference to kasan prototype repo
    kasan: move KASAN_SANITIZE in arch/x86/boot/Makefile
    kasan: various fixes in documentation
    kasan: update log messages
    kasan: accurately determine the type of the bad access
    kasan: update reported bug types for kernel memory accesses
    kasan: update reported bug types for not user nor kernel memory accesses
    mm/kasan: prevent deadlock in kasan reporting
    mm/kasan: don't use kasan shadow pointer in generic functions
    mm/kasan: MODULE_VADDR is not available on all archs
    ...

    Linus Torvalds
     
  • In static micro-threading modes, the dynamic micro-threading code
    is supposed to be disabled, because subcores can't make independent
    decisions about what micro-threading mode to put the core in - there is
    only one micro-threading mode for the whole core. The code that
    implements dynamic micro-threading checks for this, except that the
    check was missed in one case. This means that it is possible for a
    subcore in static 2-way micro-threading mode to try to put the core
    into 4-way micro-threading mode, which usually leads to stuck CPUs,
    spinlock lockups, and other stalls in the host.

    The problem was in the can_split_piggybacked_subcores() function, which
    should always return false if the system is in a static micro-threading
    mode. This fixes the problem by making can_split_piggybacked_subcores()
    use subcore_config_ok() for its checks, as subcore_config_ok() includes
    the necessary check for the static micro-threading modes.

    Credit to Gautham Shenoy for working out that the reason for the hangs
    and stalls we were seeing was that we were trying to do dynamic 4-way
    micro-threading while we were in static 2-way mode.

    Fixes: b4deba5c41e9
    Cc: vger@stable.kernel.org # v4.3
    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • When handling a hypervisor data or instruction storage interrupt (HDSI
    or HISI), we look up the SLB entry for the address being accessed in
    order to translate the effective address to a virtual address which can
    be looked up in the guest HPT. This lookup can occasionally fail due
    to the guest replacing an SLB entry without invalidating the evicted
    SLB entry. In this situation an ERAT (effective to real address
    translation cache) entry can persist and be used by the hardware even
    though there is no longer a corresponding SLB entry.

    Previously we would just deliver a data or instruction storage interrupt
    (DSI or ISI) to the guest in this case. However, this is not correct
    and has been observed to cause guests to crash, typically with a
    data storage protection interrupt on a store to the vmemmap area.

    Instead, what we do now is to synthesize a data or instruction segment
    interrupt. That should cause the guest to reload an appropriate entry
    into the SLB and retry the faulting instruction. If it still faults,
    we should find an appropriate SLB entry next time and be able to handle
    the fault.

    Tested-by: Thomas Huth
    Reviewed-by: David Gibson
    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • The previous patch introduced a flag that specified pages in a VMA should
    be placed on the unevictable LRU, but they should not be made present when
    the area is created. This patch adds the ability to set this state via
    the new mlock system calls.

    We add MLOCK_ONFAULT for mlock2 and MCL_ONFAULT for mlockall.
    MLOCK_ONFAULT will set the VM_LOCKONFAULT modifier for VM_LOCKED.
    MCL_ONFAULT should be used as a modifier to the two other mlockall flags.
    When used with MCL_CURRENT, all current mappings will be marked with
    VM_LOCKED | VM_LOCKONFAULT. When used with MCL_FUTURE, the mm->def_flags
    will be marked with VM_LOCKED | VM_LOCKONFAULT. When used with both
    MCL_CURRENT and MCL_FUTURE, all current mappings and mm->def_flags will be
    marked with VM_LOCKED | VM_LOCKONFAULT.

    Prior to this patch, mlockall() will unconditionally clear the
    mm->def_flags any time it is called without MCL_FUTURE. This behavior is
    maintained after adding MCL_ONFAULT. If a call to mlockall(MCL_FUTURE) is
    followed by mlockall(MCL_CURRENT), the mm->def_flags will be cleared and
    new VMAs will be unlocked. This remains true with or without MCL_ONFAULT
    in either mlockall() invocation.

    munlock() will unconditionally clear both vma flags. munlockall()
    unconditionally clears for VMA flags on all VMAs and in the mm->def_flags
    field.

    Signed-off-by: Eric B Munson
    Acked-by: Michal Hocko
    Acked-by: Vlastimil Babka
    Cc: Jonathan Corbet
    Cc: Catalin Marinas
    Cc: Geert Uytterhoeven
    Cc: Guenter Roeck
    Cc: Heiko Carstens
    Cc: Kirill A. Shutemov
    Cc: Michael Kerrisk
    Cc: Ralf Baechle
    Cc: Shuah Khan
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric B Munson
     
  • With the setup_nr_nodes(), we have already initialized
    node_possible_map. So it is safe to use for_each_node here.

    There are many places in the kernel that use hardcoded 'for' loop with
    nr_node_ids, because all other architectures have numa nodes populated
    serially. That should be reason we had maintained the same for
    powerpc.

    But, since sparse numa node ids possible on powerpc, we unnecessarily
    allocate memory for non existent numa nodes.

    For e.g., on a system with 0,1,16,17 as numa nodes nr_node_ids=18 and
    we allocate memory for nodes 2-14. This patch we allocate memory for
    only existing numa nodes.

    The patch is boot tested on a 4 node tuleta, confirming with printks
    that it works as expected.

    Signed-off-by: Raghavendra K T
    Cc: Vladimir Davydov
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Anton Blanchard
    Cc: Nishanth Aravamudan
    Cc: Greg Kurz
    Cc: Grant Likely
    Cc: Nikunj A Dadhania
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Raghavendra K T
     
  • probe_kernel_address() is basically the same as the (later added)
    probe_kernel_read().

    The return value on EFAULT is a bit different: probe_kernel_address()
    returns number-of-bytes-not-copied whereas probe_kernel_read() returns
    -EFAULT. All callers have been checked, none cared.

    probe_kernel_read() can be overridden by the architecture whereas
    probe_kernel_address() cannot. parisc, blackfin and um do this, to insert
    additional checking. Hence this patch possibly fixes obscure bugs,
    although there are only two probe_kernel_address() callsites outside
    arch/.

    My first attempt involved removing probe_kernel_address() entirely and
    converting all callsites to use probe_kernel_read() directly, but that got
    tiresome.

    This patch shrinks mm/slab_common.o by 218 bytes. For a single
    probe_kernel_address() callsite.

    Cc: Steven Miao
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Cc: "James E.J. Bottomley"
    Cc: Helge Deller
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Pull KVM updates from Paolo Bonzini:
    "First batch of KVM changes for 4.4.

    s390:
    A bunch of fixes and optimizations for interrupt and time handling.

    PPC:
    Mostly bug fixes.

    ARM:
    No big features, but many small fixes and prerequisites including:

    - a number of fixes for the arch-timer

    - introducing proper level-triggered semantics for the arch-timers

    - a series of patches to synchronously halt a guest (prerequisite
    for IRQ forwarding)

    - some tracepoint improvements

    - a tweak for the EL2 panic handlers

    - some more VGIC cleanups getting rid of redundant state

    x86:
    Quite a few changes:

    - support for VT-d posted interrupts (i.e. PCI devices can inject
    interrupts directly into vCPUs). This introduces a new
    component (in virt/lib/) that connects VFIO and KVM together.
    The same infrastructure will be used for ARM interrupt
    forwarding as well.

    - more Hyper-V features, though the main one Hyper-V synthetic
    interrupt controller will have to wait for 4.5. These will let
    KVM expose Hyper-V devices.

    - nested virtualization now supports VPID (same as PCID but for
    vCPUs) which makes it quite a bit faster

    - for future hardware that supports NVDIMM, there is support for
    clflushopt, clwb, pcommit

    - support for "split irqchip", i.e. LAPIC in kernel +
    IOAPIC/PIC/PIT in userspace, which reduces the attack surface of
    the hypervisor

    - obligatory smattering of SMM fixes

    - on the guest side, stable scheduler clock support was rewritten
    to not require help from the hypervisor"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (123 commits)
    KVM: VMX: Fix commit which broke PML
    KVM: x86: obey KVM_X86_QUIRK_CD_NW_CLEARED in kvm_set_cr0()
    KVM: x86: allow RSM from 64-bit mode
    KVM: VMX: fix SMEP and SMAP without EPT
    KVM: x86: move kvm_set_irq_inatomic to legacy device assignment
    KVM: device assignment: remove pointless #ifdefs
    KVM: x86: merge kvm_arch_set_irq with kvm_set_msi_inatomic
    KVM: x86: zero apic_arb_prio on reset
    drivers/hv: share Hyper-V SynIC constants with userspace
    KVM: x86: handle SMBASE as physical address in RSM
    KVM: x86: add read_phys to x86_emulate_ops
    KVM: x86: removing unused variable
    KVM: don't pointlessly leave KVM_COMPAT=y in non-KVM configs
    KVM: arm/arm64: Merge vgic_set_lr() and vgic_sync_lr_elrsr()
    KVM: arm/arm64: Clean up vgic_retire_lr() and surroundings
    KVM: arm/arm64: Optimize away redundant LR tracking
    KVM: s390: use simple switch statement as multiplexer
    KVM: s390: drop useless newline in debugging data
    KVM: s390: SCA must not cross page boundaries
    KVM: arm: Do not indent the arguments of DECLARE_BITMAP
    ...

    Linus Torvalds
     
  • Pull security subsystem update from James Morris:
    "This is mostly maintenance updates across the subsystem, with a
    notable update for TPM 2.0, and addition of Jarkko Sakkinen as a
    maintainer of that"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (40 commits)
    apparmor: clarify CRYPTO dependency
    selinux: Use a kmem_cache for allocation struct file_security_struct
    selinux: ioctl_has_perm should be static
    selinux: use sprintf return value
    selinux: use kstrdup() in security_get_bools()
    selinux: use kmemdup in security_sid_to_context_core()
    selinux: remove pointless cast in selinux_inode_setsecurity()
    selinux: introduce security_context_str_to_sid
    selinux: do not check open perm on ftruncate call
    selinux: change CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE default
    KEYS: Merge the type-specific data with the payload data
    KEYS: Provide a script to extract a module signature
    KEYS: Provide a script to extract the sys cert list from a vmlinux file
    keys: Be more consistent in selection of union members used
    certs: add .gitignore to stop git nagging about x509_certificate_list
    KEYS: use kvfree() in add_key
    Smack: limited capability for changing process label
    TPM: remove unnecessary little endian conversion
    vTPM: support little endian guests
    char: Drop owner assignment from i2c_driver
    ...

    Linus Torvalds
     

05 Nov, 2015

2 commits

  • MPC5xxx updates from Anatolij:

    "Highlights include a driver for MPC512x LocalPlus Bus FIFO with its
    device tree binding documentation, mpc512x device tree updates and some
    minor fixes."

    Michael Ellerman
     
  • Pull networking updates from David Miller:

    Changes of note:

    1) Allow to schedule ICMP packets in IPVS, from Alex Gartrell.

    2) Provide FIB table ID in ipv4 route dumps just as ipv6 does, from
    David Ahern.

    3) Allow the user to ask for the statistics to be filtered out of
    ipv4/ipv6 address netlink dumps. From Sowmini Varadhan.

    4) More work to pass the network namespace context around deep into
    various packet path APIs, starting with the netfilter hooks. From
    Eric W Biederman.

    5) Add layer 2 TX/RX checksum offloading to qeth driver, from Thomas
    Richter.

    6) Use usec resolution for SYN/ACK RTTs in TCP, from Yuchung Cheng.

    7) Support Very High Throughput in wireless MESH code, from Bob
    Copeland.

    8) Allow setting the ageing_time in switchdev/rocker. From Scott
    Feldman.

    9) Properly autoload L2TP type modules, from Stephen Hemminger.

    10) Fix and enable offload features by default in 8139cp driver, from
    David Woodhouse.

    11) Support both ipv4 and ipv6 sockets in a single vxlan device, from
    Jiri Benc.

    12) Fix CWND limiting of thin streams in TCP, from Bendik Rønning
    Opstad.

    13) Fix IPSEC flowcache overflows on large systems, from Steffen
    Klassert.

    14) Convert bridging to track VLANs using rhashtable entries rather than
    a bitmap. From Nikolay Aleksandrov.

    15) Make TCP listener handling completely lockless, this is a major
    accomplishment. Incoming request sockets now live in the
    established hash table just like any other socket too.

    From Eric Dumazet.

    15) Provide more bridging attributes to netlink, from Nikolay
    Aleksandrov.

    16) Use hash based algorithm for ipv4 multipath routing, this was very
    long overdue. From Peter Nørlund.

    17) Several y2038 cures, mostly avoiding timespec. From Arnd Bergmann.

    18) Allow non-root execution of EBPF programs, from Alexei Starovoitov.

    19) Support SO_INCOMING_CPU as setsockopt, from Eric Dumazet. This
    influences the port binding selection logic used by SO_REUSEPORT.

    20) Add ipv6 support to VRF, from David Ahern.

    21) Add support for Mellanox Spectrum switch ASIC, from Jiri Pirko.

    22) Add rtl8xxxu Realtek wireless driver, from Jes Sorensen.

    23) Implement RACK loss recovery in TCP, from Yuchung Cheng.

    24) Support multipath routes in MPLS, from Roopa Prabhu.

    25) Fix POLLOUT notification for listening sockets in AF_UNIX, from Eric
    Dumazet.

    26) Add new QED Qlogic river, from Yuval Mintz, Manish Chopra, and
    Sudarsana Kalluru.

    27) Don't fetch timestamps on AF_UNIX sockets, from Hannes Frederic
    Sowa.

    28) Support ipv6 geneve tunnels, from John W Linville.

    29) Add flood control support to switchdev layer, from Ido Schimmel.

    30) Fix CHECKSUM_PARTIAL handling of potentially fragmented frames, from
    Hannes Frederic Sowa.

    31) Support persistent maps and progs in bpf, from Daniel Borkmann.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1790 commits)
    sh_eth: use DMA barriers
    switchdev: respect SKIP_EOPNOTSUPP flag in case there is no recursion
    net: sched: kill dead code in sch_choke.c
    irda: Delete an unnecessary check before the function call "irlmp_unregister_service"
    net: dsa: mv88e6xxx: include DSA ports in VLANs
    net: dsa: mv88e6xxx: disable SA learning for DSA and CPU ports
    net/core: fix for_each_netdev_feature
    vlan: Invoke driver vlan hooks only if device is present
    arcnet/com20020: add LEDS_CLASS dependency
    bpf, verifier: annotate verbose printer with __printf
    dp83640: Only wait for timestamps for packets with timestamping enabled.
    ptp: Change ptp_class to a proper bitmask
    dp83640: Prune rx timestamp list before reading from it
    dp83640: Delay scheduled work.
    dp83640: Include hash in timestamp/packet matching
    ipv6: fix tunnel error handling
    net/mlx5e: Fix LSO vlan insertion
    net/mlx5e: Re-eanble client vlan TX acceleration
    net/mlx5e: Return error in case mlx5e_set_features() fails
    net/mlx5e: Don't allow more than max supported channels
    ...

    Linus Torvalds
     

04 Nov, 2015

3 commits

  • KVM/ARM Changes for v4.4-rc1

    Includes a number of fixes for the arch-timer, introducing proper
    level-triggered semantics for the arch-timers, a series of patches to
    synchronously halt a guest (prerequisite for IRQ forwarding), some tracepoint
    improvements, a tweak for the EL2 panic handlers, some more VGIC cleanups
    getting rid of redundant state, and finally a stylistic change that gets rid of
    some ctags warnings.

    Conflicts:
    arch/x86/include/asm/kvm_host.h

    Paolo Bonzini
     
  • Pull perf updates from Ingo Molnar:
    "Kernel side changes:

    - Improve accuracy of perf/sched clock on x86. (Adrian Hunter)

    - Intel DS and BTS updates. (Alexander Shishkin)

    - Intel cstate PMU support. (Kan Liang)

    - Add group read support to perf_event_read(). (Peter Zijlstra)

    - Branch call hardware sampling support, implemented on x86 and
    PowerPC. (Stephane Eranian)

    - Event groups transactional interface enhancements. (Sukadev
    Bhattiprolu)

    - Enable proper x86/intel/uncore PMU support on multi-segment PCI
    systems. (Taku Izumi)

    - ... misc fixes and cleanups.

    The perf tooling team was very busy again with 200+ commits, the full
    diff doesn't fit into lkml size limits. Here's an (incomplete) list
    of the tooling highlights:

    New features:

    - Change the default event used in all tools (record/top): use the
    most precise "cycles" hw counter available, i.e. when the user
    doesn't specify any event, it will try using cycles:ppp, cycles:pp,
    etc and fall back transparently until it finds a working counter.
    (Arnaldo Carvalho de Melo)

    - Integration of perf with eBPF that, given an eBPF .c source file
    (or .o file built for the 'bpf' target with clang), will get it
    automatically built, validated and loaded into the kernel via the
    sys_bpf syscall, which can then be used and seen using 'perf trace'
    and other tools.

    (Wang Nan)

    Various user interface improvements:

    - Automatic pager invocation on long help output. (Namhyung Kim)

    - Search for more options when passing args to -h, e.g.: (Arnaldo
    Carvalho de Melo)

    $ perf report -h interface

    Usage: perf report []

    --gtk Use the GTK2 interface
    --stdio Use the stdio interface
    --tui Use the TUI interface

    - Show ordered command line options when -h is used or when an
    unknown option is specified. (Arnaldo Carvalho de Melo)

    - If options are passed after -h, show just its descriptions, not all
    options. (Arnaldo Carvalho de Melo)

    - Implement column based horizontal scrolling in the hists browser
    (top, report), making it possible to use the TUI for things like
    'perf mem report' where there are many more columns than can fit in
    a terminal. (Arnaldo Carvalho de Melo)

    - Enhance the error reporting of tracepoint event parsing, e.g.:

    $ oldperf record -e sched:sched_switc usleep 1
    event syntax error: 'sched:sched_switc'
    \___ unknown tracepoint
    Run 'perf list' for a list of valid events

    Now we get the much nicer:

    $ perf record -e sched:sched_switc ls
    event syntax error: 'sched:sched_switc'
    \___ can't access trace events

    Error: No permissions to read /sys/kernel/debug/tracing/events/sched/sched_switc
    Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug'

    And after we have those mount point permissions fixed:

    $ perf record -e sched:sched_switc ls
    event syntax error: 'sched:sched_switc'
    \___ unknown tracepoint

    Error: File /sys/kernel/debug/tracing/events/sched/sched_switc not found.
    Hint: Perhaps this kernel misses some CONFIG_ setting to enable this feature?.

    I.e. basically now the event parsing routing uses the strerror_open()
    routines introduced by and used in 'perf trace' work. (Jiri Olsa)

    - Fail properly when pattern matching fails to find a tracepoint,
    i.e. '-e non:existent' was being correctly handled, with a proper
    error message about that not being a valid event, but '-e
    non:existent*' wasn't, fix it. (Jiri Olsa)

    - Do event name substring search as last resort in 'perf list'.
    (Arnaldo Carvalho de Melo)

    E.g.:

    # perf list clock

    List of pre-defined events (to be used in -e):

    cpu-clock [Software event]
    task-clock [Software event]

    uncore_cbox_0/clockticks/ [Kernel PMU event]
    uncore_cbox_1/clockticks/ [Kernel PMU event]

    kvm:kvm_pvclock_update [Tracepoint event]
    kvm:kvm_update_master_clock [Tracepoint event]
    power:clock_disable [Tracepoint event]
    power:clock_enable [Tracepoint event]
    power:clock_set_rate [Tracepoint event]
    syscalls:sys_enter_clock_adjtime [Tracepoint event]
    syscalls:sys_enter_clock_getres [Tracepoint event]
    syscalls:sys_enter_clock_gettime [Tracepoint event]
    syscalls:sys_enter_clock_nanosleep [Tracepoint event]
    syscalls:sys_enter_clock_settime [Tracepoint event]
    syscalls:sys_exit_clock_adjtime [Tracepoint event]
    syscalls:sys_exit_clock_getres [Tracepoint event]
    syscalls:sys_exit_clock_gettime [Tracepoint event]
    syscalls:sys_exit_clock_nanosleep [Tracepoint event]
    syscalls:sys_exit_clock_settime [Tracepoint event]

    Intel PT hardware tracing enhancements:

    - Accept a zero --itrace period, meaning "as often as possible". In
    the case of Intel PT that is the same as a period of 1 and a unit
    of 'instructions' (i.e. --itrace=i1i). (Adrian Hunter)

    - Harmonize itrace's synthesized callchains with the existing
    --max-stack tool option. (Adrian Hunter)

    - Allow time to be displayed in nanoseconds in 'perf script'.
    (Adrian Hunter)

    - Fix potential infinite loop when handling Intel PT timestamps.
    (Adrian Hunter)

    - Slighly improve Intel PT debug logging. (Adrian Hunter)

    - Warn when AUX data has been lost, just like when processing
    PERF_RECORD_LOST. (Adrian Hunter)

    - Further document export-to-postgresql.py script. (Adrian Hunter)

    - Add option to synthesize branch stack from auxtrace data. (Adrian
    Hunter)

    Misc notable changes:

    - Switch the default callchain output mode to 'graph,0.5,caller', to
    make it look like the default for other tools, reducing the
    learning curve for people used to 'caller' based viewing. (Arnaldo
    Carvalho de Melo)

    - various call chain usability enhancements. (Namhyung Kim)

    - Introduce the 'P' event modifier, meaning 'max precision level,
    please', i.e.:

    $ perf record -e cycles:P usleep 1

    Is now similar to:

    $ perf record usleep 1

    Useful, for instance, when specifying multiple events. (Jiri Olsa)

    - Add 'socket' sort entry, to sort by the processor socket in 'perf
    top' and 'perf report'. (Kan Liang)

    - Introduce --socket-filter to 'perf report', for filtering by
    processor socket. (Kan Liang)

    - Add new "Zoom into Processor Socket" operation in the perf hists
    browser, used in 'perf top' and 'perf report'. (Kan Liang)

    - Allow probing on kmodules without DWARF. (Masami Hiramatsu)

    - Fix 'perf probe -l' for probes added to kernel module functions.
    (Masami Hiramatsu)

    - Preparatory work for the 'perf stat record' feature that will allow
    generating perf.data files with counting data in addition to the
    sampling mode we have now (Jiri Olsa)

    - Update libtraceevent KVM plugin. (Paolo Bonzini)

    - ... plus lots of other enhancements that I failed to list properly,
    by: Adrian Hunter, Alexander Shishkin, Andi Kleen, Andrzej Hajda,
    Arnaldo Carvalho de Melo, Dima Kogan, Don Zickus, Geliang Tang, He
    Kuang, Huaitong Han, Ingo Molnar, Jan Stancek, Jiri Olsa, Kan
    Liang, Kirill Tkhai, Masami Hiramatsu, Matt Fleming, Namhyung Kim,
    Paolo Bonzini, Peter Zijlstra, Rabin Vincent, Scott Wood, Stephane
    Eranian, Sukadev Bhattiprolu, Taku Izumi, Vaishali Thakkar, Wang
    Nan, Yang Shi and Yunlong Song"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (260 commits)
    perf unwind: Pass symbol source to libunwind
    tools build: Fix libiberty feature detection
    perf tools: Compile scriptlets to BPF objects when passing '.c' to --event
    perf record: Add clang options for compiling BPF scripts
    perf bpf: Attach eBPF filter to perf event
    perf tools: Make sure fixdep is built before libbpf
    perf script: Enable printing of branch stack
    perf trace: Add cmd string table to decode sys_bpf first arg
    perf bpf: Collect perf_evsel in BPF object files
    perf tools: Load eBPF object into kernel
    perf tools: Create probe points for BPF programs
    perf tools: Enable passing bpf object file to --event
    perf ebpf: Add the libbpf glue
    perf tools: Make perf depend on libbpf
    perf symbols: Fix endless loop in dso__split_kallsyms_for_kcore
    perf tools: Enable pre-event inherit setting by config terms
    perf symbols: we can now read separate debug-info files based on a build ID
    perf symbols: Fix type error when reading a build-id
    perf tools: Search for more options when passing args to -h
    perf stat: Cache aggregated map entries in extra cpumap
    ...

    Linus Torvalds
     
  • Pull irq updates from Thomas Gleixner:
    "The irq departement delivers:

    - Rework the irqdomain core infrastructure to accomodate ACPI based
    systems. This is required to support ARM64 without creating
    artificial device tree nodes.

    - Sanitize the ACPI based ARM GIC initialization by making use of the
    new firmware independent irqdomain core

    - Further improvements to the generic MSI management

    - Generalize the irq migration on CPU hotplug

    - Improvements to the threaded interrupt infrastructure

    - Allow the migration of "chained" low level interrupt handlers

    - Allow optional force masking of interrupts in disable_irq[_nosysnc]

    - Support for two new interrupt chips - Sigh!

    - A larger set of errata fixes for ARM gicv3

    - The usual pile of fixes, updates, improvements and cleanups all
    over the place"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)
    Document that IRQ_NONE should be returned when IRQ not actually handled
    PCI/MSI: Allow the MSI domain to be device-specific
    PCI: Add per-device MSI domain hook
    of/irq: Use the msi-map property to provide device-specific MSI domain
    of/irq: Split of_msi_map_rid to reuse msi-map lookup
    irqchip/gic-v3-its: Parse new version of msi-parent property
    PCI/MSI: Use of_msi_get_domain instead of open-coded "msi-parent" parsing
    of/irq: Use of_msi_get_domain instead of open-coded "msi-parent" parsing
    of/irq: Add support code for multi-parent version of "msi-parent"
    irqchip/gic-v3-its: Add handling of PCI requester id.
    PCI/MSI: Add helper function pci_msi_domain_get_msi_rid().
    of/irq: Add new function of_msi_map_rid()
    Docs: dt: Add PCI MSI map bindings
    irqchip/gic-v2m: Add support for multiple MSI frames
    irqchip/gic-v3: Fix translation of LPIs after conversion to irq_fwspec
    irqchip/mxs: Add Alphascale ASM9260 support
    irqchip/mxs: Prepare driver for hardware with different offsets
    irqchip/mxs: Panic if ioremap or domain creation fails
    irqdomain: Documentation updates
    irqdomain/msi: Use fwnode instead of of_node
    ...

    Linus Torvalds
     

02 Nov, 2015

1 commit


01 Nov, 2015

1 commit


28 Oct, 2015

18 commits

  • Pull powerpc fix from Michael Ellerman:
    - powerpc/dma: dma_set_coherent_mask() should not be GPL only from Ben

    * tag 'powerpc-4.3-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc/dma: dma_set_coherent_mask() should not be GPL only

    Linus Torvalds
     
  • When turning this from inline to an exported function I was a bit
    over-eager and made it GPL only. This prevents the use of pretty much
    all non-GPL PCI driver which is a bit over the top. Let's bring it
    back in line with other architecture.

    Fixes: 817820b0226a ("powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask")
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Michael Ellerman

    Benjamin Herrenschmidt
     
  • Building with CONFIG_DEBUG_SECTION_MISMATCH gives the following warning:

    The function .msi_bitmap_alloc() references
    the function __init .memblock_virt_alloc_try_nid().

    Memory allocation in msi_bitmap_alloc() uses either slab allocator or
    memblock boot time allocator depending on slab_is_available().

    So the section mismatch warning is correct, but in practice there is no
    bug so mark msi_bitmap_alloc() as __init_refok.

    Signed-off-by: Denis Kirjanov
    [mpe: Flesh out change log a bit]
    Signed-off-by: Michael Ellerman

    Denis Kirjanov
     
  • Use of_get_next_parent() to simplifiy the logic in of_get_ibm_chip_id().

    Original-by: Christophe JAILLET
    Signed-off-by: Michael Ellerman

    Michael Ellerman
     
  • Commit a030e1e4bbd085bbcfd0a23f8d355fcd41f39bed make a change to use
    kstrndup() instead of kmalloc() + strlcpy() in the pseries_of_derive_parent()
    routine that introduces a subtle change in the parent path name generated.
    The kstrndup() routine will copy n characters followed by a terminating null,
    whereas strlcpy() will copy n-1 characters and add a terminating null.

    This slight difference results in having a parent path that includes the
    tailing '/' character, "/cpus/" vs. "/cpus". This then causes the subsequent
    call to of_find_node_by_path() to fail, and in the case of DLPAR add
    operations the DLPAR request fails.

    This patch decrements the pointer returned from kbasename() to point to the
    '/' character before the base name instead of the base name. This then
    adjusts the string length calculations to not include the trailing '/'
    in the parent path name.

    Signed-off-by: Nathan Fontenot
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Michael Ellerman

    Nathan Fontenot
     
  • In order to workaround Erratum A-008139, we have to invalidate the
    tlb entry with tlbilx before overwriting. Due to the performance
    consideration, we don't add any memory barrier when acquire/release
    the tcd lock. This means the two load instructions for esel_next do
    have the possibility to return different value. This is definitely
    not acceptable due to the Erratum A-008139. We have two options to
    fix this issue:
    a) Add memory barrier when acquire/release tcd lock to order the
    load/store to esel_next.
    b) Just make sure to invalidate and write to the same tlb entry and
    tolerate the race that we may get the wrong value and overwrite
    the tlb entry just updated by the other thread.

    We observe better performance using option b. So reserve an additional
    register to save the value of the esel_next.

    Signed-off-by: Kevin Hao
    Signed-off-by: Scott Wood

    Kevin Hao
     
  • Based on prior work by Andy Fleming

    Signed-off-by: Shruti Kanetkar
    Signed-off-by: Emil Medve
    Signed-off-by: Igal Liberman
    Signed-off-by: Scott Wood

    Igal Liberman
     
  • Based on prior work by Andy Fleming

    Signed-off-by: Shruti Kanetkar
    Signed-off-by: Emil Medve
    Signed-off-by: Igal Liberman
    Signed-off-by: Scott Wood

    Igal Liberman
     
  • This allows new-style clock references to be used, which is needed for
    fman. The old clock nodes will be removed and all clock references
    converted to new-style once the qoriq-cpufreq driver is updated to stop
    depending on the old-style references in cpu nodes.

    Signed-off-by: Scott Wood

    Scott Wood
     
  • This is a major overhaul of the clk-qoriq driver, which I'm merging
    via PPC with Stephen Boyd's ack in order to apply subsequent PPC patches
    that depend on it.

    Scott Wood
     
  • rh_alloc() returns (unsigned long)-ERRxx on error, which may
    result in overwriting memory outside the MURAM AREA.

    Signed-off-by: Christophe Leroy
    Signed-off-by: Scott Wood

    Christophe Leroy
     
  • mpic_irq_set_wake return -ENXIO for non FSL MPIC and sets IRQF_NO_SUSPEND
    flag for FSL ones. enable_irq_wake already returns -ENXIO if irq_set_wak
    is not implemented. Also there's no need to set the IRQF_NO_SUSPEND flag
    as it doesn't guarantee wakeup for that interrupt.

    This patch removes the redundant mpic_irq_set_wake and sets the
    IRQCHIP_SKIP_SET_WAKE for only FSL MPIC.

    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Scott Wood
    Cc: Hongtao Jia
    Cc: Marc Zyngier
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Sudeep Holla
    Acked-by: Scott Wood
    Signed-off-by: Scott Wood

    Sudeep Holla
     
  • Allow KEXEC for book3e, and bypass or convert non-book3e stuff
    in kexec code.

    Signed-off-by: Tiejun Chen
    [scottwood@freescale.com: move code to minimize diff, and cleanup]
    Signed-off-by: Scott Wood

    Tiejun Chen
     
  • book3e_secondary_core_init will only create a TLB entry if r4 = 0,
    so do so.

    Signed-off-by: Scott Wood

    Scott Wood
     
  • The way VIRT_PHYS_OFFSET is not correct on book3e-64, because
    it does not account for CONFIG_RELOCATABLE other than via the
    32-bit-only virt_phys_offset.

    book3e-64 can (and if the comment about a GCC miscompilation is still
    relevant, should) use the normal ppc64 __va/__pa.

    At this point, only booke-32 will use VIRT_PHYS_OFFSET, so given the
    issues with its calculation, restrict its definition to booke-32.

    Signed-off-by: Scott Wood

    Scott Wood
     
  • The SMP release mechanism for FSL book3e is different from when booting
    with normal hardware. In theory we could simulate the normal spin
    table mechanism, but not at the addresses U-Boot put in the device tree
    -- so there'd need to be even more communication between the kernel and
    kexec to set that up. Instead, kexec-tools will set a boolean property
    linux,booted-from-kexec in the /chosen node.

    Signed-off-by: Scott Wood
    Cc: devicetree@vger.kernel.org

    Scott Wood
     
  • book3e has no real MMU mode so we have to create an identity TLB
    mapping to make sure we can access the real physical address.

    Signed-off-by: Tiejun Chen
    [scottwood: cleanup, and split off some changes]
    Signed-off-by: Scott Wood

    Tiejun Chen
     
  • This limit only makes sense on book3s, and on book3e it can cause
    problems with kdump if we don't have any memory under 256 MiB.

    Signed-off-by: Scott Wood

    Scott Wood