Commit 2280a536 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull parisc updates from Helge Deller:

 - parisc now uses the generic dma_noncoherent_ops implementation
   (Christoph Hellwig)

 - further memory barrier and spinlock improvements (John David Anglin)

 - prepare removal of current_text_addr() functions (Nick Desaulniers)

 - improve kernel stack unwinding on parisc (me)

 - drop ENOTSUP which was defined on parisc only (me)

* 'parisc-4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Fix and improve kernel stack unwinding
  parisc: Remove unnecessary barriers from spinlock.h
  parisc: Remove ordered stores from syscall.S
  parisc: prefer _THIS_IP_ and _RET_IP_ statement expressions
  parisc: Add HAVE_REGS_AND_STACK_ACCESS_API feature
  parisc: Drop architecture-specific ENOTSUP define
  parisc: use generic dma_noncoherent_ops
  parisc: always use flush_kernel_dcache_range for DMA cache maintainance
  parisc: merge pcx_dma_ops and pcxl_dma_ops
parents c2d9f5bc c8921d72
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ config PARISC
	select HAVE_ARCH_HASH
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_TRACEHOOK
	select HAVE_REGS_AND_STACK_ACCESS_API
	select GENERIC_SCHED_CLOCK
	select HAVE_UNSTABLE_SCHED_CLOCK if SMP
	select GENERIC_CLOCKEVENTS
@@ -187,6 +188,10 @@ config PA20
config PA11
	def_bool y
	depends on PA7000 || PA7100LC || PA7200 || PA7300LC
	select ARCH_HAS_SYNC_DMA_FOR_CPU
	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
	select DMA_NONCOHERENT_OPS
	select DMA_NONCOHERENT_CACHE_SYNC

config PREFETCH
	def_bool y
+2 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#define RP_OFFSET	16
#define FRAME_SIZE	128
#define CALLEE_REG_FRAME_SIZE	144
#define REG_SZ		8
#define ASM_ULONG_INSN	.dword
#else	/* CONFIG_64BIT */
#define LDREG	ldw
@@ -50,6 +51,7 @@
#define RP_OFFSET	20
#define FRAME_SIZE	64
#define CALLEE_REG_FRAME_SIZE	128
#define REG_SZ		4
#define ASM_ULONG_INSN	.word
#endif

+0 −5
Original line number Diff line number Diff line
@@ -21,11 +21,6 @@
** flush/purge and allocate "regular" cacheable pages for everything.
*/

#ifdef CONFIG_PA11
extern const struct dma_map_ops pcxl_dma_ops;
extern const struct dma_map_ops pcx_dma_ops;
#endif

extern const struct dma_map_ops *hppa_dma_ops;

static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
+11 −6
Original line number Diff line number Diff line
@@ -18,9 +18,9 @@
#ifdef __ASSEMBLY__

#define ENTRY(name) \
	.export name !\
	ALIGN	!\
name:
name:		ASM_NL\
	.export name

#ifdef CONFIG_64BIT
#define ENDPROC(name) \
@@ -31,13 +31,18 @@ name:
	END(name)
#endif

#define ENTRY_CFI(name) \
#define ENTRY_CFI(name, ...) \
	ENTRY(name)	ASM_NL\
	.proc		ASM_NL\
	.callinfo __VA_ARGS__	ASM_NL\
	.entry		ASM_NL\
	CFI_STARTPROC

#define ENDPROC_CFI(name) \
	ENDPROC(name)	ASM_NL\
	CFI_ENDPROC
	CFI_ENDPROC	ASM_NL\
	.exit		ASM_NL\
	.procend	ASM_NL\
	ENDPROC(name)

#endif /* __ASSEMBLY__ */

+11 −0
Original line number Diff line number Diff line
@@ -25,4 +25,15 @@ static inline unsigned long regs_return_value(struct pt_regs *regs)
	return regs->gr[20];
}

static inline void instruction_pointer_set(struct pt_regs *regs,
						unsigned long val)
{
        regs->iaoq[0] = val;
}

/* Query offset/name of register from its name/offset */
extern int regs_query_register_offset(const char *name);
extern const char *regs_query_register_name(unsigned int offset);
#define MAX_REG_OFFSET (offsetof(struct pt_regs, ipsw))

#endif
Loading