[PATCH] Compile failure fix for ppc on 2.6.17-rc4-mm3 (2nd attempt)
Mel Gorman
mel at csn.ul.ie
Wed Jun 14 02:49:04 EST 2006
On (09/06/06 19:36), Paul Mackerras didst pronounce:
> Mel Gorman writes:
>
> > + res->end = -(-res->end & ~(unsigned long)mask); \
> > + res->end += mask; \
>
> I think this is equivalent to
>
> res->end = (res->end + mask) | mask;
>
> and I have to say the latter seems more understandable to me (and
> doesn't need a cast) ...
>
Makes sense. The patch on top of the latest -mm is below if you want to push
it. It has not been boot tested as building with the latest -mm is broken
at the moment for older powerpcs because of the git-powerpc.patch patch .
That patch assumes that mm_context_t is a struct with a vdso_base which is
not always the case (it's an unsigned long in include/asm-ppc/mmu.h).
diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.17-rc6-mm2-clean/arch/powerpc/kernel/pci_32.c linux-2.6.17-rc6-mm2-resources/arch/powerpc/kernel/pci_32.c
--- linux-2.6.17-rc6-mm2-clean/arch/powerpc/kernel/pci_32.c 2006-06-13 17:25:39.000000000 +0100
+++ linux-2.6.17-rc6-mm2-resources/arch/powerpc/kernel/pci_32.c 2006-06-13 17:30:20.000000000 +0100
@@ -1121,9 +1121,8 @@ check_for_io_childs(struct pci_bus *bus,
* e.g. res->end of 0x1fff moves to 0x2fff
*/
#define push_end(res, mask) do { \
- BUG_ON(((mask+1) & mask) != 0); \
- res->end = -(-res->end & ~(unsigned long)mask); \
- res->end += mask; \
+ BUG_ON(((mask+1) & mask) != 0); \
+ res->end = (res->end + mask) | mask; \
} while (0)
list_for_each_entry(dev, &bus->devices, bus_list) {
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
More information about the Linuxppc-dev
mailing list