|
@@ -2589,9 +2589,16 @@ static void __init probe_uninorth(void)
|
|
|
if (address == 0)
|
|
|
return;
|
|
|
uninorth_base = ioremap(address, 0x40000);
|
|
|
+ if (uninorth_base == NULL)
|
|
|
+ return;
|
|
|
uninorth_rev = in_be32(UN_REG(UNI_N_VERSION));
|
|
|
- if (uninorth_maj == 3 || uninorth_maj == 4)
|
|
|
+ if (uninorth_maj == 3 || uninorth_maj == 4) {
|
|
|
u3_ht_base = ioremap(address + U3_HT_CONFIG_BASE, 0x1000);
|
|
|
+ if (u3_ht_base == NULL) {
|
|
|
+ iounmap(uninorth_base);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
printk(KERN_INFO "Found %s memory controller & host bridge"
|
|
|
" @ 0x%08x revision: 0x%02x\n", uninorth_maj == 3 ? "U3" :
|