Commit 08e4e0d0 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'xtensa-20170403' of git://github.com/jcmvbkbc/linux-xtensa

Pull Xtensa fixes from Max Filippov:

 - make __pa work with uncached KSEG addresses, it fixes DMA memory
   mmapping and DMA debug

 - fix torn stack dump output

 - wire up statx syscall

* tag 'xtensa-20170403' of git://github.com/jcmvbkbc/linux-xtensa:
  xtensa: wire up statx system call
  xtensa: fix stack dump output
  xtensa: make __pa work with uncached KSEG addresses
parents 4ad72555 1493aa65
...@@ -164,8 +164,21 @@ void copy_user_highpage(struct page *to, struct page *from, ...@@ -164,8 +164,21 @@ void copy_user_highpage(struct page *to, struct page *from,
#define ARCH_PFN_OFFSET (PHYS_OFFSET >> PAGE_SHIFT) #define ARCH_PFN_OFFSET (PHYS_OFFSET >> PAGE_SHIFT)
#ifdef CONFIG_MMU
static inline unsigned long ___pa(unsigned long va)
{
unsigned long off = va - PAGE_OFFSET;
if (off >= XCHAL_KSEG_SIZE)
off -= XCHAL_KSEG_SIZE;
return off + PHYS_OFFSET;
}
#define __pa(x) ___pa((unsigned long)(x))
#else
#define __pa(x) \ #define __pa(x) \
((unsigned long) (x) - PAGE_OFFSET + PHYS_OFFSET) ((unsigned long) (x) - PAGE_OFFSET + PHYS_OFFSET)
#endif
#define __va(x) \ #define __va(x) \
((void *)((unsigned long) (x) - PHYS_OFFSET + PAGE_OFFSET)) ((void *)((unsigned long) (x) - PHYS_OFFSET + PAGE_OFFSET))
#define pfn_valid(pfn) \ #define pfn_valid(pfn) \
......
...@@ -774,7 +774,10 @@ __SYSCALL(349, sys_pkey_alloc, 2) ...@@ -774,7 +774,10 @@ __SYSCALL(349, sys_pkey_alloc, 2)
#define __NR_pkey_free 350 #define __NR_pkey_free 350
__SYSCALL(350, sys_pkey_free, 1) __SYSCALL(350, sys_pkey_free, 1)
#define __NR_syscall_count 351 #define __NR_statx 351
__SYSCALL(351, sys_statx, 5)
#define __NR_syscall_count 352
/* /*
* sysxtensa syscall handler * sysxtensa syscall handler
......
...@@ -483,10 +483,8 @@ void show_regs(struct pt_regs * regs) ...@@ -483,10 +483,8 @@ void show_regs(struct pt_regs * regs)
static int show_trace_cb(struct stackframe *frame, void *data) static int show_trace_cb(struct stackframe *frame, void *data)
{ {
if (kernel_text_address(frame->pc)) { if (kernel_text_address(frame->pc))
pr_cont(" [<%08lx>]", frame->pc); pr_cont(" [<%08lx>] %pB\n", frame->pc, (void *)frame->pc);
print_symbol(" %s\n", frame->pc);
}
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment