25 Jul, 2012

1 commit

  • Pull PCI changes from Bjorn Helgaas:
    "Host bridge hotplug:
    - Add MMCONFIG support for hot-added host bridges (Jiang Liu)
    Device hotplug:
    - Move fixups from __init to __devinit (Sebastian Andrzej Siewior)
    - Call FINAL fixups for hot-added devices, too (Myron Stowe)
    - Factor out generic code for P2P bridge hot-add (Yinghai Lu)
    - Remove all functions in a slot, not just those with _EJx (Amos
    Kong)
    Dynamic resource management:
    - Track bus number allocation (struct resource tree per domain)
    (Yinghai Lu)
    - Make P2P bridge 1K I/O windows work with resource reassignment
    (Bjorn Helgaas, Yinghai Lu)
    - Disable decoding while updating 64-bit BARs (Bjorn Helgaas)
    Power management:
    - Add PCIe runtime D3cold support (Huang Ying)
    Virtualization:
    - Add VFIO infrastructure (ACS, DMA source ID quirks) (Alex
    Williamson)
    - Add quirks for devices with broken INTx masking (Jan Kiszka)
    Miscellaneous:
    - Fix some PCI Express capability version issues (Myron Stowe)
    - Factor out some arch code with a weak, generic, pcibios_setup()
    (Myron Stowe)"

    * tag 'for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (122 commits)
    PCI: hotplug: ensure a consistent return value in error case
    PCI: fix undefined reference to 'pci_fixup_final_inited'
    PCI: build resource code for M68K architecture
    PCI: pciehp: remove unused pciehp_get_max_lnk_width(), pciehp_get_cur_lnk_width()
    PCI: reorder __pci_assign_resource() (no change)
    PCI: fix truncation of resource size to 32 bits
    PCI: acpiphp: merge acpiphp_debug and debug
    PCI: acpiphp: remove unused res_lock
    sparc/PCI: replace pci_cfg_fake_ranges() with pci_read_bridge_bases()
    PCI: call final fixups hot-added devices
    PCI: move final fixups from __init to __devinit
    x86/PCI: move final fixups from __init to __devinit
    MIPS/PCI: move final fixups from __init to __devinit
    PCI: support sizing P2P bridge I/O windows with 1K granularity
    PCI: reimplement P2P bridge 1K I/O windows (Intel P64H2)
    PCI: disable MEM decoding while updating 64-bit MEM BARs
    PCI: leave MEM and IO decoding disabled during 64-bit BAR sizing, too
    PCI: never discard enable/suspend/resume_early/resume fixups
    PCI: release temporary reference in __nv_msi_ht_cap_quirk()
    PCI: restructure 'pci_do_fixups()'
    ...

    Linus Torvalds
     

20 Jul, 2012

8 commits

  • Currently kexec in a PVonHVM guest fails with a triple fault because the
    new kernel overwrites the shared info page. The exact failure depends on
    the size of the kernel image. This patch moves the pfn from RAM into
    MMIO space before the kexec boot.

    The pfn containing the shared_info is located somewhere in RAM. This
    will cause trouble if the current kernel is doing a kexec boot into a
    new kernel. The new kernel (and its startup code) can not know where the
    pfn is, so it can not reserve the page. The hypervisor will continue to
    update the pfn, and as a result memory corruption occours in the new
    kernel.

    One way to work around this issue is to allocate a page in the
    xen-platform pci device's BAR memory range. But pci init is done very
    late and the shared_info page is already in use very early to read the
    pvclock. So moving the pfn from RAM to MMIO is racy because some code
    paths on other vcpus could access the pfn during the small window when
    the old pfn is moved to the new pfn. There is even a small window were
    the old pfn is not backed by a mfn, and during that time all reads
    return -1.

    Because it is not known upfront where the MMIO region is located it can
    not be used right from the start in xen_hvm_init_shared_info.

    To minimise trouble the move of the pfn is done shortly before kexec.
    This does not eliminate the race because all vcpus are still online when
    the syscore_ops will be called. But hopefully there is no work pending
    at this point in time. Also the syscore_op is run last which reduces the
    risk further.

    Signed-off-by: Olaf Hering
    Signed-off-by: Konrad Rzeszutek Wilk

    Olaf Hering
     
  • While debugging kexec issues in a PVonHVM guest I modified
    xen_hvm_platform() to return false to disable all PV drivers. This
    caused a crash in platform_pci_init() because it expects certain data
    structures to be initialized properly.

    To avoid such a crash make sure the driver is initialized only if
    running in a Xen guest.

    Signed-off-by: Olaf Hering
    Signed-off-by: Konrad Rzeszutek Wilk

    Olaf Hering
     
  • Add xs_reset_watches function to shutdown watches from old kernel after
    kexec boot. The old kernel does not unregister all watches in the
    shutdown path. They are still active, the double registration can not
    be detected by the new kernel. When the watches fire, unexpected events
    will arrive and the xenwatch thread will crash (jumps to NULL). An
    orderly reboot of a hvm guest will destroy the entire guest with all its
    resources (including the watches) before it is rebuilt from scratch, so
    the missing unregister is not an issue in that case.

    With this change the xenstored is instructed to wipe all active watches
    for the guest. However, a patch for xenstored is required so that it
    accepts the XS_RESET_WATCHES request from a client (see changeset
    23839:42a45baf037d in xen-unstable.hg). Without the patch for xenstored
    the registration of watches will fail and some features of a PVonHVM
    guest are not available. The guest is still able to boot, but repeated
    kexec boots will fail.

    Signed-off-by: Olaf Hering
    Signed-off-by: Konrad Rzeszutek Wilk

    Olaf Hering
     
  • Coverity points out that we do not free in one case the
    pr_backup - and sure enough we forgot.

    Found by Coverity (CID 401970)

    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • If a driver leaves its poll method NULL, the device is assumed to
    be both readable and writable without blocking.

    This patch add .poll method to xen mcelog device driver, so that
    when mcelog use system calls like ppoll or select, it would be
    blocked when no data available, and avoid spinning at CPU.

    Reported-by: Konrad Rzeszutek Wilk
    Signed-off-by: Liu, Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu, Jinsong
     
  • copy_to_user might sleep and print a stack trace if it is executed
    in an atomic spinlock context. Like this:

    (XEN) CMCI: send CMCI to DOM0 through virq
    BUG: sleeping function called from invalid context at /home/konradinux/kernel.h:199
    in_atomic(): 1, irqs_disabled(): 0, pid: 4581, name: mcelog
    Pid: 4581, comm: mcelog Tainted: G O 3.5.0-rc1upstream-00003-g149000b-dirty #1
    [] __might_sleep+0xda/0x100
    [] xen_mce_chrdev_read+0xab/0x140
    [] vfs_read+0xc5/0x190
    [] sys_read+0x4c/0x90
    [] system_call_fastpath+0x16

    This patch schedule a workqueue for IRQ handler to poll the data,
    and use mutex instead of spinlock, so copy_to_user sleep in atomic
    context would not occur.

    Reported-by: Konrad Rzeszutek Wilk
    Suggested-by: Konrad Rzeszutek Wilk
    Signed-off-by: Liu, Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu, Jinsong
     
  • This patch provide Xen physical cpus online/offline sys interface.
    User can use it for their own purpose, like power saving:
    by offlining some cpus when light workload it save power greatly.

    Its basic workflow is, user online/offline cpu via sys interface,
    then hypercall xen to implement, after done xen inject virq back to dom0,
    and then dom0 sync cpu status.

    Signed-off-by: Jiang, Yunhong
    Signed-off-by: Liu, Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu, Jinsong
     
  • When MCA error occurs, it would be handled by Xen hypervisor first,
    and then the error information would be sent to initial domain for logging.

    This patch gets error information from Xen hypervisor and convert
    Xen format error into Linux format mcelog. This logic is basically
    self-contained, not touching other kernel components.

    By using tools like mcelog tool users could read specific error information,
    like what they did under native Linux.

    To test follow directions outlined in Documentation/acpi/apei/einj.txt

    Acked-and-tested-by: Borislav Petkov
    Signed-off-by: Ke, Liping
    Signed-off-by: Jiang, Yunhong
    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Liu, Jinsong
    Signed-off-by: Konrad Rzeszutek Wilk

    Liu, Jinsong
     

16 Jun, 2012

1 commit

  • Pull five Xen bug-fixes from Konrad Rzeszutek Wilk:

    - When booting as PVHVM we would try to use PV console - but would not validate
    the parameters causing us to crash during restore b/c we re-use the wrong event
    channel.
    - When booting on machines with SR-IOV PCI bridge we didn't check for the bridge
    and tried to use it.
    - Under AMD machines would advertise the APERFMPERF resulting in needless amount
    of MSRs from the guest.
    - A global value (xen_released_pages) was not subtracted at bootup when pages
    were added back in. This resulted in the balloon worker having the wrong
    account of how many pages were truly released.
    - Fix dead-lock when xen-blkfront is run in the same domain as xen-blkback.

    * tag 'stable/for-linus-3.5-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: mark local pages as FOREIGN in the m2p_override
    xen/setup: filter APERFMPERF cpuid feature out
    xen/balloon: Subtract from xen_released_pages the count that is populated.
    xen/pci: Check for PCI bridge before using it.
    xen/events: Add WARN_ON when quick lookup found invalid type.
    xen/hvc: Check HVM_PARAM_CONSOLE_[EVTCHN|PFN] for correctness.
    xen/hvc: Fix error cases around HVM_PARAM_CONSOLE_PFN
    xen/hvc: Collapse error logic.

    Linus Torvalds
     

12 Jun, 2012

1 commit


05 Jun, 2012

1 commit

  • Pull frontswap feature from Konrad Rzeszutek Wilk:
    "Frontswap provides a "transcendent memory" interface for swap pages.
    In some environments, dramatic performance savings may be obtained
    because swapped pages are saved in RAM (or a RAM-like device) instead
    of a swap disk. This tag provides the basic infrastructure along with
    some changes to the existing backends."

    Fix up trivial conflict in mm/Makefile due to removal of swap token code
    changing a line next to the new frontswap entry.

    This pull request came in before the merge window even opened, it got
    delayed to after the merge window by me just wanting to make sure it had
    actual users. Apparently IBM is using this on their embedded side, and
    Jan Beulich says that it's already made available for SLES and OpenSUSE
    users.

    Also acked by Rik van Riel, and Konrad points to other people liking it
    too. So in it goes.

    By Dan Magenheimer (4) and Konrad Rzeszutek Wilk (2)
    via Konrad Rzeszutek Wilk
    * tag 'stable/frontswap.v16-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:
    frontswap: s/put_page/store/g s/get_page/load
    MAINTAINER: Add myself for the frontswap API
    mm: frontswap: config and doc files
    mm: frontswap: core frontswap functionality
    mm: frontswap: core swap subsystem hooks and headers
    mm: frontswap: add frontswap header file

    Linus Torvalds
     

30 May, 2012

3 commits

  • Some SR-IOV devices may use more than one bus number, but there is no real bridges
    because that have internal routing mechanism. So need to check whether the bridge is
    existing before using it.

    Signed-off-by: Yang Zhang
    Signed-off-by: Konrad Rzeszutek Wilk

    Zhang, Yang Z
     
  • All of the bind_XYZ_to_irq do a quick lookup to see if the
    event exists. And if it does, then the initialized IRQ number
    is returned instead of initializing a new IRQ number.

    This patch adds an extra logic to check that the type returned
    is proper one and that there is an IRQ handler setup for it.

    This patch has the benefit of being able to find drivers that
    are doing something naught.

    [v1: Enhanced based on Stefano's review]
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • Pull x86 trampoline rework from H. Peter Anvin:
    "This code reworks all the "trampoline"/"realmode" code (various bits
    that need to live in the first megabyte of memory, most but not all of
    which runs in real mode at some point) in the kernel into a single
    object. The main reason for doing this is that it eliminates the last
    place in the kernel where we needed pages to be mapped RWX. This code
    separates all that code into proper R/RW/RX pages."

    Fix up conflicts in arch/x86/kernel/Makefile (mca removed next to reboot
    code), and arch/x86/kernel/reboot.c (reboot code moved around in one
    branch, modified in this one), and arch/x86/tools/relocs.c (mostly same
    code came in earlier due to working around the ld bugs just before the
    3.4 release).

    Also remove stale x86-relocs entry from scripts/.gitignore as per Peter
    Anvin.

    * commit '61f5446169046c217a5479517edac3a890c3bee7': (36 commits)
    x86, realmode: Move end signature into header.S
    x86, relocs: When printing an error, say relative or absolute
    x86, relocs: More relocations which may end up as absolute
    x86, relocs: Workaround for binutils 2.22.52.0.1 section bug
    xen-acpi-processor: Add missing #include
    acpi, bgrd: Add missing to drivers/acpi/bgrt.c
    x86, realmode: Change EFER to a single u64 field
    x86, realmode: Move kernel/realmode.c to realmode/init.c
    x86, realmode: Move not-common bits out of trampoline_common.S
    x86, realmode: Mask out EFER.LMA when saving trampoline EFER
    x86, realmode: Fix no cache bits test in reboot_32.S
    x86, realmode: Make sure all generated files are listed in targets
    x86, realmode: build fix: remove duplicate build
    x86, realmode: read cr4 and EFER from kernel for 64-bit trampoline
    x86, realmode: fixes compilation issue in tboot.c
    x86, realmode: move relocs from scripts/ to arch/x86/tools
    x86, realmode: header for trampoline code
    x86, realmode: flattened rm hierachy
    x86, realmode: don't copy real_mode_header
    x86, realmode: fix 64-bit wakeup sequence
    ...

    Linus Torvalds
     

25 May, 2012

1 commit

  • Pull Xen updates from Konrad Rzeszutek Wilk:
    "Features:
    * Extend the APIC ops implementation and add IRQ_WORKER vector
    support so that 'perf' can work properly.
    * Fix self-ballooning code, and balloon logic when booting as initial
    domain.
    * Move array printing code to generic debugfs
    * Support XenBus domains.
    * Lazily free grants when a domain is dead/non-existent.
    * In M2P code use batching calls
    Bug-fixes:
    * Fix NULL dereference in allocation failure path (hvc_xen)
    * Fix unbinding of IRQ_WORKER vector during vCPU hot-unplug
    * Fix HVM guest resume - we would leak an PIRQ value instead of
    reusing the existing one."

    Fix up add-add onflicts in arch/x86/xen/enlighten.c due to addition of
    apic ipi interface next to the new apic_id functions.

    * tag 'stable/for-linus-3.5-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: do not map the same GSI twice in PVHVM guests.
    hvc_xen: NULL dereference on allocation failure
    xen: Add selfballoning memory reservation tunable.
    xenbus: Add support for xenbus backend in stub domain
    xen/smp: unbind irqworkX when unplugging vCPUs.
    xen: enter/exit lazy_mmu_mode around m2p_override calls
    xen/acpi/sleep: Enable ACPI sleep via the __acpi_os_prepare_sleep
    xen: implement IRQ_WORK_VECTOR handler
    xen: implement apic ipi interface
    xen/setup: update VA mapping when releasing memory during setup
    xen/setup: Combine the two hypercall functions - since they are quite similar.
    xen/setup: Populate freed MFNs from non-RAM E820 entries and gaps to E820 RAM
    xen/setup: Only print "Freeing XXX-YYY pfn range: Z pages freed" if Z > 0
    xen/gnttab: add deferred freeing logic
    debugfs: Add support to print u32 array in debugfs
    xen/p2m: An early bootup variant of set_phys_to_machine
    xen/p2m: Collapse early_alloc_p2m_middle redundant checks.
    xen/p2m: Allow alloc_p2m_middle to call reserve_brk depending on argument
    xen/p2m: Move code around to allow for better re-usage.

    Linus Torvalds
     

23 May, 2012

1 commit

  • Pull trivial updates from Jiri Kosina:
    "As usual, it's mostly typo fixes, redundant code elimination and some
    documentation updates."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (57 commits)
    edac, mips: don't change code that has been removed in edac/mips tree
    xtensa: Change mail addresses of Hannes Weiner and Oskar Schirmer
    lib: Change mail address of Oskar Schirmer
    net: Change mail address of Oskar Schirmer
    arm/m68k: Change mail address of Sebastian Hess
    i2c: Change mail address of Oskar Schirmer
    net: Fix tcp_build_and_update_options comment in struct tcp_sock
    atomic64_32.h: fix parameter naming mismatch
    Kconfig: replace "--- help ---" with "---help---"
    c2port: fix bogus Kconfig "default no"
    edac: Fix spelling errors.
    qla1280: Remove redundant NULL check before release_firmware() call
    remoteproc: remove redundant NULL check before release_firmware()
    qla2xxx: Remove redundant NULL check before release_firmware() call.
    aic94xx: Get rid of redundant NULL check before release_firmware() call
    tehuti: delete redundant NULL check before release_firmware()
    qlogic: get rid of a redundant test for NULL before call to release_firmware()
    bna: remove redundant NULL test before release_firmware()
    tg3: remove redundant NULL test before release_firmware() call
    typhoon: get rid of redundant conditional before all to release_firmware()
    ...

    Linus Torvalds
     

22 May, 2012

1 commit

  • PV on HVM guests map GSIs into event channels. At restore time the
    event channels are resumed by restore_pirqs.

    Device drivers might try to register the same GSI again through ACPI at
    restore time, but the GSI has already been mapped and bound by
    restore_pirqs. This patch detects these situations and avoids
    mapping the same GSI multiple times.

    Without this patch we get:
    (XEN) irq.c:2235: dom4: pirq 23 or emuirq 28 already mapped
    and waste a pirq.

    CC: stable@kernel.org
    Signed-off-by: Stefano Stabellini
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefano Stabellini
     

21 May, 2012

2 commits

  • Currently, the memory target in the Xen selfballooning driver is mainly
    driven by the value of "Committed_AS". However, there are cases in
    which it is desirable to assign additional memory to be available for
    the kernel, e.g. for local caches (which are not covered by cleancache),
    e.g. dcache and inode caches.

    This adds an additional tunable in the selfballooning driver (accessible
    via sysfs) which allows the user to specify an additional constant
    amount of memory to be reserved by the selfballoning driver for the
    local domain.

    Signed-off-by: Jana Saout
    Acked-by: Dan Magenheimer
    Signed-off-by: Konrad Rzeszutek Wilk

    Jana Saout
     
  • Add an ioctl to the /dev/xen/xenbus_backend device allowing the xenbus
    backend to be started after the kernel has booted. This allows xenstore
    to run in a different domain from the dom0.

    Signed-off-by: Daniel De Graaf
    Signed-off-by: Konrad Rzeszutek Wilk

    Daniel De Graaf
     

18 May, 2012

1 commit


15 May, 2012

1 commit


08 May, 2012

3 commits

  • This patch is a significant performance improvement for the
    m2p_override: about 6% using the gntdev device.

    Each m2p_add/remove_override call issues a MULTI_grant_table_op and a
    __flush_tlb_single if kmap_op != NULL. Batching all the calls together
    is a great performance benefit because it means issuing one hypercall
    total rather than two hypercall per page.
    If paravirt_lazy_mode is set PARAVIRT_LAZY_MMU, all these calls are
    going to be batched together, otherwise they are issued one at a time.

    Adding arch_enter_lazy_mmu_mode/arch_leave_lazy_mmu_mode around the
    m2p_add/remove_override calls forces paravirt_lazy_mode to
    PARAVIRT_LAZY_MMU, therefore makes sure that they are always batched.

    However it is not safe to call arch_enter_lazy_mmu_mode if we are in
    interrupt context or if we are already in PARAVIRT_LAZY_MMU mode, so
    check for both conditions before doing so.

    Changes in v4:
    - rebased on 3.4-rc4: all the m2p_override users call gnttab_unmap_refs
    and gnttab_map_refs;
    - check whether we are in interrupt context and the lazy_mode we are in
    before calling arch_enter/leave_lazy_mmu_mode.

    Changes in v3:
    - do not call arch_enter/leave_lazy_mmu_mode in xen_blkbk_unmap, that
    can be called in interrupt context.

    Signed-off-by: Stefano Stabellini
    [v5: s/int lazy/bool lazy/]
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefano Stabellini
     
  • Provide the registration callback to call in the Xen's
    ACPI sleep functionality. This means that during S3/S5
    we make a hypercall XENPF_enter_acpi_sleep with the
    proper PM1A/PM1B registers.

    Based of Ke Yu's initial idea.
    [ From http://xenbits.xensource.com/linux-2.6.18-xen.hg
    change c68699484a65 ]

    [v1: Added Copyright and license]
    [v2: Added check if PM1A/B the 16-bits MSB contain something. The spec
    only uses 16-bits but might have more in future]
    Signed-off-by: Liang Tang
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • Fit it into 80 columns so that it is readable in menuconfig.

    Signed-off-by: Andrew Morton
    Signed-off-by: Konrad Rzeszutek Wilk

    Andrew Morton
     

27 Apr, 2012

2 commits

  • We did a similar check for the P-states but did not do it for
    the C-states. What we want to do is ignore cases where the DSDT
    has definition for sixteen CPUs, but the machine only has eight
    CPUs and we get:
    xen-acpi-processor: (CX): Hypervisor error (-22) for ACPI CPU14

    Reported-by: Tobias Geiger
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • In pirq_check_eoi_map use the pirq number rather than the Linux irq
    number to check whether an eoi is needed in the pirq_eoi_map.

    The reason is that the irq number is not always identical to the
    pirq number so if we wrongly use the irq number to check the
    pirq_eoi_map we are going to check for the wrong pirq to EOI.

    As a consequence some interrupts might not be EOI'ed by the
    guest correctly.

    Signed-off-by: Stefano Stabellini
    Tested-by: Tobias Geiger
    [v1: Added some extra wording to git commit]
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefano Stabellini
     

20 Apr, 2012

2 commits

  • linux/drivers/xen/manage.c: In function 'do_suspend':
    linux/drivers/xen/manage.c:160:5: warning: 'si.cancelled' may be used uninitialized in this function

    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • A rather annoying and common case is when booting a PVonHVM guest
    and exposing the PV KBD and PV VFB - as broken toolstacks don't
    always initialize the backends correctly.

    Normally The HVM guest is using the VGA driver and the emulated
    keyboard for this (though upstream version of QEMU implements
    PV KBD, but still uses a VGA driver). We provide a very basic
    two-stage wait mechanism - where we wait for 30 seconds for all
    devices, and then for 270 for all them except the two mentioned.

    That allows us to wait for the essential devices, like network
    or disk for the full 6 minutes.

    To trigger this, put this in your guest config:

    vfb = [ 'vnc=1, vnclisten=0.0.0.0 ,vncunused=1']

    instead of this:
    vnc=1
    vnclisten="0.0.0.0"

    CC: stable@kernel.org
    Acked-by: Stefano Stabellini
    [v3: Split delay in non-essential (30 seconds) and essential
    devices per Ian and Stefano suggestion]
    [v4: Added comments per Stefano suggestion]
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

19 Apr, 2012

1 commit

  • * commit 'c104f1fa1ecf4ee0fc06e31b1f77630b2551be81': (14566 commits)
    cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS
    sparc64: Eliminate obsolete __handle_softirq() function
    sparc64: Fix bootup crash on sun4v.
    kconfig: delete last traces of __enabled_ from autoconf.h
    Revert "kconfig: fix __enabled_ macros definition for invisible and un-selected symbols"
    kconfig: fix IS_ENABLED to not require all options to be defined
    irq_domain: fix type mismatch in debugfs output format
    staging: android: fix mem leaks in __persistent_ram_init()
    staging: vt6656: Don't leak memory in drivers/staging/vt6656/ioctl.c::private_ioctl()
    staging: iio: hmc5843: Fix crash in probe function.
    panic: fix stack dump print on direct call to panic()
    drivers/rtc/rtc-pl031.c: enable clock on all ST variants
    Revert "mm: vmscan: fix misused nr_reclaimed in shrink_mem_cgroup_zone()"
    hugetlb: fix race condition in hugetlb_fault()
    drivers/rtc/rtc-twl.c: use static register while reading time
    drivers/rtc/rtc-s3c.c: add placeholder for driver private data
    drivers/rtc/rtc-s3c.c: fix compilation error
    MAINTAINERS: add PCDP console maintainer
    memcg: do not open code accesses to res_counter members
    drivers/rtc/rtc-efi.c: fix section mismatch warning
    ...

    Konrad Rzeszutek Wilk
     

18 Apr, 2012

2 commits

  • Rather than just leaking pages that can't be freed at the point where
    access permission for the backend domain gets revoked, put them on a
    list and run a timer to (infrequently) retry freeing them. (This can
    particularly happen when unloading a frontend driver when devices are
    still present, and the backend still has them in non-closed state or
    hasn't finished closing them yet.)

    Signed-off-by: Jan Beulich
    Signed-off-by: Konrad Rzeszutek Wilk

    Jan Beulich
     
  • Since we are using the m2p_override we do have struct pages
    corresponding to the user vma mmap'ed by gntdev.

    Removing the VM_PFNMAP flag makes get_user_pages work on that vma.
    An example test case would be using a Xen userspace block backend
    (QDISK) on a file on NFS using O_DIRECT.

    CC: stable@kernel.org
    Signed-off-by: Stefano Stabellini
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefano Stabellini
     

17 Apr, 2012

1 commit


16 Apr, 2012

1 commit


07 Apr, 2012

2 commits

  • Pull xen fixes from Konrad Rzeszutek Wilk:
    "Two fixes for regressions:
    * one is a workaround that will be removed in v3.5 with proper fix in
    the tip/x86 tree,
    * the other is to fix drivers to load on PV (a previous patch made
    them only load in PVonHVM mode).

    The rest are just minor fixes in the various drivers and some cleanup
    in the core code."

    * tag 'stable/for-linus-3.4-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/pcifront: avoid pci_frontend_enable_msix() falsely returning success
    xen/pciback: fix XEN_PCI_OP_enable_msix result
    xen/smp: Remove unnecessary call to smp_processor_id()
    xen/x86: Workaround 'x86/ioapic: Add register level checks to detect bogus io-apic entries'
    xen: only check xen_platform_pci_unplug if hvm

    Linus Torvalds
     
  • Prior to 2.6.19 and as of 2.6.31, pci_enable_msix() can return a
    positive value to indicate the number of vectors (less than the amount
    requested) that can be set up for a given device. Returning this as an
    operation value (secondary result) is fine, but (primary) operation
    results are expected to be negative (error) or zero (success) according
    to the protocol. With the frontend fixed to match the XenoLinux
    behavior, the backend can now validly return zero (success) here,
    passing the upper limit on the number of vectors in op->value.

    Signed-off-by: Jan Beulich
    Signed-off-by: Konrad Rzeszutek Wilk

    Jan Beulich
     

05 Apr, 2012

1 commit

  • Pull DMA mapping branch from Marek Szyprowski:
    "Short summary for the whole series:

    A few limitations have been identified in the current dma-mapping
    design and its implementations for various architectures. There exist
    more than one function for allocating and freeing the buffers:
    currently these 3 are used dma_{alloc, free}_coherent,
    dma_{alloc,free}_writecombine, dma_{alloc,free}_noncoherent.

    For most of the systems these calls are almost equivalent and can be
    interchanged. For others, especially the truly non-coherent ones
    (like ARM), the difference can be easily noticed in overall driver
    performance. Sadly not all architectures provide implementations for
    all of them, so the drivers might need to be adapted and cannot be
    easily shared between different architectures. The provided patches
    unify all these functions and hide the differences under the already
    existing dma attributes concept. The thread with more references is
    available here:

    http://www.spinics.net/lists/linux-sh/msg09777.html

    These patches are also a prerequisite for unifying DMA-mapping
    implementation on ARM architecture with the common one provided by
    dma_map_ops structure and extending it with IOMMU support. More
    information is available in the following thread:

    http://thread.gmane.org/gmane.linux.kernel.cross-arch/12819

    More works on dma-mapping framework are planned, especially in the
    area of buffer sharing and managing the shared mappings (together with
    the recently introduced dma_buf interface: commit d15bd7ee445d
    "dma-buf: Introduce dma buffer sharing mechanism").

    The patches in the current set introduce a new alloc/free methods
    (with support for memory attributes) in dma_map_ops structure, which
    will later replace dma_alloc_coherent and dma_alloc_writecombine
    functions."

    People finally started piping up with support for merging this, so I'm
    merging it as the last of the pending stuff from the merge window.
    Looks like pohmelfs is going to wait for 3.5 and more external support
    for merging.

    * 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping:
    common: DMA-mapping: add NON-CONSISTENT attribute
    common: DMA-mapping: add WRITE_COMBINE attribute
    common: dma-mapping: introduce mmap method
    common: dma-mapping: remove old alloc_coherent and free_coherent methods
    Hexagon: adapt for dma_map_ops changes
    Unicore32: adapt for dma_map_ops changes
    Microblaze: adapt for dma_map_ops changes
    SH: adapt for dma_map_ops changes
    Alpha: adapt for dma_map_ops changes
    SPARC: adapt for dma_map_ops changes
    PowerPC: adapt for dma_map_ops changes
    MIPS: adapt for dma_map_ops changes
    X86 & IA64: adapt for dma_map_ops changes
    common: dma-mapping: introduce generic alloc() and free() methods

    Linus Torvalds
     

28 Mar, 2012

1 commit

  • Adapt core x86 and IA64 architecture code for dma_map_ops changes: replace
    alloc/free_coherent with generic alloc/free methods.

    Signed-off-by: Andrzej Pietrasiewicz
    Acked-by: Kyungmin Park
    [removed swiotlb related changes and replaced it with wrappers,
    merged with IA64 patch to avoid inter-patch dependences in intel-iommu code]
    Signed-off-by: Marek Szyprowski
    Reviewed-by: Arnd Bergmann
    Acked-by: Tony Luck

    Andrzej Pietrasiewicz
     

25 Mar, 2012

1 commit

  • Pull more xen updates from Konrad Rzeszutek Wilk:
    "One tiny feature that accidentally got lost in the initial git pull:
    * Add fast-EOI acking of interrupts (clear a bit instead of
    hypercall)
    And bug-fixes:
    * Fix CPU bring-up code missing a call to notify other subsystems.
    * Fix reading /sys/hypervisor even if PVonHVM drivers are not loaded.
    * In Xen ACPI processor driver: remove too verbose WARN messages, fix
    up the Kconfig dependency to be a module by default, and add
    dependency on CPU_FREQ.
    * Disable CPU frequency drivers from loading when booting under Xen
    (as we want the Xen ACPI processor to be used instead).
    * Cleanups in tmem code."

    * tag 'stable/for-linus-3.4-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/acpi: Fix Kconfig dependency on CPU_FREQ
    xen: initialize platform-pci even if xen_emul_unplug=never
    xen/smp: Fix bringup bug in AP code.
    xen/acpi: Remove the WARN's as they just create noise.
    xen/tmem: cleanup
    xen: support pirq_eoi_map
    xen/acpi-processor: Do not depend on CPU frequency scaling drivers.
    xen/cpufreq: Disable the cpu frequency scaling drivers from loading.
    provide disable_cpufreq() function to disable the API.

    Linus Torvalds
     

24 Mar, 2012

1 commit

  • The functions: "acpi_processor_*" sound like they depend on CONFIG_ACPI_PROCESSOR
    but in reality they are exposed when CONFIG_CPU_FREQ=[y|m]. As such
    update the Kconfig to have this dependency and fix compile issues:

    ERROR: "acpi_processor_unregister_performance" [drivers/xen/xen-acpi-processor.ko] undefined!
    ERROR: "acpi_processor_notify_smm" [drivers/xen/xen-acpi-processor.ko] undefined!
    ERROR: "acpi_processor_register_performance" [drivers/xen/xen-acpi-processor.ko] undefined!
    ERROR: "acpi_processor_preregister_performance" [drivers/xen/xen-acpi-processor.ko] undefined!

    Note: We still need the CONFIG_ACPI
    Reported-by: Randy Dunlap
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk