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

Commit 6cafab50 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sparc fixes from David Miller:
 "Just some small fixes here and there, and a refcount leak in a serial
  driver, nothing serious"

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
  serial/sunsu: fix refcount leak
  sparc: Set "ARCH: sunxx" information on the same line
  sparc: vdso: Drop implicit common-page-size linker flag
parents 87935eee d430aff8
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -310,25 +310,24 @@ void __init setup_arch(char **cmdline_p)

	register_console(&prom_early_console);

	printk("ARCH: ");
	switch(sparc_cpu_model) {
	case sun4m:
		printk("SUN4M\n");
		pr_info("ARCH: SUN4M\n");
		break;
	case sun4d:
		printk("SUN4D\n");
		pr_info("ARCH: SUN4D\n");
		break;
	case sun4e:
		printk("SUN4E\n");
		pr_info("ARCH: SUN4E\n");
		break;
	case sun4u:
		printk("SUN4U\n");
		pr_info("ARCH: SUN4U\n");
		break;
	case sparc_leon:
		printk("LEON\n");
		pr_info("ARCH: LEON\n");
		break;
	default:
		printk("UNKNOWN!\n");
		pr_info("ARCH: UNKNOWN!\n");
		break;
	}

+2 −2
Original line number Diff line number Diff line
@@ -642,9 +642,9 @@ void __init setup_arch(char **cmdline_p)
		register_console(&prom_early_console);

	if (tlb_type == hypervisor)
		printk("ARCH: SUN4V\n");
		pr_info("ARCH: SUN4V\n");
	else
		printk("ARCH: SUN4U\n");
		pr_info("ARCH: SUN4U\n");

#ifdef CONFIG_DUMMY_CONSOLE
	conswitchp = &dummy_con;
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ targets += $(vdso_img_sodbg) $(vdso_img-y:%=vdso%.so)
CPPFLAGS_vdso.lds += -P -C

VDSO_LDFLAGS_vdso.lds = -m elf64_sparc -soname linux-vdso.so.1 --no-undefined \
			-z max-page-size=8192 -z common-page-size=8192
			-z max-page-size=8192

$(obj)/vdso64.so.dbg: $(obj)/vdso.lds $(vobjs) FORCE
	$(call if_changed,vdso)
+26 −5
Original line number Diff line number Diff line
@@ -1394,22 +1394,43 @@ static inline struct console *SUNSU_CONSOLE(void)
static enum su_type su_get_type(struct device_node *dp)
{
	struct device_node *ap = of_find_node_by_path("/aliases");
	enum su_type rc = SU_PORT_PORT;

	if (ap) {
		const char *keyb = of_get_property(ap, "keyboard", NULL);
		const char *ms = of_get_property(ap, "mouse", NULL);
		struct device_node *match;

		if (keyb) {
			if (dp == of_find_node_by_path(keyb))
				return SU_PORT_KBD;
			match = of_find_node_by_path(keyb);

			/*
			 * The pointer is used as an identifier not
			 * as a pointer, we can drop the refcount on
			 * the of__node immediately after getting it.
			 */
			of_node_put(match);

			if (dp == match) {
				rc = SU_PORT_KBD;
				goto out;
			}
		}
		if (ms) {
			if (dp == of_find_node_by_path(ms))
				return SU_PORT_MS;
			match = of_find_node_by_path(ms);

			of_node_put(match);

			if (dp == match) {
				rc = SU_PORT_MS;
				goto out;
			}
		}
	}

	return SU_PORT_PORT;
out:
	of_node_put(ap);
	return rc;
}

static int su_probe(struct platform_device *op)