20 Jun, 2013

3 commits

  • ETRAX_ETHERNET selects ETHERNET and MII, which depend on NETDEVICES.
    I don't think anything should select NETDEVICES, so make it a
    dependency. It also doesn't need to select or depend on ETHERNET,
    which has nothing to do with the Ethernet library functions.

    BPCTL selects MII, which depends on NETDEVICES. But everything in the
    drivers/staging/silicom directory is related to net devices, so make
    NET_VENDOR_SILICOM depend on NETDEVICES and remove the now-redundant
    dependencies on NET.

    Signed-off-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • All drivers that select MII also need to select NET_CORE because MII
    depends on it. This is a bit ridiculous because NET_CORE is just a
    menu option that doesn't enable any code by itself.

    There is also no need for it to be a visible option, since its users
    all select it.

    Signed-off-by: Ben Hutchings
    Acked-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • Conflicts:
    drivers/net/wireless/ath/ath9k/Kconfig
    drivers/net/xen-netback/netback.c
    net/batman-adv/bat_iv_ogm.c
    net/wireless/nl80211.c

    The ath9k Kconfig conflict was a change of a Kconfig option name right
    next to the deletion of another option.

    The xen-netback conflict was overlapping changes involving the
    handling of the notify list in xen_netbk_rx_action().

    Batman conflict resolution provided by Antonio Quartulli, basically
    keep everything in both conflict hunks.

    The nl80211 conflict is a little more involved. In 'net' we added a
    dynamic memory allocation to nl80211_dump_wiphy() to fix a race that
    Linus reported. Meanwhile in 'net-next' the handlers were converted
    to use pre and post doit handlers which use a flag to determine
    whether to hold the RTNL mutex around the operation.

    However, the dump handlers to not use this logic. Instead they have
    to explicitly do the locking. There were apparent bugs in the
    conversion of nl80211_dump_wiphy() in that we were not dropping the
    RTNL mutex in all the return paths, and it seems we very much should
    be doing so. So I fixed that whilst handling the overlapping changes.

    To simplify the initial returns, I take the RTNL mutex after we try
    to allocate 'tb'.

    Signed-off-by: David S. Miller

    David S. Miller
     

18 Jun, 2013

1 commit


16 Jun, 2013

1 commit

  • Pull ARM SoC fixes from Olof Johansson:
    "These are a little later than I planned on since I got caught up with
    handling merges for 3.11 most of the week.

    Another week, another batch of fixes for arm-soc platforms.

    Again, nothing controversial. A few more than would be ideal, but all
    are valid fixes. In particular the prima2 panic patch is critical
    since it fixes a problem where multiplatform kernels panic on all but
    prima2 hardware."

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: SAMSUNG: pm: Adjust for pinctrl- and DT-enabled platforms
    ARM: prima2: fix incorrect panic usage
    arm: mvebu: armada-xp-{gp,openblocks-ax3-4}: specify PCIe range
    ARM: Kirkwood: handle mv88f6282 cpu in __kirkwood_variant().
    ARM: omap3: clock: fix wrong container_of in clock36xx.c
    ARM: dts: OMAP5: Fix missing PWM capability to timer nodes
    ARM: dts: omap4-panda|sdp: Fix mux for twl6030 IRQ pin and msecure line
    ARM: dts: AM33xx: Fix properties on gpmc node
    arm: omap2: fix AM33xx hwmod infos for UART2
    ARM: OMAP3: Fix iva2_pwrdm settings for 3703

    Linus Torvalds
     

15 Jun, 2013

4 commits

  • Pull powerpc fixes from Benjamin Herrenschmidt:
    "So here are 3 fixes still for 3.10. Fixes are simple, bugs are nasty
    (though not recent regressions, nasty enough) and all targeted at
    stable"

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc: Fix missing/delayed calls to irq_work
    powerpc: Fix emulation of illegal instructions on PowerNV platform
    powerpc: Fix stack overflow crash in resume_kernel when ftracing

    Linus Torvalds
     
  • When replaying interrupts (as a result of the interrupt occurring
    while soft-disabled), in the case of the decrementer, we are exclusively
    testing for a pending timer target. However we also use decrementer
    interrupts to trigger the new "irq_work", which in this case would
    be missed.

    This change the logic to force a replay in both cases of a timer
    boundary reached and a decrementer interrupt having actually occurred
    while disabled. The former test is still useful to catch cases where
    a CPU having been hard-disabled for a long time completely misses the
    interrupt due to a decrementer rollover.

    CC: [v3.4+]
    Signed-off-by: Benjamin Herrenschmidt
    Tested-by: Steven Rostedt

    Benjamin Herrenschmidt
     
  • Normally, the kernel emulates a few instructions that are unimplemented
    on some processors (e.g. the old dcba instruction), or privileged (e.g.
    mfpvr). The emulation of unimplemented instructions is currently not
    working on the PowerNV platform. The reason is that on these machines,
    unimplemented and illegal instructions cause a hypervisor emulation
    assist interrupt, rather than a program interrupt as on older CPUs.
    Our vector for the emulation assist interrupt just calls
    program_check_exception() directly, without setting the bit in SRR1
    that indicates an illegal instruction interrupt. This fixes it by
    making the emulation assist interrupt set that bit before calling
    program_check_interrupt(). With this, old programs that use no-longer
    implemented instructions such as dcba now work again.

    CC:
    Signed-off-by: Paul Mackerras
    Signed-off-by: Benjamin Herrenschmidt

    Paul Mackerras
     
  • It's possible for us to crash when running with ftrace enabled, eg:

    Bad kernel stack pointer bffffd12 at c00000000000a454
    cpu 0x3: Vector: 300 (Data Access) at [c00000000ffe3d40]
    pc: c00000000000a454: resume_kernel+0x34/0x60
    lr: c00000000000335c: performance_monitor_common+0x15c/0x180
    sp: bffffd12
    msr: 8000000000001032
    dar: bffffd12
    dsisr: 42000000

    If we look at current's stack (paca->__current->stack) we see it is
    equal to c0000002ecab0000. Our stack is 16K, and comparing to
    paca->kstack (c0000002ecab3e30) we can see that we have overflowed our
    kernel stack. This leads to us writing over our struct thread_info, and
    in this case we have corrupted thread_info->flags and set
    _TIF_EMULATE_STACK_STORE.

    Dumping the stack we see:

    3:mon> t c0000002ecab0000
    [c0000002ecab0000] c00000000002131c .performance_monitor_exception+0x5c/0x70
    [c0000002ecab0080] c00000000000335c performance_monitor_common+0x15c/0x180
    --- Exception: f01 (Performance Monitor) at c0000000000fb2ec .trace_hardirqs_off+0x1c/0x30
    [c0000002ecab0370] c00000000016fdb0 .trace_graph_entry+0xb0/0x280 (unreliable)
    [c0000002ecab0410] c00000000003d038 .prepare_ftrace_return+0x98/0x130
    [c0000002ecab04b0] c00000000000a920 .ftrace_graph_caller+0x14/0x28
    [c0000002ecab0520] c0000000000d6b58 .idle_cpu+0x18/0x90
    [c0000002ecab05a0] c00000000000a934 .return_to_handler+0x0/0x34
    [c0000002ecab0620] c00000000001e660 .timer_interrupt+0x160/0x300
    [c0000002ecab06d0] c0000000000025dc decrementer_common+0x15c/0x180
    --- Exception: 901 (Decrementer) at c0000000000104d4 .arch_local_irq_restore+0x74/0xa0
    [c0000002ecab09c0] c0000000000fe044 .trace_hardirqs_on+0x14/0x30 (unreliable)
    [c0000002ecab0fb0] c00000000016fe3c .trace_graph_entry+0x13c/0x280
    [c0000002ecab1050] c00000000003d038 .prepare_ftrace_return+0x98/0x130
    [c0000002ecab10f0] c00000000000a920 .ftrace_graph_caller+0x14/0x28
    [c0000002ecab1160] c0000000000161f0 .__ppc64_runlatch_on+0x10/0x40
    [c0000002ecab11d0] c00000000000a934 .return_to_handler+0x0/0x34
    --- Exception: 901 (Decrementer) at c0000000000104d4 .arch_local_irq_restore+0x74/0xa0

    ... and so on

    __ppc64_runlatch_on() is called from RUNLATCH_ON in the exception entry
    path. At that point the irq state is not consistent, ie. interrupts are
    hard disabled (by the exception entry), but the paca soft-enabled flag
    may be out of sync.

    This leads to the local_irq_restore() in trace_graph_entry() actually
    enabling interrupts, which we do not want. Because we have not yet
    reprogrammed the decrementer we immediately take another decrementer
    exception, and recurse.

    The fix is twofold. Firstly make sure we call DISABLE_INTS before
    calling RUNLATCH_ON. The badly named DISABLE_INTS actually reconciles
    the irq state in the paca with the hardware, making it safe again to
    call local_irq_save/restore().

    Although that should be sufficient to fix the bug, we also mark the
    runlatch routines as notrace. They are called very early in the
    exception entry and we are asking for trouble tracing them. They are
    also fairly uninteresting and tracing them just adds unnecessary
    overhead.

    [ This regression was introduced by fe1952fc0afb9a2e4c79f103c08aef5d13db1873
    "powerpc: Rework runlatch code" by myself --BenH
    ]

    CC: [v3.4+]
    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     

14 Jun, 2013

5 commits

  • This patch adds support for the Broadcom BCM6345 SoC Ethernet. BCM6345
    has a slightly different and older DMA engine which requires the
    following modifications:

    - the width of the DMA channels on BCM6345 is 64 bytes vs 16 bytes,
    which means that the helpers enet_dma{c,s} need to account for this
    channel width and we can no longer use macros

    - BCM6345 DMA engine does not have any internal SRAM for transfering
    buffers

    - BCM6345 buffer allocation and flow control is not per-channel but
    global (done in RSET_ENETDMA)

    - the DMA engine bits are right-shifted by 3 compared to other DMA
    generations

    - the DMA enable/interrupt masks are a little different (we need to
    enabled more bits for 6345)

    - some register have the same meaning but are offsetted in the ENET_DMAC
    space so a lookup table is required to return the proper offset

    The MAC itself is identical and requires no modifications to work.

    Signed-off-by: Florian Fainelli
    Acked-by: Ralf Baechle
    Signed-off-by: David S. Miller

    Florian Fainelli
     
  • Pull device tree bug fixes from Grant Likely:
    "This branch contains the following bug fixes:
    - Fix locking vs. interrupts. Bug caught by lockdep checks
    - Fix parsing of cpp #line directive output by dtc
    - Fix 'make clean' for dtc temporary files.

    There is also a commit that regenerates the dtc lexer and parser files
    with Bison 2.5. The only purpose of this commit is to separate the
    functional change in the dtc bug fix from the code generation change
    caused by a different Bison version"

    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux:
    dtc: ensure #line directives don't consume data from the next line
    dtc: Update generated files to output from Bison 2.5
    of: Fix locking vs. interrupts
    kbuild: make sure we clean up DTB temporary files

    Linus Torvalds
     
  • The OF code uses irqsafe locks everywhere except in a handful of functions
    for no obvious reasons. Since the conversion from the old rwlocks, this
    now triggers lockdep warnings when used at interrupt time. At least one
    driver (ibmvscsi) seems to be doing that from softirq context.

    This converts the few non-irqsafe locks into irqsafe ones, making them
    consistent with the rest of the code.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Thomas Gleixner
    Acked-by: David S. Miller
    Signed-off-by: Grant Likely

    Benjamin Herrenschmidt
     
  • Pull x86 fixes from Peter Anvin:
    "Another set of fixes, the biggest bit of this is yet another tweak to
    the UEFI anti-bricking code; apparently we finally got some feedback
    from Samsung as to what makes at least their systems fail. This set
    should actually fix the boot regressions that some other systems (e.g.
    SGI) have exhibited.

    Other than that, there is a patch to avoid a panic with particularly
    unhappy memory layouts and two minor protocol fixes which may or may
    not be manifest bugs"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Fix typo in kexec register clearing
    x86, relocs: Move __vvar_page from S_ABS to S_REL
    Modify UEFI anti-bricking code
    x86: Fix adjust_range_size_mask calling position

    Linus Torvalds
     
  • Pull s390 fixes from Martin Schwidefsky:
    "Three kvm related memory management fixes, a fix for show_trace, a fix
    for early console output and a patch from Ben to help prevent compile
    errors in regard to irq functions (or our lack thereof)"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/pci: Implement IRQ functions if !PCI
    s390/sclp: fix new line detection
    s390/pgtable: make pgste lock an explicit barrier
    s390/pgtable: Save pgste during modify_prot_start/commit
    s390/dumpstack: fix address ranges for asynchronous and panic stack
    s390/pgtable: Fix guest overindication for change bit

    Linus Torvalds
     

13 Jun, 2013

4 commits

  • * More tweaking to the EFI variable anti-bricking algorithm. Quite a
    few users were reporting boot regressions in v3.9. This has now been
    fixed with a more accurate "minimum storage requirement to avoid
    bricking" value from Samsung (5K instead of 50%) and code to trigger
    garbage collection when we near our limit - Matthew Garrett.

    Signed-off-by: H. Peter Anvin

    H. Peter Anvin
     
  • Fixes a typo in register clearing code. Thanks to PaX Team for fixing
    this originally, and James Troup for pointing it out.

    Signed-off-by: Kees Cook
    Link: http://lkml.kernel.org/r/20130605184718.GA8396@www.outflux.net
    Cc: v2.6.30+
    Cc: PaX Team
    Signed-off-by: H. Peter Anvin

    Kees Cook
     
  • The __vvar_page relocation should actually be listed in S_REL instead
    of S_ABS. Oddly, this didn't always cause things to break, presumably
    because there are no users for relocation information on 64 bits yet.

    [ hpa: Not for stable - new code in 3.10 ]

    Signed-off-by: Kees Cook
    Link: http://lkml.kernel.org/r/20130611185652.GA23674@www.outflux.net
    Reported-by: Michael Davidson
    Signed-off-by: H. Peter Anvin

    Kees Cook
     
  • Pull MIPS fixes from Ralf Baechle:
    "Resurrect Alchemy platforms by invoking the WAIT instructions with
    interrupts enabled. This still leaves the race condition between
    testing TIF_NEED_RESCHED and the WAIT instruction for Alchemy
    platforms which need a different fix than other MIPS platforms. But
    at least it gets MIPS platforms flying again.

    There are also fixes for two build errors (CONFIG_FTRACE=y with
    CONFIG_DYNAMIC_FTRACE=n) and CONFIG_VIRTUALIZATION without CONFIG_KVM"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: ftrace: Add missing CONFIG_DYNAMIC_FTRACE
    MIPS: include: mmu_context.h: Replace VIRTUALIZATION with KVM
    MIPS: Alchemy: fix wait function

    Linus Torvalds
     

12 Jun, 2013

2 commits

  • From Jason Cooper, mvebu fixes for v3.10 round 4:
    - mvebu
    - fix PCIe ranges property so NOR flash is visible
    - kirkwood
    - fix identification of 88f6282 so MPPs can be set correctly

    * tag 'fixes-3.10-4' of git://git.infradead.org/users/jcooper/linux:
    arm: mvebu: armada-xp-{gp,openblocks-ax3-4}: specify PCIe range
    ARM: Kirkwood: handle mv88f6282 cpu in __kirkwood_variant().

    Signed-off-by: Olof Johansson

    Olof Johansson
     
  • Pull kvm bugfixes from Gleb Natapov:
    "There is one more fix for MIPS KVM ABI here, MIPS and PPC build
    breakage fixes and a couple of PPC bug fixes"

    * 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    kvm/ppc/booke64: Fix lazy ee handling in kvmppc_handle_exit()
    kvm/ppc/booke: Hold srcu lock when calling gfn functions
    kvm/ppc/booke64: Disable e6500 support
    kvm/ppc/booke64: Fix AltiVec interrupt numbers and build breakage
    mips/kvm: Use KVM_REG_MIPS and proper size indicators for *_ONE_REG
    kvm: Add definition of KVM_REG_MIPS
    KVM: add kvm_para_available to asm-generic/kvm_para.h

    Linus Torvalds
     

11 Jun, 2013

13 commits

  • EE is hard-disabled on entry to kvmppc_handle_exit(), so call
    hard_irq_disable() so that PACA_IRQ_HARD_DIS is set, and soft_enabled
    is unset.

    Without this, we get warnings such as arch/powerpc/kernel/time.c:300,
    and sometimes host kernel hangs.

    Signed-off-by: Scott Wood
    Signed-off-by: Gleb Natapov

    Scott Wood
     
  • KVM core expects arch code to acquire the srcu lock when calling
    gfn_to_memslot and similar functions.

    Signed-off-by: Scott Wood
    Signed-off-by: Gleb Natapov

    Scott Wood
     
  • The previous patch made 64-bit booke KVM build again, but Altivec
    support is still not complete, and we can't prevent the guest from
    turning on Altivec (which can corrupt host state until state
    save/restore is implemented). Disable e6500 on KVM until this is
    fixed.

    Signed-off-by: Scott Wood
    Signed-off-by: Gleb Natapov

    Scott Wood
     
  • Interrupt numbers defined for Book3E follows IVORs definition. Align
    BOOKE_INTERRUPT_ALTIVEC_UNAVAIL and BOOKE_INTERRUPT_ALTIVEC_ASSIST to this
    rule which also fixes the build breakage.
    IVORs 32 and 33 are shared so reflect this in the interrupts naming.

    This fixes a build break for 64-bit booke KVM.

    Signed-off-by: Mihai Caraman
    Signed-off-by: Scott Wood
    Signed-off-by: Gleb Natapov

    Mihai Caraman
     
  • This patch makes legacy code on suspend/resume path being executed
    conditionally, on non-DT platforms only, to fix suspend/resume of
    DT-enabled systems, for which the code is inappropriate.

    Signed-off-by: Tomasz Figa
    Signed-off-by: Kyungmin Park
    [olof: add #include ]
    Signed-off-by: Olof Johansson

    Tomasz Figa
     
  • The API requires that the GET_ONE_REG and SET_ONE_REG ioctls have this
    extra information encoded in the register identifiers.

    Signed-off-by: David Daney
    Signed-off-by: Gleb Natapov

    David Daney
     
  • In prima2, some functions of checking DT is registered in initcall
    level. If it doesn't match the compatible name of sirf, kernel
    will panic. It blocks the usage of multiplatform on other verndor.

    The error message is in below.

    Knic - not syncing: unable to find compatible pwrc node in dtb
    CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-rc3-00006-gd7f26ea-dirty #86
    [] (unwind_backtrace+0x0/0xf8) from [] (show_stack+0x10/0x1)
    [] (show_stack+0x10/0x14) from [] (panic+0x90/0x1e8)
    [] (panic+0x90/0x1e8) from [] (sirfsoc_of_pwrc_init+0x24/0x)
    [] (sirfsoc_of_pwrc_init+0x24/0x58) from [] (do_one_initcal)
    [] (do_one_initcall+0x90/0x150) from [] (kernel_init_freeab)
    [] (kernel_init_freeable+0xfc/0x1c4) from [] (kernel_init+0)
    [] (kernel_init+0x8/0xe4) from [] (ret_from_fork+0x14/0x3c)

    Signen-off-by: Haojian Zhuang
    Signed-off-by: Olof Johansson

    Haojian Zhuang
     
  • Newer Broadcom BCM63xx SoCs: 6328, 6362 and 6368 have an integrated switch
    which needs to be driven slightly differently from the traditional
    external switches. This patch introduces changes in arch/mips/bcm63xx in order
    to:

    - register a bcm63xx_enetsw driver instead of bcm63xx_enet driver
    - update DMA channels configuration & state RAM base addresses
    - add a new platform data configuration knob to define the number of
    ports per switch/device and force link on some ports
    - define the required switch registers

    On the driver side, the following changes are required:

    - the switch ports need to be polled to ensure the link is up and
    running and RX/TX can properly work
    - basic switch configuration needs to be performed for the switch to
    forward packets to the CPU
    - update the MIB counters since the integrated

    Signed-off-by: Maxime Bizon
    Signed-off-by: Jonas Gorski
    Signed-off-by: David S. Miller

    Maxime Bizon
     
  • The current bcm63xx_enet driver always uses bcmenet_shared_base whenever
    it needs to access DMA channel configuration space or access the DMA
    channel state RAM. Split these register in 3 parts to be more accurate:

    - global DMA configuration
    - per DMA channel configuration space
    - per DMA channel state RAM space

    This is preliminary to support new chips where the global DMA
    configuration remains the same, but there is a varying number of DMA
    channels located at a different memory offset.

    Signed-off-by: Maxime Bizon
    Signed-off-by: Jonas Gorski
    Signed-off-by: David S. Miller

    Maxime Bizon
     
  • This patch reworks the UEFI anti-bricking code, including an effective
    reversion of cc5a080c and 31ff2f20. It turns out that calling
    QueryVariableInfo() from boot services results in some firmware
    implementations jumping to physical addresses even after entering virtual
    mode, so until we have 1:1 mappings for UEFI runtime space this isn't
    going to work so well.

    Reverting these gets us back to the situation where we'd refuse to create
    variables on some systems because they classify deleted variables as "used"
    until the firmware triggers a garbage collection run, which they won't do
    until they reach a lower threshold. This results in it being impossible to
    install a bootloader, which is unhelpful.

    Feedback from Samsung indicates that the firmware doesn't need more than
    5KB of storage space for its own purposes, so that seems like a reasonable
    threshold. However, there's still no guarantee that a platform will attempt
    garbage collection merely because it drops below this threshold. It seems
    that this is often only triggered if an attempt to write generates a
    genuine EFI_OUT_OF_RESOURCES error. We can force that by attempting to
    create a variable larger than the remaining space. This should fail, but if
    it somehow succeeds we can then immediately delete it.

    I've tested this on the UEFI machines I have available, but I don't have
    a Samsung and so can't verify that it avoids the bricking problem.

    Signed-off-by: Matthew Garrett
    Signed-off-by: Lee, Chun-Y [ dummy variable cleanup ]
    Cc:
    Signed-off-by: Matt Fleming

    Matthew Garrett
     
  • …kernel/git/konrad/xen

    Pull xen fixes from Konrad Rzeszutek Wilk:
    "Two bug-fixes for regressions:
    - xen/tmem stopped working after a certain combination of
    modprobe/swapon was used
    - cpu online/offlining would trigger WARN_ON."

    * tag 'stable/for-linus-3.10-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/tmem: Don't over-write tmem_frontswap_poolid after tmem_frontswap_init set it.
    xen/smp: Fixup NOHZ per cpu data when onlining an offline CPU.

    Linus Torvalds
     
  • arch_ftrace_update_code and ftrace_modify_all_code are only
    available if CONFIG_DYNAMIC_FTRACE is selected.

    Fixes the following build problem on MIPS randconfig:

    arch/mips/kernel/ftrace.c: In function 'arch_ftrace_update_code':
    arch/mips/kernel/ftrace.c:31:2: error: implicit declaration of function
    'ftrace_modify_all_code' [-Werror=implicit-function-declaration]

    Signed-off-by: Markos Chandras
    Acked-by: Steven J. Hill
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5435/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     
  • The kvm_* symbols are only available if KVM is selected.

    Fixes the following linking problem on a randconfig:

    arch/mips/built-in.o: In function `local_flush_tlb_mm':
    (.text+0x18a94): undefined reference to `kvm_local_flush_tlb_all'
    arch/mips/built-in.o: In function `local_flush_tlb_range':
    (.text+0x18d0c): undefined reference to `kvm_local_flush_tlb_all'
    kernel/built-in.o: In function `__schedule':
    core.c:(.sched.text+0x2a00): undefined reference to `kvm_local_flush_tlb_all'
    mm/built-in.o: In function `use_mm':
    (.text+0x30214): undefined reference to `kvm_local_flush_tlb_all'
    fs/built-in.o: In function `flush_old_exec':
    (.text+0xf0a0): undefined reference to `kvm_local_flush_tlb_all'
    make: *** [vmlinux] Error 1

    Signed-off-by: Markos Chandras
    Acked-by: Steven J. Hill
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5437/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     

10 Jun, 2013

7 commits

  • Only an interrupt can wake the core from 'wait', enable interrupts
    locally before executing 'wait'.

    [ralf@linux-mips.org: This leave the race between an interrupt that's
    setting TIF_NEED_RESCHEd and entering the WAIT status. but at least it's
    going to bring Alchemy back from the dead, so I'm going to apply this
    patch.]

    Signed-off-by: Manuel Lauss
    Cc: Linux-MIPS
    Cc: Maciej W. Rozycki
    Patchwork: https://patchwork.linux-mips.org/patch/5408/
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • All architectures must implement IRQ functions. Since various
    dependencies on !S390 were removed, there are various drivers that can
    be selected but will fail to link. Provide a dummy implementation of
    these functions for the !PCI case.

    Signed-off-by: Ben Hutchings
    Cc: stable@vger.kernel.org # 3.9
    Acked-by: David S. Miller
    Signed-off-by: Martin Schwidefsky

    Ben Hutchings
     
  • Pull powerpc fixes from Benjamin Herrenschmidt:
    "This is purely regressions (though not all recent ones) or stable
    material"

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc: Partial revert of "Context switch more PMU related SPRs"
    powerpc/perf: Fix deadlock caused by calling printk() in PMU exception
    powerpc/hw_breakpoints: Add DABRX cpu feature to fix 32-bit regression
    powerpc/power8: Update denormalization handler
    powerpc/pseries: Simplify denormalization handler
    powerpc/power8: Fix oprofile and perf
    powerpc/eeh: Don't check RTAS token to get PE addr
    powerpc/pci: Check the bus address instead of resource address in pcibios_fixup_resources

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "The biggest two fixes are fixing a compilation error with the
    decompressor, and a problem with our __my_cpu_offset implementation.

    Other changes are very trivial and small, which seems to be the way
    for most -rc stuff."

    * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: 7747/1: pcpu: ensure __my_cpu_offset cannot be re-ordered across barrier()
    ARM: 7750/1: update legacy CPU ID in decompressor cache support jump table
    ARM: 7743/1: compressed/head.S: work around new binutils warning
    ARM: 7742/1: topology: export cpu_topology
    ARM: 7737/1: fix kernel decompressor compilation error with CONFIG_DEBUG_SEMIHOSTING

    Linus Torvalds
     
  • In commit 59affcd I added context switching of more PMU SPRs, because
    they are potentially exposed to userspace on Power8. However despite me
    being a smart arse in the commit message it's actually not correct. In
    particular it interacts badly with a global perf record.

    We will have to do something more complicated, but that will have to
    wait for 3.11.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • In commit bc09c21 "Fix finding overflowed PMC in interrupt" we added
    a printk() to the PMU exception handler. Unfortunately that is not safe.

    The problem is that the PMU exception may run even when interrupts are
    soft disabled, aka NMI context. We do this so that we can profile parts
    of the kernel that have interrupts soft-disabled.

    But by calling printk() from the exception handler, we can potentially
    deadlock in the printk code on logbuf_lock, eg:

    [c00000038ba575c0] c000000000081928 .vprintk_emit+0xa8/0x540
    [c00000038ba576a0] c0000000007bcde8 .printk+0x48/0x58
    [c00000038ba57710] c000000000076504 .perf_event_interrupt+0x2d4/0x490
    [c00000038ba57810] c00000000001f6f8 .performance_monitor_exception+0x48/0x60
    [c00000038ba57880] c0000000000032cc performance_monitor_common+0x14c/0x180
    --- Exception: f01 (Performance Monitor) at c0000000007b25d4 ._raw_spin_lock_irq
    +0x64/0xc0
    [c00000038ba57bf0] c00000000007ed90 .devkmsg_read+0xd0/0x5a0
    [c00000038ba57d00] c0000000001c2934 .vfs_read+0xc4/0x1e0
    [c00000038ba57d90] c0000000001c2cd8 .SyS_read+0x58/0xd0
    [c00000038ba57e30] c000000000009d54 syscall_exit+0x0/0x98
    --- Exception: c01 (System Call) at 00001fffffbf6f7c
    SP (3ffff6d4de10) is in userspace

    Fix it by making sure we only call printk() when we are not in NMI
    context.

    Signed-off-by: Michael Ellerman
    Cc: # 3.9
    Signed-off-by: Benjamin Herrenschmidt

    Michael Ellerman
     
  • When introducing support for DABRX in 4474ef0, we broke older 32-bit CPUs
    that don't have that register.

    Some CPUs have a DABR but not DABRX. Configuration are:
    - No 32bit CPUs have DABRX but some have DABR.
    - POWER4+ and below have the DABR but no DABRX.
    - 970 and POWER5 and above have DABR and DABRX.
    - POWER8 has DAWR, hence no DABRX.

    This introduces CPU_FTR_DABRX and sets it on appropriate CPUs. We use
    the top 64 bits for CPU FTR bits since only 64 bit CPUs have this.

    Processors that don't have the DABRX will still work as they will fall
    back to software filtering these breakpoints via perf_exclude_event().

    Signed-off-by: Michael Neuling
    Reported-by: "Gorelik, Jacob (335F)"
    cc: stable@vger.kernel.org (v3.9 only)
    Signed-off-by: Benjamin Herrenschmidt

    Michael Neuling