-
- for (j = 0; j < num - 1; j++) {
- int k;
- unsigned long start = rsvd_region[j].start;
- unsigned long end = rsvd_region[j].end;
- int collapsed;
-
- for (k = j + 1; k < num; k++) {
- BUG_ON(start > rsvd_region[k].start);
- if (end < rsvd_region[k].start) {
- k--;
- break;
- }
- end = max(end, rsvd_region[k].end);
- }
- if (k == num)
- k--;
- rsvd_region[j].end = end;
- collapsed = k - j;
- num -= collapsed;
- for (k = j + 1; k < num; k++) {
- rsvd_region[k] = rsvd_region[k + collapsed];
- }
- }
-
- num_rsvd_regions = num;
- for (j = 0; j < num; j++) {
- printk("rsvd_region[%d]: [0x%016lx, 0x%06lx)\n",
- j, rsvd_region[j].start, rsvd_region[j].end);
- }