Skip to content
  • Yinghai Lu's avatar
    IO resources: add reserve_region_with_split() · 268364a0
    Yinghai Lu authored
    
    
    add reserve_region_with_split() to not lose e820 reserved entries if
    they overlap with existing IO regions:
    
    with test case by extend 0xe0000000 - 0xeffffff to 0xdd800000 -
    we get:
    	e0000000-efffffff : PCI MMCONFIG 0
    		 e0000000-efffffff : reserved
    
    and in /proc/iomem we get:
    	found conflict for reserved [dd800000, efffffff], try to reserve with split
    	    __reserve_region_with_split: (PCI Bus #80) [dd000000, ddffffff], res: (reserved) [dd800000, efffffff]
    	    __reserve_region_with_split: (PCI Bus #00) [de000000, dfffffff], res: (reserved) [de000000, efffffff]
    	initcall pci_subsys_init+0x0/0x121 returned 0 after 381 msecs
    in dmesg
    
    various fixes and improvements suggested by Linus.
    
    Signed-off-by: default avatarYinghai Lu <yhlu.kernel@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    268364a0