20 Oct, 2014

1 commit

  • Pull audit updates from Eric Paris:
    "So this change across a whole bunch of arches really solves one basic
    problem. We want to audit when seccomp is killing a process. seccomp
    hooks in before the audit syscall entry code. audit_syscall_entry
    took as an argument the arch of the given syscall. Since the arch is
    part of what makes a syscall number meaningful it's an important part
    of the record, but it isn't available when seccomp shoots the
    syscall...

    For most arch's we have a better way to get the arch (syscall_get_arch)
    So the solution was two fold: Implement syscall_get_arch() everywhere
    there is audit which didn't have it. Use syscall_get_arch() in the
    seccomp audit code. Having syscall_get_arch() everywhere meant it was
    a useless flag on the stack and we could get rid of it for the typical
    syscall entry.

    The other changes inside the audit system aren't grand, fixed some
    records that had invalid spaces. Better locking around the task comm
    field. Removing some dead functions and structs. Make some things
    static. Really minor stuff"

    * git://git.infradead.org/users/eparis/audit: (31 commits)
    audit: rename audit_log_remove_rule to disambiguate for trees
    audit: cull redundancy in audit_rule_change
    audit: WARN if audit_rule_change called illegally
    audit: put rule existence check in canonical order
    next: openrisc: Fix build
    audit: get comm using lock to avoid race in string printing
    audit: remove open_arg() function that is never used
    audit: correct AUDIT_GET_FEATURE return message type
    audit: set nlmsg_len for multicast messages.
    audit: use union for audit_field values since they are mutually exclusive
    audit: invalid op= values for rules
    audit: use atomic_t to simplify audit_serial()
    kernel/audit.c: use ARRAY_SIZE instead of sizeof/sizeof[0]
    audit: reduce scope of audit_log_fcaps
    audit: reduce scope of audit_net_id
    audit: arm64: Remove the audit arch argument to audit_syscall_entry
    arm64: audit: Add audit hook in syscall_trace_enter/exit()
    audit: x86: drop arch from __audit_syscall_entry() interface
    sparc: implement is_32bit_task
    sparc: properly conditionalize use of TIF_32BIT
    ...

    Linus Torvalds
     

19 Oct, 2014

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the MIPS pull request for the next kernel:

    - Zubair's patch series adds CMA support for MIPS. Doing so it also
    touches ARM64 and x86.
    - remove the last instance of IRQF_DISABLED from arch/mips
    - updates to two of the MIPS defconfig files.
    - cleanup of how cache coherency bits are handled on MIPS and
    implement support for write-combining.
    - platform upgrades for Alchemy
    - move MIPS DTS files to arch/mips/boot/dts/"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (24 commits)
    MIPS: ralink: remove deprecated IRQF_DISABLED
    MIPS: pgtable.h: Implement the pgprot_writecombine function for MIPS
    MIPS: cpu-probe: Set the write-combine CCA value on per core basis
    MIPS: pgtable-bits: Define the CCA bit for WC writes on Ingenic cores
    MIPS: pgtable-bits: Move the CCA bits out of the core's ifdef blocks
    MIPS: DMA: Add cma support
    x86: use generic dma-contiguous.h
    arm64: use generic dma-contiguous.h
    asm-generic: Add dma-contiguous.h
    MIPS: BPF: Add new emit_long_instr macro
    MIPS: ralink: Move device-trees to arch/mips/boot/dts/
    MIPS: Netlogic: Move device-trees to arch/mips/boot/dts/
    MIPS: sead3: Move device-trees to arch/mips/boot/dts/
    MIPS: Lantiq: Move device-trees to arch/mips/boot/dts/
    MIPS: Octeon: Move device-trees to arch/mips/boot/dts/
    MIPS: Add support for building device-tree binaries
    MIPS: Create common infrastructure for building built-in device-trees
    MIPS: SEAD3: Enable DEVTMPFS
    MIPS: SEAD3: Regenerate defconfigs
    MIPS: Alchemy: DB1300: Add touch penirq support
    ...

    Linus Torvalds
     

15 Oct, 2014

1 commit

  • Pull clock tree updates from Mike Turquette:
    "The clk tree changes for 3.18 are dominated by clock drivers. Mostly
    fixes and enhancements to existing drivers as well as new drivers.
    This tag contains a bit more arch code than I usually take due to some
    OMAP2+ changes. Additionally it contains the restart notifier
    handlers which are merged as a dependency into several trees.

    The PXA changes are the only messy part. Due to having a stable tree
    I had to revert one patch and follow up with one more fix near the tip
    of this tag. Some dead code is introduced but it will soon become
    live code after 3.18-rc1 is released as the rest of the PXA family is
    converted over to the common clock framework.

    Another trend in this tag is that multiple vendors have started to
    push the complexity of changing their CPU frequency into the clock
    driver, whereas this used to be done in CPUfreq drivers.

    Changes to the clk core include a generic gpio-clock type and a
    clk_set_phase() function added to the top-level clk.h api. Due to
    some confusion on the fbdev mailing list the kernel boot parameters
    documentation was updated to further explain the clk_ignore_unused
    parameter, which is often required by users of the simplefb driver.

    Finally some fixes to the locking around the clock debugfs stuff was
    done to prevent deadlocks when interacting with other subsystems."

    * tag 'clk-for-linus-3.18' of git://git.linaro.org/people/mike.turquette/linux: (99 commits)
    clk: pxa clocks build system fix
    Revert "arm: pxa: Transition pxa27x to clk framework"
    clk: samsung: register restart handlers for s3c2412 and s3c2443
    clk: rockchip: add restart handler
    clk: rockchip: rk3288: i2s_frac adds flag to set parent's rate
    doc/kernel-parameters.txt: clarify clk_ignore_unused
    arm: pxa: Transition pxa27x to clk framework
    dts: add devicetree bindings for pxa27x clocks
    clk: add pxa27x clock drivers
    arm: pxa: add clock pll selection bits
    clk: dts: document pxa clock binding
    clk: add pxa clocks infrastructure
    clk: gpio-gate: Ensure gpiod_ APIs are prototyped
    clk: ti: dra7-atl-clock: Mark the device as pm_runtime_irq_safe
    clk: ti: LLVMLinux: Move __init outside of type definition
    clk: ti: consider the fact that of_clk_get() might return an error
    clk: ti: dra7-atl-clock: fix a memory leak
    clk: ti: change clock init to use generic of_clk_init
    clk: hix5hd2: add I2C clocks
    clk: hix5hd2: add watchdog0 clocks
    ...

    Linus Torvalds
     

14 Oct, 2014

1 commit

  • For VMAs that don't want write notifications, PTEs created for read faults
    have their write bit set. If the read fault happens after VM_SOFTDIRTY is
    cleared, then the PTE's softdirty bit will remain clear after subsequent
    writes.

    Here's a simple code snippet to demonstrate the bug:

    char* m = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,
    MAP_ANONYMOUS | MAP_SHARED, -1, 0);
    system("echo 4 > /proc/$PPID/clear_refs"); /* clear VM_SOFTDIRTY */
    assert(*m == '\0'); /* new PTE allows write access */
    assert(!soft_dirty(x));
    *m = 'x'; /* should dirty the page */
    assert(soft_dirty(x)); /* fails */

    With this patch, write notifications are enabled when VM_SOFTDIRTY is
    cleared. Furthermore, to avoid unnecessary faults, write notifications
    are disabled when VM_SOFTDIRTY is set.

    As a side effect of enabling and disabling write notifications with
    care, this patch fixes a bug in mprotect where vm_page_prot bits set by
    drivers were zapped on mprotect. An analogous bug was fixed in mmap by
    commit c9d0bf241451 ("mm: uncached vma support with writenotify").

    Signed-off-by: Peter Feiner
    Reported-by: Peter Feiner
    Suggested-by: Kirill A. Shutemov
    Cc: Cyrill Gorcunov
    Cc: Pavel Emelyanov
    Cc: Jamie Liu
    Cc: Hugh Dickins
    Cc: Naoya Horiguchi
    Cc: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Feiner
     

13 Oct, 2014

2 commits

  • Pull scheduler updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Optimized support for Intel "Cluster-on-Die" (CoD) topologies (Dave
    Hansen)

    - Various sched/idle refinements for better idle handling (Nicolas
    Pitre, Daniel Lezcano, Chuansheng Liu, Vincent Guittot)

    - sched/numa updates and optimizations (Rik van Riel)

    - sysbench speedup (Vincent Guittot)

    - capacity calculation cleanups/refactoring (Vincent Guittot)

    - Various cleanups to thread group iteration (Oleg Nesterov)

    - Double-rq-lock removal optimization and various refactorings
    (Kirill Tkhai)

    - various sched/deadline fixes

    ... and lots of other changes"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (72 commits)
    sched/dl: Use dl_bw_of() under rcu_read_lock_sched()
    sched/fair: Delete resched_cpu() from idle_balance()
    sched, time: Fix build error with 64 bit cputime_t on 32 bit systems
    sched: Improve sysbench performance by fixing spurious active migration
    sched/x86: Fix up typo in topology detection
    x86, sched: Add new topology for multi-NUMA-node CPUs
    sched/rt: Use resched_curr() in task_tick_rt()
    sched: Use rq->rd in sched_setaffinity() under RCU read lock
    sched: cleanup: Rename 'out_unlock' to 'out_free_new_mask'
    sched: Use dl_bw_of() under RCU read lock
    sched/fair: Remove duplicate code from can_migrate_task()
    sched, mips, ia64: Remove __ARCH_WANT_UNLOCKED_CTXSW
    sched: print_rq(): Don't use tasklist_lock
    sched: normalize_rt_tasks(): Don't use _irqsave for tasklist_lock, use task_rq_lock()
    sched: Fix the task-group check in tg_has_rt_tasks()
    sched/fair: Leverage the idle state info when choosing the "idlest" cpu
    sched: Let the scheduler see CPU idle states
    sched/deadline: Fix inter- exclusive cpusets migrations
    sched/deadline: Clear dl_entity params when setscheduling to different class
    sched/numa: Kill the wrong/dead TASK_DEAD check in task_numa_fault()
    ...

    Linus Torvalds
     
  • Pull arch atomic cleanups from Ingo Molnar:
    "This is a series kept separate from the main locking tree, which
    cleans up and improves various details in the atomics type handling:

    - Remove the unused atomic_or_long() method

    - Consolidate and compress atomic ops implementations between
    architectures, to reduce linecount and to make it easier to add new
    ops.

    - Rewrite generic atomic support to only require cmpxchg() from an
    architecture - generate all other methods from that"

    * 'locking-arch-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
    locking,arch: Use ACCESS_ONCE() instead of cast to volatile in atomic_read()
    locking, mips: Fix atomics
    locking, sparc64: Fix atomics
    locking,arch: Rewrite generic atomic support
    locking,arch,xtensa: Fold atomic_ops
    locking,arch,sparc: Fold atomic_ops
    locking,arch,sh: Fold atomic_ops
    locking,arch,powerpc: Fold atomic_ops
    locking,arch,parisc: Fold atomic_ops
    locking,arch,mn10300: Fold atomic_ops
    locking,arch,mips: Fold atomic_ops
    locking,arch,metag: Fold atomic_ops
    locking,arch,m68k: Fold atomic_ops
    locking,arch,m32r: Fold atomic_ops
    locking,arch,ia64: Fold atomic_ops
    locking,arch,hexagon: Fold atomic_ops
    locking,arch,cris: Fold atomic_ops
    locking,arch,avr32: Fold atomic_ops
    locking,arch,arm64: Fold atomic_ops
    locking,arch,arm: Fold atomic_ops
    ...

    Linus Torvalds
     

11 Oct, 2014

1 commit

  • Pull dma-mapping update from Marek Szyprowski:
    "Provide the dma write coherent api (available previously on ARM
    architecture) for all other architectures, which use dma_ops-based dma
    mapping implementation.

    This lets one to use the same code in the device drivers regardless of
    the selected architecture"

    * 'for-v3.18' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
    dma-mapping: Provide write-combine allocations
    s390: Implement dma_{alloc,free}_attrs()

    Linus Torvalds
     

10 Oct, 2014

6 commits

  • Merge patch-bomb from Andrew Morton:
    - part of OCFS2 (review is laggy again)
    - procfs
    - slab
    - all of MM
    - zram, zbud
    - various other random things: arch, filesystems.

    * emailed patches from Andrew Morton : (164 commits)
    nosave: consolidate __nosave_{begin,end} in
    include/linux/screen_info.h: remove unused ORIG_* macros
    kernel/sys.c: compat sysinfo syscall: fix undefined behavior
    kernel/sys.c: whitespace fixes
    acct: eliminate compile warning
    kernel/async.c: switch to pr_foo()
    include/linux/blkdev.h: use NULL instead of zero
    include/linux/kernel.h: deduplicate code implementing clamp* macros
    include/linux/kernel.h: rewrite min3, max3 and clamp using min and max
    alpha: use Kbuild logic to include
    frv: remove deprecated IRQF_DISABLED
    frv: remove unused cpuinfo_frv and friends to fix future build error
    zbud: avoid accessing last unused freelist
    zsmalloc: simplify init_zspage free obj linking
    mm/zsmalloc.c: correct comment for fullness group computation
    zram: use notify_free to account all free notifications
    zram: report maximum used memory
    zram: zram memory size limitation
    zsmalloc: change return value unit of zs_get_total_size_bytes
    zsmalloc: move pages_allocated to zs_pool
    ...

    Linus Torvalds
     
  • The different architectures used their own (and different) declarations:

    extern __visible const void __nosave_begin, __nosave_end;
    extern const void __nosave_begin, __nosave_end;
    extern long __nosave_begin, __nosave_end;

    Consolidate them using the first variant in .

    Signed-off-by: Geert Uytterhoeven
    Cc: Russell King
    Cc: Ralf Baechle
    Cc: Benjamin Herrenschmidt
    Cc: Martin Schwidefsky
    Cc: "David S. Miller"
    Cc: Guan Xuetao
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • For architectures without coherent DMA, memory for DMA may need to be
    remapped with coherent attributes. Factor out the the remapping code from
    arm and put it in a common location to reduce code duplication.

    As part of this, the arm APIs are now migrated away from
    ioremap_page_range to the common APIs which use map_vm_area for remapping.
    This should be an equivalent change and using map_vm_area is more correct
    as ioremap_page_range is intended to bring in io addresses into the cpu
    space and not regular kernel managed memory.

    Signed-off-by: Laura Abbott
    Reviewed-by: Catalin Marinas
    Cc: Arnd Bergmann
    Cc: David Riley
    Cc: Olof Johansson
    Cc: Ritesh Harjain
    Cc: Russell King
    Cc: Thierry Reding
    Cc: Will Deacon
    Cc: James Hogan
    Cc: Laura Abbott
    Cc: Mitchel Humpherys
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laura Abbott
     
  • ARCH_USES_NUMA_PROT_NONE was defined for architectures that implemented
    _PAGE_NUMA using _PROT_NONE. This saved using an additional PTE bit and
    relied on the fact that PROT_NONE vmas were skipped by the NUMA hinting
    fault scanner. This was found to be conceptually confusing with a lot of
    implicit assumptions and it was asked that an alternative be found.

    Commit c46a7c81 "x86: define _PAGE_NUMA by reusing software bits on the
    PMD and PTE levels" redefined _PAGE_NUMA on x86 to be one of the swap PTE
    bits and shrunk the maximum possible swap size but it did not go far
    enough. There are no architectures that reuse _PROT_NONE as _PROT_NUMA
    but the relics still exist.

    This patch removes ARCH_USES_NUMA_PROT_NONE and removes some unnecessary
    duplication in powerpc vs the generic implementation by defining the types
    the core NUMA helpers expected to exist from x86 with their ppc64
    equivalent. This necessitated that a PTE bit mask be created that
    identified the bits that distinguish present from NUMA pte entries but it
    is expected this will only differ between arches based on _PAGE_PROTNONE.
    The naming for the generic helpers was taken from x86 originally but ppc64
    has types that are equivalent for the purposes of the helper so they are
    mapped instead of duplicating code.

    Signed-off-by: Mel Gorman
    Cc: Hugh Dickins
    Cc: "Kirill A. Shutemov"
    Cc: Rik van Riel
    Cc: Johannes Weiner
    Cc: Cyrill Gorcunov
    Reviewed-by: Aneesh Kumar K.V
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Pull PCI updates from Bjorn Helgaas:
    "The interesting things here are:

    - Turn on Config Request Retry Status Software Visibility. This
    caused hangs last time, but we included a fix this time.
    - Rework PCI device configuration to use _HPP/_HPX more aggressively
    - Allow PCI devices to be put into D3cold during system suspend
    - Add arm64 PCI support
    - Add APM X-Gene host bridge driver
    - Add TI Keystone host bridge driver
    - Add Xilinx AXI host bridge driver

    More detailed summary:

    Enumeration
    - Check Vendor ID only for Config Request Retry Status (Rajat Jain)
    - Enable Config Request Retry Status when supported (Rajat Jain)
    - Add generic domain handling (Catalin Marinas)
    - Generate uppercase hex for modalias interface class (Ricardo Ribalda Delgado)

    Resource management
    - Add missing MEM_64 mask in pci_assign_unassigned_bridge_resources() (Yinghai Lu)
    - Increase IBM ipr SAS Crocodile BARs to at least system page size (Douglas Lehr)

    PCI device hotplug
    - Prevent NULL dereference during pciehp probe (Andreas Noever)
    - Move _HPP & _HPX handling into core (Bjorn Helgaas)
    - Apply _HPP to PCIe devices as well as PCI (Bjorn Helgaas)
    - Apply _HPP/_HPX to display devices (Bjorn Helgaas)
    - Preserve SERR & PARITY settings when applying _HPP/_HPX (Bjorn Helgaas)
    - Preserve MPS and MRRS settings when applying _HPP/_HPX (Bjorn Helgaas)
    - Apply _HPP/_HPX to all devices, not just hot-added ones (Bjorn Helgaas)
    - Fix wait time in pciehp timeout message (Yinghai Lu)
    - Add more pciehp Slot Control debug output (Yinghai Lu)
    - Stop disabling pciehp notifications during init (Yinghai Lu)

    MSI
    - Remove arch_msi_check_device() (Alexander Gordeev)
    - Rename pci_msi_check_device() to pci_msi_supported() (Alexander Gordeev)
    - Move D0 check into pci_msi_check_device() (Alexander Gordeev)
    - Remove unused kobject from struct msi_desc (Yijing Wang)
    - Remove "pos" from the struct msi_desc msi_attrib (Yijing Wang)
    - Add "msi_bus" sysfs MSI/MSI-X control for endpoints (Yijing Wang)
    - Use __get_cached_msi_msg() instead of get_cached_msi_msg() (Yijing Wang)
    - Use __read_msi_msg() instead of read_msi_msg() (Yijing Wang)
    - Use __write_msi_msg() instead of write_msi_msg() (Yijing Wang)

    Power management
    - Drop unused runtime PM support code for PCIe ports (Rafael J. Wysocki)
    - Allow PCI devices to be put into D3cold during system suspend (Rafael J. Wysocki)

    AER
    - Add additional AER error strings (Gong Chen)
    - Make standalone includable (Thierry Reding)

    Virtualization
    - Add ACS quirk for Solarflare SFC9120 & SFC9140 (Alex Williamson)
    - Add ACS quirk for Intel 10G NICs (Alex Williamson)
    - Add ACS quirk for AMD A88X southbridge (Marti Raudsepp)
    - Remove unused pci_find_upstream_pcie_bridge(), pci_get_dma_source() (Alex Williamson)
    - Add device flag helpers (Ethan Zhao)
    - Assume all Mellanox devices have broken INTx masking (Gavin Shan)

    Generic host bridge driver
    - Fix ioport_map() for !CONFIG_GENERIC_IOMAP (Liviu Dudau)
    - Add pci_register_io_range() and pci_pio_to_address() (Liviu Dudau)
    - Define PCI_IOBASE as the base of virtual PCI IO space (Liviu Dudau)
    - Fix the conversion of IO ranges into IO resources (Liviu Dudau)
    - Add pci_get_new_domain_nr() and of_get_pci_domain_nr() (Liviu Dudau)
    - Add support for parsing PCI host bridge resources from DT (Liviu Dudau)
    - Add pci_remap_iospace() to map bus I/O resources (Liviu Dudau)
    - Add arm64 architectural support for PCI (Liviu Dudau)

    APM X-Gene
    - Add APM X-Gene PCIe driver (Tanmay Inamdar)
    - Add arm64 DT APM X-Gene PCIe device tree nodes (Tanmay Inamdar)

    Freescale i.MX6
    - Probe in module_init(), not fs_initcall() (Lucas Stach)
    - Delay enabling reference clock for SS until it stabilizes (Tim Harvey)

    Marvell MVEBU
    - Fix uninitialized variable in mvebu_get_tgt_attr() (Thomas Petazzoni)

    NVIDIA Tegra
    - Make sure the PCIe PLL is really reset (Eric Yuen)
    - Add error path tegra_msi_teardown_irq() cleanup (Jisheng Zhang)
    - Fix extended configuration space mapping (Peter Daifuku)
    - Implement resource hierarchy (Thierry Reding)
    - Clear CLKREQ# enable on port disable (Thierry Reding)
    - Add Tegra124 support (Thierry Reding)

    ST Microelectronics SPEAr13xx
    - Pass config resource through reg property (Pratyush Anand)

    Synopsys DesignWare
    - Use NULL instead of false (Fabio Estevam)
    - Parse bus-range property from devicetree (Lucas Stach)
    - Use pci_create_root_bus() instead of pci_scan_root_bus() (Lucas Stach)
    - Remove pci_assign_unassigned_resources() (Lucas Stach)
    - Check private_data validity in single place (Lucas Stach)
    - Setup and clear exactly one MSI at a time (Lucas Stach)
    - Remove open-coded bitmap operations (Lucas Stach)
    - Fix configuration base address when using 'reg' (Minghuan Lian)
    - Fix IO resource end address calculation (Minghuan Lian)
    - Rename get_msi_data() to get_msi_addr() (Minghuan Lian)
    - Add get_msi_data() to pcie_host_ops (Minghuan Lian)
    - Add support for v3.65 hardware (Murali Karicheri)
    - Fold struct pcie_port_info into struct pcie_port (Pratyush Anand)

    TI Keystone
    - Add TI Keystone PCIe driver (Murali Karicheri)
    - Limit MRSS for all downstream devices (Murali Karicheri)
    - Assume controller is already in RC mode (Murali Karicheri)
    - Set device ID based on SoC to support multiple ports (Murali Karicheri)

    Xilinx AXI
    - Add Xilinx AXI PCIe driver (Srikanth Thokala)
    - Fix xilinx_pcie_assign_msi() return value test (Dan Carpenter)

    Miscellaneous
    - Clean up whitespace (Quentin Lambert)
    - Remove assignments from "if" conditions (Quentin Lambert)
    - Move PCI_VENDOR_ID_VMWARE to pci_ids.h (Francesco Ruggeri)
    - x86: Mark DMI tables as initialization data (Mathias Krause)
    - x86: Move __init annotation to the correct place (Mathias Krause)
    - x86: Mark constants of pci_mmcfg_nvidia_mcp55() as __initconst (Mathias Krause)
    - x86: Constify pci_mmcfg_probes[] array (Mathias Krause)
    - x86: Mark PCI BIOS initialization code as such (Mathias Krause)
    - Parenthesize PCI_DEVID and PCI_VPD_LRDT_ID parameters (Megan Kamiya)
    - Remove unnecessary variable in pci_add_dynid() (Tobias Klauser)"

    * tag 'pci-v3.18-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (109 commits)
    arm64: dts: Add APM X-Gene PCIe device tree nodes
    PCI: Add ACS quirk for AMD A88X southbridge devices
    PCI: xgene: Add APM X-Gene PCIe driver
    PCI: designware: Remove open-coded bitmap operations
    PCI/MSI: Remove unnecessary temporary variable
    PCI/MSI: Use __write_msi_msg() instead of write_msi_msg()
    MSI/powerpc: Use __read_msi_msg() instead of read_msi_msg()
    PCI/MSI: Use __get_cached_msi_msg() instead of get_cached_msi_msg()
    PCI/MSI: Add "msi_bus" sysfs MSI/MSI-X control for endpoints
    PCI/MSI: Remove "pos" from the struct msi_desc msi_attrib
    PCI/MSI: Remove unused kobject from struct msi_desc
    PCI/MSI: Rename pci_msi_check_device() to pci_msi_supported()
    PCI/MSI: Move D0 check into pci_msi_check_device()
    PCI/MSI: Remove arch_msi_check_device()
    irqchip: armada-370-xp: Remove arch_msi_check_device()
    PCI/MSI/PPC: Remove arch_msi_check_device()
    arm64: Add architectural support for PCI
    PCI: Add pci_remap_iospace() to map bus I/O resources
    of/pci: Add support for parsing PCI host bridge resources from DT
    of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()
    ...

    Conflicts:
    arch/arm64/boot/dts/apm-storm.dtsi

    Linus Torvalds
     
  • Pull GPIO changes from Linus Walleij:
    "This is the bulk of GPIO changes for the v3.18 development cycle:

    - Increase the default ARCH_NR_GPIO from 256 to 512. This was done
    to avoid having a custom header for the x86
    architecture - GPIO is custom and complicated enough as it is
    already! We want to move to a radix to store the descriptors going
    forward, and finally get rid of this fixed array size altogether.

    - Endgame patching of the gpio_remove() semantics initiated by
    Abdoulaye Berthe. It is not accepted by the system that the
    removal of a GPIO chip fails during eg reboot or shutdown, and
    therefore the return value has now painfully been refactored away.
    For special cases like GPIO expanders on a hot-pluggable bus like
    USB, we may later add some gpiochip_try_remove() call, but for the
    cases we have now, return values are moot.

    - Some incremental refactoring of the gpiolib core and ACPI GPIO
    library for more descriptor usage.

    - Refactor the chained IRQ handler set-up method to handle also
    threaded, nested interrupts and set up the parent IRQ correctly.
    Switch STMPE and TC3589x drivers to use this registration method.

    - Add a .irq_not_threaded flag to the struct gpio_chip, so that also
    GPIO expanders that block but are still not using threaded IRQ
    handlers.

    - New drivers for the ARM64 X-Gene SoC GPIO controller.

    - The syscon GPIO driver has been improved to handle the "DSP GPIO"
    found on the TI Keystone 2 SoC:s.

    - ADNP driver switched to use gpiolib irqchip helpers.

    - Refactor the DWAPB driver to support being instantiated from and
    MFD cell (platform device).

    - Incremental feature improvement in the Zynq, MCP23S08, DWAPB, OMAP,
    Xilinx and Crystalcove drivers.

    - Various minor fixes"

    * tag 'gpio-v3.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (52 commits)
    gpio: pch: Build context save/restore only for PM
    pinctrl: abx500: get rid of unused variable
    gpio: ks8695: fix 'else should follow close brace '}''
    gpio: stmpe: add verbose debug code
    gpio: stmpe: fix up interrupt enable logic
    gpio: staticize xway_stp_init()
    gpio: handle also nested irqchips in the chained handler set-up
    gpio: set parent irq on chained handlers
    gpiolib: irqchip: use irq_find_mapping while removing irqchip
    gpio: crystalcove: support virtual GPIO
    pinctrl: bcm281xx: make Kconfig dependency more strict
    gpio: kona: enable only on BCM_MOBILE or for compile testing
    gpio, bcm-kona, LLVMLinux: Remove use of __initconst
    gpio: Fix ngpio in gpio-xilinx driver
    gpio: dwapb: fix pointer to integer cast
    gpio: xgene: Remove unneeded #ifdef CONFIG_OF guard
    gpio: xgene: Remove unneeded forward declation for struct xgene_gpio
    gpio: xgene: Fix missing spin_lock_init()
    gpio: ks8695: fix switch case indentation
    gpiolib: add irq_not_threaded flag to gpio_chip
    ...

    Linus Torvalds
     

09 Oct, 2014

1 commit

  • Pull timer fixes from Ingo Molnar:
    "Main changes:

    - Fix the deadlock reported by Dave Jones et al
    - Clean up and fix nohz_full interaction with arch abilities
    - nohz init code consolidation/cleanup"

    * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    nohz: nohz full depends on irq work self IPI support
    nohz: Consolidate nohz full init code
    arm64: Tell irq work about self IPI support
    arm: Tell irq work about self IPI support
    x86: Tell irq work about self IPI support
    irq_work: Force raised irq work to run on irq work interrupt
    irq_work: Introduce arch_irq_work_has_interrupt()
    nohz: Move nohz full init call to tick init

    Linus Torvalds
     

03 Oct, 2014

3 commits

  • Use the much more reader friendly ACCESS_ONCE() instead of the cast to volatile.
    This is purely a stylistic change.

    Signed-off-by: Pranith Kumar
    Acked-by: Jesper Nilsson
    Acked-by: Hans-Christian Egtvedt
    Acked-by: Max Filippov
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Linus Torvalds
    Cc: linux-arch@vger.kernel.org
    Link: http://lkml.kernel.org/r/1411482607-20948-1-git-send-email-bobby.prani@gmail.com
    Signed-off-by: Ingo Molnar

    Pranith Kumar
     
  • On 32 bit systems cmpxchg cannot handle 64 bit values, so
    some additional magic is required to allow a 32 bit system
    with CONFIG_VIRT_CPU_ACCOUNTING_GEN=y enabled to build.

    Make sure the correct cmpxchg function is used when doing
    an atomic swap of a cputime_t.

    Reported-by: Arnd Bergmann
    Signed-off-by: Rik van Riel
    Acked-by: Arnd Bergmann
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: umgwanakikbuti@gmail.com
    Cc: fweisbec@gmail.com
    Cc: srao@redhat.com
    Cc: lwoodman@redhat.com
    Cc: atheurer@redhat.com
    Cc: oleg@redhat.com
    Cc: Andrew Morton
    Cc: Benjamin Herrenschmidt
    Cc: Heiko Carstens
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: linux390@de.ibm.com
    Cc: linux-arch@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-s390@vger.kernel.org
    Link: http://lkml.kernel.org/r/20140930155947.070cdb1f@annuminas.surriel.com
    Signed-off-by: Ingo Molnar

    Rik van Riel
     
  • This patch changes the __init_end address to a
    page align address, so that free_initmem() can
    free the whole .init section, because if the end
    address is not page aligned, it will round down to
    a page align address, then the tail unligned page
    will not be freed.

    Signed-off-by: wang
    Acked-by: Catalin Marinas
    Signed-off-by: Russell King

    Yalin Wang
     

01 Oct, 2014

1 commit

  • Add pci_remap_iospace() to map bus I/O resources into the CPU virtual
    address space. Architectures with special needs may provide their own
    version, but most should be able to use this one.

    This function is useful for PCI host bridge drivers that need to map the
    PCI I/O resources into virtual memory space.

    [bhelgaas: phys_addr description, drop temporary "err" variable]
    Signed-off-by: Liviu Dudau
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Rob Herring
    Reviewed-by: Catalin Marinas
    CC: Arnd Bergmann

    Liviu Dudau
     

30 Sep, 2014

1 commit

  • The !CONFIG_GENERIC_IOMAP version of ioport_map() is wrong. It returns a
    mapped, i.e., virtual, address that can start from zero and completely
    ignores the PCI_IOBASE and IO_SPACE_LIMIT that most architectures that use
    !CONFIG_GENERIC_MAP define.

    Tested-by: Tanmay Inamdar
    Signed-off-by: Liviu Dudau
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Catalin Marinas
    Acked-by: Arnd Bergmann

    Liviu Dudau
     

26 Sep, 2014

1 commit

  • If CONFIG_COMMON_CLK is selected then __clk_get and __clk_put are
    defined in drivers/clk/clk.c and declared in include/linux/clkdev.h.

    Sylwester's series[0] to properly support clk_{get,put} in the common
    clock framework made changes to the asm-specific clkdev.h headers, but
    not the asm-generic version. Tomeu's recent changes[1] to introduce a
    provider/consumer split in the clock framework uncovered this problem,
    causing the following build error on any architecture using the
    asm-generic clkdev.h (e.g. x86 architecture and the ACPI LPSS driver):

    In file included from drivers/acpi/acpi_lpss.c:15:0:
    include/linux/clkdev.h:59:5: error: conflicting types for ‘__clk_get’
    int __clk_get(struct clk_core *clk);
    ^
    In file included from arch/x86/include/generated/asm/clkdev.h:1:0,
    from include/linux/clkdev.h:15,
    from drivers/acpi/acpi_lpss.c:15:
    include/asm-generic/clkdev.h:20:19: note: previous definition of ‘__clk_get’ was here
    static inline int __clk_get(struct clk *clk) { return 1; }
    ^

    Fixed by only declarating __clk_get and __clk_put when
    CONFIG_COMMON_CLK is set.

    [0] http://lkml.kernel.org/r/
    [1] http://lkml.kernel.org/r/

    Signed-off-by: Mike Turquette

    Mike Turquette
     

24 Sep, 2014

1 commit


23 Sep, 2014

1 commit

  • Some newer Intel SoCs, like Braswell already have more than 256 GPIOs
    available so the default limit is exceeded. Instead of adding more
    architecture specific gpio.h files with custom ARCH_NR_GPIOs we increase
    the gpiolib default limit to be twice the current.

    Current generic ARCH_NR_GPIOS limit is 256 which starts to be too small
    for newer Intel SoCs like Braswell. In order to support GPIO controllers
    on these SoCs we increase ARCH_NR_GPIOS to be 512 which should be
    sufficient for now.

    The kernel size increases a bit with this change. Below is an example of
    x86_64 kernel image.

    ARCH_NR_GPIOS=256
    text data bss dec hex filename
    11476173 1971328 1265664 14713165 e0814d vmlinux

    ARCH_NR_GPIOS=512
    text data bss dec hex filename
    11476173 1971328 1269760 14717261 e0914d vmlinux

    So the BSS size and this the kernel image size increases by 4k.

    Signed-off-by: Mika Westerberg
    Signed-off-by: Linus Walleij

    Mika Westerberg
     

22 Sep, 2014

1 commit

  • This header is used by arm64 and x86 individually.

    Adding to asm-generic to avoid further code repetition while adding cma
    to mips.

    Signed-off-by: Zubair Lutfullah Kakakhel
    Acked-by: Michal Nazarewicz
    Cc: catalin.marinas@arm.com
    Cc: will.deacon@arm.com
    Cc: tglx@linutronix.de
    Cc: mingo@redhat.com
    Cc: hpa@zytor.com
    Cc: arnd@arndb.de
    Cc: gregkh@linuxfoundation.org
    Cc: m.szyprowski@samsung.com
    Cc: x86@kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-arch@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/7357/
    Signed-off-by: Ralf Baechle

    Zubair Lutfullah Kakakhel
     

14 Sep, 2014

1 commit

  • The nohz full code needs irq work to trigger its own interrupt so that
    the subsystem can work even when the tick is stopped.

    Lets introduce arch_irq_work_has_interrupt() that archs can override to
    tell about their support for this ability.

    Signed-off-by: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Frederic Weisbecker

    Peter Zijlstra
     

26 Aug, 2014

1 commit


14 Aug, 2014

1 commit

  • Rewrite generic atomic support to only require cmpxchg(), generate all
    other primitives from that.

    Furthermore reduce the endless repetition for all these primitives to
    a few CPP macros. This way we get more for less lines.

    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20140508135852.940119622@infradead.org
    Cc: Arnd Bergmann
    Cc: David Howells
    Cc: Paul E. McKenney
    Cc: David S. Miller
    Cc: Linus Torvalds
    Cc: linux-arch@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

09 Aug, 2014

2 commits

  • Pull GPIO update from Linus Walleij:
    "This is the bulk of GPIO changes for the v3.17 development cycle, and
    this time we got a lot of action going on and it will continue:

    - The core GPIO library implementation has been split up in three
    different files:
    - gpiolib.c for the latest and greatest and shiny GPIO library code
    using GPIO descriptors only
    - gpiolib-legacy.c for the old integer number space API that we are
    phasing out gradually
    - gpiolib-sysfs.c for the sysfs interface that we are not entirely
    happy with, but has to live on for ABI compatibility

    - Add a flags argument to *gpiod_get* functions, with some
    backward-compatibility macros to ease transitions. We should have
    had the flags there from the beginning it seems, now we need to
    clean up the mess. There is a plan on how to move forward here
    devised by Alexandre Courbot and Mark Brown

    - Split off a special header for the board
    gpio table registration, as per example from the regulator
    subsystem

    - Start to kill off the return value from gpiochip_remove() by
    removing the __must_check attribute and removing all checks inside
    the drivers/gpio directory. The rationale is: well what were we
    supposed to do if there is an error code? Not much: print an error
    message. And gpiolib already does that. So make this function
    return void eventually

    - Some cleanups of hairy gpiolib code, make some functions not to be
    used outside the library private and make sure they are not
    exported, remove gpiod_lock/unlock_as_irq() as the existing
    function is for driver-internal use and fine as it is, delete
    gpio_ensure_requested() as it is not meaningful anymore

    - Support the GPIOF_ACTIVE_LOW flag from gpio_request_one() function
    calls, which is logical since this is already supported when
    referencing GPIOs from e.g. device trees

    - Switch STMPE, intel-mid, lynxpoint and ACPI (!) to use the gpiolib
    irqchip helpers cutting down on GPIO irqchip boilerplate a bit more

    - New driver for the Zynq GPIO block

    - The usual incremental improvements around a bunch of drivers

    - Janitorial syntactic and semantic cleanups by Jingoo Han, and
    Rickard Strandqvist especially"

    * tag 'gpio-v3.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (37 commits)
    MAINTAINERS: update GPIO include files
    gpio: add missing includes in machine.h
    gpio: add flags argument to gpiod_get*() functions
    MAINTAINERS: Update Samsung pin control entry
    gpio / ACPI: Move event handling registration to gpiolib irqchip helpers
    gpio: lynxpoint: Convert to use gpiolib irqchip
    gpio: split gpiod board registration into machine header
    gpio: remove gpio_ensure_requested()
    gpio: remove useless check in gpiolib_sysfs_init()
    gpiolib: Export gpiochip_request_own_desc and gpiochip_free_own_desc
    gpio: move gpio_ensure_requested() into legacy C file
    gpio: remove gpiod_lock/unlock_as_irq()
    gpio: make gpiochip_get_desc() gpiolib-private
    gpio: simplify gpiochip_export()
    gpio: remove export of private of_get_named_gpio_flags()
    gpio: Add support for GPIOF_ACTIVE_LOW to gpio_request_one functions
    gpio: zynq: Clear pending interrupt when enabling a IRQ
    gpio: drop retval check enforcing from gpiochip_remove()
    gpio: remove all usage of gpio_remove retval in driver/gpio
    devicetree: Add Zynq GPIO devicetree bindings documentation
    ...

    Linus Torvalds
     
  • Add this helper for consistency with pci_zalloc_coherent
    and the ability to remove unnecessary memset(,0,) uses.

    Signed-off-by: Joe Perches
    Cc: Arnd Bergmann
    Cc: "James E.J. Bottomley"
    Cc: "John W. Linville"
    Cc: "Stephen M. Cameron"
    Cc: Adam Radford
    Cc: Chaoming Li
    Cc: Chas Williams
    Cc: Christian Benvenuti
    Cc: Christopher Harrer
    Cc: Dario Ballabio
    Cc: David Airlie
    Cc: Don Fry
    Cc: Faisal Latif
    Cc: Forest Bond
    Cc: Govindarajulu Varadarajan
    Cc: Greg Kroah-Hartman
    Cc: Hal Rosenstock
    Cc: Hans Verkuil
    Cc: Jayamohan Kallickal
    Cc: Jiri Slaby
    Cc: Jitendra Kalsaria
    Cc: Larry Finger
    Cc: Lennert Buytenhek
    Cc: Lior Dotan
    Cc: Manish Chopra
    Cc: Manohar Vanga
    Cc: Martyn Welch
    Cc: Mauro Carvalho Chehab
    Cc: Michael Neuffer
    Cc: Mirko Lindner
    Cc: Neel Patel
    Cc: Neela Syam Kolli
    Cc: Rajesh Borundia
    Cc: Roland Dreier
    Cc: Ron Mercer
    Cc: Samuel Ortiz
    Cc: Sean Hefty
    Cc: Shahed Shaikh
    Cc: Sony Chacko
    Cc: Stanislav Yakovlev
    Cc: Stephen Hemminger
    Cc: Steve Wise
    Cc: Sujith Sankar
    Cc: Tom Tucker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

05 Aug, 2014

3 commits

  • Pull char / misc driver patches from Greg KH:
    "Here's the big driver misc / char pull request for 3.17-rc1.

    Lots of things in here, the thunderbolt support for Apple laptops,
    some other new drivers, testing fixes, and other good things. All
    have been in linux-next for a long time"

    * tag 'char-misc-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (119 commits)
    misc: bh1780: Introduce the use of devm_kzalloc
    Lattice ECP3 FPGA: Correct endianness
    drivers/misc/ti-st: Load firmware from ti-connectivity directory.
    dt-bindings: extcon: Add support for SM5502 MUIC device
    extcon: sm5502: Change internal hardware switch according to cable type
    extcon: sm5502: Detect cable state after completing platform booting
    extcon: sm5502: Add support new SM5502 extcon device driver
    extcon: arizona: Get MICVDD against extcon device
    extcon: Remove unnecessary OOM messages
    misc: vexpress: Fix sparse non static symbol warnings
    mei: drop unused hw dependent fw status functions
    misc: bh1770glc: Use managed functions
    pcmcia: remove DEFINE_PCI_DEVICE_TABLE usage
    misc: remove DEFINE_PCI_DEVICE_TABLE usage
    ipack: Replace DEFINE_PCI_DEVICE_TABLE macro use
    drivers/char/dsp56k.c: drop check for negativity of unsigned parameter
    mei: fix return value on disconnect timeout
    mei: don't schedule suspend in pm idle
    mei: start disconnect request timer consistently
    mei: reset client connection state on timeout
    ...

    Linus Torvalds
     
  • Pull percpu updates from Tejun Heo:

    - Major reorganization of percpu header files which I think makes
    things a lot more readable and logical than before.

    - percpu-refcount is updated so that it requires explicit destruction
    and can be reinitialized if necessary. This was pulled into the
    block tree to replace the custom percpu refcnting implemented in
    blk-mq.

    - In the process, percpu and percpu-refcount got cleaned up a bit

    * 'for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (21 commits)
    percpu-refcount: implement percpu_ref_reinit() and percpu_ref_is_zero()
    percpu-refcount: require percpu_ref to be exited explicitly
    percpu-refcount: use unsigned long for pcpu_count pointer
    percpu-refcount: add helpers for ->percpu_count accesses
    percpu-refcount: one bit is enough for REF_STATUS
    percpu-refcount, aio: use percpu_ref_cancel_init() in ioctx_alloc()
    workqueue: stronger test in process_one_work()
    workqueue: clear POOL_DISASSOCIATED in rebind_workers()
    percpu: Use ALIGN macro instead of hand coding alignment calculation
    percpu: invoke __verify_pcpu_ptr() from the generic part of accessors and operations
    percpu: preffity percpu header files
    percpu: use raw_cpu_*() to define __this_cpu_*()
    percpu: reorder macros in percpu header files
    percpu: move {raw|this}_cpu_*() definitions to include/linux/percpu-defs.h
    percpu: move generic {raw|this}_cpu_*_N() definitions to include/asm-generic/percpu.h
    percpu: only allow sized arch overrides for {raw|this}_cpu_*() ops
    percpu: reorganize include/linux/percpu-defs.h
    percpu: move accessors from include/linux/percpu.h to percpu-defs.h
    percpu: include/asm-generic/percpu.h should contain only arch-overridable parts
    percpu: introduce arch_raw_cpu_ptr()
    ...

    Linus Torvalds
     
  • Pull EDAC changes from Borislav Petkov:
    "EDAC queue for 3.17:

    - One new edac driver for Intel E3-12xx DRAM controllers.

    - Out-of-subsystem changes are making the non-atomic iomem 64-bit
    accessors' naming explicit to show both exact order of the 32-bit
    accesses and the non-atomicity of the 64-bit access.

    Usage locations are more verbose now as to what access is exactly
    being done vs having a not-very telling "readq" there, for example.

    This is needed by E3-12xx hardware where certain mmapped registers
    cannot be accessed with requests crossing a dword boundary.

    From Jason Baron.

    - Extending AMD MCE signatures to a new model 60h in family 15h, from
    Aravind Gopalakrishnan.

    - An unsigned check cleanup, from Fabian Frederick"

    * tag 'edac_for_3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    EDAC, MCE, AMD: Add MCE decoding for F15h M60h
    MAINTAINERS: add ie31200_edac entry
    ie31200_edac: Allocate mci and map mchbar first
    ie31200_edac: Introduce the driver
    x38_edac: make use of lo_hi_readq()
    readq/writeq: Add explicit lo_hi_[read|write]_q and hi_lo_[read|write]_q
    EDAC, edac_module.c: Remove unnecessary test on unsigned value

    Linus Torvalds
     

25 Jul, 2014

1 commit

  • gpio_ensure_requested() has been introduced in Feb. 2008 by commit
    d2876d08d86f2 to force users of the GPIO API to explicitly request GPIOs
    before using them.

    Hopefully by now all GPIOs are correctly requested and this extra check
    can be omitted ; in any case the GPIO maintainers won't feel bad if
    machines start failing after 6 years of warnings.

    This patch removes that function from the dark ages.

    Signed-off-by: Alexandre Courbot
    Signed-off-by: Linus Walleij

    Alexandre Courbot
     

23 Jul, 2014

2 commits

  • gpio_ensure_requested() only makes sense when using the integer-based
    GPIO API, so make sure it is called from there instead of the gpiod
    API which we know cannot be called with a non-requested GPIO anyway.

    The uses of gpio_ensure_requested() in the gpiod API were kind of
    out-of-place anyway, so putting them in gpio-legacy.c helps clearing the
    code.

    Actually, considering the time this ensure_requested mechanism has been
    around, maybe we should just turn this patch into "remove
    gpio_ensure_requested()" if we know for sure that no user depend on it
    anymore?

    Signed-off-by: Alexandre Courbot
    Signed-off-by: Linus Walleij

    Alexandre Courbot
     
  • gpio_lock/unlock_as_irq() are working with (chip, offset) arguments and
    are thus not using the old integer namespace. Therefore, there is no
    reason to have gpiod variants of these functions working with
    descriptors, especially since the (chip, offset) tuple is more suitable
    to the users of these functions (GPIO drivers, whereas GPIO descriptors
    are targeted at GPIO consumers).

    Signed-off-by: Alexandre Courbot
    Signed-off-by: Linus Walleij

    Alexandre Courbot
     

14 Jul, 2014

1 commit


04 Jul, 2014

1 commit

  • Even on x86-64, I've found the need to break up a readq() into 2 readl()
    calls. According to the Intel datasheet for the E3-1200 processor:

    "
    Software must not access B0/D0/F0 32-bit memory-mapped registers with
    requests that cross a DW boundary.
    "

    (http://www.intel.com/content/www/us/en/processors/xeon/xeon-e3-1200-family-vol-2-datasheet.html p. 16)

    I can confirm this is true via several hard machine lockups.

    Thus, add explicit hi_lo_[readq|write]_q and lo_hi_[read|write]_q so that these
    uses are spelled out.

    Signed-off-by: Jason Baron
    Link: http://lkml.kernel.org/r/281f09da7ad01e5cea99737ec34d2399bdbbbf63.1403818526.git.jbaron@akamai.com
    Signed-off-by: Borislav Petkov

    Jason Baron
     

02 Jul, 2014

1 commit

  • This fixes a typo that named the read_mostly section of percpu as
    readmostly. It works fine with SMP because the linker script specifies
    .data..percpu..readmostly. However, UP kernel builds don't have percpu
    sections defined and the non-percpu version of the section is called
    data..read_mostly, so .data..readmostly will float around and may break
    things unexpectedly.

    Looking at the original change that introduced data..percpu..readmostly
    (commit c957ef2c59e952803766ddc22e89981ab534606f), it looks like this
    was the original intention.

    Tested: Built UP kernel and confirmed the sections got merged.

    - Before the patch:
    $ objdump -h vmlinux.o | grep '\.data\.\.read.*mostly'
    38 .data..read_mostly 00004418 0000000000000000 0000000000000000 00431ac0 2**6
    50 .data..readmostly 00000014 0000000000000000 0000000000000000 00444000 2**3

    - After the patch:
    $ objdump -h vmlinux.o | grep '\.data\.\.read.*mostly'
    38 .data..read_mostly 00004438 0000000000000000 0000000000000000 00431ac0 2**6

    Signed-off-by: Zhengyu He
    Signed-off-by: Filipe Brandenburger
    Signed-off-by: Tejun Heo

    Zhengyu He
     

20 Jun, 2014

1 commit

  • Add pci_fixup_suspend_late as a new pci_fixup_pass. The pass is called
    from suspend_noirq and poweroff_noirq. Using the same pass for suspend
    and hibernate is consistent with resume_early which is called by
    resume_noirq and restore_noirq.

    The new quirk pass is required for Thunderbolt support on Apple
    hardware.

    Signed-off-by: Andreas Noever
    Acked-by: Bjorn Helgaas
    Signed-off-by: Greg Kroah-Hartman

    Andreas Noever
     

18 Jun, 2014

2 commits

  • percpu macros are difficult to read. It's partly because they're
    fairly complex but also because they simply lack visual and
    conventional consistency to an unusual degree. The preceding patches
    tried to organize macro definitions consistently by their roles. This
    patch makes the following cosmetic changes to improve overall
    readability.

    * Use consistent convention for multi-line macro definitions - "do {"
    or "({" are now put on their own lines and the line continuing '\'
    are all put on the same column.

    * Temp variables used inside macro are consistently given "__" prefix.

    * When a macro argument is passed to another macro or a function,
    putting extra parenthses around it doesn't help anything. Don't put
    them.

    * _this_cpu_generic_*() are renamed to this_cpu_generic_*() so that
    they're consistent with raw_cpu_generic_*().

    * Reorganize raw_cpu_*() and this_cpu_*() definitions so that trivial
    wrappers are collected in one place after actual operation
    definitions.

    * Other misc cleanups including reorganizing comments.

    All changes in this patch are cosmetic and cause no functional
    difference.

    Signed-off-by: Tejun Heo
    Acked-by: Christoph Lameter

    Tejun Heo
     
  • * In include/asm-generic/percpu.h, collect {raw|_this}_cpu_generic*()
    macros into one place. They were dispersed through
    {raw|this}_cpu_*_N() definitions and the visiual inconsistency was
    making following the code unnecessarily difficult.

    * In include/linux/percpu-defs.h, move __verify_pcpu_ptr() later in
    the file so that it's right above accessor definitions where it's
    actually used.

    This is pure reorganization.

    Signed-off-by: Tejun Heo
    Acked-by: Christoph Lameter

    Tejun Heo