prepare kernel 2.6.32 support
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 13 Feb 2010 00:37:11 +0000 (00:37 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 13 Feb 2010 00:37:11 +0000 (00:37 +0000)
SVN-Revision: 19617

target/linux/generic-2.6/config-2.6.32
target/linux/generic-2.6/patches-2.6.32/221-binfmt_elf_gcc4.1.patch
target/linux/generic-2.6/patches-2.6.32/240-packet_socket_type.patch
target/linux/generic-2.6/patches-2.6.32/980-vm_exports.patch
target/linux/generic-2.6/patches-2.6.32/999-use_preinit_as_init.patch
target/linux/x86/config-2.6.32 [new file with mode: 0644]
target/linux/x86/patches-2.6.32/300-block2mtd_init.patch [new file with mode: 0644]
target/linux/x86/xen_domu/config-2.6.32 [new file with mode: 0644]

index 0493d7602191123a42ba985a3b0ef49a1e7b7340..42666817beca2c99d187e15eec55c07a8f82d5cb 100644 (file)
@@ -542,15 +542,18 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 # CONFIG_FB_GEODE is not set
 # CONFIG_FB_GOLDFISH is not set
+# CONFIG_FB_HGA is not set
 # CONFIG_FB_IBM_GXT4500 is not set
 # CONFIG_FB_IMSTT is not set
 # CONFIG_FB is not set
 # CONFIG_FB_KYRO is not set
+# CONFIG_FB_LE80578 is not set
 # CONFIG_FB_MACMODES is not set
 # CONFIG_FB_MATROX is not set
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_N411 is not set
 # CONFIG_FB_NEOMAGIC is not set
 # CONFIG_FB_NVIDIA is not set
 # CONFIG_FB_OF is not set
@@ -590,6 +593,7 @@ CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
 # CONFIG_FORCEDETH is not set
 CONFIG_FRAME_WARN=1024
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
 # CONFIG_FREEZER is not set
 # CONFIG_FSCACHE is not set
 CONFIG_FSNOTIFY=y
@@ -1114,6 +1118,7 @@ CONFIG_LOCKD_V4=y
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_LOGIRUMBLEPAD2_FF is not set
 # CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGO is not set
 # CONFIG_LSF is not set
 # CONFIG_LSI_ET1011C_PHY is not set
 # CONFIG_LXT_PHY is not set
index fa891e0f3dbc955a9027824f9a667984e09448f2..64f28d80ff000f671f8bf5de984daad35c530d90 100644 (file)
@@ -1,6 +1,6 @@
 --- a/fs/binfmt_elf.c
 +++ b/fs/binfmt_elf.c
-@@ -1193,7 +1193,7 @@ static unsigned long vma_dump_size(struc
+@@ -1170,7 +1170,7 @@
        if (FILTER(ELF_HEADERS) &&
            vma->vm_pgoff == 0 && (vma->vm_flags & VM_READ)) {
                u32 __user *header = (u32 __user *) vma->vm_start;
index 71827643e692b82b97ace3a5209adb36028ee1ea..a03d699575f50ec7905d3b0df38183916b97ddd7 100644 (file)
@@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
 
 --- a/include/linux/if_packet.h
 +++ b/include/linux/if_packet.h
-@@ -31,6 +31,8 @@ struct sockaddr_ll
+@@ -31,6 +31,8 @@
  /* These ones are invisible by user level */
  #define PACKET_LOOPBACK               5               /* MC/BRD frame looped back */
  #define PACKET_FASTROUTE      6               /* Fastrouted frame     */
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
  /* Packet socket options */
  
-@@ -48,6 +50,7 @@ struct sockaddr_ll
+@@ -48,6 +50,7 @@
  #define PACKET_RESERVE                        12
  #define PACKET_TX_RING                        13
  #define PACKET_LOSS                   14
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  {
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -204,6 +204,7 @@ struct packet_sock {
+@@ -204,6 +204,7 @@
        unsigned int            tp_reserve;
        unsigned int            tp_loss:1;
  #endif
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  };
  
  struct packet_skb_cb {
-@@ -342,6 +343,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -342,6 +343,7 @@
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        /*
         *      When we registered the protocol we saved the socket in the data
-@@ -349,6 +351,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -349,6 +351,7 @@
         */
  
        sk = pt->af_packet_priv;
@@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        /*
         *      Yank back the headers [hope the device set this
-@@ -361,7 +364,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -361,7 +364,7 @@
         *      so that this procedure is noop.
         */
  
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
                goto out;
  
        if (dev_net(dev) != sock_net(sk))
-@@ -545,12 +548,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -545,12 +548,12 @@
        int skb_len = skb->len;
        unsigned int snaplen, res;
  
@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (dev_net(dev) != sock_net(sk))
                goto drop;
  
-@@ -667,12 +670,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -667,12 +670,12 @@
        struct timeval tv;
        struct timespec ts;
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (dev_net(dev) != sock_net(sk))
                goto drop;
  
-@@ -1381,6 +1384,7 @@ static int packet_create(struct net *net
+@@ -1390,6 +1393,7 @@
        spin_lock_init(&po->bind_lock);
        mutex_init(&po->pg_vec_lock);
        po->prot_hook.func = packet_rcv;
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -1728,6 +1732,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -1737,6 +1741,16 @@
                        ret = packet_mc_drop(sk, &mreq);
                return ret;
        }
@@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
  #ifdef CONFIG_PACKET_MMAP
        case PACKET_RX_RING:
-@@ -1873,6 +1887,13 @@ static int packet_getsockopt(struct sock
+@@ -1882,6 +1896,13 @@
  
                data = &val;
                break;
index 1c60dbc50492dd98aecbcc0e9cd491f3224f1be2..ca70efe0ee31c5f15bd709d2305996be9dec683b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/mm/shmem.c
 +++ b/mm/shmem.c
-@@ -2608,6 +2608,16 @@ int shmem_lock(struct file *file, int lo
+@@ -2608,6 +2608,16 @@
  
  /* common code */
  
@@ -17,7 +17,7 @@
  /**
   * shmem_file_setup - get an unlinked file living in tmpfs
   * @name: name for dentry (to be seen in /proc/<pid>/maps
-@@ -2687,9 +2697,6 @@ int shmem_zero_setup(struct vm_area_stru
+@@ -2687,9 +2697,6 @@
        if (IS_ERR(file))
                return PTR_ERR(file);
  
@@ -30,7 +30,7 @@
  }
 --- a/fs/file.c
 +++ b/fs/file.c
-@@ -271,6 +271,7 @@ int expand_files(struct files_struct *fi
+@@ -271,6 +271,7 @@
        /* All good, so we try */
        return expand_fdtable(files, nr);
  }
@@ -40,7 +40,7 @@
  {
 --- a/kernel/exit.c
 +++ b/kernel/exit.c
-@@ -507,6 +507,7 @@ struct files_struct *get_files_struct(st
+@@ -507,6 +507,7 @@
  
        return files;
  }
@@ -48,7 +48,7 @@
  
  void put_files_struct(struct files_struct *files)
  {
-@@ -526,6 +527,7 @@ void put_files_struct(struct files_struc
+@@ -526,6 +527,7 @@
                free_fdtable(fdt);
        }
  }
@@ -58,7 +58,7 @@
  {
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -168,6 +168,7 @@ void __put_task_struct(struct task_struc
+@@ -168,6 +168,7 @@
        if (!profile_handoff_task(tsk))
                free_task(tsk);
  }
@@ -68,7 +68,7 @@
   * macro override instead of weak attribute alias, to workaround
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
-@@ -6093,6 +6093,7 @@ int can_nice(const struct task_struct *p
+@@ -6093,6 +6093,7 @@
        return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur ||
                capable(CAP_SYS_NICE));
  }
@@ -78,7 +78,7 @@
  
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -1100,6 +1100,7 @@ unsigned long zap_page_range(struct vm_a
+@@ -1100,6 +1100,7 @@
                tlb_finish_mmu(tlb, address, end);
        return end;
  }
@@ -86,7 +86,7 @@
  
  /**
   * zap_vma_ptes - remove ptes mapping the vma
-@@ -2486,6 +2487,7 @@ int vmtruncate_range(struct inode *inode
+@@ -2486,6 +2487,7 @@
  
        return 0;
  }
@@ -96,7 +96,7 @@
   * We enter with non-exclusive mmap_sem (to exclude vma changes,
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -1111,6 +1111,7 @@ void unmap_kernel_range(unsigned long ad
+@@ -1172,6 +1172,7 @@
        vunmap_page_range(addr, end);
        flush_tlb_kernel_range(addr, end);
  }
  
  int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page ***pages)
  {
-@@ -1226,6 +1227,7 @@ struct vm_struct *get_vm_area(unsigned l
+@@ -1287,6 +1288,7 @@
        return __get_vm_area_node(size, 1, flags, VMALLOC_START, VMALLOC_END,
                                -1, GFP_KERNEL, __builtin_return_address(0));
  }
                                void *caller)
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
-@@ -713,6 +713,7 @@ extern void show_free_areas(void);
+@@ -713,6 +713,7 @@
  
  int shmem_lock(struct file *file, int lock, struct user_struct *user);
  struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags);
  #ifndef CONFIG_MMU
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
-@@ -1070,6 +1070,7 @@ struct sighand_struct *lock_task_sighand
+@@ -1070,6 +1070,7 @@
  
        return sighand;
  }
index 0a52a87e83ca0835696da255dd89201b4099194b..33943fe2d7bda9ac9a3fbb4b44bc5d1bbc6db484 100644 (file)
@@ -1,6 +1,6 @@
 --- a/init/main.c
 +++ b/init/main.c
-@@ -836,10 +836,7 @@ static noinline int init_post(void)
+@@ -836,10 +836,7 @@
                printk(KERN_WARNING "Failed to execute %s.  Attempting "
                                        "defaults...\n", execute_command);
        }
diff --git a/target/linux/x86/config-2.6.32 b/target/linux/x86/config-2.6.32
new file mode 100644 (file)
index 0000000..398c066
--- /dev/null
@@ -0,0 +1,459 @@
+# CONFIG_3C515 is not set
+# CONFIG_60XX_WDT is not set
+# CONFIG_64BIT is not set
+# CONFIG_AC3200 is not set
+# CONFIG_ACPI_AC is not set
+# CONFIG_ACPI_ASUS is not set
+# CONFIG_ACPI_BATTERY is not set
+# CONFIG_ACPI_BUTTON is not set
+# CONFIG_ACPI_CONTAINER is not set
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_DOCK is not set
+# CONFIG_ACPI_FAN is not set
+# CONFIG_ACPI_PCI_SLOT is not set
+# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
+# CONFIG_ACPI_PROCFS is not set
+# CONFIG_ACPI_PROCFS_POWER is not set
+# CONFIG_ACPI_PROC_EVENT is not set
+# CONFIG_ACPI_SBS is not set
+# CONFIG_ACPI_TOSHIBA is not set
+# CONFIG_ACPI_WMI is not set
+# CONFIG_ACQUIRE_WDT is not set
+# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ALIM1535_WDT is not set
+# CONFIG_APRICOT is not set
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ASUS_LAPTOP is not set
+# CONFIG_AT1700 is not set
+# CONFIG_AUDIT_ARCH is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_CPU5_WDT is not set
+# CONFIG_CPU_FREQ_DEBUG is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
+# CONFIG_CS5535_GPIO is not set
+# CONFIG_CS89x0 is not set
+# CONFIG_DCDBAS is not set
+# CONFIG_DELL_RBU is not set
+# CONFIG_DEPCA is not set
+# CONFIG_DMAR is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMIID is not set
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_EDD is not set
+# CONFIG_EFI is not set
+# CONFIG_EISA is not set
+# CONFIG_EL1 is not set
+# CONFIG_EL16 is not set
+# CONFIG_EL2 is not set
+# CONFIG_EL3 is not set
+# CONFIG_ELPLUS is not set
+# CONFIG_EUROTECH_WDT is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_GENERIC_CPU is not set
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+# CONFIG_HANGCHECK_TIMER is not set
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+# CONFIG_HIBERNATION is not set
+# CONFIG_HIGHMEM4G is not set
+# CONFIG_HIGHMEM64G is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+# CONFIG_HPET_TIMER is not set
+# CONFIG_HP_WATCHDOG is not set
+# CONFIG_HUGETLBFS is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_I8K is not set
+# CONFIG_IB700_WDT is not set
+# CONFIG_IBMASR is not set
+# CONFIG_IMA is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INTEL_MENLOW is not set
+# CONFIG_IOMMU_API is not set
+# CONFIG_IOMMU_HELPER is not set
+# CONFIG_IOMMU_STRESS is not set
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_NONE is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_ISCSI_IBFT_FIND is not set
+# CONFIG_IT8712F_WDT is not set
+# CONFIG_IT87_WDT is not set
+# CONFIG_ITCO_WDT is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_LANCE is not set
+# CONFIG_LEDS_ALIX2 is not set
+# CONFIG_LEDS_CLEVO_MAIL is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M686 is not set
+# CONFIG_MACHZ_WDT is not set
+# CONFIG_MATOM is not set
+# CONFIG_MCA is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MDA_CONSOLE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MICROCODE_AMD is not set
+# CONFIG_MIXCOMWD is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPSC is not set
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTRR_SANITIZER is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_NET_NS is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NSC_GPIO is not set
+# CONFIG_OLPC is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_PARAVIRT_GUEST is not set
+# CONFIG_PC8736x_GPIO is not set
+# CONFIG_PC87413_WDT is not set
+# CONFIG_PCIEPORTBUS is not set
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GOOLPC is not set
+# CONFIG_PCWATCHDOG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_PM_DEBUG is not set
+# CONFIG_PM_RUNTIME is not set
+# CONFIG_PNPBIOS is not set
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PROCESSOR_SELECT is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_RELOCATABLE is not set
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+# CONFIG_SBC7240_WDT is not set
+# CONFIG_SBC8360_WDT is not set
+# CONFIG_SBC_EPX_C3_WATCHDOG is not set
+# CONFIG_SC1200_WDT is not set
+# CONFIG_SC520_WDT is not set
+# CONFIG_SCHED_HRTICK is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCx200_GPIO is not set
+# CONFIG_SCx200_WDT is not set
+# CONFIG_SERIAL_8250_EXTENDED is not set
+# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PCIPS2 is not set
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SLAB is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_SMSC37B787_WDT is not set
+# CONFIG_SMSC_SCH311X_WDT is not set
+# CONFIG_SPARSE_IRQ is not set
+# CONFIG_SUSPEND is not set
+# CONFIG_TC1100_WMI is not set
+# CONFIG_TELCLOCK is not set
+# CONFIG_THINKPAD_ACPI is not set
+# CONFIG_TOPSTAR_LAPTOP is not set
+# CONFIG_TOSHIBA is not set
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_TYPHOON is not set
+# CONFIG_USER_NS is not set
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_VORTEX is not set
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_W83697UG_WDT is not set
+# CONFIG_WAFER_WDT is not set
+# CONFIG_WDT is not set
+# CONFIG_X86_64 is not set
+# CONFIG_X86_ACPI_CPUFREQ is not set
+# CONFIG_X86_ANCIENT_MCE is not set
+# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+# CONFIG_X86_CMPXCHG is not set
+# CONFIG_X86_CPUFREQ_NFORCE2 is not set
+# CONFIG_X86_CPUID is not set
+# CONFIG_X86_ELAN is not set
+# CONFIG_X86_E_POWERSAVER is not set
+# CONFIG_X86_GX_SUSPMOD is not set
+# CONFIG_X86_LONGHAUL is not set
+# CONFIG_X86_LONGRUN is not set
+# CONFIG_X86_MCE_INJECT is not set
+# CONFIG_X86_MRST is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_P4_CLOCKMOD is not set
+# CONFIG_X86_PAE is not set
+# CONFIG_X86_POWERNOW_K6 is not set
+# CONFIG_X86_POWERNOW_K7 is not set
+# CONFIG_X86_POWERNOW_K8 is not set
+# CONFIG_X86_RDC321X is not set
+# CONFIG_X86_REBOOTFIXUPS is not set
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+# CONFIG_X86_SPEEDSTEP_ICH is not set
+# CONFIG_X86_SPEEDSTEP_LIB is not set
+# CONFIG_X86_SPEEDSTEP_SMI is not set
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_4KSTACKS=y
+CONFIG_ACPI=y
+CONFIG_ACPI_BLACKLIST_YEAR=0
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_THERMAL=y
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_ATA=y
+CONFIG_ATA_GENERIC=y
+CONFIG_ATA_PIIX=y
+CONFIG_BINFMT_MISC=y
+CONFIG_BITREVERSE=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BOUNCE=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=0
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_COMPAT_VDSO=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+CONFIG_DEVPORT=y
+CONFIG_DMI=y
+CONFIG_DNOTIFY=y
+CONFIG_DOUBLEFAULT=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_ELF_CORE=y
+CONFIG_EXT2_FS=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAVE_AOUT=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_HID=y
+CONFIG_HID_SUPPORT=y
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HT_IRQ=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_GEODE=y
+CONFIG_HW_RANDOM_VIA=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INPUT=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_IO_DELAY_0X80=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_ISA=y
+CONFIG_ISAPNP=y
+CONFIG_ISA_DMA_API=y
+CONFIG_KALLSYMS=y
+CONFIG_KEXEC=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_M386=y
+CONFIG_MATH_EMULATION=y
+CONFIG_MICROCODE=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MTD_BLOCK2MTD=y
+CONFIG_MTRR=y
+CONFIG_NAMESPACES=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NOHIGHMEM=y
+CONFIG_NR_CPUS=1
+CONFIG_NVRAM=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PATA_AMD=y
+CONFIG_PATA_MPIIX=y
+CONFIG_PATA_OLDPIIX=y
+CONFIG_PATA_SC1200=y
+CONFIG_PATA_VIA=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_PM=y
+CONFIG_PNP=y
+CONFIG_PNPACPI=y
+CONFIG_PNP_DEBUG_MESSAGES=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RTC=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_SCSI=y
+CONFIG_SCx200=y
+CONFIG_SCx200HR_TIMER=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SLUB=y
+CONFIG_SLUB_DEBUG=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_THERMAL=y
+CONFIG_TREE_RCU=y
+CONFIG_UID16=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_VGA_CONSOLE=y
+CONFIG_VM86=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_X86=y
+CONFIG_X86_32=y
+CONFIG_X86_32_LAZY_GS=y
+CONFIG_X86_CPU=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_F00F_BUG=y
+CONFIG_X86_GENERIC=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_L1_CACHE_SHIFT=4
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_THRESHOLD=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=3
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_PAT=y
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_X86_PPRO_FENCE=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_X86_UP_APIC=y
+CONFIG_X86_UP_IOAPIC=y
+CONFIG_X86_VERBOSE_BOOTUP=y
diff --git a/target/linux/x86/patches-2.6.32/300-block2mtd_init.patch b/target/linux/x86/patches-2.6.32/300-block2mtd_init.patch
new file mode 100644 (file)
index 0000000..1ac85a3
--- /dev/null
@@ -0,0 +1,213 @@
+--- a/drivers/mtd/devices/block2mtd.c
++++ b/drivers/mtd/devices/block2mtd.c
+@@ -18,10 +18,18 @@
+ #include <linux/buffer_head.h>
+ #include <linux/mutex.h>
+ #include <linux/mount.h>
++#include <linux/list.h>
++#include <linux/delay.h>
+ #define ERROR(fmt, args...) printk(KERN_ERR "block2mtd: " fmt "\n" , ## args)
+ #define INFO(fmt, args...) printk(KERN_INFO "block2mtd: " fmt "\n" , ## args)
++struct retry {
++    struct list_head list;
++    const char *val;
++};
++
++static LIST_HEAD(retry_list);
+ /* Info for the block device */
+ struct block2mtd_dev {
+@@ -33,10 +41,34 @@
+       char devname[0];
+ };
++static int block2mtd_setup2(const char *val);
+ /* Static info about the MTD, used in cleanup_module */
+ static LIST_HEAD(blkmtd_device_list);
++static int add_retry(const char *val) {
++    struct retry *r = kmalloc(sizeof(struct retry), GFP_KERNEL);
++
++    INIT_LIST_HEAD(&r->list);
++    r->val = val;
++    list_add(&r->list, &retry_list);
++
++    return 0;
++}
++
++static int __init process_retries(void) {
++    struct list_head *p, *tmp;
++
++    list_for_each_safe(p, tmp, &retry_list) {
++        struct retry *r = list_entry(p, struct retry, list);
++        block2mtd_setup2(r->val);
++        msleep(100);
++        list_del(p);
++        kfree(r);
++    }
++    return 0;
++}
++rootfs_initcall(process_retries);
+ static struct page *page_read(struct address_space *mapping, int index)
+ {
+@@ -511,7 +543,9 @@
+       if (token[2] && (strlen(token[2]) + 1 > 80))
+               parse_err("mtd device name too long");
+-      add_device(name, erase_size, token[2]);
++      if (add_device(name, erase_size, token[2]) == NULL) {
++        add_retry(val);
++    }   
+       return 0;
+ }
+--- a/include/asm-generic/vmlinux.lds.h
++++ b/include/asm-generic/vmlinux.lds.h
+@@ -614,17 +614,24 @@
+       *(.initcall4s.init)                                             \
+       *(.initcall5.init)                                              \
+       *(.initcall5s.init)                                             \
+-      *(.initcallrootfs.init)                                         \
+       *(.initcall6.init)                                              \
+       *(.initcall6s.init)                                             \
+       *(.initcall7.init)                                              \
+       *(.initcall7s.init)
++#define INITCALLS_ROOT                                                        \
++      *(.initcallrootfs.init)
++
+ #define INIT_CALLS                                                    \
+               VMLINUX_SYMBOL(__initcall_start) = .;                   \
+               INITCALLS                                               \
+               VMLINUX_SYMBOL(__initcall_end) = .;
++#define INIT_CALLS_ROOT                                               \
++              VMLINUX_SYMBOL(__root_initcall_start) = .;              \
++              INITCALLS_ROOT                                          \
++              VMLINUX_SYMBOL(__root_initcall_end) = .;
++
+ #define CON_INITCALL                                                  \
+               VMLINUX_SYMBOL(__con_initcall_start) = .;               \
+               *(.con_initcall.init)                                   \
+@@ -766,6 +773,7 @@
+               INIT_DATA                                               \
+               INIT_SETUP(initsetup_align)                             \
+               INIT_CALLS                                              \
++              INIT_CALLS_ROOT                                         \
+               CON_INITCALL                                            \
+               SECURITY_INITCALL                                       \
+               INIT_RAM_FS                                             \
+--- a/init/do_mounts.c
++++ b/init/do_mounts.c
+@@ -176,16 +176,8 @@
+       return 1;
+ }
+-static unsigned int __initdata root_delay;
+-static int __init root_delay_setup(char *str)
+-{
+-      root_delay = simple_strtoul(str, NULL, 0);
+-      return 1;
+-}
+-
+ __setup("rootflags=", root_data_setup);
+ __setup("rootfstype=", fs_names_setup);
+-__setup("rootdelay=", root_delay_setup);
+ static void __init get_fs_names(char *page)
+ {
+@@ -366,23 +358,6 @@
+ {
+       int is_floppy;
+-      if (root_delay) {
+-              printk(KERN_INFO "Waiting %dsec before mounting root device...\n",
+-                     root_delay);
+-              ssleep(root_delay);
+-      }
+-
+-      /*
+-       * wait for the known devices to complete their probing
+-       *
+-       * Note: this is a potential source of long boot delays.
+-       * For example, it is not atypical to wait 5 seconds here
+-       * for the touchpad of a laptop to initialize.
+-       */
+-      wait_for_device_probe();
+-
+-      md_run_setup();
+-
+       if (saved_root_name[0]) {
+               root_device_name = saved_root_name;
+               if (!strncmp(root_device_name, "mtd", 3) ||
+--- a/init/main.c
++++ b/init/main.c
+@@ -80,6 +80,7 @@
+ #ifdef CONFIG_X86_LOCAL_APIC
+ #include <asm/smp.h>
+ #endif
++#include "do_mounts.h"
+ static int kernel_init(void *);
+@@ -752,12 +753,13 @@
+ extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];
++extern initcall_t __root_initcall_start[], __root_initcall_end[];
+-static void __init do_initcalls(void)
++static void __init do_initcalls(initcall_t *start, initcall_t *end)
+ {
+       initcall_t *call;
+-      for (call = __early_initcall_end; call < __initcall_end; call++)
++      for (call = start; call < end; call++)
+               do_one_initcall(*call);
+       /* Make sure there is no pending stuff from the initcall sequence */
+@@ -780,7 +782,7 @@
+       driver_init();
+       init_irq_proc();
+       do_ctors();
+-      do_initcalls();
++      do_initcalls(__early_initcall_end, __initcall_end);
+ }
+ static void __init do_pre_smp_initcalls(void)
+@@ -841,6 +843,13 @@
+       panic("No init found.  Try passing init= option to kernel.");
+ }
++static unsigned int __initdata root_delay;
++static int __init root_delay_setup(char *str)
++{
++    root_delay = simple_strtoul(str, NULL, 0);
++    return 1;
++}
++__setup("rootdelay=", root_delay_setup);
+ static int __init kernel_init(void * unused)
+ {
+       lock_kernel();
+@@ -885,7 +894,16 @@
+       if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
+               ramdisk_execute_command = NULL;
+-              prepare_namespace();
++              if (root_delay) {
++            printk(KERN_INFO "Waiting %desc before mounting root device...\n", 
++                root_delay);
++            ssleep(root_delay);
++        }
++        while (driver_probe_done() != 0)
++            msleep(100);
++        do_initcalls(__root_initcall_start, __root_initcall_end);
++        md_run_setup();
++        prepare_namespace();
+       }
+       /*
diff --git a/target/linux/x86/xen_domu/config-2.6.32 b/target/linux/x86/xen_domu/config-2.6.32
new file mode 100644 (file)
index 0000000..322d572
--- /dev/null
@@ -0,0 +1,74 @@
+# CONFIG_APM is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KVM_CLOCK is not set
+# CONFIG_KVM_GUEST is not set
+# CONFIG_LGUEST_GUEST is not set
+# CONFIG_M386 is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_PERF_EVENTS is not set
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+# CONFIG_SCHED_SMT is not set
+# CONFIG_VMI is not set
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_DS is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+# CONFIG_X86_PLATFORM_DEVICES is not set
+# CONFIG_XENFS is not set
+# CONFIG_XEN_DEBUG_FS is not set
+# CONFIG_XEN_DEV_EVTCHN is not set
+# CONFIG_XEN_NETDEV_FRONTEND is not set
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_FREEZER=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_HPET_TIMER=y
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_KERNEL_GZIP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_MPENTIUM4=y
+CONFIG_NR_CPUS=2
+CONFIG_PARAVIRT=y
+CONFIG_PARAVIRT_CLOCK=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_SCHED_MC=y
+CONFIG_SMP=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_STOP_MACHINE=y
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_X86_HT=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_PAE=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_X86_TSC=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_XADD=y
+CONFIG_XEN=y
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=8
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_SYS_HYPERVISOR=y