Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+35 -15
+6 -7
arch/sparc/kernel/setup_32.c
··· 310 310 311 311 register_console(&prom_early_console); 312 312 313 - printk("ARCH: "); 314 313 switch(sparc_cpu_model) { 315 314 case sun4m: 316 - printk("SUN4M\n"); 315 + pr_info("ARCH: SUN4M\n"); 317 316 break; 318 317 case sun4d: 319 - printk("SUN4D\n"); 318 + pr_info("ARCH: SUN4D\n"); 320 319 break; 321 320 case sun4e: 322 - printk("SUN4E\n"); 321 + pr_info("ARCH: SUN4E\n"); 323 322 break; 324 323 case sun4u: 325 - printk("SUN4U\n"); 324 + pr_info("ARCH: SUN4U\n"); 326 325 break; 327 326 case sparc_leon: 328 - printk("LEON\n"); 327 + pr_info("ARCH: LEON\n"); 329 328 break; 330 329 default: 331 - printk("UNKNOWN!\n"); 330 + pr_info("ARCH: UNKNOWN!\n"); 332 331 break; 333 332 } 334 333
+2 -2
arch/sparc/kernel/setup_64.c
··· 642 642 register_console(&prom_early_console); 643 643 644 644 if (tlb_type == hypervisor) 645 - printk("ARCH: SUN4V\n"); 645 + pr_info("ARCH: SUN4V\n"); 646 646 else 647 - printk("ARCH: SUN4U\n"); 647 + pr_info("ARCH: SUN4U\n"); 648 648 649 649 #ifdef CONFIG_DUMMY_CONSOLE 650 650 conswitchp = &dummy_con;
+1 -1
arch/sparc/vdso/Makefile
··· 34 34 CPPFLAGS_vdso.lds += -P -C 35 35 36 36 VDSO_LDFLAGS_vdso.lds = -m elf64_sparc -soname linux-vdso.so.1 --no-undefined \ 37 - -z max-page-size=8192 -z common-page-size=8192 37 + -z max-page-size=8192 38 38 39 39 $(obj)/vdso64.so.dbg: $(obj)/vdso.lds $(vobjs) FORCE 40 40 $(call if_changed,vdso)
+26 -5
drivers/tty/serial/sunsu.c
··· 1394 1394 static enum su_type su_get_type(struct device_node *dp) 1395 1395 { 1396 1396 struct device_node *ap = of_find_node_by_path("/aliases"); 1397 + enum su_type rc = SU_PORT_PORT; 1397 1398 1398 1399 if (ap) { 1399 1400 const char *keyb = of_get_property(ap, "keyboard", NULL); 1400 1401 const char *ms = of_get_property(ap, "mouse", NULL); 1402 + struct device_node *match; 1401 1403 1402 1404 if (keyb) { 1403 - if (dp == of_find_node_by_path(keyb)) 1404 - return SU_PORT_KBD; 1405 + match = of_find_node_by_path(keyb); 1406 + 1407 + /* 1408 + * The pointer is used as an identifier not 1409 + * as a pointer, we can drop the refcount on 1410 + * the of__node immediately after getting it. 1411 + */ 1412 + of_node_put(match); 1413 + 1414 + if (dp == match) { 1415 + rc = SU_PORT_KBD; 1416 + goto out; 1417 + } 1405 1418 } 1406 1419 if (ms) { 1407 - if (dp == of_find_node_by_path(ms)) 1408 - return SU_PORT_MS; 1420 + match = of_find_node_by_path(ms); 1421 + 1422 + of_node_put(match); 1423 + 1424 + if (dp == match) { 1425 + rc = SU_PORT_MS; 1426 + goto out; 1427 + } 1409 1428 } 1410 1429 } 1411 1430 1412 - return SU_PORT_PORT; 1431 + out: 1432 + of_node_put(ap); 1433 + return rc; 1413 1434 } 1414 1435 1415 1436 static int su_probe(struct platform_device *op)