Skip to content

Commit

Permalink
powerpc: Simplify push_end definition in pci_32.c
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paul Mackerras committed Jun 15, 2006
1 parent bf72aeb commit 0f582bc
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions arch/powerpc/kernel/pci_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 0f582bc

Please sign in to comment.