1. 17 9月, 2015 2 次提交
  2. 16 9月, 2015 1 次提交
    • M
      arm: KVM: Fix incorrect device to IPA mapping · ca09f02f
      Marek Majtyka 提交于
      A critical bug has been found in device memory stage1 translation for
      VMs with more then 4GB of address space. Once vm_pgoff size is smaller
      then pa (which is true for LPAE case, u32 and u64 respectively) some
      more significant bits of pa may be lost as a shift operation is performed
      on u32 and later cast onto u64.
      
      Example: vm_pgoff(u32)=0x00210030, PAGE_SHIFT=12
              expected pa(u64):   0x0000002010030000
              produced pa(u64):   0x0000000010030000
      
      The fix is to change the order of operations (casting first onto phys_addr_t
      and then shifting).
      Reviewed-by: NMarc Zyngier <marc.zyngier@arm.com>
      [maz: fixed changelog and patch formatting]
      Cc: stable@vger.kernel.org
      Signed-off-by: NMarek Majtyka <marek.majtyka@tieto.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      ca09f02f
  3. 05 9月, 2015 1 次提交
  4. 20 8月, 2015 1 次提交
  5. 12 8月, 2015 4 次提交
  6. 21 7月, 2015 3 次提交
  7. 09 7月, 2015 2 次提交
  8. 06 7月, 2015 4 次提交
  9. 05 7月, 2015 4 次提交
  10. 04 7月, 2015 3 次提交
  11. 03 7月, 2015 4 次提交
    • R
      ARM: io: fix ioremap_wt() implementation · 1e2c727f
      Russell King 提交于
      ioremap_wt() was added by aliasing it to ioremap_nocache(), which is a
      device mapping.  Device mappings do not allow unaligned accesses, but
      it appears that GCC is able to inline its own memcpy() implementation
      which may use such accesses.  The only user of this is pmem, which
      uses memcpy() on the region.
      
      Therefore, this is unsafe.  We must implement ioremap_wt() correctly
      for ARM, or not at all.
      
      This patch adds a more correct implementation by re-using ioremap_wc()
      to provide a normal-memory non-cacheable mapping.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      1e2c727f
    • R
      ARM: io: document ARM specific behaviour of ioremap*() implementations · ac5e2f17
      Russell King 提交于
      Add documentation of the ARM specific behaviour of the mappings setup by
      the ioremap() series of macros.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ac5e2f17
    • R
      ARM: fix lockdep unannotated irqs-off warning · 11b8b25c
      Russell King 提交于
      Wolfram Sang reported an unannotated irqs-off warning from lockdep:
      
      WARNING: CPU: 0 PID: 282 at kernel/locking/lockdep.c:3557 check_flags+0x84/0x1f4()
      DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled)
      CPU: 0 PID: 282 Comm: rcS Tainted: G        W 4.1.0-00002-g5b076054611833 #179
      Hardware name: Generic Emma Mobile EV2 (Flattened Device Tree)
      Backtrace:
      [<c0012c94>] (dump_backtrace) from [<c0012e3c>] (show_stack+0x18/0x1c)
       r6:c02dcc67 r5:00000009 r4:00000000 r3:00400000
      [<c0012e24>] (show_stack) from [<c02510c8>] (dump_stack+0x20/0x28)
      [<c02510a8>] (dump_stack) from [<c0022c44>] (warn_slowpath_common+0x8c/0xb4)
      [<c0022bb8>] (warn_slowpath_common) from [<c0022cd8>] (warn_slowpath_fmt+0x38/0x40)
       r8:c780f470 r7:00000000 r6:00000000 r5:c03b0570 r4:c0b7ec04
      [<c0022ca4>] (warn_slowpath_fmt) from [<c004cd38>] (check_flags+0x84/0x1f4)
       r3:c02e13d8 r2:c02dceaa
      [<c004ccb4>] (check_flags) from [<c0050e50>] (lock_acquire+0x4c/0xbc)
       r5:00000000 r4:60000193
      [<c0050e04>] (lock_acquire) from [<c0256000>] (_raw_spin_lock+0x34/0x44)
       r9:000a8d5c r8:00000001 r7:c7806000 r6:c780f460 r5:c03b06a0 r4:c780f460
      [<c0255fcc>] (_raw_spin_lock) from [<c005a8cc>] (handle_fasteoi_irq+0x20/0x11c)
       r4:c780f400
      [<c005a8ac>] (handle_fasteoi_irq) from [<c0057a4c>] (generic_handle_irq+0x28/0x38)
       r6:00000000 r5:c03b038c r4:00000012 r3:c005a8ac
      [<c0057a24>] (generic_handle_irq) from [<c0057ae4>] (__handle_domain_irq+0x88/0xa8)
       r4:00000000 r3:00000026
      [<c0057a5c>] (__handle_domain_irq) from [<c000a3cc>] (gic_handle_irq+0x40/0x58)
       r8:10c5347d r7:10c5347d r6:c35b1fb0 r5:c03a6304 r4:c8802000 r3:c35b1fb0
      [<c000a38c>] (gic_handle_irq) from [<c0013bc8>] (__irq_usr+0x48/0x60)
      Exception stack(0xc35b1fb0 to 0xc35b1ff8)
      1fa0:                                     00000061 00000000 000ab736 00000066
      1fc0: 00000061 000aa1f0 000a8d54 000a8d54 000a8d88 000a8d5c 000a8cc8 000a8d68
      1fe0: 72727272 bef8a528 000398c0 00031334 20000010 ffffffff
       r6:ffffffff r5:20000010 r4:00031334 r3:00000061
      ---[ end trace cb88537fdc8fa202 ]---
      possible reason: unannotated irqs-off.
      irq event stamp: 769
      hardirqs last  enabled at (769): [<c000f82c>] ret_fast_syscall+0x2c/0x54
      hardirqs last disabled at (768): [<c000f80c>] ret_fast_syscall+0xc/0x54
      softirqs last  enabled at (0): [<c0020ec4>] copy_process.part.65+0x2e8/0x11dc
      softirqs last disabled at (0): [<  (null)>]   (null)
      
      His kernel configuration had:
      CONFIG_PROVE_LOCKING=y
      CONFIG_TRACE_IRQFLAGS=y
      but no IRQSOFF_TRACER, which means entry from userspace can result in the
      kernel seeing IRQs off without being notified of that change of state.
      Change the IRQSOFF ifdef in the usr_entry macro to TRACE_IRQFLAGS instead.
      Tested-by: NWolfram Sang <wsa+renesas@sang-engineering.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      11b8b25c
    • S
      ARM: 8397/1: fix vdsomunge not to depend on glibc specific error.h · 13ee9fdb
      Szabolcs Nagy 提交于
      If the host toolchain is not glibc based then the arm kernel build
      fails with
      
       arch/arm/vdso/vdsomunge.c:53:19: fatal error: error.h: No such file or directory
      
      error.h is a glibc only header (ie not available in musl, newlib and
      bsd libcs).  Changed the error reporting to standard conforming code
      to avoid depending on specific C implementations.
      Signed-off-by: NSzabolcs Nagy <szabolcs.nagy@arm.com>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Fixes: 8512287a ("ARM: 8330/1: add VDSO user-space code")
      Cc: stable@vger.kernel.org
      Signed-off-by: NNathan Lynch <nathan_lynch@mentor.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      13ee9fdb
  12. 02 7月, 2015 3 次提交
  13. 01 7月, 2015 2 次提交
  14. 29 6月, 2015 6 次提交