|
@@ -224,7 +224,8 @@ int __init ibmphp_rsrc_init (void)
|
|
|
if ((curr->rsrc_type & RESTYPE) == MMASK) {
|
|
|
/* no bus structure exists in place yet */
|
|
|
if (list_empty (&gbuses)) {
|
|
|
- if ((rc = alloc_bus_range (&newbus, &newrange, curr, MEM, 1)))
|
|
|
+ rc = alloc_bus_range(&newbus, &newrange, curr, MEM, 1);
|
|
|
+ if (rc)
|
|
|
return rc;
|
|
|
list_add_tail (&newbus->bus_list, &gbuses);
|
|
|
debug ("gbuses = NULL, Memory Primary Bus %x [%x - %x]\n", newbus->busno, newrange->start, newrange->end);
|
|
@@ -237,7 +238,8 @@ int __init ibmphp_rsrc_init (void)
|
|
|
return rc;
|
|
|
} else {
|
|
|
/* went through all the buses and didn't find ours, need to create a new bus node */
|
|
|
- if ((rc = alloc_bus_range (&newbus, &newrange, curr, MEM, 1)))
|
|
|
+ rc = alloc_bus_range(&newbus, &newrange, curr, MEM, 1);
|
|
|
+ if (rc)
|
|
|
return rc;
|
|
|
|
|
|
list_add_tail (&newbus->bus_list, &gbuses);
|
|
@@ -248,7 +250,8 @@ int __init ibmphp_rsrc_init (void)
|
|
|
/* prefetchable memory */
|
|
|
if (list_empty (&gbuses)) {
|
|
|
/* no bus structure exists in place yet */
|
|
|
- if ((rc = alloc_bus_range (&newbus, &newrange, curr, PFMEM, 1)))
|
|
|
+ rc = alloc_bus_range(&newbus, &newrange, curr, PFMEM, 1);
|
|
|
+ if (rc)
|
|
|
return rc;
|
|
|
list_add_tail (&newbus->bus_list, &gbuses);
|
|
|
debug ("gbuses = NULL, PFMemory Primary Bus %x [%x - %x]\n", newbus->busno, newrange->start, newrange->end);
|
|
@@ -261,7 +264,8 @@ int __init ibmphp_rsrc_init (void)
|
|
|
return rc;
|
|
|
} else {
|
|
|
/* went through all the buses and didn't find ours, need to create a new bus node */
|
|
|
- if ((rc = alloc_bus_range (&newbus, &newrange, curr, PFMEM, 1)))
|
|
|
+ rc = alloc_bus_range(&newbus, &newrange, curr, PFMEM, 1);
|
|
|
+ if (rc)
|
|
|
return rc;
|
|
|
list_add_tail (&newbus->bus_list, &gbuses);
|
|
|
debug ("1st Bus, PFMemory Primary Bus %x [%x - %x]\n", newbus->busno, newrange->start, newrange->end);
|
|
@@ -271,7 +275,8 @@ int __init ibmphp_rsrc_init (void)
|
|
|
/* IO */
|
|
|
if (list_empty (&gbuses)) {
|
|
|
/* no bus structure exists in place yet */
|
|
|
- if ((rc = alloc_bus_range (&newbus, &newrange, curr, IO, 1)))
|
|
|
+ rc = alloc_bus_range(&newbus, &newrange, curr, IO, 1);
|
|
|
+ if (rc)
|
|
|
return rc;
|
|
|
list_add_tail (&newbus->bus_list, &gbuses);
|
|
|
debug ("gbuses = NULL, IO Primary Bus %x [%x - %x]\n", newbus->busno, newrange->start, newrange->end);
|
|
@@ -283,7 +288,8 @@ int __init ibmphp_rsrc_init (void)
|
|
|
return rc;
|
|
|
} else {
|
|
|
/* went through all the buses and didn't find ours, need to create a new bus node */
|
|
|
- if ((rc = alloc_bus_range (&newbus, &newrange, curr, IO, 1)))
|
|
|
+ rc = alloc_bus_range(&newbus, &newrange, curr, IO, 1);
|
|
|
+ if (rc)
|
|
|
return rc;
|
|
|
list_add_tail (&newbus->bus_list, &gbuses);
|
|
|
debug ("1st Bus, IO Primary Bus %x [%x - %x]\n", newbus->busno, newrange->start, newrange->end);
|
|
@@ -1153,7 +1159,9 @@ int ibmphp_check_resource (struct resource_node *res, u8 bridge)
|
|
|
}
|
|
|
} else {
|
|
|
/* in the same range */
|
|
|
- if ((len_tmp = res_cur->start - 1 - res_prev->end - 1) >= res->len) {
|
|
|
+ len_tmp = res_cur->start - 1 - res_prev->end - 1;
|
|
|
+
|
|
|
+ if (len_tmp >= res->len) {
|
|
|
if ((len_tmp < len_cur) || (len_cur == 0)) {
|
|
|
if (((res_prev->end + 1) % tmp_divide) == 0) {
|
|
|
/* just perfect, starting address's divisible by length */
|
|
@@ -1212,7 +1220,9 @@ int ibmphp_check_resource (struct resource_node *res, u8 bridge)
|
|
|
break;
|
|
|
}
|
|
|
while (range) {
|
|
|
- if ((len_tmp = range->end - range->start) >= res->len) {
|
|
|
+ len_tmp = range->end - range->start;
|
|
|
+
|
|
|
+ if (len_tmp >= res->len) {
|
|
|
if ((len_tmp < len_cur) || (len_cur == 0)) {
|
|
|
if ((range->start % tmp_divide) == 0) {
|
|
|
/* just perfect, starting address's divisible by length */
|
|
@@ -1276,7 +1286,9 @@ int ibmphp_check_resource (struct resource_node *res, u8 bridge)
|
|
|
break;
|
|
|
}
|
|
|
while (range) {
|
|
|
- if ((len_tmp = range->end - range->start) >= res->len) {
|
|
|
+ len_tmp = range->end - range->start;
|
|
|
+
|
|
|
+ if (len_tmp >= res->len) {
|
|
|
if ((len_tmp < len_cur) || (len_cur == 0)) {
|
|
|
if ((range->start % tmp_divide) == 0) {
|
|
|
/* just perfect, starting address's divisible by length */
|