1. 10 8月, 2009 5 次提交
  2. 05 8月, 2009 1 次提交
  3. 30 7月, 2009 9 次提交
  4. 29 7月, 2009 1 次提交
  5. 28 7月, 2009 2 次提交
  6. 27 7月, 2009 16 次提交
  7. 24 7月, 2009 5 次提交
    • M
      [S390] vdso: clock_gettime of CLOCK_THREAD_CPUTIME_ID with noexec=on · 1277580f
      Martin Schwidefsky 提交于
      The combination of noexec=on and a clock_gettime call with clock id
      CLOCK_THREAD_CPUTIME_ID is broken. The vdso code switches to the
      access register mode to get access to the per-cpu data structure to
      execute the magic ectg instruction. After the ectg instruction the
      code always switches back to the primary mode but for noexec=on the
      correct mode is the secondary mode. The effect of the bug is that the
      user space program looses the access to all mappings without PROT_EXEC,
      e.g. the stack. The problem is fixed by restoring the mode that has
      been active before the switch to the access register mode.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      1277580f
    • H
      [S390] vdso: fix per cpu area allocation · 3a6ba460
      Heiko Carstens 提交于
      vdso per cpu area allocation in smp_prepare_cpus() happens with GFP_KERNEL
      but irqs disabled. Triggers this one:
      
      Badness at kernel/lockdep.c:2280
      Modules linked in:
      CPU: 0 Not tainted 2.6.30 #2
      Process swapper (pid: 1, task: 000000003fe88000, ksp: 000000003fe87eb8)
      Krnl PSW : 0400c00180000000 0000000000083360 (lockdep_trace_alloc+0xec/0xf8)
      [...]
      Call Trace:
      ([<00000000000832b6>] lockdep_trace_alloc+0x42/0xf8)
       [<00000000000b1880>] __alloc_pages_internal+0x3e8/0x5c4
       [<00000000000b1b4a>] __get_free_pages+0x3a/0xb0
       [<0000000000026546>] vdso_alloc_per_cpu+0x6a/0x18c
       [<00000000005eff82>] smp_prepare_cpus+0x322/0x594
       [<00000000005e8232>] kernel_init+0x76/0x398
       [<000000000001bb1e>] kernel_thread_starter+0x6/0xc
       [<000000000001bb18>] kernel_thread_starter+0x0/0xc
      
      Fix this by moving the allocation out of the irqs disabled section.
      Reported-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      3a6ba460
    • H
      [S390] hibernation: fix register corruption on machine checks · c63b196a
      Heiko Carstens 提交于
      swsusp_arch_suspend() actually saves all cpu register contents on
      hibernation.
      Machine checks must be disabled since swsusp_arch_suspend() stores
      register contents to their lowcore save areas. That's the same
      place where register contents on machine checks would be saved.
      To avoid register corruption disable machine checks.
      We must also disable machine checks in the new psw mask for
      program checks, since swsusp_arch_suspend() may generate program
      checks.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      c63b196a
    • H
      [S390] hibernation: fix lowcore handling · 5f954c34
      Heiko Carstens 提交于
      Our swsusp_arch_suspend() backend implementation disables prefixing
      by setting the contents of the prefix register to 0.
      However afterwards common code functions are called which might
      access percpu data structures.
      Since the lowcore contains e.g. the percpu base pointer this isn't
      a good idea. So fix this by copying the hibernating cpu's lowcore to
      absolute address zero.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      5f954c34
    • T
      x86: geode: Mark mfgpt irq IRQF_TIMER to prevent resume failure · d6c585a4
      Thomas Gleixner 提交于
      Timer interrupts are excluded from being disabled during suspend. The
      clock events code manages the disabling of clock events on its own
      because the timer interrupt needs to be functional before the resume
      code reenables the device interrupts.
      
      The mfgpt timer request its interrupt without setting the IRQF_TIMER
      flag so suspend_device_irqs() disables it as well which results in a
      fatal resume failure.
      
      Adding IRQF_TIMER to the interupt flags when requesting the mrgpt
      timer interrupt solves the problem.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Cc: Andres Salomon <dilinger@debian.org>
      Cc: stable@kernel.org
      d6c585a4
  8. 23 7月, 2009 1 次提交
    • N
      dmaengine: at_hdmac: add DMA slave transfers · 808347f6
      Nicolas Ferre 提交于
      This patch for at_hdmac adds the slave transfers capability to the Atmel DMA
      controller available on some AT91 SOCs. This allow peripheral to memory and
      memory to peripheral transfers with hardware handshaking.
      
      Slave structure for controller specific information is passed through channel
      private data. This at_dma_slave structure is defined in at_hdmac.h header file
      and relative hardware definition are moved to this file from at_hdmac_regs.h.
      Doing this we allow the channel configuration from platform definition code.
      
      This work is intensively based on dw_dmac and several slave implementations.
      Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      808347f6