Commit 6cafab50 authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

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
...@@ -310,25 +310,24 @@ void __init setup_arch(char **cmdline_p) ...@@ -310,25 +310,24 @@ void __init setup_arch(char **cmdline_p)
register_console(&prom_early_console); register_console(&prom_early_console);
printk("ARCH: ");
switch(sparc_cpu_model) { switch(sparc_cpu_model) {
case sun4m: case sun4m:
printk("SUN4M\n"); pr_info("ARCH: SUN4M\n");
break; break;
case sun4d: case sun4d:
printk("SUN4D\n"); pr_info("ARCH: SUN4D\n");
break; break;
case sun4e: case sun4e:
printk("SUN4E\n"); pr_info("ARCH: SUN4E\n");
break; break;
case sun4u: case sun4u:
printk("SUN4U\n"); pr_info("ARCH: SUN4U\n");
break; break;
case sparc_leon: case sparc_leon:
printk("LEON\n"); pr_info("ARCH: LEON\n");
break; break;
default: default:
printk("UNKNOWN!\n"); pr_info("ARCH: UNKNOWN!\n");
break; break;
} }
......
...@@ -642,9 +642,9 @@ void __init setup_arch(char **cmdline_p) ...@@ -642,9 +642,9 @@ void __init setup_arch(char **cmdline_p)
register_console(&prom_early_console); register_console(&prom_early_console);
if (tlb_type == hypervisor) if (tlb_type == hypervisor)
printk("ARCH: SUN4V\n"); pr_info("ARCH: SUN4V\n");
else else
printk("ARCH: SUN4U\n"); pr_info("ARCH: SUN4U\n");
#ifdef CONFIG_DUMMY_CONSOLE #ifdef CONFIG_DUMMY_CONSOLE
conswitchp = &dummy_con; conswitchp = &dummy_con;
......
...@@ -34,7 +34,7 @@ targets += $(vdso_img_sodbg) $(vdso_img-y:%=vdso%.so) ...@@ -34,7 +34,7 @@ targets += $(vdso_img_sodbg) $(vdso_img-y:%=vdso%.so)
CPPFLAGS_vdso.lds += -P -C CPPFLAGS_vdso.lds += -P -C
VDSO_LDFLAGS_vdso.lds = -m elf64_sparc -soname linux-vdso.so.1 --no-undefined \ 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 $(obj)/vdso64.so.dbg: $(obj)/vdso.lds $(vobjs) FORCE
$(call if_changed,vdso) $(call if_changed,vdso)
......
...@@ -1394,22 +1394,43 @@ static inline struct console *SUNSU_CONSOLE(void) ...@@ -1394,22 +1394,43 @@ static inline struct console *SUNSU_CONSOLE(void)
static enum su_type su_get_type(struct device_node *dp) static enum su_type su_get_type(struct device_node *dp)
{ {
struct device_node *ap = of_find_node_by_path("/aliases"); struct device_node *ap = of_find_node_by_path("/aliases");
enum su_type rc = SU_PORT_PORT;
if (ap) { if (ap) {
const char *keyb = of_get_property(ap, "keyboard", NULL); const char *keyb = of_get_property(ap, "keyboard", NULL);
const char *ms = of_get_property(ap, "mouse", NULL); const char *ms = of_get_property(ap, "mouse", NULL);
struct device_node *match;
if (keyb) { if (keyb) {
if (dp == of_find_node_by_path(keyb)) match = of_find_node_by_path(keyb);
return SU_PORT_KBD;
/*
* 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 (ms) {
if (dp == of_find_node_by_path(ms)) match = of_find_node_by_path(ms);
return SU_PORT_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) static int su_probe(struct platform_device *op)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment