1. 26 9月, 2013 1 次提交
  2. 25 9月, 2013 8 次提交
    • J
      MIPS: mm: Move some checks out of 'for' loop in DMA operations · 55c25c2f
      Jayachandran C 提交于
      The check cpu_needs_post_dma_flush() in mips_dma_sync_sg_for_cpu() and
      the check !plat_device_is_coherent() in mips_dma_sync_sg_for_device()
      can be moved outside the for loop.
      
      As a side effect, this also avoids a GCC bug that caused kernel compile
      to fail with the error:
      
      arch/mips/mm/dma-default.c: In function 'mips_dma_sync_sg_for_cpu':
      arch/mips/mm/dma-default.c:316:1: internal compiler error: in add_insn_before, at emit-rtl.c:3852
      
      This gcc failure is seen in Code Sourcery toolchains [e.g. gcc version
      4.7.2 (Sourcery CodeBench Lite 2012.09-99)] after commit "MIPS: Optimize
      current_cpu_type() for better code."
      Signed-off-by: NJayachandran C <jchandra@broadcom.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5907/Reviewed-by: NMarkos Chandras <markos.chandras@imgtec.com>
      Tested-by: NMarkos Chandras <markos.chandras@imgtec.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      55c25c2f
    • D
      xen/p2m: check MFN is in range before using the m2p table · 0160676b
      David Vrabel 提交于
      On hosts with more than 168 GB of memory, a 32-bit guest may attempt
      to grant map an MFN that is error cannot lookup in its mapping of the
      m2p table.  There is an m2p lookup as part of m2p_add_override() and
      m2p_remove_override().  The lookup falls off the end of the mapped
      portion of the m2p and (because the mapping is at the highest virtual
      address) wraps around and the lookup causes a fault on what appears to
      be a user space address.
      
      do_page_fault() (thinking it's a fault to a userspace address), tries
      to lock mm->mmap_sem.  If the gntdev device is used for the grant map,
      m2p_add_override() is called from from gnttab_mmap() with mm->mmap_sem
      already locked.  do_page_fault() then deadlocks.
      
      The deadlock would most commonly occur when a 64-bit guest is started
      and xenconsoled attempts to grant map its console ring.
      
      Introduce mfn_to_pfn_no_overrides() which checks the MFN is within the
      mapped portion of the m2p table before accessing the table and use
      this in m2p_add_override(), m2p_remove_override(), and mfn_to_pfn()
      (which already had the correct range check).
      
      All faults caused by accessing the non-existant parts of the m2p are
      thus within the kernel address space and exception_fixup() is called
      without trying to lock mm->mmap_sem.
      
      This means that for MFNs that are outside the mapped range of the m2p
      then mfn_to_pfn() will always look in the m2p overrides.  This is
      correct because it must be a foreign MFN (and the PFN in the m2p in
      this case is only relevant for the other domain).
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      Cc: Stefano Stabellini <stefano.stabellini@citrix.com>
      Cc: Jan Beulich <JBeulich@suse.com>
      --
      v3: check for auto_translated_physmap in mfn_to_pfn_no_overrides()
      v2: in mfn_to_pfn() look in m2p_overrides if the MFN is out of
          range as it's probably foreign.
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Acked-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      0160676b
    • D
      x86/reboot: Fix apparent cut-n-paste mistake in Dell reboot workaround · 7a20c2fa
      Dave Jones 提交于
      This seems to have been copied from the Optiplex 990 entry
      above, but somoene forgot to change the ident text.
      Signed-off-by: NDave Jones <davej@fedoraproject.org>
      Link: http://lkml.kernel.org/r/20130925001344.GA13554@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      7a20c2fa
    • B
      powerpc/pseries: Do not start secondaries in Open Firmware · dbe78b40
      Benjamin Herrenschmidt 提交于
      Starting secondary CPUs early on from Open Firmware and placing them
      in a holding spin loop slows down the boot process significantly under
      some hypervisors such as KVM.
      
      This is also unnecessary when RTAS supports querying the CPU state
      
      So let's not do it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      dbe78b40
    • B
      powerpc/zImage: make the "OF" wrapper support ePAPR boot · 0c9fa291
      Benjamin Herrenschmidt 提交于
      This makes the "OF" zImage wrapper (zImage.pseries, zImage.pmac,
      zImage.maple) work if booted via a flat device-tree (ePAPR boot
      mode), and thus potentially usable with kexec.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      0c9fa291
    • B
      powerpc: Remove ksp_limit on ppc64 · cbc9565e
      Benjamin Herrenschmidt 提交于
      We've been keeping that field in thread_struct for a while, it contains
      the "limit" of the current stack pointer and is meant to be used for
      detecting stack overflows.
      
      It has a few problems however:
      
       - First, it was never actually *used* on 64-bit. Set and updated but
      not actually exploited
      
       - When switching stack to/from irq and softirq stacks, it's update
      is racy unless we hard disable interrupts, which is costly. This
      is fine on 32-bit as we don't soft-disable there but not on 64-bit.
      
      Thus rather than fixing 2 in order to implement 1 in some hypothetical
      future, let's remove the code completely from 64-bit. In order to avoid
      a clutter of ifdef's, we remove the updates from C code completely
      during interrupt stack switching, and instead maintain it from the
      asm helper that is used to do the stack switching in the first place.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      cbc9565e
    • B
      powerpc/irq: Run softirqs off the top of the irq stack · 0366a1c7
      Benjamin Herrenschmidt 提交于
      Nowadays, irq_exit() calls __do_softirq() pretty much directly
      instead of calling do_softirq() which switches to the decicated
      softirq stack.
      
      This has lead to observed stack overflows on powerpc since we call
      irq_enter() and irq_exit() outside of the scope that switches to
      the irq stack.
      
      This fixes it by moving the stack switching up a level, making
      irq_enter() and irq_exit() run off the irq stack.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      0366a1c7
    • K
      xen: Do not enable spinlocks before jump_label_init() has executed · a945928e
      Konrad Rzeszutek Wilk 提交于
      xen_init_spinlocks() currently calls static_key_slow_inc() before
      jump_label_init() is invoked. When CONFIG_JUMP_LABEL is set (which usually is
      the case) the effect of this static_key_slow_inc() is deferred until after
      jump_label_init(). This is different from when CONFIG_JUMP_LABEL is not set, in
      which case the key is set immediately. Thus, depending on the value of config
      option, we may observe different behavior.
      
      In addition, when we come to __jump_label_transform() from jump_label_init(),
      the key (paravirt_ticketlocks_enabled) is already enabled. On processors where
      ideal_nop is not the same as default_nop this will cause a BUG() since it is
      expected that before a key is enabled the latter is replaced by the former
      during initialization.
      
      To address this problem we need to move
      static_key_slow_inc(&paravirt_ticketlocks_enabled) so that it is called
      after jump_label_init(). We also need to make sure that this is done before
      other cpus start to boot. early_initcall appears to be  a good place to do so.
      (Note that we cannot move whole xen_init_spinlocks() there since pv_lock_ops
      need to be set before alternative_instructions() runs.)
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      [v2: Added extra comments in the code]
      Signed-off-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reviewed-by: NSteven Rostedt <rostedt@goodmis.org>
      a945928e
  3. 24 9月, 2013 1 次提交
  4. 23 9月, 2013 2 次提交
  5. 20 9月, 2013 5 次提交
  6. 19 9月, 2013 18 次提交
  7. 18 9月, 2013 5 次提交
    • A
      ARM: sa1100: collie.c: fall back to jedec_probe flash detection · d26b17ed
      Andrea Adami 提交于
      Zaurus collie contains 2 LH28F640BFHE-PTTL90 (64M 4Mx16) and
      at the moment cfi will not detect the collie NOR.
      In the meanwhile we can revert to the jedec-probe map which has been
      fixed with following commit:
      
      mtd: jedec_probe: fix LH28F640BF definition
      fe2f4c8e
      
      Somehow this is unsatisfactory because the flash is mounted READ ONLY
      (as from factory, with a RO cramfs)
      Signed-off-by: NAndrea Adami <andrea.adami@gmail.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      d26b17ed
    • L
      ARM: u300: hide submenus · c8a5b7bc
      Linus Walleij 提交于
      Right now the U300 submenus are showcased for everyone even if
      we're not on v5 multiplatforms. Hide this in the multiplatform
      configuration properly.
      
      Cc: arm@kernel.org
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      c8a5b7bc
    • L
      MIPS: Fix VGA_MAP_MEM macro. · 258e1e73
      Leonid Yegoshin 提交于
      Use the CKSEG1ADDR macro when calculating VGA_MAP_MEM.
      
      [ralf@linux-mips.org: Include <asm/addrspace.h for CKSEG1ADDR.]
      Signed-off-by: NLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>
      Signed-off-by: NSteven J. Hill <Steven.Hill@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5814/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      258e1e73
    • R
      MIPS: Reimplement get_cycles(). · 9c9b415c
      Ralf Baechle 提交于
      This essentially reverts commit efb9ca08
      (kernel.org) / 58020a106879a8b372068741c81f0015c9b0b96dbv [[MIPS] Change
      get_cycles to always return 0.]
      
      Most users of get_cycles() invoke it as a timing interface.  That's why
      in modern kernels it was never very much missed for.  /dev/random however
      uses get_cycles() in the how the jitter in the interrupt timing contains
      some useful entropy.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      9c9b415c
    • J
      x86, efi: Don't map Boot Services on i386 · 70087011
      Josh Boyer 提交于
      Add patch to fix 32bit EFI service mapping (rhbz 726701)
      
      Multiple people are reporting hitting the following WARNING on i386,
      
        WARNING: at arch/x86/mm/ioremap.c:102 __ioremap_caller+0x3d3/0x440()
        Modules linked in:
        Pid: 0, comm: swapper Not tainted 3.9.0-rc7+ #95
        Call Trace:
         [<c102b6af>] warn_slowpath_common+0x5f/0x80
         [<c1023fb3>] ? __ioremap_caller+0x3d3/0x440
         [<c1023fb3>] ? __ioremap_caller+0x3d3/0x440
         [<c102b6ed>] warn_slowpath_null+0x1d/0x20
         [<c1023fb3>] __ioremap_caller+0x3d3/0x440
         [<c106007b>] ? get_usage_chars+0xfb/0x110
         [<c102d937>] ? vprintk_emit+0x147/0x480
         [<c1418593>] ? efi_enter_virtual_mode+0x1e4/0x3de
         [<c102406a>] ioremap_cache+0x1a/0x20
         [<c1418593>] ? efi_enter_virtual_mode+0x1e4/0x3de
         [<c1418593>] efi_enter_virtual_mode+0x1e4/0x3de
         [<c1407984>] start_kernel+0x286/0x2f4
         [<c1407535>] ? repair_env_string+0x51/0x51
         [<c1407362>] i386_start_kernel+0x12c/0x12f
      
      Due to the workaround described in commit 916f676f ("x86, efi: Retain
      boot service code until after switching to virtual mode") EFI Boot
      Service regions are mapped for a period during boot. Unfortunately, with
      the limited size of the i386 direct kernel map it's possible that some
      of the Boot Service regions will not be directly accessible, which
      causes them to be ioremap()'d, triggering the above warning as the
      regions are marked as E820_RAM in the e820 memmap.
      
      There are currently only two situations where we need to map EFI Boot
      Service regions,
      
        1. To workaround the firmware bug described in 916f676f
        2. To access the ACPI BGRT image
      
      but since we haven't seen an i386 implementation that requires either,
      this simple fix should suffice for now.
      
      [ Added to changelog - Matt ]
      Reported-by: NBryan O'Donoghue <bryan.odonoghue.lkml@nexus-software.ie>
      Acked-by: NTom Zanussi <tom.zanussi@intel.com>
      Acked-by: NDarren Hart <dvhart@linux.intel.com>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NJosh Boyer <jwboyer@redhat.com>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      70087011