Release 4.11 arch/x86/kernel/resource.c
#include <linux/ioport.h>
#include <asm/e820.h>
static void resource_clip(struct resource *res, resource_size_t start,
resource_size_t end)
{
resource_size_t low = 0, high = 0;
if (res->end < start || res->start > end)
return; /* no conflict */
if (res->start < start)
low = start - res->start;
if (res->end > end)
high = res->end - end;
/* Keep the area above or below the conflict, whichever is larger */
if (low > high)
res->end = start - 1;
else
res->start = end + 1;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Björn Helgaas | 98 | 100.00% | 1 | 100.00% |
Total | 98 | 100.00% | 1 | 100.00% |
static void remove_e820_regions(struct resource *avail)
{
int i;
struct e820entry *entry;
for (i = 0; i < e820->nr_map; i++) {
entry = &e820->map[i];
resource_clip(avail, entry->addr,
entry->addr + entry->size - 1);
}
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Björn Helgaas | 63 | 96.92% | 1 | 50.00% |
Denys Vlasenko | 2 | 3.08% | 1 | 50.00% |
Total | 65 | 100.00% | 2 | 100.00% |
void arch_remove_reservations(struct resource *avail)
{
/*
* Trim out BIOS area (high 2MB) and E820 regions. We do not remove
* the low 1MB unconditionally, as this area is needed for some ISA
* cards requiring a memory range, e.g. the i82365 PCMCIA controller.
*/
if (avail->flags & IORESOURCE_MEM) {
resource_clip(avail, BIOS_ROM_BASE, BIOS_ROM_END);
remove_e820_regions(avail);
}
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Björn Helgaas | 34 | 97.14% | 3 | 75.00% |
Christoph Schulz | 1 | 2.86% | 1 | 25.00% |
Total | 35 | 100.00% | 4 | 100.00% |
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Björn Helgaas | 201 | 98.53% | 3 | 60.00% |
Denys Vlasenko | 2 | 0.98% | 1 | 20.00% |
Christoph Schulz | 1 | 0.49% | 1 | 20.00% |
Total | 204 | 100.00% | 5 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.