Skip to content

Commit 08e4e0d

Browse files
committed
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
2 parents 4ad7255 + 1493aa6 commit 08e4e0d

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

arch/xtensa/include/asm/page.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,21 @@ void copy_user_highpage(struct page *to, struct page *from,
164164

165165
#define ARCH_PFN_OFFSET (PHYS_OFFSET >> PAGE_SHIFT)
166166

167+
#ifdef CONFIG_MMU
168+
static inline unsigned long ___pa(unsigned long va)
169+
{
170+
unsigned long off = va - PAGE_OFFSET;
171+
172+
if (off >= XCHAL_KSEG_SIZE)
173+
off -= XCHAL_KSEG_SIZE;
174+
175+
return off + PHYS_OFFSET;
176+
}
177+
#define __pa(x) ___pa((unsigned long)(x))
178+
#else
167179
#define __pa(x) \
168180
((unsigned long) (x) - PAGE_OFFSET + PHYS_OFFSET)
181+
#endif
169182
#define __va(x) \
170183
((void *)((unsigned long) (x) - PHYS_OFFSET + PAGE_OFFSET))
171184
#define pfn_valid(pfn) \

arch/xtensa/include/uapi/asm/unistd.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,10 @@ __SYSCALL(349, sys_pkey_alloc, 2)
774774
#define __NR_pkey_free 350
775775
__SYSCALL(350, sys_pkey_free, 1)
776776

777-
#define __NR_syscall_count 351
777+
#define __NR_statx 351
778+
__SYSCALL(351, sys_statx, 5)
779+
780+
#define __NR_syscall_count 352
778781

779782
/*
780783
* sysxtensa syscall handler

arch/xtensa/kernel/traps.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,10 +483,8 @@ void show_regs(struct pt_regs * regs)
483483

484484
static int show_trace_cb(struct stackframe *frame, void *data)
485485
{
486-
if (kernel_text_address(frame->pc)) {
487-
pr_cont(" [<%08lx>]", frame->pc);
488-
print_symbol(" %s\n", frame->pc);
489-
}
486+
if (kernel_text_address(frame->pc))
487+
pr_cont(" [<%08lx>] %pB\n", frame->pc, (void *)frame->pc);
490488
return 0;
491489
}
492490

0 commit comments

Comments
 (0)