===================================================================
@@ -344,9 +344,14 @@ static struct resource *find_free_bus_re
* if there is no child under that, we should release
* and use it. don't need to reset it, pbus_size_* will
* set it again
+ * need to be less 3, otherwise can not write it to
+ * bridge, also need to avoid releasing it from
+ * transparent bus path
*/
- if (!r->child && !release_resource(r))
- return r;
+ if (i < 3 && !r->child) {
+ if (!release_resource(r))
+ return r;
+ }
}
}
return NULL;