powerpc: Simplify push_end definition in pci_32.c
The push_end macro in arch/powerpc/kernel/pci_32.c uses integer division and multiplication to achieve the effect of rounding a resource end address up and then advancing it to the end of a power-of-2 sized region. This changes it to an equivalent computation that only needs an integer add and OR. This is partly based on an earlier patch by Mel Gorman. Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
bf72aeba2f
commit
0f582bc1f2
|
@ -1113,9 +1113,10 @@ check_for_io_childs(struct pci_bus *bus, struct resource* res, int *found_vga)
|
|||
int i;
|
||||
int rc = 0;
|
||||
|
||||
#define push_end(res, size) do { unsigned long __sz = (size) ; \
|
||||
res->end = ((res->end + __sz) / (__sz + 1)) * (__sz + 1) + __sz; \
|
||||
} while (0)
|
||||
#define push_end(res, mask) do { \
|
||||
BUG_ON((mask+1) & mask); \
|
||||
res->end = (res->end + mask) | mask; \
|
||||
} while (0)
|
||||
|
||||
list_for_each_entry(dev, &bus->devices, bus_list) {
|
||||
u16 class = dev->class >> 8;
|
||||
|
|
Loading…
Reference in New Issue