unsigned int            reserve_lp1 :1; /* never has lp1        */
        unsigned int            reserve_lp2 :1; /* never has lp2        */
        unsigned int            soft_reboot :1; /* soft reboot          */
-       void                    (*fixup)(struct machine_desc *,
-                                        struct tag *, char **,
+       void                    (*fixup)(struct tag *, char **,
                                         struct meminfo *);
        void                    (*reserve)(void);/* reserve mem blocks  */
        void                    (*map_io)(void);/* IO mapping function  */
 
        }
 
        if (mdesc->fixup)
-               mdesc->fixup(mdesc, tags, &from, &meminfo);
+               mdesc->fixup(tags, &from, &meminfo);
 
        if (tags->hdr.tag == ATAG_CORE) {
                if (meminfo.nr_banks != 0)
 
 *
 *****************************************************************************/
 
-static void __init bcmring_fixup(struct machine_desc *desc,
-     struct tag *t, char **cmdline, struct meminfo *mi) {
+static void __init bcmring_fixup(struct tag *t, char **cmdline,
+       struct meminfo *mi) {
 #ifdef CONFIG_BLK_DEV_INITRD
        printk(KERN_NOTICE "bcmring_fixup\n");
        t->hdr.tag = ATAG_CORE;
 
 #include "common.h"
 
 static void __init
-fixup_clep7312(struct machine_desc *desc, struct tag *tags,
-           char **cmdline, struct meminfo *mi)
+fixup_clep7312(struct tag *tags, char **cmdline, struct meminfo *mi)
 {
        mi->nr_banks=1;
        mi->bank[0].start = 0xc0000000;
 
 }
 
 static void __init
-fixup_edb7211(struct machine_desc *desc, struct tag *tags,
-             char **cmdline, struct meminfo *mi)
+fixup_edb7211(struct tag *tags, char **cmdline, struct meminfo *mi)
 {
        /*
         * Bank start addresses are not present in the information
 
 #define IMAGE_PARAMS_PHYS      0xC01F0000
 
 static void __init
-fortunet_fixup(struct machine_desc *desc, struct tag *tags,
-                char **cmdline, struct meminfo *mi)
+fortunet_fixup(struct tag *tags, char **cmdline, struct meminfo *mi)
 {
        IMAGE_PARAMS *ip = phys_to_virt(IMAGE_PARAMS_PHYS);
        *cmdline = phys_to_virt(ip->command_line);
 
 };
 
 static void __init
-fixup_p720t(struct machine_desc *desc, struct tag *tag,
-           char **cmdline, struct meminfo *mi)
+fixup_p720t(struct tag *tag, char **cmdline, struct meminfo *mi)
 {
        /*
         * Our bootloader doesn't setup any tags (yet).
 
  * hard reboots fail on early boards.
  */
 static void __init
-fixup_cats(struct machine_desc *desc, struct tag *tags,
-          char **cmdline, struct meminfo *mi)
+fixup_cats(struct tag *tags, char **cmdline, struct meminfo *mi)
 {
        screen_info.orig_video_lines  = 25;
        screen_info.orig_video_points = 16;
 
  * the parameter page.
  */
 static void __init
-fixup_netwinder(struct machine_desc *desc, struct tag *tags,
-               char **cmdline, struct meminfo *mi)
+fixup_netwinder(struct tag *tags, char **cmdline, struct meminfo *mi)
 {
 #ifdef CONFIG_ISAPNP
        extern int isapnp_disable;
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init halibut_fixup(struct machine_desc *desc, struct tag *tags,
-                                char **cmdline, struct meminfo *mi)
+static void __init halibut_fixup(struct tag *tags, char **cmdline,
+                                struct meminfo *mi)
 {
        mi->nr_banks=1;
        mi->bank[0].start = PHYS_OFFSET;
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init mahimahi_fixup(struct machine_desc *desc, struct tag *tags,
-                                char **cmdline, struct meminfo *mi)
+static void __init mahimahi_fixup(struct tag *tags, char **cmdline,
+                                 struct meminfo *mi)
 {
        mi->nr_banks = 2;
        mi->bank[0].start = PHYS_OFFSET;
 
        }
 };
 
-static void __init sapphire_fixup(struct machine_desc *desc, struct tag *tags,
-                                 char **cmdline, struct meminfo *mi)
+static void __init sapphire_fixup(struct tag *tags, char **cmdline,
+                                 struct meminfo *mi)
 {
        int smi_sz = parse_tag_smi((const struct tag *)tags);
 
 
        msm_init_irq();
 }
 
-static void __init trout_fixup(struct machine_desc *desc, struct tag *tags,
-                               char **cmdline, struct meminfo *mi)
+static void __init trout_fixup(struct tag *tags, char **cmdline,
+                              struct meminfo *mi)
 {
        mi->nr_banks = 1;
        mi->bank[0].start = PHYS_OFFSET;
 
  * Many orion-based systems have buggy bootloader implementations.
  * This is a common fixup for bogus memory tags.
  */
-void __init tag_fixup_mem32(struct machine_desc *mdesc, struct tag *t,
-                           char **from, struct meminfo *meminfo)
+void __init tag_fixup_mem32(struct tag *t, char **from,
+                           struct meminfo *meminfo)
 {
        for (; t->hdr.size; t = tag_next(t))
                if (t->hdr.tag == ATAG_MEM &&
 
 struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys);
 int orion5x_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
 
-struct machine_desc;
 struct meminfo;
 struct tag;
-extern void __init tag_fixup_mem32(struct machine_desc *, struct tag *,
-                                  char **, struct meminfo *);
+extern void __init tag_fixup_mem32(struct tag *, char **, struct meminfo *);
 
 
 #endif
 
        cm_x300_init_bl();
 }
 
-static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags,
-                                char **cmdline, struct meminfo *mi)
+static void __init cm_x300_fixup(struct tag *tags, char **cmdline,
+                                struct meminfo *mi)
 {
        /* Make sure that mi->bank[0].start = PHYS_ADDR */
        for (; tags->hdr.size; tags = tag_next(tags))
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init fixup_corgi(struct machine_desc *desc,
-               struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init fixup_corgi(struct tag *tags, char **cmdline,
+                              struct meminfo *mi)
 {
        sharpsl_save_param();
        mi->nr_banks=1;
 
 #include "clock.h"
 
 /* Only e800 has 128MB RAM */
-void __init eseries_fixup(struct machine_desc *desc,
-       struct tag *tags, char **cmdline, struct meminfo *mi)
+void __init eseries_fixup(struct tag *tags, char **cmdline, struct meminfo *mi)
 {
        mi->nr_banks=1;
        mi->bank[0].start = 0xa0000000;
 
-void __init eseries_fixup(struct machine_desc *desc,
-       struct tag *tags, char **cmdline, struct meminfo *mi);
+void __init eseries_fixup(struct tag *tags, char **cmdline, struct meminfo *mi);
 
 extern struct pxa2xx_udc_mach_info e7xx_udc_mach_info;
 extern struct pxaficp_platform_data e7xx_ficp_platform_data;
 
        poodle_init_spi();
 }
 
-static void __init fixup_poodle(struct machine_desc *desc,
-               struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init fixup_poodle(struct tag *tags, char **cmdline,
+                               struct meminfo *mi)
 {
        sharpsl_save_param();
        mi->nr_banks=1;
 
        spitz_i2c_init();
 }
 
-static void __init spitz_fixup(struct machine_desc *desc,
-               struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init spitz_fixup(struct tag *tags, char **cmdline,
+                              struct meminfo *mi)
 {
        sharpsl_save_param();
        mi->nr_banks = 1;
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 }
 
-static void __init fixup_tosa(struct machine_desc *desc,
-               struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init fixup_tosa(struct tag *tags, char **cmdline,
+                             struct meminfo *mi)
 {
        sharpsl_save_param();
        mi->nr_banks=1;
 
 /*
  * Setup the memory banks.
  */
-void realview_fixup(struct machine_desc *mdesc, struct tag *tags, char **from,
-                   struct meminfo *meminfo)
+void realview_fixup(struct tag *tags, char **from, struct meminfo *meminfo)
 {
        /*
         * Most RealView platforms have 512MB contiguous RAM at 0x70000000.
 
 extern int realview_eth_register(const char *name, struct resource *res);
 extern int realview_usb_register(struct resource *res);
 extern void realview_init_early(void);
-extern void realview_fixup(struct machine_desc *mdesc, struct tag *tags,
-                          char **from, struct meminfo *meminfo);
+extern void realview_fixup(struct tag *tags, char **from,
+                          struct meminfo *meminfo);
 extern void (*realview_reset)(char);
 
 #endif
 
        __raw_writel(REALVIEW_PB1176_SYS_SOFT_RESET, reset_ctrl);
 }
 
-static void realview_pb1176_fixup(struct machine_desc *mdesc,
-                                 struct tag *tags, char **from,
+static void realview_pb1176_fixup(struct tag *tags, char **from,
                                  struct meminfo *meminfo)
 {
        /*
 
        .init           = realview_pbx_timer_init,
 };
 
-static void realview_pbx_fixup(struct machine_desc *mdesc, struct tag *tags,
-                              char **from, struct meminfo *meminfo)
+static void realview_pbx_fixup(struct tag *tags, char **from,
+                              struct meminfo *meminfo)
 {
 #ifdef CONFIG_SPARSEMEM
        /*
        meminfo->bank[2].size = SZ_256M;
        meminfo->nr_banks = 3;
 #else
-       realview_fixup(mdesc, tags, from, meminfo);
+       realview_fixup(tags, from, meminfo);
 #endif
 }
 
 
        &s3c_device_usbgadget,
 };
 
-static void __init smdk2413_fixup(struct machine_desc *desc,
-                                 struct tag *tags, char **cmdline,
+static void __init smdk2413_fixup(struct tag *tags, char **cmdline,
                                  struct meminfo *mi)
 {
        if (tags != phys_to_virt(S3C2410_SDRAM_PA + 0x100)) {
 
        &s3c_device_nand,
 };
 
-static void __init vstms_fixup(struct machine_desc *desc,
-                                 struct tag *tags, char **cmdline,
-                                 struct meminfo *mi)
+static void __init vstms_fixup(struct tag *tags, char **cmdline,
+                              struct meminfo *mi)
 {
        if (tags != phys_to_virt(S3C2410_SDRAM_PA + 0x100)) {
                mi->nr_banks=1;
 
 }
 
 static void __init
-fixup_assabet(struct machine_desc *desc, struct tag *tags,
-             char **cmdline, struct meminfo *mi)
+fixup_assabet(struct tag *tags, char **cmdline, struct meminfo *mi)
 {
        /* This must be done before any call to machine_has_neponset() */
        map_sa1100_gpio_regs();
 
        &harmony_audio_device,
 };
 
-static void __init tegra_harmony_fixup(struct machine_desc *desc,
-       struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init tegra_harmony_fixup(struct tag *tags, char **cmdline,
+       struct meminfo *mi)
 {
        mi->nr_banks = 2;
        mi->bank[0].start = PHYS_OFFSET;
 
        platform_device_register(&tegra_ehci3_device);
 }
 
-static void __init tegra_paz00_fixup(struct machine_desc *desc,
-       struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init tegra_paz00_fixup(struct tag *tags, char **cmdline,
+       struct meminfo *mi)
 {
        mi->nr_banks = 1;
        mi->bank[0].start = PHYS_OFFSET;
 
        platform_device_register(&tegra_ehci1_device);
 }
 
-static void __init tegra_trimslice_fixup(struct machine_desc *desc,
-       struct tag *tags, char **cmdline, struct meminfo *mi)
+static void __init tegra_trimslice_fixup(struct tag *tags, char **cmdline,
+       struct meminfo *mi)
 {
        mi->nr_banks = 2;
        mi->bank[0].start = PHYS_OFFSET;