Commit feb0eee9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull parisc architecture fixes from Helge Deller:
 "A bugfix in the LWS code, which used different lock words than the
  parisc lightweight spinlock checks. This inconsistency triggered false
  positives when the lightweight spinlock checks checked the locks of
  mutexes.

  The other patches are trivial cleanups and most of them fix sparse
  warnings.

  Summary:

   - Fix LWS code to use same lock words as for the parisc lightweight
     spinlocks

   - Use PTR_ERR_OR_ZERO() in pdt init code

   - Fix lots of sparse warnings"

* tag 'parisc-for-6.5-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: perf: Make cpu_device variable static
  parisc: ftrace: Add declaration for ftrace_function_trampoline()
  parisc: boot: Nuke some sparse warnings in decompressor
  parisc: processor: Include asm/smp.h for init_per_cpu()
  parisc: unaligned: Include linux/sysctl.h for unaligned_enabled
  parisc: Move proc_mckinley_root and proc_runway_root to sba_iommu
  parisc: dma: Add prototype for pcxl_dma_start
  parisc: parisc_ksyms: Include libgcc.h for libgcc prototypes
  parisc: ucmpdi2: Fix no previous prototype for '__ucmpdi2' warning
  parisc: firmware: Mark pdc_result buffers local
  parisc: firmware: Fix sparse context imbalance warnings
  parisc: signal: Fix sparse incorrect type in assignment warning
  parisc: ioremap: Fix sparse warnings
  parisc: fault: Use C99 arrary initializers
  parisc: pdt: Use PTR_ERR_OR_ZERO() to simplify code
  parisc: Fix lightweight spinlock checks to not break futexes
parents 2a5482c2 d863066e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -2,7 +2,7 @@
#
#
config LIGHTWEIGHT_SPINLOCK_CHECK
config LIGHTWEIGHT_SPINLOCK_CHECK
	bool "Enable lightweight spinlock checks"
	bool "Enable lightweight spinlock checks"
	depends on SMP && !DEBUG_SPINLOCK
	depends on DEBUG_KERNEL && SMP && !DEBUG_SPINLOCK
	default y
	default y
	help
	help
	  Add checks with low performance impact to the spinlock functions
	  Add checks with low performance impact to the spinlock functions
+5 −5
Original line number Original line Diff line number Diff line
@@ -117,7 +117,7 @@ char *strchr(const char *s, int c)
	return NULL;
	return NULL;
}
}


int puts(const char *s)
static int puts(const char *s)
{
{
	const char *nuline = s;
	const char *nuline = s;


@@ -172,7 +172,7 @@ static int print_num(unsigned long num, int base)
	return 0;
	return 0;
}
}


int printf(const char *fmt, ...)
static int printf(const char *fmt, ...)
{
{
	va_list args;
	va_list args;
	int i = 0;
	int i = 0;
@@ -204,13 +204,13 @@ void abort(void)
}
}


#undef malloc
#undef malloc
void *malloc(size_t size)
static void *malloc(size_t size)
{
{
	return malloc_gzip(size);
	return malloc_gzip(size);
}
}


#undef free
#undef free
void free(void *ptr)
static void free(void *ptr)
{
{
	return free_gzip(ptr);
	return free_gzip(ptr);
}
}
@@ -278,7 +278,7 @@ static void parse_elf(void *output)
	free(phdrs);
	free(phdrs);
}
}


unsigned long decompress_kernel(unsigned int started_wide,
asmlinkage unsigned long __visible decompress_kernel(unsigned int started_wide,
		unsigned int command_line,
		unsigned int command_line,
		const unsigned int rd_start,
		const unsigned int rd_start,
		const unsigned int rd_end)
		const unsigned int rd_end)
+2 −0
Original line number Original line Diff line number Diff line
@@ -14,6 +14,8 @@
#define dma_outb	outb
#define dma_outb	outb
#define dma_inb		inb
#define dma_inb		inb


extern unsigned long pcxl_dma_start;

/*
/*
** DMA_CHUNK_SIZE is used by the SCSI mid-layer to break up
** DMA_CHUNK_SIZE is used by the SCSI mid-layer to break up
** (or rather not merge) DMAs into manageable chunks.
** (or rather not merge) DMAs into manageable chunks.
+4 −0
Original line number Original line Diff line number Diff line
@@ -12,6 +12,10 @@ extern void mcount(void);
extern unsigned long sys_call_table[];
extern unsigned long sys_call_table[];


extern unsigned long return_address(unsigned int);
extern unsigned long return_address(unsigned int);
struct ftrace_regs;
extern void ftrace_function_trampoline(unsigned long parent,
		unsigned long self_addr, unsigned long org_sp_gr3,
		struct ftrace_regs *fregs);


#ifdef CONFIG_DYNAMIC_FTRACE
#ifdef CONFIG_DYNAMIC_FTRACE
extern void ftrace_caller(void);
extern void ftrace_caller(void);
+0 −2
Original line number Original line Diff line number Diff line
@@ -7,8 +7,6 @@
#include <asm/processor.h>
#include <asm/processor.h>
#include <asm/spinlock_types.h>
#include <asm/spinlock_types.h>


#define SPINLOCK_BREAK_INSN	0x0000c006	/* break 6,6 */

static inline void arch_spin_val_check(int lock_val)
static inline void arch_spin_val_check(int lock_val)
{
{
	if (IS_ENABLED(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK))
	if (IS_ENABLED(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK))
Loading