1. 20 11月, 2014 1 次提交
  2. 04 11月, 2014 1 次提交
  3. 01 11月, 2014 1 次提交
  4. 25 10月, 2014 5 次提交
    • F
      ARM: dts: imx28-evk: Let i2c0 run at 100kHz · d1e61eb4
      Fabio Estevam 提交于
      Commit 78b81f46 ("ARM: dts: imx28-evk: Run I2C0 at 400kHz") caused issues
      when doing the following sequence in loop:
      
      - Boot the kernel
      - Perform audio playback
      - Reboot the system via 'reboot' command
      
      In many times the audio card cannot be probed, which causes playback to fail.
      
      After restoring to the original i2c0 frequency of 100kHz there is no such
      problem anymore.
      
      This reverts commit 78b81f46.
      
      Cc: <stable@vger.kernel.org> # 3.16+
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      d1e61eb4
    • S
      ARM: i.MX6: Fix "emi" clock name typo · a1fc1980
      Steve Longerbeam 提交于
      Fix a typo error, the "emi" names refer to the eim clocks.
      
      The change fixes typo in EIM and EIM_SLOW pre-output dividers and
      selectors clock names. Notably EIM_SLOW clock itself is named correctly.
      Signed-off-by: NSteve Longerbeam <steve_longerbeam@mentor.com>
      [vladimir_zapolskiy@mentor.com: ported to v3.17]
      Signed-off-by: NVladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
      Cc: Sascha Hauer <kernel@pengutronix.de>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      a1fc1980
    • C
      arm64: Fix memblock current_limit with 64K pages and 48-bit VA · 3dec0fe4
      Catalin Marinas 提交于
      With 48-bit VA space, the 64K page configuration uses 3 levels instead
      of 2 and PUD_SIZE != PMD_SIZE. Since with 64K pages we only cover
      PMD_SIZE with the initial swapper_pg_dir populated in head.S, the
      memblock current_limit needs to be set accordingly in map_mem() to avoid
      allocating unmapped memory. The memblock current_limit is progressively
      increased as more blocks are mapped.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      3dec0fe4
    • D
      sparc64: Implement __get_user_pages_fast(). · 06090e8e
      David S. Miller 提交于
      It is not sufficient to only implement get_user_pages_fast(), you
      must also implement the atomic version __get_user_pages_fast()
      otherwise you end up using the weak symbol fallback implementation
      which simply returns zero.
      
      This is dangerous, because it causes the futex code to loop forever
      if transparent hugepages are supported (see get_futex_key()).
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      06090e8e
    • D
      sparc64: Fix register corruption in top-most kernel stack frame during boot. · ef3e035c
      David S. Miller 提交于
      Meelis Roos reported that kernels built with gcc-4.9 do not boot, we
      eventually narrowed this down to only impacting machines using
      UltraSPARC-III and derivitive cpus.
      
      The crash happens right when the first user process is spawned:
      
      [   54.451346] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
      [   54.451346]
      [   54.571516] CPU: 1 PID: 1 Comm: init Not tainted 3.16.0-rc2-00211-gd7933ab7 #96
      [   54.666431] Call Trace:
      [   54.698453]  [0000000000762f8c] panic+0xb0/0x224
      [   54.759071]  [000000000045cf68] do_exit+0x948/0x960
      [   54.823123]  [000000000042cbc0] fault_in_user_windows+0xe0/0x100
      [   54.902036]  [0000000000404ad0] __handle_user_windows+0x0/0x10
      [   54.978662] Press Stop-A (L1-A) to return to the boot prom
      [   55.050713] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
      
      Further investigation showed that compiling only per_cpu_patch() with
      an older compiler fixes the boot.
      
      Detailed analysis showed that the function is not being miscompiled by
      gcc-4.9, but it is using a different register allocation ordering.
      
      With the gcc-4.9 compiled function, something during the code patching
      causes some of the %i* input registers to get corrupted.  Perhaps
      we have a TLB miss path into the firmware that is deep enough to
      cause a register window spill and subsequent restore when we get
      back from the TLB miss trap.
      
      Let's plug this up by doing two things:
      
      1) Stop using the firmware stack for client interface calls into
         the firmware.  Just use the kernel's stack.
      
      2) As soon as we can, call into a new function "start_early_boot()"
         to put a one-register-window buffer between the firmware's
         deepest stack frame and the top-most initial kernel one.
      Reported-by: NMeelis Roos <mroos@linux.ee>
      Tested-by: NMeelis Roos <mroos@linux.ee>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ef3e035c
  5. 24 10月, 2014 24 次提交
  6. 23 10月, 2014 8 次提交
    • M
      x86/xen: panic on bad Xen-provided memory map · 1ea644c8
      Martin Kelly 提交于
      Panic if Xen provides a memory map with 0 entries. Although this is
      unlikely, it is better to catch the error at the point of seeing the map
      than later on as a symptom of some other crash.
      Signed-off-by: NMartin Kelly <martkell@amazon.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      1ea644c8
    • B
      x86/xen: Fix incorrect per_cpu accessor in xen_clocksource_read() · 3251f20b
      Boris Ostrovsky 提交于
      Commit 89cbc767 ("x86: Replace __get_cpu_var uses") replaced
      __get_cpu_var() with this_cpu_ptr() in xen_clocksource_read() in such a
      way that instead of accessing a structure pointed to by a per-cpu pointer
      we are trying to get to a per-cpu structure.
      
      __this_cpu_read() of the pointer is the more appropriate accessor.
      Signed-off-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      3251f20b
    • J
      x86/xen: avoid race in p2m handling · 3a0e94f8
      Juergen Gross 提交于
      When a new p2m leaf is allocated this leaf is linked into the p2m tree
      via cmpxchg. Unfortunately the compare value for checking the success
      of the update is read after checking for the need of a new leaf. It is
      possible that a new leaf has been linked into the tree concurrently
      in between. This could lead to a leaked memory page and to the loss of
      some p2m entries.
      
      Avoid the race by using the read compare value for checking the need
      of a new p2m leaf and use ACCESS_ONCE() to get it.
      
      There are other places which seem to need ACCESS_ONCE() to ensure
      proper operation. Change them accordingly.
      Signed-off-by: NJuergen Gross <jgross@suse.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      3a0e94f8
    • J
      x86/xen: delay construction of mfn_list_list · 2c185687
      Juergen Gross 提交于
      The 3 level p2m tree for the Xen tools is constructed very early at
      boot by calling xen_build_mfn_list_list(). Memory needed for this tree
      is allocated via extend_brk().
      
      As this tree (other than the kernel internal p2m tree) is only needed
      for domain save/restore, live migration and crash dump analysis it
      doesn't matter whether it is constructed very early or just some
      milliseconds later when memory allocation is possible by other means.
      
      This patch moves the call of xen_build_mfn_list_list() just after
      calling xen_pagetable_p2m_copy() simplifying this function, too, as it
      doesn't have to bother with two parallel trees now. The same applies
      for some other internal functions.
      
      While simplifying code, make early_can_reuse_p2m_middle() static and
      drop the unused second parameter. p2m_mid_identity_mfn can be removed
      as well, it isn't used either.
      Signed-off-by: NJuergen Gross <jgross@suse.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      2c185687
    • J
      x86/xen: avoid writing to freed memory after race in p2m handling · 239af7c7
      Juergen Gross 提交于
      In case a race was detected during allocation of a new p2m tree
      element in alloc_p2m() the new allocated mid_mfn page is freed without
      updating the pointer to the found value in the tree. This will result
      in overwriting the just freed page with the mfn of the p2m leaf.
      Signed-off-by: NJuergen Gross <jgross@suse.com>
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      239af7c7
    • M
      MIPS: Sibyte: Include the swarm subdir to the sb1250 LittleSur builds · 3d1f9dda
      Markos Chandras 提交于
      Fixes the following randconfig build problem:
      
      arch/mips/built-in.o: In function `show_cpuinfo':
      proc.c:(.text+0xde84): undefined reference to `get_system_type'
      arch/mips/built-in.o: In function `sb1250_setup':
      (.init.text+0x428): undefined reference to `get_system_type'
      arch/mips/built-in.o: In function `setup_arch':
      (.init.text+0x178c): undefined reference to `plat_mem_setup'
      Makefile:930: recipe for target 'vmlinux' failed
      Signed-off-by: NMarkos Chandras <markos.chandras@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/8106/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      3d1f9dda
    • A
      MIPS: ptrace.h: Add a missing include · cdb685ad
      Aaro Koskinen 提交于
      Commit a79ebea6 (MIPS: ptrace: Fix user pt_regs definition,
      use in ptrace_{get, set}regs()) converted struct pt_regs to use __u64.
      Some userspace applications (e.g. GDB) include this file directly,
      and fail to see this type. Fix by including <linux/types.h>.
      
      The patch fixes the following build failure with GDB 7.8 when using
      GLIBC headers created against Linux 3.17:
      
      In file included from /home/aaro/los/work/shared/gdb-7.8/gdb/mips-linux-nat.c:37:0:
      /home/aaro/los/work/mips/rootfs/mips-linux-gnu/usr/include/asm/ptrace.h:32:2: error: unknown type name '__u64'
        __u64 regs[32];
        ^
      /home/aaro/los/work/mips/rootfs/mips-linux-gnu/usr/include/asm/ptrace.h:35:2: error: unknown type name '__u64'
        __u64 lo;
        ^
      /home/aaro/los/work/mips/rootfs/mips-linux-gnu/usr/include/asm/ptrace.h:36:2: error: unknown type name '__u64'
        __u64 hi;
        ^
      
      Fixes: a79ebea6 ("MIPS: ptrace: Fix user pt_regs definition, use in ptrace_{get, set}regs()")
      Cc: stable@vger.kernel.org # 3.17
      Signed-off-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Cc: Alex Smith <alex@alex-smith.me.uk>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/8067/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      cdb685ad
    • D
      ARM: dts: socfpga: Add a 3.3V fixed regulator node · efb4a44e
      Dinh Nguyen 提交于
      Without the 3.3V regulator node, the SDMMC driver will give these warnings:
      
      dw_mmc ff704000.dwmmc0: No vmmc regulator found
      dw_mmc ff704000.dwmmc0: No vqmmc regulator found
      
      This patch adds the regulator node, and points the SD/MMC to the regulator.
      Signed-off-by: NDinh Nguyen <dinguyen@opensource.altera.com>
      Reviewed-by: NDoug Anderson <dianders@chromium.org>
      ---
      v3: Rename nodes to have schematic-name_regulator and remove "boot-on" and
          "always-on"
      v2: Move the regulator nodes to their respective board dts file and
          correctly rename them to match the schematic
      efb4a44e