mirror of https://github.com/hak5/openwrt.git
parent
a243108655
commit
e268649a97
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
@ -104,7 +104,7 @@
|
|||
|
||||
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));
|
||||
}
|
||||
|
@ -114,7 +114,7 @@
|
|||
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);
|
||||
|
@ -124,7 +124,7 @@
|
|||
#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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -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();
|
||||
}
|
||||
|
||||
/*
|
|
@ -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
|
Loading…
Reference in New Issue