Messages in this thread Patches in this message | | | Date | Sun, 1 Aug 1999 17:17:26 +0200 | From | Petr Vandrovec <> | Subject | 2.3.13-pre1 patches |
| |
Hi Linus, hi others, I was left this week in the country with small 486SX/25 notebook with 8MB of RAM and with sources of 2.3.11... (it takes about 4 hours to compile my config of 2.3.11 under 2.2.10). There was couple of problems, of which these three are still unfixed in 2.3.11-pre1 (most amazing was (already fixed) missing cpu_init() in SMP kernel without SMP hardware; next one was missing page_unlock in vmscan - is there anybody who knows why it is not possible to print stacktrace through sysrq key in standard kernel?):
(1) in 2.3.11, there was missing cpu_init() in code path invoked on SMP kernel without SMP hardware. This is now fixed, but there is still missing smp_num_cpus = 1; in this codepath :-( Kernel works fine without this (:-)), but libproc complains about inability to determine HZ and top coredumps because of divide zero (divide by number of cpus when computing utilization) (2) because of compilation take 4 hrs on that hardware, and only thing it did was Starting init... reboot..., I tried to build minimal working kernel (with PF_UNIX, but without SYSCTL). I found two sysctl symbols unconditionaly exported from netsyms.c (3) fs/ncpfs/dir.c is (still) missing NULL pointer test
Except that, 'optically' is 2.2.10 on that hardware much faster than 2.3.11, but if I left it alone to recompile kernel, compile time of same configuration take 4 hrs under 2.2.10, but (less than) 3 hrs under 2.3.11. Excellent work. Best regards, Petr Vandrovec vandrove@vc.cvut.cz
diff -urdN linux/arch/i386/kernel/smp.c linux/arch/i386/kernel/smp.c --- linux/arch/i386/kernel/smp.c Sun Aug 1 16:22:13 1999 +++ linux/arch/i386/kernel/smp.c Sun Aug 1 16:35:42 1999 @@ -1228,6 +1228,7 @@ io_apic_irqs = 0; #endif cpu_online_map = cpu_present_map; + smp_num_cpus = 1; goto smp_done; } diff -urdN linux/net/netsyms.c linux/net/netsyms.c --- linux/net/netsyms.c Tue Jul 6 05:35:18 1999 +++ linux/net/netsyms.c Sun Aug 1 16:24:19 1999 @@ -46,8 +46,10 @@ #include <linux/igmp.h> extern struct net_proto_family inet_family_ops; +#ifdef CONFIG_SYSCTL extern __u32 sysctl_wmem_max; extern __u32 sysctl_rmem_max; +#endif #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) #include <linux/in6.h> @@ -487,8 +489,10 @@ EXPORT_SYMBOL(unregister_hipdev); #endif +#ifdef CONFIG_SYSCTL EXPORT_SYMBOL(sysctl_wmem_max); EXPORT_SYMBOL(sysctl_rmem_max); +#endif #if defined(CONFIG_ATALK) || defined(CONFIG_ATALK_MODULE) #include<linux/if_ltalk.h>diff -urdN linux/fs/ncpfs/dir.c linux/fs/ncpfs/dir.c --- linux/fs/ncpfs/dir.c Fri Jul 16 19:57:40 1999 +++ linux/fs/ncpfs/dir.c Sun Aug 1 16:24:18 1999 @@ -350,7 +350,7 @@ struct ncpfs_inode_info finfo; __u8 __name[dentry->d_name.len + 1]; - if (!dir) + if (!dentry->d_inode || !dir) return 0; server = NCP_SERVER(dir); | |