diff options
Diffstat (limited to 'drivers/pci/setup-bus.c')
| -rw-r--r-- | drivers/pci/setup-bus.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 4fd0cacf7ca0..508cc56130e3 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -428,16 +428,19 @@ static void __assign_resources_sorted(struct list_head *head,  		 * consistent.  		 */  		if (add_align > dev_res->res->start) { +			resource_size_t r_size = resource_size(dev_res->res); +  			dev_res->res->start = add_align; -			dev_res->res->end = add_align + -				            resource_size(dev_res->res); +			dev_res->res->end = add_align + r_size - 1;  			list_for_each_entry(dev_res2, head, list) {  				align = pci_resource_alignment(dev_res2->dev,  							       dev_res2->res); -				if (add_align > align) +				if (add_align > align) {  					list_move_tail(&dev_res->list,  						       &dev_res2->list); +					break; +				}  			}                 }  |