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 flaghifive-unleashed-5.1
commit
6cafab50ee
|
@ -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)
|
||||||
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)
|
||||||
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)
|
||||||
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)
|
||||||
|
|
Loading…
Reference in New Issue