1. 06 8月, 2013 4 次提交
  2. 03 8月, 2013 2 次提交
  3. 01 8月, 2013 10 次提交
  4. 31 7月, 2013 2 次提交
  5. 27 7月, 2013 1 次提交
  6. 26 7月, 2013 4 次提交
    • W
      ARM: 7791/1: a.out: remove partial a.out support · acfdd4b1
      Will Deacon 提交于
      a.out support on ARM requires that argc, argv and envp are passed in
      r0-r2 respectively, which requires hacking load_aout_binary to
      prevent argc being clobbered by the return code. Whilst mainline kernels
      do set the registers up in start_thread, the aout loader has never
      carried the hack in mainline.
      
      Initialising the registers in this way actually goes against the libc
      expectations for ELF binaries, where argc, argv and envp are passed on
      the stack, with r0 being used to hold a pointer to an exit function for
      cleaning up after the dynamic linker if required. If the pointer is
      NULL, then it is ignored. When execing an ELF binary, Linux currently
      zeroes r0, then sets it to argc and then finally clobbers it with the
      return value of the execve syscall, so we actually end up with:
      
      	r0 = 0
      	stack[0] = argc
      	r1 = stack[1] = argv
      	r2 = stack[2] = envp
      
      libc treats r1 and r2 as undefined. The clobbering of r0 by sys_execve
      works for user-spawned threads, but when executing an ELF binary from a
      kernel thread (via call_usermodehelper), the execve is performed on the
      ret_from_fork path, which restores r0 from the saved pt_regs, resulting
      in argc being presented to the C library. This has horrible consequences
      when the application exits, since we have an exit function registered
      using argc, resulting in a jump to hyperspace.
      
      This patch solves the problem by removing the partial a.out support from
      arch/arm/ altogether.
      
      Cc: <stable@vger.kernel.org>
      Cc: Ashish Sangwan <ashishsangwan2@gmail.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      acfdd4b1
    • C
      ARM: 7790/1: Fix deferred mm switch on VIVT processors · bdae73cd
      Catalin Marinas 提交于
      As of commit b9d4d42a (ARM: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW on
      pre-ARMv6 CPUs), the mm switching on VIVT processors is done in the
      finish_arch_post_lock_switch() function to avoid whole cache flushing
      with interrupts disabled. The need for deferred mm switch is stored as a
      thread flag (TIF_SWITCH_MM). However, with preemption enabled, we can
      have another thread switch before finish_arch_post_lock_switch(). If the
      new thread has the same mm as the previous 'next' thread, the scheduler
      will not call switch_mm() and the TIF_SWITCH_MM flag won't be set for
      the new thread.
      
      This patch moves the switch pending flag to the mm_context_t structure
      since this is specific to the mm rather than thread.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Reported-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Tested-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Cc: <stable@vger.kernel.org> # 3.5+
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      bdae73cd
    • F
      ARM: 7789/1: Do not run dummy_flush_tlb_a15_erratum() on non-Cortex-A15 · 1f49856b
      Fabio Estevam 提交于
      Commit 93dc6887 (ARM: 7684/1: errata: Workaround for Cortex-A15 erratum 798181 (TLBI/DSB operations)) causes the following undefined instruction error on a mx53 (Cortex-A8):
      
      Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
      CPU: 0 PID: 275 Comm: modprobe Not tainted 3.11.0-rc2-next-20130722-00009-g9b0f371 #881
      task: df46cc00 ti: df48e000 task.ti: df48e000
      PC is at check_and_switch_context+0x17c/0x4d0
      LR is at check_and_switch_context+0xdc/0x4d0
      
      This problem happens because check_and_switch_context() calls dummy_flush_tlb_a15_erratum() without checking if we are really running on a Cortex-A15 or not.
      
      To avoid this issue, only call dummy_flush_tlb_a15_erratum() inside
      check_and_switch_context() if erratum_a15_798181() returns true, which means that we are really running on a Cortex-A15.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: NRoger Quadros <rogerq@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      1f49856b
    • M
      ARM: 7787/1: virt: ensure visibility of __boot_cpu_mode · 8fbac214
      Mark Rutland 提交于
      Secondary CPUs write to __boot_cpu_mode with caches disabled, and thus a
      cached value of __boot_cpu_mode may be incoherent with that in memory.
      This could lead to a failure to detect mismatched boot modes.
      
      This patch adds flushing to ensure that writes by secondaries to
      __boot_cpu_mode are made visible before we test against it.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Acked-by: NDave Martin <Dave.Martin@arm.com>
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Cc: Christoffer Dall <cdall@cs.columbia.edu>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      8fbac214
  7. 25 7月, 2013 1 次提交
  8. 24 7月, 2013 9 次提交
    • S
      ARM: EXYNOS: Update CONFIG_ARCH_NR_GPIO for Exynos · 53302bf6
      Sachin Kamat 提交于
      With the recent cleanup in Exynos platform code notably commits
      17859bec ("ARM: EXYNOS: Do not select legacy Kconfig symbols any
      more") and b9222210 ("ARM: EXYNOS: Remove mach/gpio.h"), the definition
      of ARCH_NR_GPIOS got removed. This started causing problems on SoCs like
      Exynos4412 which have more than the default number of GPIOs. Thus define
      this number in KConfig file which takes care of current SoC requirements
      and provides scope for GPIO expanders. Without this patch we get the
      following errors during boot:
      
      gpiochip_add: gpios 251..258 (gpv0) failed to register
      samsung-pinctrl 106e0000.pinctrl: failed to register gpio_chip gpv0, error code: -22
      samsung-pinctrl: probe of 106e0000.pinctrl failed with error -22
      Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org>
      Cc: Tomasz Figa <t.figa@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      53302bf6
    • Y
      ARM: EXYNOS: Fix low level debug support · 7ed76e08
      Yadwinder Singh Brar 提交于
      Presently, using exynos_defconfig with CONFIG_DEBUG_LL and CONFIG_EARLY_PRIN
      on, kernel is not booting, we are getting following:
      
      [    0.000000] ------------[ cut here ]------------
      [    0.000000] kernel BUG at mm/vmalloc.c:1134!
      [    0.000000] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
      [    0.000000] Modules linked in:
      [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.11.0-rc1 #633
      [    0.000000] task: c052ec48 ti: c0524000 task.ti: c0524000
      [    0.000000] PC is at vm_area_add_early+0x54/0x94
      [    0.000000] LR is at add_static_vm_early+0xc/0x60
      
      Its because exynos[4/5]_map_io() function ioremaps a single 512KB memory
      size for all the four uart ports which envelopes the mapping created by
      debug_ll_io_init(), called earlier in exynos_init_io().
      
      This patch removes iodesc entries for UART controller for all Samsung SoC's,
      since now the Samsung uart driver does a ioremap during probe and any needed
      iomapping for earlyprintk will be handled by debug_ll_io_init().
      
      Tested on smdk4412 and smdk5250.
      Signed-off-by: NYadwinder Singh Brar <yadi.brar@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      7ed76e08
    • Y
      ARM: SAMSUNG: Save/restore only selected uart's registers · 7bdc84fb
      Yadwinder Singh Brar 提交于
      Basically this code gets executed only during debugging i.e when
      DEBUG_LL & SAMSUNG_PM_DEBUG is on, so required only for UART used
      for debugging. Since we are removing static iodesc entries for UARTs,
      so now only the selected (CONFIG_DEBUG_S3C_UART) UART will be
      ioremapped by the debug_ll_io_init() for DEBUG_LL, so save/restore
      uart registers only for selected uart.
      Signed-off-by: NYadwinder Singh Brar <yadi.brar@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      7bdc84fb
    • A
      ARM: SAMSUNG: Add SAMSUNG_PM config option to select pm · 89693016
      Amit Daniel Kachhap 提交于
      This patch enables the selection of samsung pm related stuffs
      when SAMSUNG_PM config is enabled and not just when generic PM
      config is enabled. Power management for s3c64XX and s3c24XX
      is enabled by default and for other platform depends on S5P_PM.
      This patch also fixes the following compilation error's when compiling
      a platform like exynos5440 which does not select pm stuffs.
      
      arch/arm/mach-exynos/built-in.o: In function '__virt_to_phys':
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      linux/arch/arm/include/asm/memory.h:175: undefined reference to 's3c_cpu_resume'
      arch/arm/mach-exynos/built-in.o: In function 'exynos5_init_irq':
      linux/arch/arm/mach-exynos/common.c:492: undefined reference to 's3c_irq_wake'
      linux/arch/arm/mach-exynos/common.c:492: undefined reference to 's3c_irq_wake'
      arch/arm/mach-exynos/built-in.o: In function 'exynos4_init_irq':
      linux/arch/arm/mach-exynos/common.c:476: undefined reference to 's3c_irq_wake'
      linux/arch/arm/mach-exynos/common.c:476: undefined reference to 's3c_irq_wake'
      arch/arm/plat-samsung/built-in.o: In function 's3c_irqext_wake':
      linux/arch/arm/plat-samsung/pm.c:144: undefined reference to 's3c_irqwake_eintallow'
      linux/arch/arm/plat-samsung/pm.c:144: undefined reference to 's3c_irqwake_eintallow'
      arch/arm/plat-samsung/built-in.o: In function 's3c_pm_enter':
      linux/arch/arm/plat-samsung/pm.c:263: undefined reference to 's3c_irqwake_intallow'
      linux/arch/arm/plat-samsung/pm.c:263: undefined reference to 's3c_irqwake_intallow'
      linux/arch/arm/plat-samsung/pm.c:264: undefined reference to 's3c_irqwake_eintallow'
      linux/arch/arm/plat-samsung/pm.c:264: undefined reference to 's3c_irqwake_eintallow'
      linux/arch/arm/plat-samsung/pm.c:275: undefined reference to 's3c_pm_save_core'
      linux/arch/arm/plat-samsung/pm.c:279: undefined reference to 's3c_pm_configure_extint'
      linux/arch/arm/plat-samsung/pm.c:310: undefined reference to 's3c_pm_restore_core'
      make: *** [vmlinux] Error 1
      Signed-off-by: NAmit Daniel Kachhap <amit.daniel@samsung.com>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      89693016
    • S
      ARM: S3C24XX: Add missing clkdev entries for s3c2440 UART · d817468c
      Sylwester Nawrocki 提交于
      This patch restores serial port operation which has been broken since
      commit 60e93575 ("serial: samsung: enable clock before clearing
      pending interrupts during init")
      
      That commit only uncovered the real issue which was missing clkdev
      entries for the "uart" clocks on S3C2440. It went unnoticed so far
      because return value of clk API calls were not being checked at all
      in the samsung serial port driver.
      
      This patch should be backported to at least 3.10 stable kernel, since
      the serial port has not been working on s3c2440 since 3.10-rc5.
      
      Cc: Chander Kashyap <chander.kashyap@linaro.org>
      Signed-off-by: NSylwester Nawrocki <sylvester.nawrocki@gmail.com>
      [on S3C2440 SoC based Mini2440 board]
      Tested-by: NSylwester Nawrocki <sylvester.nawrocki@gmail.com>
      Reviewed-by: NTomasz Figa <t.figa@samsung.com>
      Tested-by: NJuergen Beisert <jbe@pengutronix.de>
      Cc: <stable@vger.kernel.org>	[3.10]
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      d817468c
    • F
      ARM: multi_v7_defconfig: Select USB chipidea driver · a520a9b7
      Fabio Estevam 提交于
      CONFIG_USB_EHCI_MXC selects the old i.mx USB driver, which does not support
      device tree.
      
      Select the USB chipidea driver instead, so that USB can be functional on i.mx.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      a520a9b7
    • A
      ARM: pxa: propagate errors from regulator_enable() to pxamci · a829abf8
      Arnd Bergmann 提交于
      The em_x270_mci_setpower() and em_x270_usb_hub_init() functions
      call regulator_enable(), which may return an error that must
      be checked.
      
      This changes the em_x270_usb_hub_init() function to bail out
      if it fails, and changes the pxamci_platform_data->setpower
      callback so that the a failed em_x270_mci_setpower call
      can be propagated by the pxamci driver into the mmc core.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Mike Rapoport <mike@compulab.co.il>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Acked-by: NChris Ball <cjb@laptop.org>
      [olof: fixed order of regulator_enable() and test in em_x270_usb_hub_init]
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      a829abf8
    • V
      ARM: zynq: fix compilation warning · fe08bf9f
      Vincent Stehlé 提交于
      Fix the following compilation warning:
      
        arch/arm/mach-zynq/common.c:110:2: warning: initialization from incompatible pointer type [enabled by default]
        arch/arm/mach-zynq/common.c:110:2: warning: (near initialization for ‘__mach_desc_XILINX_EP107.restart’) [enabled by default]
      Signed-off-by: NVincent Stehlé <vincent.stehle@freescale.com>
      Cc: Robin Holt <holt@sgi.com>
      Cc: Michal Simek <michal.simek@xilinx.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: trivial@kernel.org
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      fe08bf9f
    • V
      ARM: keystone: fix compilation warning · ed882c3e
      Vincent Stehlé 提交于
      Fix the following compilation warning:
      
        arch/arm/mach-keystone/keystone.c:74:2: warning: initialization from incompatible pointer type [enabled by default]
        arch/arm/mach-keystone/keystone.c:74:2: warning: (near initialization for ‘__mach_desc_KEYSTONE.restart’) [enabled by default]
      Signed-off-by: NVincent Stehlé <vincent.stehle@freescale.com>
      Cc: Robin Holt <holt@sgi.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: trivial@kernel.org
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      ed882c3e
  9. 23 7月, 2013 5 次提交
  10. 22 7月, 2013 2 次提交