Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e0243db authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml

Pull UML updates from Richard Weinberger:
 "Beside of various fixes this also contains patches to enable features
  such was Kcov, kmemleak and TRACE_IRQFLAGS_SUPPORT on UML"

* 'for-linus-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
  hostfs: Freeing an ERR_PTR in hostfs_fill_sb_common()
  um: Support kcov
  um: Enable TRACE_IRQFLAGS_SUPPORT
  um: Use asm-generic/irqflags.h
  um: Fix possible deadlock in sig_handler_common()
  um: Select HAVE_DEBUG_KMEMLEAK
  um: Setup physical memory in setup_arch()
  um: Eliminate null test after alloc_bootmem
parents b067c904 8a545f18
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
config UML
	bool
	default y
	select ARCH_HAS_KCOV
	select HAVE_ARCH_AUDITSYSCALL
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_UID16
	select HAVE_FUTEX_CMPXCHG if FUTEX
	select HAVE_DEBUG_KMEMLEAK
	select GENERIC_IRQ_SHOW
	select GENERIC_CPU_DEVICES
	select GENERIC_IO
@@ -31,10 +33,9 @@ config PCI
config PCMCIA
	bool

# Yet to do!
config TRACE_IRQFLAGS_SUPPORT
	bool
	default n
	default y

config LOCKDEP_SUPPORT
	bool
+7 −11
Original line number Diff line number Diff line
@@ -6,37 +6,33 @@ extern int set_signals(int enable);
extern void block_signals(void);
extern void unblock_signals(void);

#define arch_local_save_flags arch_local_save_flags
static inline unsigned long arch_local_save_flags(void)
{
	return get_signals();
}

#define arch_local_irq_restore arch_local_irq_restore
static inline void arch_local_irq_restore(unsigned long flags)
{
	set_signals(flags);
}

#define arch_local_irq_enable arch_local_irq_enable
static inline void arch_local_irq_enable(void)
{
	unblock_signals();
}

#define arch_local_irq_disable arch_local_irq_disable
static inline void arch_local_irq_disable(void)
{
	block_signals();
}

static inline unsigned long arch_local_irq_save(void)
{
	unsigned long flags;
	flags = arch_local_save_flags();
	arch_local_irq_disable();
	return flags;
}
#define ARCH_IRQ_DISABLED	0
#define ARCh_IRQ_ENABLED	(SIGIO|SIGVTALRM)

static inline bool arch_irqs_disabled(void)
{
	return arch_local_save_flags() == 0;
}
#include <asm-generic/irqflags.h>

#endif
+5 −0
Original line number Diff line number Diff line
@@ -3,6 +3,11 @@
# Licensed under the GPL
#

# Don't instrument UML-specific code; without this, we may crash when
# accessing the instrumentation buffer for the first time from the
# kernel.
KCOV_INSTRUMENT                := n

CPPFLAGS_vmlinux.lds := -DSTART=$(LDS_START)		\
                        -DELF_ARCH=$(LDS_ELF_ARCH)	\
                        -DELF_FORMAT=$(LDS_ELF_FORMAT)	\
+0 −2
Original line number Diff line number Diff line
@@ -37,8 +37,6 @@ static int __init read_initrd(void)
	}

	area = alloc_bootmem(size);
	if (area == NULL)
		return 0;

	if (load_initrd(initrd, area, size) == -1)
		return 0;
+4 −4
Original line number Diff line number Diff line
@@ -319,9 +319,6 @@ int __init linux_main(int argc, char **argv)

	start_vm = VMALLOC_START;

	setup_physmem(uml_physmem, uml_reserved, physmem_size, highmem);
	mem_total_pages(physmem_size, iomem_size, highmem);

	virtmem_size = physmem_size;
	stack = (unsigned long) argv;
	stack &= ~(1024 * 1024 - 1);
@@ -334,7 +331,6 @@ int __init linux_main(int argc, char **argv)
		printf("Kernel virtual memory size shrunk to %lu bytes\n",
		       virtmem_size);

	stack_protections((unsigned long) &init_thread_info);
	os_flush_stdout();

	return start_uml();
@@ -342,6 +338,10 @@ int __init linux_main(int argc, char **argv)

void __init setup_arch(char **cmdline_p)
{
	stack_protections((unsigned long) &init_thread_info);
	setup_physmem(uml_physmem, uml_reserved, physmem_size, highmem);
	mem_total_pages(physmem_size, iomem_size, highmem);

	paging_init();
	strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
	*cmdline_p = command_line;
Loading