Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f582bc1 authored by Paul Mackerras's avatar Paul Mackerras
Browse files

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: default avatarPaul Mackerras <paulus@samba.org>
parent bf72aeba
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -1113,8 +1113,9 @@ check_for_io_childs(struct pci_bus *bus, struct resource* res, int *found_vga)
	int	i;
	int	i;
	int	rc = 0;
	int	rc = 0;


#define push_end(res, size) do { unsigned long __sz = (size) ; \
#define push_end(res, mask) do {		\
	res->end = ((res->end + __sz) / (__sz + 1)) * (__sz + 1) + __sz; \
	BUG_ON((mask+1) & mask);		\
	res->end = (res->end + mask) | mask;	\
} while (0)
} while (0)


	list_for_each_entry(dev, &bus->devices, bus_list) {
	list_for_each_entry(dev, &bus->devices, bus_list) {