*/
 #include <linux/config.h>
 #include <linux/module.h>
+#include <linux/moduleloader.h>
 #include <linux/kernel.h>
 #include <linux/elf.h>
 #include <linux/vmalloc.h>
 
 };
 
 static struct vm_region *
-vm_region_alloc(struct vm_region *head, size_t size, int gfp)
+vm_region_alloc(struct vm_region *head, size_t size, unsigned int gfp)
 {
        unsigned long addr = head->vm_start, end = head->vm_end - size;
        unsigned long flags;
 #endif
 
 static void *
-__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, int gfp,
-           pgprot_t prot)
+__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle,
+           unsigned int gfp, pgprot_t prot)
 {
        struct page *page;
        struct vm_region *c;
 
 
 static int pcmcia_probe(struct sa1111_dev *dev)
 {
-       char *base;
+       void __iomem *base;
 
        if (!request_mem_region(dev->res.start, 512,
                                SA1111_DRIVER_NAME(dev)))
 
  * Set of macros to define architecture features.  This is built into
  * a table by the linker.
  */
-#define MACHINE_START(_type,_name)             \
-const struct machine_desc __mach_desc_##_type  \
+#define MACHINE_START(_type,_name)                     \
+static const struct machine_desc __mach_desc_##_type   \
  __attribute__((__section__(".arch.info.init"))) = {   \
-       .nr             = MACH_TYPE_##_type,    \
+       .nr             = MACH_TYPE_##_type,            \
        .name           = _name,
 
 #define MACHINE_END                            \