29 Oct, 2010

1 commit

  • * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: (38 commits)
    kbuild: convert `arch/tile' to the kconfig mainmenu upgrade
    README: cite nconfig
    Revert "kconfig: Temporarily disable dependency warnings"
    kconfig: Use PATH_MAX instead of 128 for path buffer sizes.
    kconfig: Fix realloc usage()
    kconfig: Propagate const
    kconfig: Don't go out from read config loop when you read new symbol
    kconfig: fix menuconfig on debian lenny
    kbuild: migrate all arch to the kconfig mainmenu upgrade
    kconfig: expand file names
    kconfig: use the file's name of sourced file
    kconfig: constify file name
    kconfig: don't emit warning upon rootmenu's prompt redefinition
    kconfig: replace KERNELVERSION usage by the mainmenu's prompt
    kconfig: delay gconf window initialization
    kconfig: expand by default the rootmenu's prompt
    kconfig: add a symbol string expansion helper
    kconfig: regen parser
    kconfig: implement the `mainmenu' directive
    kconfig: allow PACKAGE to be defined on the compiler's command-line
    ...

    Fix up trivial conflict in arch/mn10300/Kconfig

    Linus Torvalds
     

28 Oct, 2010

7 commits

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (48 commits)
    DMAENGINE: move COH901318 to arch_initcall
    dma: imx-dma: fix signedness bug
    dma/timberdale: simplify conditional
    ste_dma40: remove channel_type
    ste_dma40: remove enum for endianess
    ste_dma40: remove TIM_FOR_LINK option
    ste_dma40: move mode_opt to separate config
    ste_dma40: move channel mode to a separate field
    ste_dma40: move priority to separate field
    ste_dma40: add variable to indicate valid dma_cfg
    async_tx: make async_tx channel switching opt-in
    move async raid6 test to lib/Kconfig.debug
    dmaengine: Add Freescale i.MX1/21/27 DMA driver
    intel_mid_dma: change the slave interface
    intel_mid_dma: fix the WARN_ONs
    intel_mid_dma: Add sg list support to DMA driver
    intel_mid_dma: Allow DMAC2 to share interrupt
    intel_mid_dma: Allow IRQ sharing
    intel_mid_dma: Add runtime PM support
    DMAENGINE: define a dummy filter function for ste_dma40
    ...

    Linus Torvalds
     
  • The taskstats interface uses microsecond granularity for the user and
    system time values. The conversion from cputime to the taskstats values
    uses the cputime_to_msecs primitive which effectively limits the
    granularity to milliseconds. Add the cputime_to_usecs primitive for
    architectures that have better, more precise CPU time values. Remove
    cputime_to_msecs primitive because there are no more users left.

    Signed-off-by: Michael Holzheu
    Acked-by: Balbir Singh
    Cc: Luck Tony
    Cc: Shailabh Nagar
    Cc: Martin Schwidefsky
    Cc: Oleg Nesterov
    Cc: Benjamin Herrenschmidt
    Cc: Heiko Carstens
    Cc: Thomas Gleixner
    Cc: Shailabh Nagar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Holzheu
     
  • Detects RIO link to the already enumerated device and properly sets links
    between device objects. Changes to the enumeration/discovery logic:

    1. Use Master Enable bit to signal end of the enumeration - agents may
    start their discovery process as soon as they see this bit set
    (Component Tag register was used before for this purpose).

    2. Enumerator sets Component Tag (!= 0) immediately during device
    setup. This allows to identify the device if the redundant route
    exists in a RIO system.

    Signed-off-by: Alexandre Bounine
    Cc: Thomas Moll
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Micha Nelissen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • - Rearrange RIO port-write interrupt handling to perform message
    buffering as soon as possible.

    - Modify to disable port-write controller when clearing Transaction
    Error (TE) bit.

    Signed-off-by: Alexandre Bounine
    Cc: Thomas Moll
    Cc: Matt Porter
    Cc: Li Yang
    Cc: Kumar Gala
    Cc: Micha Nelissen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Bounine
     
  • Use new 'datavp' and 'datalp' variables in order to remove unnecessary
    castings.

    Signed-off-by: Namhyung Kim
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Namhyung Kim
     
  • Fix up the arguments to arch_ptrace() to take account of the fact that
    @addr and @data are now unsigned long rather than long as of a preceding
    patch in this series.

    Signed-off-by: Namhyung Kim
    Cc:
    Acked-by: Roland McGrath
    Acked-by: David Howells
    Acked-by: Geert Uytterhoeven
    Acked-by: David S. Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Namhyung Kim
     
  • Christoph reported a nice splat which illustrated a race in the new stack
    based kmap_atomic implementation.

    The problem is that we pop our stack slot before we're completely done
    resetting its state -- in particular clearing the PTE (sometimes that's
    CONFIG_DEBUG_HIGHMEM). If an interrupt happens before we actually clear
    the PTE used for the last slot, that interrupt can reuse the slot in a
    dirty state, which triggers a BUG in kmap_atomic().

    Fix this by introducing kmap_atomic_idx() which reports the current slot
    index without actually releasing it and use that to find the PTE and delay
    the _pop() until after we're completely done.

    Signed-off-by: Peter Zijlstra
    Reported-by: Christoph Hellwig
    Acked-by: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     

27 Oct, 2010

3 commits

  • Use the new {max,min}3 macros to save some cycles and bytes on the stack.
    This patch substitutes trivial nested macros with their counterpart.

    Signed-off-by: Hagen Paul Pfeifer
    Cc: Joe Perches
    Cc: Ingo Molnar
    Cc: Hartley Sweeten
    Cc: Russell King
    Cc: Benjamin Herrenschmidt
    Cc: Thomas Gleixner
    Cc: Herbert Xu
    Cc: Roland Dreier
    Cc: Sean Hefty
    Cc: Pekka Enberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hagen Paul Pfeifer
     
  • Since we no longer need to provide KM_type, the whole pte_*map_nested()
    API is now redundant, remove it.

    Signed-off-by: Peter Zijlstra
    Acked-by: Chris Metcalf
    Cc: David Howells
    Cc: Hugh Dickins
    Cc: Rik van Riel
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Steven Rostedt
    Cc: Russell King
    Cc: Ralf Baechle
    Cc: David Miller
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Keep the current interface but ignore the KM_type and use a stack based
    approach.

    The advantage is that we get rid of crappy code like:

    #define __KM_PTE \
    (in_nmi() ? KM_NMI_PTE : \
    in_irq() ? KM_IRQ_PTE : \
    KM_PTE0)

    and in general can stop worrying about what context we're in and what kmap
    slots might be appropriate for that.

    The downside is that FRV kmap_atomic() gets more expensive.

    For now we use a CPP trick suggested by Andrew:

    #define kmap_atomic(page, args...) __kmap_atomic(page)

    to avoid having to touch all kmap_atomic() users in a single patch.

    [ not compiled on:
    - mn10300: the arch doesn't actually build with highmem to begin with ]

    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: fix up drivers/gpu/drm/i915/intel_overlay.c]
    Acked-by: Rik van Riel
    Signed-off-by: Peter Zijlstra
    Acked-by: Chris Metcalf
    Cc: David Howells
    Cc: Hugh Dickins
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Steven Rostedt
    Cc: Russell King
    Cc: Ralf Baechle
    Cc: David Miller
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Dave Airlie
    Cc: Li Zefan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     

25 Oct, 2010

5 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (365 commits)
    ALSA: hda - Disable sticky PCM stream assignment for AD codecs
    ALSA: usb - Creative USB X-Fi volume knob support
    ALSA: ca0106: Use card specific dac id for mute controls.
    ALSA: ca0106: Allow different sound cards to use different SPI channel mappings.
    ALSA: ca0106: Create a nice spot for mapping channels to dacs.
    ALSA: ca0106: Move enabling of front dac out of hardcoded setup sequence.
    ALSA: ca0106: Pull out dac powering routine into separate function.
    ALSA: ca0106 - add Sound Blaster 5.1vx info.
    ASoC: tlv320dac33: Use usleep_range for delays
    ALSA: usb-audio: add Novation Launchpad support
    ALSA: hda - Add workarounds for CT-IBG controllers
    ALSA: hda - Fix wrong TLV mute bit for STAC/IDT codecs
    ASoC: tpa6130a2: Error handling for broken chip
    ASoC: max98088: Staticise m98088_eq_band
    ASoC: soc-core: Fix codec->name memory leak
    ALSA: hda - Apply ideapad quirk to Acer laptops with Cxt5066
    ALSA: hda - Add some workarounds for Creative IBG
    ALSA: hda - Fix wrong SPDIF NID assignment for CA0110
    ALSA: hda - Fix codec rename rules for ALC662-compatible codecs
    ALSA: hda - Add alc_init_jacks() call to other codecs
    ...

    Linus Torvalds
     
  • * 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
    mtd/m25p80: add support to parse the partitions by OF node
    of/irq: of_irq.c needs to include linux/irq.h
    of/mips: Cleanup some include directives/files.
    of/mips: Add device tree support to MIPS
    of/flattree: Eliminate need to provide early_init_dt_scan_chosen_arch
    of/device: Rework to use common platform_device_alloc() for allocating devices
    of/xsysace: Fix OF probing on little-endian systems
    of: use __be32 types for big-endian device tree data
    of/irq: remove references to NO_IRQ in drivers/of/platform.c
    of/promtree: add package-to-path support to pdt
    of/promtree: add of_pdt namespace to pdt code
    of/promtree: no longer call prom_ functions directly; use an ops structure
    of/promtree: make drivers/of/pdt.c no longer sparc-only
    sparc: break out some PROM device-tree building code out into drivers/of
    of/sparc: convert various prom_* functions to use phandle
    sparc: stop exporting openprom.h header
    powerpc, of_serial: Endianness issues setting up the serial ports
    of: MTD: Fix OF probing on little-endian systems
    of: GPIO: Fix OF probing on little-endian systems

    Linus Torvalds
     
  • Conflicts:
    arch/powerpc/platforms/85xx/p1022_ds.c

    Takashi Iwai
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    Update broken web addresses in arch directory.
    Update broken web addresses in the kernel.
    Revert "drivers/usb: Remove unnecessary return's from void functions" for musb gadget
    Revert "Fix typo: configuation => configuration" partially
    ida: document IDA_BITMAP_LONGS calculation
    ext2: fix a typo on comment in ext2/inode.c
    drivers/scsi: Remove unnecessary casts of private_data
    drivers/s390: Remove unnecessary casts of private_data
    net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data
    drivers/infiniband: Remove unnecessary casts of private_data
    drivers/gpu/drm: Remove unnecessary casts of private_data
    kernel/pm_qos_params.c: Remove unnecessary casts of private_data
    fs/ecryptfs: Remove unnecessary casts of private_data
    fs/seq_file.c: Remove unnecessary casts of private_data
    arm: uengine.c: remove C99 comments
    arm: scoop.c: remove C99 comments
    Fix typo configue => configure in comments
    Fix typo: configuation => configuration
    Fix typo interrest[ing|ed] => interest[ing|ed]
    Fix various typos of valid in comments
    ...

    Fix up trivial conflicts in:
    drivers/char/ipmi/ipmi_si_intf.c
    drivers/usb/gadget/rndis.c
    net/irda/irnet/irnet_ppp.c

    Linus Torvalds
     
  • * 'kvm-updates/2.6.37' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (321 commits)
    KVM: Drop CONFIG_DMAR dependency around kvm_iommu_map_pages
    KVM: Fix signature of kvm_iommu_map_pages stub
    KVM: MCE: Send SRAR SIGBUS directly
    KVM: MCE: Add MCG_SER_P into KVM_MCE_CAP_SUPPORTED
    KVM: fix typo in copyright notice
    KVM: Disable interrupts around get_kernel_ns()
    KVM: MMU: Avoid sign extension in mmu_alloc_direct_roots() pae root address
    KVM: MMU: move access code parsing to FNAME(walk_addr) function
    KVM: MMU: audit: check whether have unsync sps after root sync
    KVM: MMU: audit: introduce audit_printk to cleanup audit code
    KVM: MMU: audit: unregister audit tracepoints before module unloaded
    KVM: MMU: audit: fix vcpu's spte walking
    KVM: MMU: set access bit for direct mapping
    KVM: MMU: cleanup for error mask set while walk guest page table
    KVM: MMU: update 'root_hpa' out of loop in PAE shadow path
    KVM: x86 emulator: Eliminate compilation warning in x86_decode_insn()
    KVM: x86: Fix constant type in kvm_get_time_scale
    KVM: VMX: Add AX to list of registers clobbered by guest switch
    KVM guest: Move a printk that's using the clock before it's ready
    KVM: x86: TSC catchup mode
    ...

    Linus Torvalds
     

24 Oct, 2010

24 commits

  • We have to protect the include for linux/of.h by __KERNEL__ so it doesn't
    accidently get referenced outside.

    This patch fixes this and makes the tree compile again.

    Reported-by: Stephen Rothwell
    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • The e500_tlb.c file didn't compile for me due to the following error:

    arch/powerpc/kvm/e500_tlb.c: In function ‘kvmppc_e500_shadow_map’:
    arch/powerpc/kvm/e500_tlb.c:300: error: format ‘%lx’ expects type ‘long unsigned int’, but argument 2 has type ‘gfn_t’

    So let's explicitly cast the argument to make printk happy.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • The kvmppc_e500_stlbe_invalidate() function was trying to pass too many
    parameters to trace_kvm_stlb_inval(). This appears to be a bad
    copy-paste from a call to trace_kvm_stlb_write().

    Signed-off-by: Kyle Moffett
    Signed-off-by: Alexander Graf

    Kyle Moffett
     
  • BookE also wants to support level based interrupts, so let's implement
    all the necessary logic there. We need to trick a bit here because the
    irqprios are 1:1 assigned to architecture defined values. But since there
    is some space left there, we can just pick a random one and move it later
    on - it's internal anyways.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • Now that we have all the level interrupt magic in place, let's
    expose the capability to user space, so it can make use of it!

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • The current interrupt logic is just completely broken. We get a notification
    from user space, telling us that an interrupt is there. But then user space
    expects us that we just acknowledge an interrupt once we deliver it to the
    guest.

    This is not how real hardware works though. On real hardware, the interrupt
    controller pulls the external interrupt line until it gets notified that the
    interrupt was received.

    So in reality we have two events: pulling and letting go of the interrupt line.

    To maintain backwards compatibility, I added a new request for the pulling
    part. The letting go part was implemented earlier already.

    With this in place, we can now finally start guests that do not randomly stall
    and stop to work at random times.

    This patch implements above logic for Book3S.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • Before I incorrectly enabled napping also for BookE, which would result in
    needless dcache flushes. Since we only need to force enable napping on
    Book3s_64 because it doesn't go into MSR_POW otherwise, we can just #ifdef
    that code to this particular platform.

    Reported-by: Scott Wood
    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • Match only the first part of cur_cpu_spec->platform.

    440GP (the first 440 processor) is identified by the string "ppc440gp", while
    all later 440 processors use simply "ppc440".

    Signed-off-by: Hollis Blanchard
    Signed-off-by: Alexander Graf

    Hollis Blanchard
     
  • Missing local variable.

    Signed-off-by: Hollis Blanchard
    Signed-off-by: Alexander Graf

    Hollis Blanchard
     
  • Developers can now tell at a glace the exact type of the premature interrupt,
    instead of just knowing that there was some premature interrupt.

    Signed-off-by: Hollis Blanchard
    Signed-off-by: Alexander Graf

    Hollis Blanchard
     
  • On Book3S a mtmsr with the MSR_POW bit set indicates that the OS is in
    idle and only needs to be waked up on the next interrupt.

    Now, unfortunately we let that bit slip into the stored MSR value which
    is not what the real CPU does, so that we ended up executing code like
    this:

    r = mfmsr();
    /* r containts MSR_POW */
    mtmsr(r | MSR_EE);

    This obviously breaks, as we're going into idle mode in code sections that
    don't expect to be idling.

    This patch masks MSR_POW out of the stored MSR value on wakeup, making
    guests happy again.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • Up until now we were doing segment mappings wrong on Book3s_32. For Book3s_64
    we were using a trick where we know that a single mmu_context gives us 16 bits
    of context ids.

    The mm system on Book3s_32 instead uses a clever algorithm to distribute VSIDs
    across the available range, so a context id really only gives us 16 available
    VSIDs.

    To keep at least a few guest processes in the SID shadow, let's map a number of
    contexts that we can use as VSID pool. This makes the code be actually correct
    and shouldn't hurt performance too much.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • There are some heuristics in the PPC power management code that try to find
    out if the particular hardware we're running on supports proper power management
    or just hangs the machine when going into nap mode.

    Since we know that KVM is safe with nap, let's force enable it in the PV code
    once we're certain that we are on a KVM VM.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • We had an arbitrary limitation in mtmsrd L=1 that kept us from using r30 and
    r31 as input registers. Let's get rid of that and get more potential speedups!

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • When having a decrementor interrupt pending, the dequeuing happens manually
    through an mtdec instruction. This instruction simply calls dequeue on that
    interrupt, so the int_pending hint doesn't get updated.

    This patch enables updating the int_pending hint also on dequeue, thus
    correctly enabling guests to stay in guest contexts more often.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • So far we've been restricting ourselves to r0-r29 as registers an mtmsr
    instruction could use. This was bad, as there are some code paths in
    Linux actually using r30.

    So let's instead handle all registers gracefully and get rid of that
    stupid limitation

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • This is the guest side of the mtsr acceleration. Using this a guest can now
    call mtsrin with almost no overhead as long as it ensures that it only uses
    it with (MSR_IR|MSR_DR) == 0. Linux does that, so we're good.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • Now that the actual mtsr doesn't do anything anymore, we can move the sr
    contents over to the shared page, so a guest can directly read and write
    its sr contents from guest context.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • Right now we're examining the contents of Book3s_32's segment registers when
    the register is written and put the interpreted contents into a struct.

    There are two reasons this is bad. For starters, the struct has worse real-time
    performance, as it occupies more ram. But the more important part is that with
    segment registers being interpreted from their raw values, we can put them in
    the shared page, allowing guests to mess with them directly.

    This patch makes the internal representation of SRs be u32s.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • The current approach duplicates the spr->bat finding logic and makes it harder
    to reuse the actually used variables. So let's move everything down to the spr
    handler.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • We will soon add SR PV support to the shared page, so we need some
    infrastructure that allows the guest to query for features KVM exports.

    This patch adds a second return value to the magic mapping that
    indicated to the guest which features are available.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • The define VSID_ALL is unused. Let's remove it.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • It turns out the in-kernel hash function is sub-optimal for our subtle
    hash inputs where every bit is significant. So let's revert to the original
    hash functions.

    This reverts commit 05340ab4f9a6626f7a2e8f9fe5397c61d494f445.

    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • This patch moves debugging printks for shadow SLB debugging over to tracepoints.

    Signed-off-by: Alexander Graf

    Alexander Graf