Commit 2cfae273 authored by Linus Torvalds's avatar Linus Torvalds

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

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC64]: Update defconfig.
  [SPARC]: Add missing of_node_put
  [SPARC64]: check for possible NULL pointer dereference
  [SPARC]: Add missing "space"
  [SPARC64]: Add missing "space"
  [SPARC64]: Add missing pci_dev_put
  [SYSCTL_CHECK]: Fix typo in KERN_SPARC_SCONS_PWROFF entry string.
  [SPARC64]: Missing mdesc_release() in ldc_init().
parents 97bd7919 9cb1200a
...@@ -62,9 +62,11 @@ static int __cpu_find_by(int (*compare)(int, int, void *), void *compare_arg, ...@@ -62,9 +62,11 @@ static int __cpu_find_by(int (*compare)(int, int, void *), void *compare_arg,
int err = check_cpu_node(dp->node, &cur_inst, int err = check_cpu_node(dp->node, &cur_inst,
compare, compare_arg, compare, compare_arg,
prom_node, mid); prom_node, mid);
if (!err) if (!err) {
of_node_put(dp);
return 0; return 0;
} }
}
return -ENODEV; return -ENODEV;
} }
......
...@@ -329,7 +329,7 @@ int __init pcic_probe(void) ...@@ -329,7 +329,7 @@ int __init pcic_probe(void)
pcic->pcic_res_cfg_addr.name = "pcic_cfg_addr"; pcic->pcic_res_cfg_addr.name = "pcic_cfg_addr";
if ((pcic->pcic_config_space_addr = if ((pcic->pcic_config_space_addr =
ioremap(regs[2].phys_addr, regs[2].reg_size * 2)) == 0) { ioremap(regs[2].phys_addr, regs[2].reg_size * 2)) == 0) {
prom_printf("PCIC: Error, cannot map" prom_printf("PCIC: Error, cannot map "
"PCI Configuration Space Address.\n"); "PCI Configuration Space Address.\n");
prom_halt(); prom_halt();
} }
...@@ -341,7 +341,7 @@ int __init pcic_probe(void) ...@@ -341,7 +341,7 @@ int __init pcic_probe(void)
pcic->pcic_res_cfg_data.name = "pcic_cfg_data"; pcic->pcic_res_cfg_data.name = "pcic_cfg_data";
if ((pcic->pcic_config_space_data = if ((pcic->pcic_config_space_data =
ioremap(regs[3].phys_addr, regs[3].reg_size * 2)) == 0) { ioremap(regs[3].phys_addr, regs[3].reg_size * 2)) == 0) {
prom_printf("PCIC: Error, cannot map" prom_printf("PCIC: Error, cannot map "
"PCI Configuration Space Data.\n"); "PCI Configuration Space Data.\n");
prom_halt(); prom_halt();
} }
...@@ -518,8 +518,8 @@ static void pcic_map_pci_device(struct linux_pcic *pcic, ...@@ -518,8 +518,8 @@ static void pcic_map_pci_device(struct linux_pcic *pcic,
* board in a PCI slot. We must remap it * board in a PCI slot. We must remap it
* under 64K but it is not done yet. XXX * under 64K but it is not done yet. XXX
*/ */
printk("PCIC: Skipping I/O space at 0x%lx," printk("PCIC: Skipping I/O space at 0x%lx, "
"this will Oops if a driver attaches;" "this will Oops if a driver attaches "
"device '%s' at %02x:%02x)\n", address, "device '%s' at %02x:%02x)\n", address,
namebuf, dev->bus->number, dev->devfn); namebuf, dev->bus->number, dev->devfn);
} }
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.24-rc1 # Linux kernel version: 2.6.24-rc4
# Wed Oct 31 15:36:47 2007 # Tue Dec 4 00:37:59 2007
# #
CONFIG_SPARC=y CONFIG_SPARC=y
CONFIG_SPARC64=y CONFIG_SPARC64=y
...@@ -47,6 +47,7 @@ CONFIG_POSIX_MQUEUE=y ...@@ -47,6 +47,7 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set # CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set # CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_AUDIT is not set # CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set # CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_BUF_SHIFT=18
...@@ -154,6 +155,7 @@ CONFIG_PCI_DOMAINS=y ...@@ -154,6 +155,7 @@ CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y CONFIG_PCI_SYSCALL=y
CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y CONFIG_PCI_MSI=y
# CONFIG_PCI_LEGACY is not set
# CONFIG_PCI_DEBUG is not set # CONFIG_PCI_DEBUG is not set
CONFIG_SUN_OPENPROMFS=m CONFIG_SUN_OPENPROMFS=m
CONFIG_SPARC32_COMPAT=y CONFIG_SPARC32_COMPAT=y
...@@ -359,7 +361,6 @@ CONFIG_IDE_GENERIC=y ...@@ -359,7 +361,6 @@ CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_IDEPCI=y CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set # CONFIG_IDEPCI_SHARE_IRQ is not set
CONFIG_IDEPCI_PCIBUS_ORDER=y CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set # CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set # CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y CONFIG_BLK_DEV_IDEDMA_PCI=y
...@@ -584,7 +585,6 @@ CONFIG_NIU=m ...@@ -584,7 +585,6 @@ CONFIG_NIU=m
# CONFIG_USB_KAWETH is not set # CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set # CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set # CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set # CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set # CONFIG_WAN is not set
# CONFIG_FDDI is not set # CONFIG_FDDI is not set
...@@ -780,6 +780,7 @@ CONFIG_HWMON=y ...@@ -780,6 +780,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set # CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set # CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set # CONFIG_SENSORS_F75375S is not set
......
...@@ -155,6 +155,7 @@ void __init isa_init(void) ...@@ -155,6 +155,7 @@ void __init isa_init(void)
isa_br = kzalloc(sizeof(*isa_br), GFP_KERNEL); isa_br = kzalloc(sizeof(*isa_br), GFP_KERNEL);
if (!isa_br) { if (!isa_br) {
printk(KERN_DEBUG "isa: cannot allocate sparc_isa_bridge"); printk(KERN_DEBUG "isa: cannot allocate sparc_isa_bridge");
pci_dev_put(pdev);
return; return;
} }
...@@ -168,6 +169,7 @@ void __init isa_init(void) ...@@ -168,6 +169,7 @@ void __init isa_init(void)
printk(KERN_DEBUG "isa: device registration error for %s!\n", printk(KERN_DEBUG "isa: device registration error for %s!\n",
dp->path_component_name); dp->path_component_name);
kfree(isa_br); kfree(isa_br);
pci_dev_put(pdev);
return; return;
} }
......
...@@ -2338,6 +2338,7 @@ static int __init ldc_init(void) ...@@ -2338,6 +2338,7 @@ static int __init ldc_init(void)
unsigned long major, minor; unsigned long major, minor;
struct mdesc_handle *hp; struct mdesc_handle *hp;
const u64 *v; const u64 *v;
int err;
u64 mp; u64 mp;
hp = mdesc_grab(); hp = mdesc_grab();
...@@ -2345,29 +2346,33 @@ static int __init ldc_init(void) ...@@ -2345,29 +2346,33 @@ static int __init ldc_init(void)
return -ENODEV; return -ENODEV;
mp = mdesc_node_by_name(hp, MDESC_NODE_NULL, "platform"); mp = mdesc_node_by_name(hp, MDESC_NODE_NULL, "platform");
err = -ENODEV;
if (mp == MDESC_NODE_NULL) if (mp == MDESC_NODE_NULL)
return -ENODEV; goto out;
v = mdesc_get_property(hp, mp, "domaining-enabled", NULL); v = mdesc_get_property(hp, mp, "domaining-enabled", NULL);
if (!v) if (!v)
return -ENODEV; goto out;
major = 1; major = 1;
minor = 0; minor = 0;
if (sun4v_hvapi_register(HV_GRP_LDOM, major, &minor)) { if (sun4v_hvapi_register(HV_GRP_LDOM, major, &minor)) {
printk(KERN_INFO PFX "Could not register LDOM hvapi.\n"); printk(KERN_INFO PFX "Could not register LDOM hvapi.\n");
return -ENODEV; goto out;
} }
printk(KERN_INFO "%s", version); printk(KERN_INFO "%s", version);
if (!*v) { if (!*v) {
printk(KERN_INFO PFX "Domaining disabled.\n"); printk(KERN_INFO PFX "Domaining disabled.\n");
return -ENODEV; goto out;
} }
ldom_domaining_enabled = 1; ldom_domaining_enabled = 1;
err = 0;
return 0; out:
mdesc_release(hp);
return err;
} }
core_initcall(ldc_init); core_initcall(ldc_init);
...@@ -1022,6 +1022,10 @@ void __init sun4v_pci_init(struct device_node *dp, char *model_name) ...@@ -1022,6 +1022,10 @@ void __init sun4v_pci_init(struct device_node *dp, char *model_name)
} }
prop = of_find_property(dp, "reg", NULL); prop = of_find_property(dp, "reg", NULL);
if (!prop) {
prom_printf("SUN4V_PCI: Could not find config registers\n");
prom_halt();
}
regs = prop->value; regs = prop->value;
devhandle = (regs->phys_addr >> 32UL) & 0x0fffffff; devhandle = (regs->phys_addr >> 32UL) & 0x0fffffff;
......
...@@ -236,8 +236,9 @@ void smp_synchronize_tick_client(void) ...@@ -236,8 +236,9 @@ void smp_synchronize_tick_client(void)
t[i].rt, t[i].master, t[i].diff, t[i].lat); t[i].rt, t[i].master, t[i].diff, t[i].lat);
#endif #endif
printk(KERN_INFO "CPU %d: synchronized TICK with master CPU (last diff %ld cycles," printk(KERN_INFO "CPU %d: synchronized TICK with master CPU "
"maxerr %lu cycles)\n", smp_processor_id(), delta, rt); "(last diff %ld cycles, maxerr %lu cycles)\n",
smp_processor_id(), delta, rt);
} }
static void smp_start_sync_tick_client(int cpu); static void smp_start_sync_tick_client(int cpu);
......
...@@ -96,7 +96,7 @@ static struct trans_ctl_table trans_kern_table[] = { ...@@ -96,7 +96,7 @@ static struct trans_ctl_table trans_kern_table[] = {
{ KERN_PTY, "pty", trans_pty_table }, { KERN_PTY, "pty", trans_pty_table },
{ KERN_NGROUPS_MAX, "ngroups_max" }, { KERN_NGROUPS_MAX, "ngroups_max" },
{ KERN_SPARC_SCONS_PWROFF, "scons_poweroff" }, { KERN_SPARC_SCONS_PWROFF, "scons-poweroff" },
{ KERN_HZ_TIMER, "hz_timer" }, { KERN_HZ_TIMER, "hz_timer" },
{ KERN_UNKNOWN_NMI_PANIC, "unknown_nmi_panic" }, { KERN_UNKNOWN_NMI_PANIC, "unknown_nmi_panic" },
{ KERN_BOOTLOADER_TYPE, "bootloader_type" }, { KERN_BOOTLOADER_TYPE, "bootloader_type" },
......
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