All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/15] misc: Miscellaneous bits from -tiny
@ 2005-11-11  8:35 Matt Mackall
  2005-11-11  8:35 ` [PATCH 1/15] misc: Add bloat-o-meter to scripts Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

This is a set of fairly straightforward patches from the -tiny tree.

They're largely independent, except that several of them touch
init/Kconfig and the second panic related patch does depend on the
first one.

This work is sponsored in part by the CE Linux Forum.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 2/15] misc: Uninline some namei.c functions
  2005-11-11  8:35 ` [PATCH 1/15] misc: Add bloat-o-meter to scripts Matt Mackall
@ 2005-11-11  8:35   ` Matt Mackall
  2005-11-11  8:35     ` [PATCH 3/15] misc: Uninline some open.c functions Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

uninline various namei.c functions

add/remove: 4/0 grow/shrink: 0/13 up/down: 1077/-3632 (-2555)
function                                     old     new   delta
do_follow_link                                 -     398    +398
follow_dotdot                                  -     380    +380
may_delete                                     -     249    +249
may_create                                     -      50     +50
vfs_follow_link                              411     410      -1
sys_mknod                                    372     371      -1
page_getlink                                 176     175      -1
vfs_create                                   166     149     -17
vfs_symlink                                  140     118     -22
vfs_mknod                                    200     178     -22
vfs_mkdir                                    148     126     -22
vfs_link                                     250     227     -23
vfs_rmdir                                    331     163    -168
vfs_unlink                                   309     131    -178
open_namei                                  1683    1258    -425
vfs_rename                                   988     495    -493
__link_path_walk                            3744    1485   -2259

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/fs/namei.c
===================================================================
--- 2.6.14-misc.orig/fs/namei.c	2005-11-01 10:54:33.000000000 -0800
+++ 2.6.14-misc/fs/namei.c	2005-11-09 11:19:35.000000000 -0800
@@ -471,7 +471,7 @@ walk_init_root(const char *name, struct 
 	return 1;
 }
 
-static inline int __vfs_follow_link(struct nameidata *nd, const char *link)
+int vfs_follow_link(struct nameidata *nd, const char *link)
 {
 	int res = 0;
 	char *name;
@@ -528,7 +528,7 @@ static inline int __do_follow_link(struc
 		char *s = nd_get_link(nd);
 		error = 0;
 		if (s)
-			error = __vfs_follow_link(nd, s);
+			error = vfs_follow_link(nd, s);
 		if (dentry->d_inode->i_op->put_link)
 			dentry->d_inode->i_op->put_link(dentry, nd, cookie);
 	}
@@ -561,7 +561,7 @@ static inline void path_to_nameidata(str
  * Without that kind of total limit, nasty chains of consecutive
  * symlinks can cause almost arbitrarily long lookups. 
  */
-static inline int do_follow_link(struct path *path, struct nameidata *nd)
+static int do_follow_link(struct path *path, struct nameidata *nd)
 {
 	int err = -ELOOP;
 	if (current->link_count >= MAX_NESTED_LINKS)
@@ -657,7 +657,7 @@ int follow_down(struct vfsmount **mnt, s
 	return 0;
 }
 
-static inline void follow_dotdot(struct nameidata *nd)
+static void follow_dotdot(struct nameidata *nd)
 {
 	while(1) {
 		struct vfsmount *parent;
@@ -1261,7 +1261,7 @@ static inline int check_sticky(struct in
  * 10. We don't allow removal of NFS sillyrenamed files; it's handled by
  *     nfs_async_unlink().
  */
-static inline int may_delete(struct inode *dir,struct dentry *victim,int isdir)
+static int may_delete(struct inode *dir,struct dentry *victim,int isdir)
 {
 	int error;
 
@@ -1300,7 +1300,7 @@ static inline int may_delete(struct inod
  *  3. We should have write and exec permissions on dir
  *  4. We can't do it if dir is immutable (done in permission())
  */
-static inline int may_create(struct inode *dir, struct dentry *child,
+static int may_create(struct inode *dir, struct dentry *child,
 			     struct nameidata *nd)
 {
 	if (child->d_inode)
@@ -2415,11 +2415,6 @@ int generic_readlink(struct dentry *dent
 	return PTR_ERR(cookie);
 }
 
-int vfs_follow_link(struct nameidata *nd, const char *link)
-{
-	return __vfs_follow_link(nd, link);
-}
-
 /* get the link contents into pagecache */
 static char *page_getlink(struct dentry * dentry, struct page **ppage)
 {

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 1/15] misc: Add bloat-o-meter to scripts
  2005-11-11  8:35 [PATCH 0/15] misc: Miscellaneous bits from -tiny Matt Mackall
@ 2005-11-11  8:35 ` Matt Mackall
  2005-11-11  8:35   ` [PATCH 2/15] misc: Uninline some namei.c functions Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

This is a rewrite of Andi Kleen's bloat-o-meter with sorting and
reporting of gainers/decliners. Sample output:

add/remove: 0/8 grow/shrink: 2/0 up/down: 88/-4424 (-4336)
function                                     old     new   delta
__copy_to_user_ll                             59     103     +44
__copy_from_user_ll                           59     103     +44
fill_note                                     32       -     -32
maydump                                       58       -     -58
dump_seek                                     67       -     -67
writenote                                    180       -    -180
elf_dump_thread_status                       274       -    -274
fill_psinfo                                  308       -    -308
fill_prstatus                                466       -    -466
elf_core_dump                               3039       -   -3039

The summary line says:
 no functions added, 8 removed
 two functions grew, none shrunk
 we gained 88 bytes and lost 4424 (or -4336 net)

This work was sponsored in part by CE Linux Forum

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: tiny/scripts/bloat-o-meter
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ tiny/scripts/bloat-o-meter	2005-10-07 20:15:39.000000000 -0700
@@ -0,0 +1,58 @@
+#!/usr/bin/python
+#
+# Copyright 2004 Matt Mackall <mpm@selenic.com>
+#
+# inspired by perl Bloat-O-Meter (c) 1997 by Andi Kleen
+#
+# This software may be used and distributed according to the terms
+# of the GNU General Public License, incorporated herein by reference.
+
+import sys, os, re
+
+if len(sys.argv) != 3:
+    sys.stderr.write("usage: %s file1 file2\n" % sys.argv[0])
+    sys.exit(-1)
+
+def getsizes(file):
+    sym = {}
+    for l in os.popen("nm --size-sort " + file).readlines():
+        size, type, name = l[:-1].split()
+        if type in "tTdDbB":
+            sym[name] = int(size, 16)
+    return sym
+
+old = getsizes(sys.argv[1])
+new = getsizes(sys.argv[2])
+grow, shrink, add, remove, up, down = 0, 0, 0, 0, 0, 0
+delta, common = [], {}
+
+for a in old:
+    if a in new:
+        common[a] = 1
+
+for name in old:
+    if name not in common:
+        remove += 1
+        down += old[name]
+        delta.append((-old[name], name))
+
+for name in new:
+    if name not in common:
+        add += 1
+        up += new[name]
+        delta.append((new[name], name))
+
+for name in common:
+        d = new.get(name, 0) - old.get(name, 0)
+        if d>0: grow, up = grow+1, up+d
+        if d<0: shrink, down = shrink+1, down-d
+        delta.append((d, name))
+
+delta.sort()
+delta.reverse()
+
+print "add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \
+      (add, remove, grow, shrink, up, -down, up-down)
+print "%-40s %7s %7s %+7s" % ("function", "old", "new", "delta")
+for d, n in delta:
+    if d: print "%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 4/15] misc: Uninline some inode.c functions
  2005-11-11  8:35     ` [PATCH 3/15] misc: Uninline some open.c functions Matt Mackall
@ 2005-11-11  8:35       ` Matt Mackall
  2005-11-11  8:35         ` [PATCH 5/15] misc: Uninline some fslocks.c functions Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

uninline a couple inode.c functions

add/remove: 2/0 grow/shrink: 0/5 up/down: 256/-428 (-172)
function                                     old     new   delta
ifind                                          -     136    +136
ifind_fast                                     -     120    +120
ilookup5_nowait                              131      80     -51
ilookup                                      158      71     -87
ilookup5                                     171      80     -91
iget_locked                                  190      95     -95
iget5_locked                                 240     136    -104

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: tiny/fs/inode.c
===================================================================
--- tiny.orig/fs/inode.c	2005-09-12 12:02:25.000000000 -0700
+++ tiny/fs/inode.c	2005-09-19 14:26:09.000000000 -0700
@@ -770,7 +770,7 @@ EXPORT_SYMBOL(igrab);
  *
  * Note, @test is called with the inode_lock held, so can't sleep.
  */
-static inline struct inode *ifind(struct super_block *sb,
+static struct inode *ifind(struct super_block *sb,
 		struct hlist_head *head, int (*test)(struct inode *, void *),
 		void *data, const int wait)
 {
@@ -804,7 +804,7 @@ static inline struct inode *ifind(struct
  *
  * Otherwise NULL is returned.
  */
-static inline struct inode *ifind_fast(struct super_block *sb,
+static struct inode *ifind_fast(struct super_block *sb,
 		struct hlist_head *head, unsigned long ino)
 {
 	struct inode *inode;

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 3/15] misc: Uninline some open.c functions
  2005-11-11  8:35   ` [PATCH 2/15] misc: Uninline some namei.c functions Matt Mackall
@ 2005-11-11  8:35     ` Matt Mackall
  2005-11-11  8:35       ` [PATCH 4/15] misc: Uninline some inode.c functions Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

uninline some open.c functions

add/remove: 3/0 grow/shrink: 0/6 up/down: 679/-1166 (-487)
function                                     old     new   delta
do_sys_truncate                                -     336    +336
do_sys_ftruncate                               -     317    +317
__put_unused_fd                                -      26     +26
put_unused_fd                                 57      49      -8
sys_close                                    150     119     -31
sys_ftruncate64                              260      26    -234
sys_ftruncate                                272      24    -248
sys_truncate                                 339      25    -314
sys_truncate64                               336       5    -331

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/fs/open.c
===================================================================
--- 2.6.14-misc.orig/fs/open.c	2005-11-01 10:54:33.000000000 -0800
+++ 2.6.14-misc/fs/open.c	2005-11-09 11:19:40.000000000 -0800
@@ -212,7 +212,7 @@ int do_truncate(struct dentry *dentry, l
 	return err;
 }
 
-static inline long do_sys_truncate(const char __user * path, loff_t length)
+static long do_sys_truncate(const char __user * path, loff_t length)
 {
 	struct nameidata nd;
 	struct inode * inode;
@@ -278,7 +278,7 @@ asmlinkage long sys_truncate(const char 
 	return do_sys_truncate(path, (long)length);
 }
 
-static inline long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
+static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
 {
 	struct inode * inode;
 	struct dentry *dentry;
@@ -959,7 +959,7 @@ out:
 
 EXPORT_SYMBOL(get_unused_fd);
 
-static inline void __put_unused_fd(struct files_struct *files, unsigned int fd)
+static void __put_unused_fd(struct files_struct *files, unsigned int fd)
 {
 	struct fdtable *fdt = files_fdtable(files);
 	__FD_CLR(fd, fdt->open_fds);

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 6/15] misc: Trim non-IPX builds
  2005-11-11  8:35         ` [PATCH 5/15] misc: Uninline some fslocks.c functions Matt Mackall
@ 2005-11-11  8:35           ` Matt Mackall
  2005-11-11  8:35             ` [PATCH 7/15] misc: Make x86 doublefault handling optional Matt Mackall
  2005-11-14  1:57             ` [PATCH 6/15] misc: Trim non-IPX builds Adrian Bunk
  0 siblings, 2 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

trivial: drop unused 802.3 code if we compile without IPX

(originally from http://wohnheim.fh-wedel.de/~joern/software/kernel/je/25/)

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: tiny/net/802/Makefile
===================================================================
--- tiny.orig/net/802/Makefile	2005-03-15 00:24:59.000000000 -0600
+++ tiny/net/802/Makefile	2005-03-15 00:25:48.000000000 -0600
@@ -2,8 +2,6 @@
 # Makefile for the Linux 802.x protocol layers.
 #
 
-obj-y			:= p8023.o
-
 # Check the p8022 selections against net/core/Makefile.
 obj-$(CONFIG_SYSCTL)	+= sysctl_net_802.o
 obj-$(CONFIG_LLC)	+= p8022.o psnap.o
@@ -11,5 +9,5 @@ obj-$(CONFIG_TR)	+= p8022.o psnap.o tr.o
 obj-$(CONFIG_NET_FC)	+=                 fc.o
 obj-$(CONFIG_FDDI)	+=                 fddi.o
 obj-$(CONFIG_HIPPI)	+=                 hippi.o
-obj-$(CONFIG_IPX)	+= p8022.o psnap.o
+obj-$(CONFIG_IPX)	+= p8022.o psnap.o p8023.o
 obj-$(CONFIG_ATALK)	+= p8022.o psnap.o

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 5/15] misc: Uninline some fslocks.c functions
  2005-11-11  8:35       ` [PATCH 4/15] misc: Uninline some inode.c functions Matt Mackall
@ 2005-11-11  8:35         ` Matt Mackall
  2005-11-11  8:35           ` [PATCH 6/15] misc: Trim non-IPX builds Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

uninline some file locking functions

add/remove: 3/0 grow/shrink: 0/15 up/down: 256/-1525 (-1269)
function                                     old     new   delta
locks_free_lock                                -     134    +134
posix_same_owner                               -      69     +69
__locks_delete_block                           -      53     +53
posix_locks_conflict                         126     108     -18
locks_remove_posix                           266     237     -29
locks_wake_up_blocks                         121      87     -34
locks_block_on_timeout                        83      47     -36
locks_insert_block                           157     120     -37
locks_delete_block                            62      23     -39
posix_unblock_lock                           104      59     -45
posix_locks_deadlock                         162     100     -62
locks_delete_lock                            228     119    -109
sys_flock                                    338     217    -121
__break_lease                                600     474    -126
lease_init                                   252     122    -130
fcntl_setlk64                                793     649    -144
fcntl_setlk                                  793     649    -144
__posix_lock_file                           1477    1026    -451

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/fs/locks.c
===================================================================
--- 2.6.14-misc.orig/fs/locks.c	2005-11-01 10:54:33.000000000 -0800
+++ 2.6.14-misc/fs/locks.c	2005-11-09 11:19:44.000000000 -0800
@@ -154,7 +154,7 @@ static struct file_lock *locks_alloc_loc
 }
 
 /* Free a lock which is not in use. */
-static inline void locks_free_lock(struct file_lock *fl)
+static void locks_free_lock(struct file_lock *fl)
 {
 	if (fl == NULL) {
 		BUG();
@@ -475,8 +475,7 @@ static inline int locks_overlap(struct f
 /*
  * Check whether two locks have the same owner.
  */
-static inline int
-posix_same_owner(struct file_lock *fl1, struct file_lock *fl2)
+static int posix_same_owner(struct file_lock *fl1, struct file_lock *fl2)
 {
 	if (fl1->fl_lmops && fl1->fl_lmops->fl_compare_owner)
 		return fl2->fl_lmops == fl1->fl_lmops &&
@@ -487,7 +486,7 @@ posix_same_owner(struct file_lock *fl1, 
 /* Remove waiter from blocker's block list.
  * When blocker ends up pointing to itself then the list is empty.
  */
-static inline void __locks_delete_block(struct file_lock *waiter)
+static void __locks_delete_block(struct file_lock *waiter)
 {
 	list_del_init(&waiter->fl_block);
 	list_del_init(&waiter->fl_link);

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-11-11  8:35           ` [PATCH 6/15] misc: Trim non-IPX builds Matt Mackall
@ 2005-11-11  8:35             ` Matt Mackall
  2005-11-11  8:35               ` [PATCH 8/15] misc: Make vm86 support optional Matt Mackall
                                 ` (2 more replies)
  2005-11-14  1:57             ` [PATCH 6/15] misc: Trim non-IPX builds Adrian Bunk
  1 sibling, 3 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

This adds configurable support for doublefault reporting on x86

add/remove: 0/3 grow/shrink: 0/1 up/down: 0/-13048 (-13048)
function                                     old     new   delta
cpu_init                                     846     786     -60
doublefault_fn                               188       -    -188
doublefault_stack                           4096       -   -4096
doublefault_tss                             8704       -   -8704

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/arch/i386/kernel/Makefile
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/Makefile	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/i386/kernel/Makefile	2005-11-09 11:19:46.000000000 -0800
@@ -7,7 +7,7 @@ extra-y := head.o init_task.o vmlinux.ld
 obj-y	:= process.o semaphore.o signal.o entry.o traps.o irq.o vm86.o \
 		ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \
 		pci-dma.o i386_ksyms.o i387.o dmi_scan.o bootflag.o \
-		doublefault.o quirks.o i8237.o
+		quirks.o i8237.o
 
 obj-y				+= cpu/
 obj-y				+= timers/
@@ -33,6 +33,7 @@ obj-y				+= sysenter.o vsyscall.o
 obj-$(CONFIG_ACPI_SRAT) 	+= srat.o
 obj-$(CONFIG_HPET_TIMER) 	+= time_hpet.o
 obj-$(CONFIG_EFI) 		+= efi.o efi_stub.o
+obj-$(CONFIG_DOUBLEFAULT) 	+= doublefault.o
 obj-$(CONFIG_EARLY_PRINTK)	+= early_printk.o
 
 EXTRA_AFLAGS   := -traditional
Index: 2.6.14-misc/arch/i386/kernel/cpu/common.c
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/cpu/common.c	2005-11-01 10:54:31.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/cpu/common.c	2005-11-09 11:19:46.000000000 -0800
@@ -628,8 +628,10 @@ void __devinit cpu_init(void)
 	load_TR_desc();
 	load_LDT(&init_mm.context);
 
+#ifdef CONFIG_DOUBLEFAULT
 	/* Set up doublefault TSS pointer in the GDT */
 	__set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss);
+#endif
 
 	/* Clear %fs and %gs. */
 	asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs");
Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-01 10:54:33.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-09 11:19:46.000000000 -0800
@@ -315,6 +315,15 @@ config BUG
           option for embedded systems with no facilities for reporting errors.
           Just say Y.
 
+config DOUBLEFAULT
+	depends X86
+	default y if X86
+	bool "Enable doublefault exception handler" if EMBEDDED
+	help
+          This option allows trapping of rare doublefault exceptions that
+          would otherwise cause a system to silently reboot. Disabling this
+          option saves about 4k.
+
 config BASE_FULL
 	default y
 	bool "Enable full-sized data structures for core" if EMBEDDED

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 8/15] misc: Make vm86 support optional
  2005-11-11  8:35             ` [PATCH 7/15] misc: Make x86 doublefault handling optional Matt Mackall
@ 2005-11-11  8:35               ` Matt Mackall
  2005-11-11  8:35                 ` [PATCH 9/15] misc: Make sysenter " Matt Mackall
  2005-11-12  5:55                 ` [PATCH 8/15] misc: Make vm86 " Andrew Morton
  2005-11-13  3:30               ` [PATCH 7/15] misc: Make x86 doublefault handling optional Andi Kleen
  2005-11-16 13:13               ` Rob Landley
  2 siblings, 2 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

Make vm86 support optional

add/remove: 0/14 grow/shrink: 0/5 up/down: 0/-5221 (-5221)
function                                     old     new   delta
do_simd_coprocessor_error                    133     132      -1
irqbits                                        4       -      -4
irqbits_lock                                   8       -      -8
release_thread                                72      52     -20
do_debug                                     212     186     -26
do_general_protection                        475     428     -47
do_trap                                      196     140     -56
release_vm86_irqs                            112       -    -112
vm86_irqs                                    128       -    -128
sys_vm86old                                  146       -    -146
irq_handler                                  151       -    -151
mark_screen_rdonly                           159       -    -159
sys_vm86                                     199       -    -199
handle_vm86_trap                             231       -    -231
save_v86_state                               339       -    -339
do_sys_vm86                                  379       -    -379
do_vm86_irq_handling                         482       -    -482
do_int                                       508       -    -508
handle_vm86_fault                           2225       -   -2225

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/arch/i386/kernel/entry.S
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/entry.S	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/entry.S	2005-11-09 11:20:21.000000000 -0800
@@ -313,15 +313,21 @@ work_resched:
 
 work_notifysig:				# deal with pending signals and
 					# notify-resume requests
-	testl $VM_MASK, EFLAGS(%esp)
 	movl %esp, %eax
+
+#ifdef CONFIG_VM86
+	testl $VM_MASK, EFLAGS(%esp)
 	jne work_notifysig_v86		# returning to kernel-space or
 					# vm86-space
+#endif
+
 	xorl %edx, %edx
 	call do_notify_resume
 	jmp resume_userspace
 
 	ALIGN
+
+#ifdef CONFIG_VM86
 work_notifysig_v86:
 	pushl %ecx			# save ti_flags for do_notify_resume
 	call save_v86_state		# %eax contains pt_regs pointer
@@ -333,6 +339,8 @@ work_notifysig_v86:
 
 	# perform syscall exit tracing
 	ALIGN
+#endif
+
 syscall_trace_entry:
 	movl $-ENOSYS,EAX(%esp)
 	movl %esp, %eax
Index: 2.6.14-misc/arch/i386/kernel/process.c
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/process.c	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/process.c	2005-11-09 11:20:21.000000000 -0800
@@ -428,7 +428,9 @@ void release_thread(struct task_struct *
 		}
 	}
 
+#ifdef CONFIG_VM86
 	release_vm86_irqs(dead_task);
+#endif
 }
 
 /*
Index: 2.6.14-misc/arch/i386/kernel/traps.c
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/traps.c	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/traps.c	2005-11-09 11:20:21.000000000 -0800
@@ -371,8 +371,10 @@ static void __kprobes do_trap(int trapnr
 	tsk->thread.trap_no = trapnr;
 
 	if (regs->eflags & VM_MASK) {
+#ifdef CONFIG_VM86
 		if (vm86)
 			goto vm86_trap;
+#endif
 		goto trap_signal;
 	}
 
@@ -393,11 +395,13 @@ static void __kprobes do_trap(int trapnr
 		return;
 	}
 
+#ifdef CONFIG_VM86
 	vm86_trap: {
 		int ret = handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, trapnr);
 		if (ret) goto trap_signal;
 		return;
 	}
+#endif
 }
 
 #define DO_ERROR(trapnr, signr, str, name) \
@@ -452,6 +456,7 @@ DO_VM86_ERROR( 3, SIGTRAP, "int3", int3)
 #endif
 DO_VM86_ERROR( 4, SIGSEGV, "overflow", overflow)
 DO_VM86_ERROR( 5, SIGSEGV, "bounds", bounds)
+
 DO_ERROR_INFO( 6, SIGILL,  "invalid operand", invalid_op, ILL_ILLOPN, regs->eip)
 DO_ERROR( 9, SIGFPE,  "coprocessor segment overrun", coprocessor_segment_overrun)
 DO_ERROR(10, SIGSEGV, "invalid TSS", invalid_TSS)
@@ -497,8 +502,10 @@ fastcall void __kprobes do_general_prote
 	current->thread.error_code = error_code;
 	current->thread.trap_no = 13;
 
+#ifdef CONFIG_VM86
 	if (regs->eflags & VM_MASK)
 		goto gp_in_vm86;
+#endif
 
 	if (!user_mode(regs))
 		goto gp_in_kernel;
@@ -508,10 +515,12 @@ fastcall void __kprobes do_general_prote
 	force_sig(SIGSEGV, current);
 	return;
 
+#ifdef CONFIG_VM86
 gp_in_vm86:
 	local_irq_enable();
 	handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code);
 	return;
+#endif
 
 gp_in_kernel:
 	if (!fixup_exception(regs)) {
@@ -732,8 +741,10 @@ fastcall void __kprobes do_debug(struct 
 			goto clear_dr7;
 	}
 
+#ifdef CONFIG_VM86
 	if (regs->eflags & VM_MASK)
 		goto debug_vm86;
+#endif
 
 	/* Save debug status register where ptrace can see it */
 	tsk->thread.debugreg[6] = condition;
@@ -762,9 +773,11 @@ clear_dr7:
 	set_debugreg(0, 7);
 	return;
 
+#ifdef CONFIG_VM86
 debug_vm86:
 	handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 1);
 	return;
+#endif
 
 clear_TF_reenable:
 	set_tsk_thread_flag(tsk, TIF_SINGLESTEP);
@@ -902,11 +915,13 @@ fastcall void do_simd_coprocessor_error(
 		 * Handle strange cache flush from user space exception
 		 * in all other cases.  This is undocumented behaviour.
 		 */
+#ifdef CONFIG_VM86
 		if (regs->eflags & VM_MASK) {
 			handle_vm86_fault((struct kernel_vm86_regs *)regs,
 					  error_code);
 			return;
 		}
+#endif
 		current->thread.trap_no = 19;
 		current->thread.error_code = error_code;
 		die_if_kernel("cache flush denied", regs, error_code);
Index: 2.6.14-misc/arch/i386/kernel/vm86.c
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/vm86.c	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/vm86.c	2005-11-09 11:20:21.000000000 -0800
@@ -805,4 +805,3 @@ static int do_vm86_irq_handling(int subf
 	}
 	return -EINVAL;
 }
-
Index: 2.6.14-misc/arch/i386/kernel/Makefile
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/Makefile	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/Makefile	2005-11-09 11:20:21.000000000 -0800
@@ -4,7 +4,7 @@
 
 extra-y := head.o init_task.o vmlinux.lds
 
-obj-y	:= process.o semaphore.o signal.o entry.o traps.o irq.o vm86.o \
+obj-y	:= process.o semaphore.o signal.o entry.o traps.o irq.o \
 		ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \
 		pci-dma.o i386_ksyms.o i387.o dmi_scan.o bootflag.o \
 		quirks.o i8237.o
@@ -34,6 +34,7 @@ obj-$(CONFIG_ACPI_SRAT) 	+= srat.o
 obj-$(CONFIG_HPET_TIMER) 	+= time_hpet.o
 obj-$(CONFIG_EFI) 		+= efi.o efi_stub.o
 obj-$(CONFIG_DOUBLEFAULT) 	+= doublefault.o
+obj-$(CONFIG_VM86)		+= vm86.o
 obj-$(CONFIG_EARLY_PRINTK)	+= early_printk.o
 
 EXTRA_AFLAGS   := -traditional
Index: 2.6.14-misc/arch/i386/kernel/sys_i386.c
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/sys_i386.c	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/sys_i386.c	2005-11-09 11:20:21.000000000 -0800
@@ -22,6 +22,7 @@
 
 #include <asm/uaccess.h>
 #include <asm/ipc.h>
+#include <asm/unistd.h>
 
 /*
  * sys_pipe() is the normal C calling standard for creating
Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-09 11:20:39.000000000 -0800
@@ -347,6 +347,16 @@ config EPOLL
 	  Disabling this option will cause the kernel to be built without
 	  support for epoll family of system calls.
 
+config VM86
+	depends X86
+	default y
+	bool "Enable VM86 support" if EMBEDDED
+	help
+          This option is required by programs like DOSEMU to run 16-bit legacy
+	  code on X86 processors. It also may be needed by software like
+          XFree86 to initialize some video cards via BIOS. Disabling this
+          option saves about 6k.
+
 config CC_OPTIMIZE_FOR_SIZE
 	bool "Optimize for size" if EMBEDDED
 	default y if ARM || H8300
Index: 2.6.14-misc/kernel/sys_ni.c
===================================================================
--- 2.6.14-misc.orig/kernel/sys_ni.c	2005-11-09 11:20:20.000000000 -0800
+++ 2.6.14-misc/kernel/sys_ni.c	2005-11-09 11:20:21.000000000 -0800
@@ -82,6 +82,8 @@ cond_syscall(compat_sys_socketcall);
 cond_syscall(sys_inotify_init);
 cond_syscall(sys_inotify_add_watch);
 cond_syscall(sys_inotify_rm_watch);
+cond_syscall(sys_vm86old);
+cond_syscall(sys_vm86);
 
 /* arch-specific weak syscall entries */
 cond_syscall(sys_pciconfig_read);

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 9/15] misc: Make sysenter support optional
  2005-11-11  8:35               ` [PATCH 8/15] misc: Make vm86 support optional Matt Mackall
@ 2005-11-11  8:35                 ` Matt Mackall
  2005-11-11  8:35                   ` [PATCH 10/15] misc: Make *[ug]id16 " Matt Mackall
  2005-11-12  5:57                   ` [PATCH 9/15] misc: Make sysenter " Andrew Morton
  2005-11-12  5:55                 ` [PATCH 8/15] misc: Make vm86 " Andrew Morton
  1 sibling, 2 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

This adds configurable sysenter support on x86. This saves about 5k on
small systems.

   text    data     bss     dec     hex
3330172  529036  190556 4049764  3dcb64 baseline
3329604  524164  190556 4044324  3db624 sysenter

$ bloat-o-meter vmlinux{-baseline,}
add/remove: 0/2 grow/shrink: 0/3 up/down: 0/-316 (-316)
function                                     old     new   delta
__restore_processor_state                     76      62     -14
identify_cpu                                 520     500     -20
create_elf_tables                            923     883     -40
sysenter_setup                               113       -    -113
enable_sep_cpu                               129       -    -129

Most of the savings is not including the vsyscall DSO which doesn't
show up with bloat-o-meter:

$ size arch/i386/kernel/vsyscall.o
   text    data     bss     dec     hex filename
      0    4826       0    4826    12da arch/i386/kernel/vsyscall.o

$ nm arch/i386/kernel/vsyscall.o
00000961 T vsyscall_int80_end
00000000 T vsyscall_int80_start
000012da T vsyscall_sysenter_end
00000961 T vsyscall_sysenter_start

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/arch/i386/kernel/Makefile
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/Makefile	2005-11-11 00:32:13.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/Makefile	2005-11-11 00:32:17.000000000 -0800
@@ -29,7 +29,7 @@ obj-$(CONFIG_X86_NUMAQ)		+= numaq.o
 obj-$(CONFIG_X86_SUMMIT_NUMA)	+= summit.o
 obj-$(CONFIG_KPROBES)		+= kprobes.o
 obj-$(CONFIG_MODULES)		+= module.o
-obj-y				+= sysenter.o vsyscall.o
+obj-$(CONFIG_SYSENTER)		+= sysenter.o vsyscall.o
 obj-$(CONFIG_ACPI_SRAT) 	+= srat.o
 obj-$(CONFIG_HPET_TIMER) 	+= time_hpet.o
 obj-$(CONFIG_EFI) 		+= efi.o efi_stub.o
Index: 2.6.14-misc/arch/i386/kernel/entry.S
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/entry.S	2005-11-11 00:32:13.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/entry.S	2005-11-11 00:32:17.000000000 -0800
@@ -177,6 +177,7 @@ need_resched:
 
 	# sysenter call handler stub
 ENTRY(sysenter_entry)
+#ifdef CONFIG_SYSENTER
 	movl TSS_sysenter_esp0(%esp),%esp
 sysenter_past_esp:
 	sti
@@ -219,7 +220,7 @@ sysenter_past_esp:
 	xorl %ebp,%ebp
 	sti
 	sysexit
-
+#endif
 
 	# system call handler stub
 ENTRY(system_call)
@@ -506,6 +507,8 @@ device_not_available_emulate:
  * by hand onto the new stack - while updating the return eip past
  * the instruction that would have done it for sysenter.
  */
+
+#ifdef CONFIG_SYSENTER
 #define FIX_STACK(offset, ok, label)		\
 	cmpw $__KERNEL_CS,4(%esp);		\
 	jne ok;					\
@@ -514,6 +517,10 @@ label:						\
 	pushfl;					\
 	pushl $__KERNEL_CS;			\
 	pushl $sysenter_past_esp
+#else
+#define FIX_STACK(offset, ok, label) \
+label:
+#endif
 
 KPROBE_ENTRY(debug)
 	cmpl $sysenter_entry,(%esp)
Index: 2.6.14-misc/arch/i386/power/cpu.c
===================================================================
--- 2.6.14-misc.orig/arch/i386/power/cpu.c	2005-11-11 00:31:55.000000000 -0800
+++ 2.6.14-misc/arch/i386/power/cpu.c	2005-11-11 00:32:17.000000000 -0800
@@ -109,11 +109,13 @@ void __restore_processor_state(struct sa
  	loadsegment(gs, ctxt->gs);
  	loadsegment(ss, ctxt->ss);
 
+#ifdef CONFIG_SYSENTER
 	/*
 	 * sysenter MSRs
 	 */
 	if (boot_cpu_has(X86_FEATURE_SEP))
 		enable_sep_cpu();
+#endif
 
 	fix_processor_context();
 	do_fpu_end();
Index: 2.6.14-misc/include/asm-i386/elf.h
===================================================================
--- 2.6.14-misc.orig/include/asm-i386/elf.h	2005-11-11 00:32:01.000000000 -0800
+++ 2.6.14-misc/include/asm-i386/elf.h	2005-11-11 00:32:17.000000000 -0800
@@ -134,11 +134,13 @@ extern int dump_task_extended_fpu (struc
 #define VSYSCALL_ENTRY	((unsigned long) &__kernel_vsyscall)
 extern void __kernel_vsyscall;
 
+#ifdef CONFIG_SYSENTER
 #define ARCH_DLINFO						\
 do {								\
 		NEW_AUX_ENT(AT_SYSINFO,	VSYSCALL_ENTRY);	\
 		NEW_AUX_ENT(AT_SYSINFO_EHDR, VSYSCALL_BASE);	\
 } while (0)
+#endif
 
 /*
  * These macros parameterize elf_core_dump in fs/binfmt_elf.c to write out
Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-11 00:32:13.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-11 00:32:17.000000000 -0800
@@ -357,6 +357,14 @@ config VM86
           XFree86 to initialize some video cards via BIOS. Disabling this
           option saves about 6k.
 
+config SYSENTER
+	depends X86
+	default y
+	bool "Enable syscalls via sysenter" if EMBEDDED
+	help
+	  Disabling this feature removes sysenter handling as well as
+	  vsyscall fixmaps.
+ 
 config CC_OPTIMIZE_FOR_SIZE
 	bool "Optimize for size" if EMBEDDED
 	default y if ARM || H8300
Index: 2.6.14-misc/arch/i386/kernel/cpu/common.c
===================================================================
--- 2.6.14-misc.orig/arch/i386/kernel/cpu/common.c	2005-11-11 00:32:13.000000000 -0800
+++ 2.6.14-misc/arch/i386/kernel/cpu/common.c	2005-11-11 00:32:40.000000000 -0800
@@ -429,9 +429,11 @@ void __devinit identify_cpu(struct cpuin
 	/* Init Machine Check Exception if available. */
 	mcheck_init(c);
 
+#ifdef CONFIG_SYSENTER
 	if (c == &boot_cpu_data)
 		sysenter_setup();
 	enable_sep_cpu();
+#endif
 
 	if (c == &boot_cpu_data)
 		mtrr_bp_init();

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 10/15] misc: Make *[ug]id16 support optional
  2005-11-11  8:35                 ` [PATCH 9/15] misc: Make sysenter " Matt Mackall
@ 2005-11-11  8:35                   ` Matt Mackall
  2005-11-11  8:35                     ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Matt Mackall
                                       ` (2 more replies)
  2005-11-12  5:57                   ` [PATCH 9/15] misc: Make sysenter " Andrew Morton
  1 sibling, 3 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

Configurable 16-bit UID and friends support

This allows turning off the legacy 16 bit UID interfaces on embedded platforms.

   text    data     bss     dec     hex filename
3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
3328268  529040  190556 4047864  3dc3f8 vmlinux

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:21:02.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-09 11:22:06.000000000 -0800
@@ -364,7 +364,16 @@ config SYSENTER
 	help
 	  Disabling this feature removes sysenter handling as well as
 	  vsyscall fixmaps.
- 
+
+config UID16
+	bool "Enable 16-bit UID system calls" if EMBEDDED
+	depends !ALPHA && !PPC && !PPC64 && !PARISC && !V850 && !ARCH_S390X
+	depends !X86_64 || IA32_EMULATION
+	depends !SPARC64 || SPARC32_COMPAT
+	help
+	  This enables the legacy 16-bit UID syscall wrappers.
+
+
 config CC_OPTIMIZE_FOR_SIZE
 	bool "Optimize for size" if EMBEDDED
 	default y if ARM || H8300
Index: 2.6.14-misc/arch/sparc/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/sparc/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/sparc/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -9,10 +9,6 @@ config MMU
 	bool
 	default y
 
-config UID16
-	bool
-	default y
-
 config HIGHMEM
 	bool
 	default y
Index: 2.6.14-misc/arch/arm26/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/arm26/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/arm26/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -34,10 +34,6 @@ config FORCE_MAX_ZONEORDER
         int
         default 9
 
-config UID16
-	bool
-	default y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/m68k/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/m68k/Kconfig	2005-11-01 10:54:31.000000000 -0800
+++ 2.6.14-misc/arch/m68k/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -10,10 +10,6 @@ config MMU
 	bool
 	default y
 
-config UID16
-	bool
-	default y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/ppc64/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/ppc64/Kconfig	2005-11-01 10:54:32.000000000 -0800
+++ 2.6.14-misc/arch/ppc64/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -13,9 +13,6 @@ config MMU
 config PPC_STD_MMU
 	def_bool y
 
-config UID16
-	bool
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 
Index: 2.6.14-misc/arch/sh/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/sh/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/sh/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -14,10 +14,6 @@ config SUPERH
 	  gaming console.  The SuperH port has a home page at
 	  <http://www.linux-sh.org/>.
 
-config UID16
-	bool
-	default y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/s390/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/s390/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/s390/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -27,11 +27,6 @@ config ARCH_S390
 	bool
 	default y
 
-config UID16
-	bool
-	default y
-	depends on ARCH_S390X = 'n'
-
 source "init/Kconfig"
 
 menu "Base setup"
Index: 2.6.14-misc/arch/cris/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/cris/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/cris/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -9,10 +9,6 @@ config MMU
 	bool
 	default y
 
-config UID16
-	bool
-	default y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/x86_64/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/x86_64/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/x86_64/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -517,11 +517,6 @@ config SYSVIPC_COMPAT
 	depends on COMPAT && SYSVIPC
 	default y
 
-config UID16
-	bool
-	depends on IA32_EMULATION
-	default y
-
 endmenu
 
 source "net/Kconfig"
Index: 2.6.14-misc/arch/arm/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/arm/Kconfig	2005-11-01 10:54:31.000000000 -0800
+++ 2.6.14-misc/arch/arm/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -46,10 +46,6 @@ config MCA
 	  <file:Documentation/mca.txt> (and especially the web page given
 	  there) before attempting to build an MCA bus kernel.
 
-config UID16
-	bool
-	default y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/um/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/um/Kconfig	2005-11-01 10:54:32.000000000 -0800
+++ 2.6.14-misc/arch/um/Kconfig	2005-11-09 11:22:29.000000000 -0800
@@ -23,10 +23,6 @@ config SBUS
 config PCI
 	bool
 
-config UID16
-	bool
-	default y
-
 config GENERIC_CALIBRATE_DELAY
 	bool
 	default y
Index: 2.6.14-misc/arch/m68knommu/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/m68knommu/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/m68knommu/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -17,10 +17,6 @@ config FPU
 	bool
 	default n
 
-config UID16
-	bool
-	default y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/ppc/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/ppc/Kconfig	2005-11-01 10:54:32.000000000 -0800
+++ 2.6.14-misc/arch/ppc/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -8,9 +8,6 @@ config MMU
 	bool
 	default y
 
-config UID16
-	bool
-
 config GENERIC_HARDIRQS
 	bool
 	default y
Index: 2.6.14-misc/arch/parisc/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/parisc/Kconfig	2005-11-01 10:54:31.000000000 -0800
+++ 2.6.14-misc/arch/parisc/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -19,9 +19,6 @@ config MMU
 config STACK_GROWSUP
 	def_bool y
 
-config UID16
-	bool
-
 config RWSEM_GENERIC_SPINLOCK
 	def_bool y
 
Index: 2.6.14-misc/arch/sparc64/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/sparc64/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/sparc64/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -305,11 +305,6 @@ config COMPAT
 	depends on SPARC32_COMPAT
 	default y
 
-config UID16
-	bool
-	depends on SPARC32_COMPAT
-	default y
-
 config BINFMT_ELF32
 	tristate "Kernel support for 32-bit ELF binaries"
 	depends on SPARC32_COMPAT
Index: 2.6.14-misc/arch/v850/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/v850/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/v850/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -10,9 +10,6 @@ mainmenu "uClinux/v850 (w/o MMU) Kernel 
 config MMU
        	bool
 	default n
-config UID16
-	bool
-	default n
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/h8300/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/h8300/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/h8300/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -21,10 +21,6 @@ config FPU
 	bool
 	default n
 
-config UID16
-	bool
-	default y
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	default y
Index: 2.6.14-misc/arch/alpha/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/alpha/Kconfig	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/arch/alpha/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -18,9 +18,6 @@ config MMU
 	bool
 	default y
 
-config UID16
-	bool
-
 config RWSEM_GENERIC_SPINLOCK
 	bool
 
Index: 2.6.14-misc/arch/i386/Kconfig
===================================================================
--- 2.6.14-misc.orig/arch/i386/Kconfig	2005-11-01 10:54:31.000000000 -0800
+++ 2.6.14-misc/arch/i386/Kconfig	2005-11-09 11:21:09.000000000 -0800
@@ -29,10 +29,6 @@ config MMU
 config SBUS
 	bool
 
-config UID16
-	bool
-	default y
-
 config GENERIC_ISA_DMA
 	bool
 	default y
Index: 2.6.14-misc/kernel/sys_ni.c
===================================================================
--- 2.6.14-misc.orig/kernel/sys_ni.c	2005-11-09 11:20:21.000000000 -0800
+++ 2.6.14-misc/kernel/sys_ni.c	2005-11-09 11:22:56.000000000 -0800
@@ -84,6 +84,25 @@ cond_syscall(sys_inotify_add_watch);
 cond_syscall(sys_inotify_rm_watch);
 cond_syscall(sys_vm86old);
 cond_syscall(sys_vm86);
+cond_syscall(sys_chown16);
+cond_syscall(sys_fchown16);
+cond_syscall(sys_getegid16);
+cond_syscall(sys_geteuid16);
+cond_syscall(sys_getgid16);
+cond_syscall(sys_getgroups16);
+cond_syscall(sys_getresgid16);
+cond_syscall(sys_getresuid16);
+cond_syscall(sys_getuid16);
+cond_syscall(sys_lchown16);
+cond_syscall(sys_setfsgid16);
+cond_syscall(sys_setfsuid16);
+cond_syscall(sys_setgid16);
+cond_syscall(sys_setgroups16);
+cond_syscall(sys_setregid16);
+cond_syscall(sys_setresgid16);
+cond_syscall(sys_setresuid16);
+cond_syscall(sys_setreuid16);
+cond_syscall(sys_setuid16);
 
 /* arch-specific weak syscall entries */
 cond_syscall(sys_pciconfig_read);

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 11/15] misc: Allow dropping panic text strings from kernel image
  2005-11-11  8:35                   ` [PATCH 10/15] misc: Make *[ug]id16 " Matt Mackall
@ 2005-11-11  8:35                     ` Matt Mackall
  2005-11-11  8:35                       ` [PATCH 12/15] misc: Configurable panic support Matt Mackall
                                         ` (2 more replies)
  2005-11-11 10:22                     ` [PATCH 10/15] misc: Make *[ug]id16 support optional Geert Uytterhoeven
  2005-11-16 13:21                     ` Rob Landley
  2 siblings, 3 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

Configurable support for panic strings

This drops panic message strings from the kernel image while
maintaining normal panic functionality.

$ size vmlinux vmlinux-baseline
   text    data     bss     dec     hex filename
3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
3326488  529036  189532 4045056  3db900 vmlinux

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/include/linux/kernel.h
===================================================================
--- 2.6.14-misc.orig/include/linux/kernel.h	2005-11-09 11:27:15.000000000 -0800
+++ 2.6.14-misc/include/linux/kernel.h	2005-11-10 23:26:41.000000000 -0800
@@ -87,8 +87,13 @@ extern int cond_resched(void);
 
 extern struct notifier_block *panic_notifier_list;
 extern long (*panic_blink)(long time);
+#ifdef CONFIG_FULL_PANIC
 NORET_TYPE void panic(const char * fmt, ...)
 	__attribute__ ((NORET_AND format (printf, 1, 2)));
+#else
+#define panic(fmt, ...) tiny_panic(0, ## __VA_ARGS__)
+NORET_TYPE void tiny_panic(int a, ...) ATTRIB_NORET;
+#endif
 fastcall NORET_TYPE void do_exit(long error_code)
 	ATTRIB_NORET;
 NORET_TYPE void complete_and_exit(struct completion *, long)
Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:27:15.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-10 23:26:41.000000000 -0800
@@ -324,6 +324,14 @@ config DOUBLEFAULT
           would otherwise cause a system to silently reboot. Disabling this
           option saves about 4k.
 
+config FULL_PANIC
+	default y
+	bool "Full panic reporting data" if EMBEDDED
+	help
+	  This includes text descriptions of panics in addition to stack dumps.
+          Disabling compiles out the explanations for panics, saving
+	  string space. Use with caution.
+
 config BASE_FULL
 	default y
 	bool "Enable full-sized data structures for core" if EMBEDDED
Index: 2.6.14-misc/kernel/panic.c
===================================================================
--- 2.6.14-misc.orig/kernel/panic.c	2005-11-09 11:27:15.000000000 -0800
+++ 2.6.14-misc/kernel/panic.c	2005-11-10 23:26:41.000000000 -0800
@@ -54,12 +54,18 @@ EXPORT_SYMBOL(panic_blink);
  *
  *	This function never returns.
  */
- 
+
+#ifdef CONFIG_FULL_PANIC
 NORET_TYPE void panic(const char * fmt, ...)
 {
-	long i;
 	static char buf[1024];
 	va_list args;
+#else
+NORET_TYPE void tiny_panic(int a, ...)
+{
+#endif
+	long i;
+
 #if defined(CONFIG_ARCH_S390)
         unsigned long caller = (unsigned long) __builtin_return_address(0);
 #endif
@@ -72,10 +78,16 @@ NORET_TYPE void panic(const char * fmt, 
 	preempt_disable();
 
 	bust_spinlocks(1);
+
+#ifdef CONFIG_FULL_PANIC
 	va_start(args, fmt);
 	vsnprintf(buf, sizeof(buf), fmt, args);
 	va_end(args);
 	printk(KERN_EMERG "Kernel panic - not syncing: %s\n",buf);
+#else
+	printk(KERN_EMERG "Kernel panic - not syncing\n");
+#endif
+
 	bust_spinlocks(0);
 
 	/*
@@ -94,7 +106,11 @@ NORET_TYPE void panic(const char * fmt, 
 	smp_send_stop();
 #endif
 
+#ifdef CONFIG_FULL_PANIC
 	notifier_call_chain(&panic_notifier_list, 0, buf);
+#else
+	notifier_call_chain(&panic_notifier_list, 0, "");
+#endif
 
 	if (!panic_blink)
 		panic_blink = no_blink;
@@ -136,7 +152,11 @@ NORET_TYPE void panic(const char * fmt, 
 	}
 }
 
+#ifdef CONFIG_FULL_PANIC
 EXPORT_SYMBOL(panic);
+#else
+EXPORT_SYMBOL(tiny_panic);
+#endif
 
 /**
  *	print_tainted - return a string to represent the kernel taint state.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 12/15] misc: Configurable panic support
  2005-11-11  8:35                     ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Matt Mackall
@ 2005-11-11  8:35                       ` Matt Mackall
  2005-11-11  8:35                         ` [PATCH 13/15] misc: Configure ELF core dump support Matt Mackall
  2005-11-11 11:03                       ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Geert Uytterhoeven
  2005-11-12  6:06                       ` Andrew Morton
  2 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

Configurable no-op of panic()

Similar to disabling printk and BUG_ON, this allows completely
removing the panic infrastructure for systems where it isn't useful.

   text    data     bss     dec     hex
3330172  529036  190556 4049764  3dcb64 baseline
3324560  529016  189532 4043108  3db164 no-panic

Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-09 16:48:24.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-09 16:50:44.000000000 -0800
@@ -324,7 +324,16 @@ config DOUBLEFAULT
           would otherwise cause a system to silently reboot. Disabling this
           option saves about 4k.
 
+config PANIC
+	default y
+	bool "Enable panic reporting code" if EMBEDDED
+	help
+	  Disabling this completely removes panic handling code.
+          Warning: this can result in data loss if a panic condition
+          occurs, as the kernel may ignore the condition entirely.
+
 config FULL_PANIC
+        depends PANIC
 	default y
 	bool "Full panic reporting data" if EMBEDDED
 	help
Index: 2.6.14-misc/init/main.c
===================================================================
--- 2.6.14-misc.orig/init/main.c	2005-11-09 16:48:24.000000000 -0800
+++ 2.6.14-misc/init/main.c	2005-11-09 16:50:44.000000000 -0800
@@ -742,4 +742,5 @@ static int init(void * unused)
 	run_init_process("/bin/sh");
 
 	panic("No init found.  Try passing init= option to kernel.");
+	return 0;
 }
Index: 2.6.14-misc/kernel/panic.c
===================================================================
--- 2.6.14-misc.orig/kernel/panic.c	2005-11-09 16:50:29.000000000 -0800
+++ 2.6.14-misc/kernel/panic.c	2005-11-09 16:50:55.000000000 -0800
@@ -37,15 +37,16 @@ static int __init panic_setup(char *str)
 }
 __setup("panic=", panic_setup);
 
+/* Returns how long it waited in ms */
+long (*panic_blink)(long time);
+EXPORT_SYMBOL(panic_blink);
+
+#ifdef CONFIG_PANIC
 static long no_blink(long time)
 {
 	return 0;
 }
 
-/* Returns how long it waited in ms */
-long (*panic_blink)(long time);
-EXPORT_SYMBOL(panic_blink);
-
 /**
  *	panic - halt the system
  *	@fmt: The text string to print
@@ -157,6 +158,7 @@ EXPORT_SYMBOL(panic);
 #else
 EXPORT_SYMBOL(tiny_panic);
 #endif
+#endif
 
 /**
  *	print_tainted - return a string to represent the kernel taint state.
Index: 2.6.14-misc/include/linux/kernel.h
===================================================================
--- 2.6.14-misc.orig/include/linux/kernel.h	2005-11-09 16:48:24.000000000 -0800
+++ 2.6.14-misc/include/linux/kernel.h	2005-11-09 16:50:44.000000000 -0800
@@ -87,6 +87,11 @@ extern int cond_resched(void);
 
 extern struct notifier_block *panic_notifier_list;
 extern long (*panic_blink)(long time);
+#ifndef CONFIG_PANIC
+NORET_TYPE static inline void panic(const char * fmt, ...)
+	__attribute__ ((NORET_AND format (printf, 1, 2)));
+NORET_TYPE static inline void panic(const char * fmt, ...) {}
+#else
 #ifdef CONFIG_FULL_PANIC
 NORET_TYPE void panic(const char * fmt, ...)
 	__attribute__ ((NORET_AND format (printf, 1, 2)));
@@ -94,6 +99,7 @@ NORET_TYPE void panic(const char * fmt, 
 #define panic(fmt, ...) tiny_panic(0, ## __VA_ARGS__)
 NORET_TYPE void tiny_panic(int a, ...) ATTRIB_NORET;
 #endif
+#endif
 fastcall NORET_TYPE void do_exit(long error_code)
 	ATTRIB_NORET;
 NORET_TYPE void complete_and_exit(struct completion *, long)

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 13/15] misc: Configure ELF core dump support
  2005-11-11  8:35                       ` [PATCH 12/15] misc: Configurable panic support Matt Mackall
@ 2005-11-11  8:35                         ` Matt Mackall
  2005-11-11  8:35                           ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

configurable support for ELF core dumps

   text    data     bss     dec     hex filename
3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
3325552  528912  190556 4045020  3db8dc vmlinux-no-elf

add/remove: 0/8 grow/shrink: 0/0 up/down: 0/-4424 (-4424)
function                                     old     new   delta
fill_note                                     32       -     -32
maydump                                       58       -     -58
dump_seek                                     67       -     -67
writenote                                    180       -    -180
elf_dump_thread_status                       274       -    -274
fill_psinfo                                  308       -    -308
fill_prstatus                                466       -    -466
elf_core_dump                               3039       -   -3039

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/fs/binfmt_elf.c
===================================================================
--- 2.6.14-misc.orig/fs/binfmt_elf.c	2005-11-09 11:27:14.000000000 -0800
+++ 2.6.14-misc/fs/binfmt_elf.c	2005-11-09 11:27:20.000000000 -0800
@@ -58,7 +58,7 @@ extern int dump_fpu (struct pt_regs *, e
  * If we don't support core dumping, then supply a NULL so we
  * don't even try.
  */
-#ifdef USE_ELF_CORE_DUMP
+#if defined(USE_ELF_CORE_DUMP) && defined(CONFIG_ELF_CORE)
 static int elf_core_dump(long signr, struct pt_regs * regs, struct file * file);
 #else
 #define elf_core_dump	NULL
@@ -1108,7 +1108,7 @@ out:
  * Note that some platforms still use traditional core dumps and not
  * the ELF core dump.  Each platform can select it as appropriate.
  */
-#ifdef USE_ELF_CORE_DUMP
+#if defined(USE_ELF_CORE_DUMP) && defined(CONFIG_ELF_CORE)
 
 /*
  * ELF core dumper
Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:27:18.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-09 11:27:20.000000000 -0800
@@ -341,6 +341,12 @@ config FULL_PANIC
           Disabling compiles out the explanations for panics, saving
 	  string space. Use with caution.
 
+config ELF_CORE
+	default y
+	bool "Enable ELF core dumps" if EMBEDDED
+	help
+	  Enable support for generating core dumps. Disabling saves about 4k.
+
 config BASE_FULL
 	default y
 	bool "Enable full-sized data structures for core" if EMBEDDED

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 14/15] misc: Configurable number of supported IDE interfaces
  2005-11-11  8:35                         ` [PATCH 13/15] misc: Configure ELF core dump support Matt Mackall
@ 2005-11-11  8:35                           ` Matt Mackall
  2005-11-11  8:35                             ` [PATCH 15/15] misc: Configurable support for PCI serial ports Matt Mackall
  2005-11-11 10:14                             ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Bartlomiej Zolnierkiewicz
  0 siblings, 2 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

Configurable number of supported IDE interfaces

This overrides the default limit (which may be set per arch with
CONFIG_IDE_MAX_HWIFS). This is the result of setting interfaces to 1:

   text    data     bss     dec     hex filename
3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
3329352  528928  172124 4030404  3d7fc4 vmlinux

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/drivers/ide/setup-pci.c
===================================================================
--- 2.6.14-misc.orig/drivers/ide/setup-pci.c	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/drivers/ide/setup-pci.c	2005-11-09 11:27:23.000000000 -0800
@@ -102,7 +102,7 @@ static ide_hwif_t *ide_match_hwif(unsign
 				return hwif;	/* pick an unused entry */
 		}
 	}
-	for (h = 0; h < 2; ++h) {
+	for (h = 0; h < 2 && h < MAX_HWIFS; ++h) {
 		hwif = ide_hwifs + h;
 		if (hwif->chipset == ide_unknown)
 			return hwif;	/* pick an unused entry */
Index: 2.6.14-misc/include/linux/ide.h
===================================================================
--- 2.6.14-misc.orig/include/linux/ide.h	2005-11-01 10:54:33.000000000 -0800
+++ 2.6.14-misc/include/linux/ide.h	2005-11-09 11:27:23.000000000 -0800
@@ -309,6 +309,11 @@ static inline void ide_init_hwif_ports(h
 }
 #endif /* IDE_ARCH_OBSOLETE_INIT */
 
+#if defined(CONFIG_IDE_HWIFS) && CONFIG_IDE_HWIFS > 0
+#undef MAX_HWIFS
+#define MAX_HWIFS CONFIG_IDE_HWIFS
+#endif
+
 /* Currently only m68k, apus and m8xx need it */
 #ifndef IDE_ARCH_ACK_INTR
 # define ide_ack_intr(hwif) (1)
Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:27:20.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-09 11:27:23.000000000 -0800
@@ -457,6 +457,15 @@ config CC_ALIGN_JUMPS
 	  no dummy operations need be executed.
 	  Zero means use compiler's default.
 
+config IDE_HWIFS
+	depends IDE
+	int "Number of IDE hardware interfaces (0 for default)" if EMBEDDED
+	range 0 20
+	default 0
+	help
+	  Select the maximum number of IDE interfaces (0 for default).
+          Saves up to 14k.
+
 endmenu		# General setup
 
 config TINY_SHMEM

^ permalink raw reply	[flat|nested] 50+ messages in thread

* [PATCH 15/15] misc: Configurable support for PCI serial ports
  2005-11-11  8:35                           ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Matt Mackall
@ 2005-11-11  8:35                             ` Matt Mackall
  2005-11-11 11:03                               ` Geert Uytterhoeven
  2006-01-07 16:50                               ` Russell King
  2005-11-11 10:14                             ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Bartlomiej Zolnierkiewicz
  1 sibling, 2 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11  8:35 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

Configurable support for PCI serial devices

This allows disabling support for _non_-legacy PCI serial devices.

   text    data     bss     dec     hex filename
3332260  529420  190812 4052492  3dd60c vmlinux
3327944  523060  190812 4041816  3dac58 vmlinux-pci-serial

Signed-off-by: Matt Mackall <mpm@selenic.com>

Index: 2.6.14-misc/drivers/serial/Makefile
===================================================================
--- 2.6.14-misc.orig/drivers/serial/Makefile	2005-10-27 17:02:08.000000000 -0700
+++ 2.6.14-misc/drivers/serial/Makefile	2005-11-09 11:27:28.000000000 -0800
@@ -8,7 +8,7 @@ serial-8250-y :=
 serial-8250-$(CONFIG_SERIAL_8250_ACPI) += 8250_acpi.o
 serial-8250-$(CONFIG_PNP) += 8250_pnp.o
 serial-8250-$(CONFIG_GSC) += 8250_gsc.o
-serial-8250-$(CONFIG_PCI) += 8250_pci.o
+serial-8250-$(CONFIG_SERIAL_PCI) += 8250_pci.o
 serial-8250-$(CONFIG_HP300) += 8250_hp300.o
 
 obj-$(CONFIG_SERIAL_CORE) += serial_core.o
Index: 2.6.14-misc/init/Kconfig
===================================================================
--- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:27:26.000000000 -0800
+++ 2.6.14-misc/init/Kconfig	2005-11-09 11:27:28.000000000 -0800
@@ -473,6 +473,15 @@ config BOOTFLAG
 	help
 	  This enables support for the Simple Bootflag Specification.
 
+config SERIAL_PCI
+	depends PCI && SERIAL_8250
+	default y
+	bool "Enable standard PCI serial support" if EMBEDDED
+	help
+	  This builds standard PCI serial support. You may be able to disable
+          this feature if you are only need legacy serial support.
+	  Saves about 9K.
+
 endmenu		# General setup
 
 config TINY_SHMEM

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 14/15] misc: Configurable number of supported IDE interfaces
  2005-11-11  8:35                           ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Matt Mackall
  2005-11-11  8:35                             ` [PATCH 15/15] misc: Configurable support for PCI serial ports Matt Mackall
@ 2005-11-11 10:14                             ` Bartlomiej Zolnierkiewicz
  2005-11-11 17:18                               ` Matt Mackall
  1 sibling, 1 reply; 50+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2005-11-11 10:14 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Andrew Morton, linux-kernel

You are duplicating functionality of CONFIG_IDE_MAX_HWIFS,
please find a way to use it for EMBEDDED.

Also please cc: linux-ide on IDE related patches.

On 11/11/05, Matt Mackall <mpm@selenic.com> wrote:
> Configurable number of supported IDE interfaces
>
> This overrides the default limit (which may be set per arch with
> CONFIG_IDE_MAX_HWIFS). This is the result of setting interfaces to 1:
>
>    text    data     bss     dec     hex filename
> 3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
> 3329352  528928  172124 4030404  3d7fc4 vmlinux
>
> Signed-off-by: Matt Mackall <mpm@selenic.com>
>
> Index: 2.6.14-misc/drivers/ide/setup-pci.c
> ===================================================================
> --- 2.6.14-misc.orig/drivers/ide/setup-pci.c    2005-10-27 17:02:08.000000000 -0700
> +++ 2.6.14-misc/drivers/ide/setup-pci.c 2005-11-09 11:27:23.000000000 -0800
> @@ -102,7 +102,7 @@ static ide_hwif_t *ide_match_hwif(unsign
>                                 return hwif;    /* pick an unused entry */
>                 }
>         }
> -       for (h = 0; h < 2; ++h) {
> +       for (h = 0; h < 2 && h < MAX_HWIFS; ++h) {
>                 hwif = ide_hwifs + h;
>                 if (hwif->chipset == ide_unknown)
>                         return hwif;    /* pick an unused entry */
> Index: 2.6.14-misc/include/linux/ide.h
> ===================================================================
> --- 2.6.14-misc.orig/include/linux/ide.h        2005-11-01 10:54:33.000000000 -0800
> +++ 2.6.14-misc/include/linux/ide.h     2005-11-09 11:27:23.000000000 -0800
> @@ -309,6 +309,11 @@ static inline void ide_init_hwif_ports(h
>  }
>  #endif /* IDE_ARCH_OBSOLETE_INIT */
>
> +#if defined(CONFIG_IDE_HWIFS) && CONFIG_IDE_HWIFS > 0
> +#undef MAX_HWIFS
> +#define MAX_HWIFS CONFIG_IDE_HWIFS
> +#endif
> +
>  /* Currently only m68k, apus and m8xx need it */
>  #ifndef IDE_ARCH_ACK_INTR
>  # define ide_ack_intr(hwif) (1)
> Index: 2.6.14-misc/init/Kconfig
> ===================================================================
> --- 2.6.14-misc.orig/init/Kconfig       2005-11-09 11:27:20.000000000 -0800
> +++ 2.6.14-misc/init/Kconfig    2005-11-09 11:27:23.000000000 -0800
> @@ -457,6 +457,15 @@ config CC_ALIGN_JUMPS
>           no dummy operations need be executed.
>           Zero means use compiler's default.
>
> +config IDE_HWIFS
> +       depends IDE
> +       int "Number of IDE hardware interfaces (0 for default)" if EMBEDDED
> +       range 0 20
> +       default 0
> +       help
> +         Select the maximum number of IDE interfaces (0 for default).
> +          Saves up to 14k.
> +
>  endmenu                # General setup
>
>  config TINY_SHMEM

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 10/15] misc: Make *[ug]id16 support optional
  2005-11-11  8:35                   ` [PATCH 10/15] misc: Make *[ug]id16 " Matt Mackall
  2005-11-11  8:35                     ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Matt Mackall
@ 2005-11-11 10:22                     ` Geert Uytterhoeven
  2005-11-16 13:21                     ` Rob Landley
  2 siblings, 0 replies; 50+ messages in thread
From: Geert Uytterhoeven @ 2005-11-11 10:22 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Andrew Morton, Linux Kernel Development

On Fri, 11 Nov 2005, Matt Mackall wrote:
> Configurable 16-bit UID and friends support
> 
> This allows turning off the legacy 16 bit UID interfaces on embedded platforms.
> 
>    text    data     bss     dec     hex filename
> 3330172  529036  190556 4049764  3dcb64 vmlinux-baseline
> 3328268  529040  190556 4047864  3dc3f8 vmlinux
> 
> Signed-off-by: Matt Mackall <mpm@selenic.com>
> 
> Index: 2.6.14-misc/init/Kconfig
> ===================================================================
> --- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:21:02.000000000 -0800
> +++ 2.6.14-misc/init/Kconfig	2005-11-09 11:22:06.000000000 -0800
> @@ -364,7 +364,16 @@ config SYSENTER
>  	help
>  	  Disabling this feature removes sysenter handling as well as
>  	  vsyscall fixmaps.
> - 
> +
> +config UID16
> +	bool "Enable 16-bit UID system calls" if EMBEDDED
> +	depends !ALPHA && !PPC && !PPC64 && !PARISC && !V850 && !ARCH_S390X

Wouldn't it be better to explicitly list the architectures that support it?
I assume new architectures won't implement it anyway?

> +	depends !X86_64 || IA32_EMULATION
> +	depends !SPARC64 || SPARC32_COMPAT

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 11/15] misc: Allow dropping panic text strings from kernel image
  2005-11-11  8:35                     ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Matt Mackall
  2005-11-11  8:35                       ` [PATCH 12/15] misc: Configurable panic support Matt Mackall
@ 2005-11-11 11:03                       ` Geert Uytterhoeven
  2005-11-11 17:21                         ` Matt Mackall
  2005-11-12  6:06                       ` Andrew Morton
  2 siblings, 1 reply; 50+ messages in thread
From: Geert Uytterhoeven @ 2005-11-11 11:03 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Andrew Morton, Linux Kernel Development

On Fri, 11 Nov 2005, Matt Mackall wrote:
> Index: 2.6.14-misc/kernel/panic.c
> ===================================================================
> --- 2.6.14-misc.orig/kernel/panic.c	2005-11-09 11:27:15.000000000 -0800
> +++ 2.6.14-misc/kernel/panic.c	2005-11-10 23:26:41.000000000 -0800
> @@ -94,7 +106,11 @@ NORET_TYPE void panic(const char * fmt, 
>  	smp_send_stop();
>  #endif
>  
> +#ifdef CONFIG_FULL_PANIC
>  	notifier_call_chain(&panic_notifier_list, 0, buf);
> +#else
> +	notifier_call_chain(&panic_notifier_list, 0, "");
> +#endif

If you `#define buf ""' above, you can kill this #ifdef.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 15/15] misc: Configurable support for PCI serial ports
  2005-11-11  8:35                             ` [PATCH 15/15] misc: Configurable support for PCI serial ports Matt Mackall
@ 2005-11-11 11:03                               ` Geert Uytterhoeven
  2006-01-07 16:50                               ` Russell King
  1 sibling, 0 replies; 50+ messages in thread
From: Geert Uytterhoeven @ 2005-11-11 11:03 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Andrew Morton, Linux Kernel Development

On Fri, 11 Nov 2005, Matt Mackall wrote:
> --- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:27:26.000000000 -0800
> +++ 2.6.14-misc/init/Kconfig	2005-11-09 11:27:28.000000000 -0800
> @@ -473,6 +473,15 @@ config BOOTFLAG
>  	help
>  	  This enables support for the Simple Bootflag Specification.
>  
> +config SERIAL_PCI
> +	depends PCI && SERIAL_8250
> +	default y
> +	bool "Enable standard PCI serial support" if EMBEDDED
> +	help
> +	  This builds standard PCI serial support. You may be able to disable
> +          this feature if you are only need legacy serial support.
                                 ^^^

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 14/15] misc: Configurable number of supported IDE interfaces
  2005-11-11 10:14                             ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Bartlomiej Zolnierkiewicz
@ 2005-11-11 17:18                               ` Matt Mackall
  2005-11-11 17:34                                 ` Roman Zippel
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-11 17:18 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz; +Cc: Andrew Morton, linux-kernel

On Fri, Nov 11, 2005 at 11:14:08AM +0100, Bartlomiej Zolnierkiewicz wrote:
[top-posting adjusted]
> > This overrides the default limit (which may be set per arch with
> > CONFIG_IDE_MAX_HWIFS). This is the result of setting interfaces to 1:
>
> You are duplicating functionality of CONFIG_IDE_MAX_HWIFS,
> please find a way to use it for EMBEDDED.

It's intentional. The current CONFIG_IDE_MAX_HWIFS is a hidden
variable that sets a per architecture maximum. To the best of my
knowledge, there's no way to do, say:

   default 4 if ARCH_FOO
   default 1 if ARCH_BAR

..so I'm stuck with using two config symbols anyway.

I've thought about it, this is the best I could come up with. If you
can come up with something cleaner, I'm all ears.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 11/15] misc: Allow dropping panic text strings from kernel image
  2005-11-11 11:03                       ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Geert Uytterhoeven
@ 2005-11-11 17:21                         ` Matt Mackall
  0 siblings, 0 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11 17:21 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Andrew Morton, Linux Kernel Development

On Fri, Nov 11, 2005 at 12:03:25PM +0100, Geert Uytterhoeven wrote:
> On Fri, 11 Nov 2005, Matt Mackall wrote:
> > Index: 2.6.14-misc/kernel/panic.c
> > ===================================================================
> > --- 2.6.14-misc.orig/kernel/panic.c	2005-11-09 11:27:15.000000000 -0800
> > +++ 2.6.14-misc/kernel/panic.c	2005-11-10 23:26:41.000000000 -0800
> > @@ -94,7 +106,11 @@ NORET_TYPE void panic(const char * fmt, 
> >  	smp_send_stop();
> >  #endif
> >  
> > +#ifdef CONFIG_FULL_PANIC
> >  	notifier_call_chain(&panic_notifier_list, 0, buf);
> > +#else
> > +	notifier_call_chain(&panic_notifier_list, 0, "");
> > +#endif
> 
> If you `#define buf ""' above, you can kill this #ifdef.

I don't know that trading an ifdef for a define is an improvement.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 14/15] misc: Configurable number of supported IDE interfaces
  2005-11-11 17:18                               ` Matt Mackall
@ 2005-11-11 17:34                                 ` Roman Zippel
  2005-11-11 17:37                                   ` Matt Mackall
  0 siblings, 1 reply; 50+ messages in thread
From: Roman Zippel @ 2005-11-11 17:34 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Bartlomiej Zolnierkiewicz, Andrew Morton, linux-kernel

Hi,

On Fri, 11 Nov 2005, Matt Mackall wrote:

> It's intentional. The current CONFIG_IDE_MAX_HWIFS is a hidden
> variable that sets a per architecture maximum. To the best of my
> knowledge, there's no way to do, say:
> 
>    default 4 if ARCH_FOO
>    default 1 if ARCH_BAR
> 
> ..so I'm stuck with using two config symbols anyway.

Where is the problem? This should work fine.
With the latest kernel you can even use a dynamic range:

config IDE_HWIFS
	int "..."
	range 1 IDE_MAX_HWIFS

bye, Roman

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 14/15] misc: Configurable number of supported IDE interfaces
  2005-11-11 17:34                                 ` Roman Zippel
@ 2005-11-11 17:37                                   ` Matt Mackall
  2005-11-11 17:47                                     ` Matt Mackall
  2005-11-11 17:49                                     ` Roman Zippel
  0 siblings, 2 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11 17:37 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Bartlomiej Zolnierkiewicz, Andrew Morton, linux-kernel

On Fri, Nov 11, 2005 at 06:34:27PM +0100, Roman Zippel wrote:
> Hi,
> 
> On Fri, 11 Nov 2005, Matt Mackall wrote:
> 
> > It's intentional. The current CONFIG_IDE_MAX_HWIFS is a hidden
> > variable that sets a per architecture maximum. To the best of my
> > knowledge, there's no way to do, say:
> > 
> >    default 4 if ARCH_FOO
> >    default 1 if ARCH_BAR
> > 
> > ..so I'm stuck with using two config symbols anyway.
> 
> Where is the problem? This should work fine.

Does it? Didn't work when last I checked (which was a while ago).

> With the latest kernel you can even use a dynamic range:
> 
> config IDE_HWIFS
> 	int "..."
> 	range 1 IDE_MAX_HWIFS

But this suggests a good reason to hold on to both variables.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 14/15] misc: Configurable number of supported IDE interfaces
  2005-11-11 17:37                                   ` Matt Mackall
@ 2005-11-11 17:47                                     ` Matt Mackall
  2005-11-11 17:49                                     ` Roman Zippel
  1 sibling, 0 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-11 17:47 UTC (permalink / raw)
  To: Roman Zippel; +Cc: Bartlomiej Zolnierkiewicz, Andrew Morton, linux-kernel

On Fri, Nov 11, 2005 at 09:37:37AM -0800, Matt Mackall wrote:
> > With the latest kernel you can even use a dynamic range:
> > 
> > config IDE_HWIFS
> > 	int "..."
> > 	range 1 IDE_MAX_HWIFS
> 
> But this suggests a good reason to hold on to both variables.

..except that not all arches define it. In fact, only sh and Alpha do.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 14/15] misc: Configurable number of supported IDE interfaces
  2005-11-11 17:37                                   ` Matt Mackall
  2005-11-11 17:47                                     ` Matt Mackall
@ 2005-11-11 17:49                                     ` Roman Zippel
  1 sibling, 0 replies; 50+ messages in thread
From: Roman Zippel @ 2005-11-11 17:49 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Bartlomiej Zolnierkiewicz, Andrew Morton, linux-kernel

Hi,

On Fri, 11 Nov 2005, Matt Mackall wrote:

> > > It's intentional. The current CONFIG_IDE_MAX_HWIFS is a hidden
> > > variable that sets a per architecture maximum. To the best of my
> > > knowledge, there's no way to do, say:
> > > 
> > >    default 4 if ARCH_FOO
> > >    default 1 if ARCH_BAR
> > > 
> > > ..so I'm stuck with using two config symbols anyway.
> > 
> > Where is the problem? This should work fine.
> 
> Does it? Didn't work when last I checked (which was a while ago).

I don't know what you tried, for me it does.

> > With the latest kernel you can even use a dynamic range:
> > 
> > config IDE_HWIFS
> > 	int "..."
> > 	range 1 IDE_MAX_HWIFS
> 
> But this suggests a good reason to hold on to both variables.

You _can_ use it, I didn't say you have to use it.

bye, Roman

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 8/15] misc: Make vm86 support optional
  2005-11-11  8:35               ` [PATCH 8/15] misc: Make vm86 support optional Matt Mackall
  2005-11-11  8:35                 ` [PATCH 9/15] misc: Make sysenter " Matt Mackall
@ 2005-11-12  5:55                 ` Andrew Morton
  1 sibling, 0 replies; 50+ messages in thread
From: Andrew Morton @ 2005-11-12  5:55 UTC (permalink / raw)
  To: Matt Mackall; +Cc: linux-kernel

Matt Mackall <mpm@selenic.com> wrote:
>
> Make vm86 support optional
> 
> add/remove: 0/14 grow/shrink: 0/5 up/down: 0/-5221 (-5221)
> function                                     old     new   delta
> do_simd_coprocessor_error                    133     132      -1
> irqbits                                        4       -      -4
> irqbits_lock                                   8       -      -8
> release_thread                                72      52     -20
> do_debug                                     212     186     -26
> do_general_protection                        475     428     -47
> do_trap                                      196     140     -56
> release_vm86_irqs                            112       -    -112
> vm86_irqs                                    128       -    -128
> sys_vm86old                                  146       -    -146
> irq_handler                                  151       -    -151
> mark_screen_rdonly                           159       -    -159
> sys_vm86                                     199       -    -199
> handle_vm86_trap                             231       -    -231
> save_v86_state                               339       -    -339
> do_sys_vm86                                  379       -    -379
> do_vm86_irq_handling                         482       -    -482
> do_int                                       508       -    -508
> handle_vm86_fault                           2225       -   -2225


bix:/usr/src/25> grep '#ifdef' patches/tiny-make-vm86-support-optional.patch
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86
+#ifdef CONFIG_VM86

This one has a rather low bytes-to-ifdefs ratio.

I bet you can get most of these benefits by stubbing out handle_vm86_*()
and friends and perhaps setting VM_MASK to zero.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 9/15] misc: Make sysenter support optional
  2005-11-11  8:35                 ` [PATCH 9/15] misc: Make sysenter " Matt Mackall
  2005-11-11  8:35                   ` [PATCH 10/15] misc: Make *[ug]id16 " Matt Mackall
@ 2005-11-12  5:57                   ` Andrew Morton
  1 sibling, 0 replies; 50+ messages in thread
From: Andrew Morton @ 2005-11-12  5:57 UTC (permalink / raw)
  To: Matt Mackall; +Cc: linux-kernel

Matt Mackall <mpm@selenic.com> wrote:
>
> his adds configurable sysenter support on x86. This saves about 5k on
>  small systems.
> 
>     text    data     bss     dec     hex
>  3330172  529036  190556 4049764  3dcb64 baseline
>  3329604  524164  190556 4044324  3db624 sysenter
> 
>  $ bloat-o-meter vmlinux{-baseline,}
>  add/remove: 0/2 grow/shrink: 0/3 up/down: 0/-316 (-316)
>  function                                     old     new   delta
>  __restore_processor_state                     76      62     -14
>  identify_cpu                                 520     500     -20
>  create_elf_tables                            923     883     -40
>  sysenter_setup                               113       -    -113
>  enable_sep_cpu                               129       -    -129
> 
>  Most of the savings is not including the vsyscall DSO which doesn't
>  show up with bloat-o-meter:
> 
>  $ size arch/i386/kernel/vsyscall.o
>     text    data     bss     dec     hex filename
>        0    4826       0    4826    12da arch/i386/kernel/vsyscall.o
> 
>  $ nm arch/i386/kernel/vsyscall.o
>  00000961 T vsyscall_int80_end
>  00000000 T vsyscall_int80_start
>  000012da T vsyscall_sysenter_end
>  00000961 T vsyscall_sysenter_start

Similarly, stub out sysenter_setup() and enable_sep_cpu() and we lose a
bunch of ifdefs.


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 11/15] misc: Allow dropping panic text strings from kernel image
  2005-11-11  8:35                     ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Matt Mackall
  2005-11-11  8:35                       ` [PATCH 12/15] misc: Configurable panic support Matt Mackall
  2005-11-11 11:03                       ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Geert Uytterhoeven
@ 2005-11-12  6:06                       ` Andrew Morton
  2 siblings, 0 replies; 50+ messages in thread
From: Andrew Morton @ 2005-11-12  6:06 UTC (permalink / raw)
  To: Matt Mackall; +Cc: linux-kernel

Matt Mackall <mpm@selenic.com> wrote:
>
> Configurable support for panic strings

This does make a bit of a mess.  You could lose one ifdef by leaving `buf'
present in panic(), as

	static char buf[1];

But still, a bit more inventiveness is needed, IMO.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-11-11  8:35             ` [PATCH 7/15] misc: Make x86 doublefault handling optional Matt Mackall
  2005-11-11  8:35               ` [PATCH 8/15] misc: Make vm86 support optional Matt Mackall
@ 2005-11-13  3:30               ` Andi Kleen
  2005-11-16 13:13               ` Rob Landley
  2 siblings, 0 replies; 50+ messages in thread
From: Andi Kleen @ 2005-11-13  3:30 UTC (permalink / raw)
  To: Matt Mackall; +Cc: linux-kernel, akpm

Matt Mackall <mpm@selenic.com> writes:

> This adds configurable support for doublefault reporting on x86

I think that's a bad idea. Users will disable it and then 
send bad bug reports. Better bug reports are worth 4K.

-Andi

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 6/15] misc: Trim non-IPX builds
  2005-11-11  8:35           ` [PATCH 6/15] misc: Trim non-IPX builds Matt Mackall
  2005-11-11  8:35             ` [PATCH 7/15] misc: Make x86 doublefault handling optional Matt Mackall
@ 2005-11-14  1:57             ` Adrian Bunk
  2005-11-18  5:22               ` [2.6 patch] move some code to net/ipx/af_ipx.c Adrian Bunk
  1 sibling, 1 reply; 50+ messages in thread
From: Adrian Bunk @ 2005-11-14  1:57 UTC (permalink / raw)
  To: Matt Mackall, acme; +Cc: Andrew Morton, linux-kernel, netdev

On Fri, Nov 11, 2005 at 02:35:51AM -0600, Matt Mackall wrote:
> trivial: drop unused 802.3 code if we compile without IPX
> 
> (originally from http://wohnheim.fh-wedel.de/~joern/software/kernel/je/25/)
> 
> Signed-off-by: Matt Mackall <mpm@selenic.com>
> 
> Index: tiny/net/802/Makefile
> ===================================================================
> --- tiny.orig/net/802/Makefile	2005-03-15 00:24:59.000000000 -0600
> +++ tiny/net/802/Makefile	2005-03-15 00:25:48.000000000 -0600
> @@ -2,8 +2,6 @@
>  # Makefile for the Linux 802.x protocol layers.
>  #
>  
> -obj-y			:= p8023.o
> -
>  # Check the p8022 selections against net/core/Makefile.
>  obj-$(CONFIG_SYSCTL)	+= sysctl_net_802.o
>  obj-$(CONFIG_LLC)	+= p8022.o psnap.o
> @@ -11,5 +9,5 @@ obj-$(CONFIG_TR)	+= p8022.o psnap.o tr.o
>  obj-$(CONFIG_NET_FC)	+=                 fc.o
>  obj-$(CONFIG_FDDI)	+=                 fddi.o
>  obj-$(CONFIG_HIPPI)	+=                 hippi.o
> -obj-$(CONFIG_IPX)	+= p8022.o psnap.o
> +obj-$(CONFIG_IPX)	+= p8022.o psnap.o p8023.o
>  obj-$(CONFIG_ATALK)	+= p8022.o psnap.o

This patch isn't bad, but looking closer we could move the contents of 
p8023.c as well as the contents of at least p8022.c and pe2.c into 
af_ipx.c.

Is the contents of any of these three files expected to be used
outside IPX (closest candidate would be appletalk)?

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-11-11  8:35             ` [PATCH 7/15] misc: Make x86 doublefault handling optional Matt Mackall
  2005-11-11  8:35               ` [PATCH 8/15] misc: Make vm86 support optional Matt Mackall
  2005-11-13  3:30               ` [PATCH 7/15] misc: Make x86 doublefault handling optional Andi Kleen
@ 2005-11-16 13:13               ` Rob Landley
  2005-11-16 18:21                 ` Matt Mackall
  2 siblings, 1 reply; 50+ messages in thread
From: Rob Landley @ 2005-11-16 13:13 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Andrew Morton, linux-kernel

On Friday 11 November 2005 02:35, Matt Mackall wrote:
> This adds configurable support for doublefault reporting on x86
...
> +config DOUBLEFAULT
> + depends X86
> + default y if X86
> + bool "Enable doublefault exception handler" if EMBEDDED
> + help
> +          This option allows trapping of rare doublefault exceptions that
> +          would otherwise cause a system to silently reboot. Disabling
> this +          option saves about 4k.
> +

What causes doublefaults?  Is it triggerable from userspace, or is it 
something funky the kernel does?

Trying to figure out when it would be worth using this...

Rob

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 10/15] misc: Make *[ug]id16 support optional
  2005-11-11  8:35                   ` [PATCH 10/15] misc: Make *[ug]id16 " Matt Mackall
  2005-11-11  8:35                     ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Matt Mackall
  2005-11-11 10:22                     ` [PATCH 10/15] misc: Make *[ug]id16 support optional Geert Uytterhoeven
@ 2005-11-16 13:21                     ` Rob Landley
  2005-11-16 18:01                       ` Matt Mackall
  2 siblings, 1 reply; 50+ messages in thread
From: Rob Landley @ 2005-11-16 13:21 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Andrew Morton, linux-kernel

On Friday 11 November 2005 02:35, Matt Mackall wrote:
> Configurable 16-bit UID and friends support
>
> This allows turning off the legacy 16 bit UID interfaces on embedded
> platforms.

Is there an easy way to make sure our programs aren't using these?  (If I 
build a new system from source with busybox and uclibc, how do I know if I 
can disable this?)

The help text is highly unrevealing...

Rob

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 10/15] misc: Make *[ug]id16 support optional
  2005-11-16 13:21                     ` Rob Landley
@ 2005-11-16 18:01                       ` Matt Mackall
  2005-12-20 15:46                         ` Zdenek Pavlas
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-16 18:01 UTC (permalink / raw)
  To: Rob Landley; +Cc: Andrew Morton, linux-kernel

On Wed, Nov 16, 2005 at 07:21:30AM -0600, Rob Landley wrote:
> On Friday 11 November 2005 02:35, Matt Mackall wrote:
> > Configurable 16-bit UID and friends support
> >
> > This allows turning off the legacy 16 bit UID interfaces on embedded
> > platforms.
> 
> Is there an easy way to make sure our programs aren't using these?  (If I 
> build a new system from source with busybox and uclibc, how do I know if I 
> can disable this?)

These should only be found in legacy binaries, ie 5+ years old.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-11-16 13:13               ` Rob Landley
@ 2005-11-16 18:21                 ` Matt Mackall
  2005-11-16 19:21                   ` Scott Garfinkle
  0 siblings, 1 reply; 50+ messages in thread
From: Matt Mackall @ 2005-11-16 18:21 UTC (permalink / raw)
  To: Rob Landley; +Cc: Andrew Morton, linux-kernel

On Wed, Nov 16, 2005 at 07:13:07AM -0600, Rob Landley wrote:
> On Friday 11 November 2005 02:35, Matt Mackall wrote:
> > This adds configurable support for doublefault reporting on x86
> ...
> > +config DOUBLEFAULT
> > + depends X86
> > + default y if X86
> > + bool "Enable doublefault exception handler" if EMBEDDED
> > + help
> > +          This option allows trapping of rare doublefault exceptions that
> > +          would otherwise cause a system to silently reboot. Disabling
> > this +          option saves about 4k.
> > +
> 
> What causes doublefaults?  Is it triggerable from userspace, or is it 
> something funky the kernel does?

Double faults happen when a fault occurs while entering a fault
handler.

They're extremely rare in the field. In my experience, they only occur
when you've got hardware troubles or are hacking on the fault handling
code. They're rare enough that I showed one to akpm a few months back
and he claimed he'd never seen one before.

If a fault occurs while trying to invoke the double fault handler
(perhaps because you don't have one), you get a triple fault which
causes a reboot. 

> Trying to figure out when it would be worth using this...

Typical usage for this and similar options is in boxes that have no
useful logging or diagnostic facilities.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-11-16 18:21                 ` Matt Mackall
@ 2005-11-16 19:21                   ` Scott Garfinkle
  2005-11-16 19:45                     ` Adrian Bunk
  2005-12-12 10:36                     ` Ingo Molnar
  0 siblings, 2 replies; 50+ messages in thread
From: Scott Garfinkle @ 2005-11-16 19:21 UTC (permalink / raw)
  To: linux-kernel

I tend to agree with the spirit of Andi's comment -- disabling this
will (I think) make the rare time when it happens into something
impossible to debug without a new kernel and reproducing the problem.
Not being familiar with EMBEDDED, I am curious whether the savings is
critical.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-11-16 19:21                   ` Scott Garfinkle
@ 2005-11-16 19:45                     ` Adrian Bunk
  2005-12-12 10:36                     ` Ingo Molnar
  1 sibling, 0 replies; 50+ messages in thread
From: Adrian Bunk @ 2005-11-16 19:45 UTC (permalink / raw)
  To: Scott Garfinkle; +Cc: linux-kernel

On Wed, Nov 16, 2005 at 01:21:48PM -0600, Scott Garfinkle wrote:

> I tend to agree with the spirit of Andi's comment -- disabling this
> will (I think) make the rare time when it happens into something
> impossible to debug without a new kernel and reproducing the problem.
> Not being familiar with EMBEDDED, I am curious whether the savings is
> critical.

menuconfig EMBEDDED
        bool "Configure standard kernel features (for small systems)"
        help
          This option allows certain base kernel options and settings
          to be disabled or tweaked. This is for specialized
          environments which can tolerate a "non-standard" kernel.
          Only use this if you really know what you are doing.

So yes, Matt's patch does make sense.

cu
Adrian

BTW: Don't strip the Cc when replying to linux-kernel.

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 50+ messages in thread

* [2.6 patch] move some code to net/ipx/af_ipx.c
  2005-11-14  1:57             ` [PATCH 6/15] misc: Trim non-IPX builds Adrian Bunk
@ 2005-11-18  5:22               ` Adrian Bunk
  2005-11-18 17:27                 ` Matt Mackall
  2005-11-18 20:24                 ` Arnaldo Carvalho de Melo
  0 siblings, 2 replies; 50+ messages in thread
From: Adrian Bunk @ 2005-11-18  5:22 UTC (permalink / raw)
  To: Matt Mackall, acme; +Cc: Andrew Morton, linux-kernel, netdev

On Mon, Nov 14, 2005 at 02:57:07AM +0100, Adrian Bunk wrote:
> On Fri, Nov 11, 2005 at 02:35:51AM -0600, Matt Mackall wrote:
> > trivial: drop unused 802.3 code if we compile without IPX
> > 
> > (originally from http://wohnheim.fh-wedel.de/~joern/software/kernel/je/25/)
> > 
> > Signed-off-by: Matt Mackall <mpm@selenic.com>
> > 
> > Index: tiny/net/802/Makefile
> > ===================================================================
> > --- tiny.orig/net/802/Makefile	2005-03-15 00:24:59.000000000 -0600
> > +++ tiny/net/802/Makefile	2005-03-15 00:25:48.000000000 -0600
> > @@ -2,8 +2,6 @@
> >  # Makefile for the Linux 802.x protocol layers.
> >  #
> >  
> > -obj-y			:= p8023.o
> > -
> >  # Check the p8022 selections against net/core/Makefile.
> >  obj-$(CONFIG_SYSCTL)	+= sysctl_net_802.o
> >  obj-$(CONFIG_LLC)	+= p8022.o psnap.o
> > @@ -11,5 +9,5 @@ obj-$(CONFIG_TR)	+= p8022.o psnap.o tr.o
> >  obj-$(CONFIG_NET_FC)	+=                 fc.o
> >  obj-$(CONFIG_FDDI)	+=                 fddi.o
> >  obj-$(CONFIG_HIPPI)	+=                 hippi.o
> > -obj-$(CONFIG_IPX)	+= p8022.o psnap.o
> > +obj-$(CONFIG_IPX)	+= p8022.o psnap.o p8023.o
> >  obj-$(CONFIG_ATALK)	+= p8022.o psnap.o
> 
> This patch isn't bad, but looking closer we could move the contents of 
> p8023.c as well as the contents of at least p8022.c and pe2.c into 
> af_ipx.c.
> 
> Is the contents of any of these three files expected to be used
> outside IPX (closest candidate would be appletalk)?


Below is a patch implementing what I was thinking of.

cu
Adrian


<--  snip  -->


This patch moves some code only used in this file to net/ipx/af_ipx.c .


Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 include/net/p8022.h   |   13 -----
 net/802/Makefile      |   17 ++-----
 net/802/p8022.c       |   66 ---------------------------
 net/802/p8023.c       |   61 -------------------------
 net/8021q/vlan.c      |    1 
 net/8021q/vlan_dev.c  |    1 
 net/ethernet/Makefile |    2 
 net/ethernet/pe2.c    |   39 ----------------
 net/ipx/af_ipx.c      |  102 ++++++++++++++++++++++++++++++++++++++++--
 9 files changed, 106 insertions(+), 196 deletions(-)

--- linux-2.6.15-rc1-mm1-full/net/802/Makefile.old	2005-11-18 02:14:35.000000000 +0100
+++ linux-2.6.15-rc1-mm1-full/net/802/Makefile	2005-11-18 02:15:06.000000000 +0100
@@ -2,14 +2,11 @@
 # Makefile for the Linux 802.x protocol layers.
 #
 
-obj-y			:= p8023.o
-
-# Check the p8022 selections against net/core/Makefile.
 obj-$(CONFIG_SYSCTL)	+= sysctl_net_802.o
-obj-$(CONFIG_LLC)	+= p8022.o psnap.o
-obj-$(CONFIG_TR)	+= p8022.o psnap.o tr.o sysctl_net_802.o
-obj-$(CONFIG_NET_FC)	+=                 fc.o
-obj-$(CONFIG_FDDI)	+=                 fddi.o
-obj-$(CONFIG_HIPPI)	+=                 hippi.o
-obj-$(CONFIG_IPX)	+= p8022.o psnap.o
-obj-$(CONFIG_ATALK)	+= p8022.o psnap.o
+obj-$(CONFIG_LLC)	+= psnap.o
+obj-$(CONFIG_TR)	+= psnap.o tr.o sysctl_net_802.o
+obj-$(CONFIG_NET_FC)	+=         fc.o
+obj-$(CONFIG_FDDI)	+=         fddi.o
+obj-$(CONFIG_HIPPI)	+=         hippi.o
+obj-$(CONFIG_IPX)	+= psnap.o
+obj-$(CONFIG_ATALK)	+= psnap.o
--- linux-2.6.15-rc1-mm1-full/net/ethernet/Makefile.old	2005-11-18 02:15:17.000000000 +0100
+++ linux-2.6.15-rc1-mm1-full/net/ethernet/Makefile	2005-11-18 02:15:22.000000000 +0100
@@ -4,5 +4,3 @@
 
 obj-y					+= eth.o
 obj-$(CONFIG_SYSCTL)			+= sysctl_net_ether.o
-obj-$(subst m,y,$(CONFIG_IPX))		+= pe2.o
-obj-$(subst m,y,$(CONFIG_ATALK))	+= pe2.o
--- linux-2.6.15-rc1-mm1-full/net/8021q/vlan.c.old	2005-11-18 02:19:40.000000000 +0100
+++ linux-2.6.15-rc1-mm1-full/net/8021q/vlan.c	2005-11-18 02:19:46.000000000 +0100
@@ -26,7 +26,6 @@
 #include <linux/mm.h>
 #include <linux/in.h>
 #include <linux/init.h>
-#include <net/p8022.h>
 #include <net/arp.h>
 #include <linux/rtnetlink.h>
 #include <linux/notifier.h>
--- linux-2.6.15-rc1-mm1-full/net/8021q/vlan_dev.c.old	2005-11-18 02:19:55.000000000 +0100
+++ linux-2.6.15-rc1-mm1-full/net/8021q/vlan_dev.c	2005-11-18 02:19:58.000000000 +0100
@@ -29,7 +29,6 @@
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <net/datalink.h>
-#include <net/p8022.h>
 #include <net/arp.h>
 
 #include "vlan.h"
--- linux-2.6.15-rc1-mm1-full/net/ipx/af_ipx.c.old	2005-11-18 02:17:00.000000000 +0100
+++ linux-2.6.15-rc1-mm1-full/net/ipx/af_ipx.c	2005-11-18 02:26:01.000000000 +0100
@@ -48,10 +48,10 @@
 #include <linux/termios.h>
 
 #include <net/ipx.h>
-#include <net/p8022.h>
 #include <net/psnap.h>
 #include <net/sock.h>
 #include <net/tcp_states.h>
+#include <net/llc.h>
 
 #include <asm/uaccess.h>
 
@@ -1939,8 +1939,104 @@
 	.notifier_call	= ipxitf_device_event,
 };
 
-extern struct datalink_proto *make_EII_client(void);
-extern void destroy_EII_client(struct datalink_proto *);
+static int p8022_request(struct datalink_proto *dl, struct sk_buff *skb,
+			 unsigned char *dest)
+{
+	llc_build_and_send_ui_pkt(dl->sap, skb, dest, dl->sap->laddr.lsap);
+	return 0;
+}
+
+static struct datalink_proto *register_8022_client(unsigned char type,
+					    int (*func)(struct sk_buff *skb,
+							struct net_device *dev,
+							struct packet_type *pt,
+							struct net_device *orig_dev))
+{
+	struct datalink_proto *proto;
+
+	proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
+	if (proto) {
+		proto->type[0]		= type;
+		proto->header_length	= 3;
+		proto->request		= p8022_request;
+		proto->sap = llc_sap_open(type, func);
+		if (!proto->sap) {
+			kfree(proto);
+			proto = NULL;
+		}
+	}
+	return proto;
+}
+
+static void unregister_8022_client(struct datalink_proto *proto)
+{
+	llc_sap_put(proto->sap);
+	kfree(proto);
+}
+
+/*
+ *	Place an 802.3 header on a packet. The driver will do the mac
+ *	addresses, we just need to give it the buffer length.
+ */
+static int p8023_request(struct datalink_proto *dl,
+			 struct sk_buff *skb, unsigned char *dest_node)
+{
+	struct net_device *dev = skb->dev;
+
+	dev->hard_header(skb, dev, ETH_P_802_3, dest_node, NULL, skb->len);
+	return dev_queue_xmit(skb);
+}
+
+/*
+ *	Create an 802.3 client. Note there can be only one 802.3 client
+ */
+static struct datalink_proto *make_8023_client(void)
+{
+	struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
+
+	if (proto) {
+		proto->header_length = 0;
+		proto->request	     = p8023_request;
+	}
+	return proto;
+}
+
+/*
+ *	Destroy the 802.3 client.
+ */
+static void destroy_8023_client(struct datalink_proto *dl)
+{
+	kfree(dl);
+}
+
+static int pEII_request(struct datalink_proto *dl,
+			struct sk_buff *skb, unsigned char *dest_node)
+{
+	struct net_device *dev = skb->dev;
+
+	skb->protocol = htons(ETH_P_IPX);
+	if (dev->hard_header)
+		dev->hard_header(skb, dev, ETH_P_IPX,
+				 dest_node, NULL, skb->len);
+	return dev_queue_xmit(skb);
+}
+
+static struct datalink_proto *make_EII_client(void)
+{
+	struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
+
+	if (proto) {
+		proto->header_length = 0;
+		proto->request = pEII_request;
+	}
+
+	return proto;
+}
+
+static void destroy_EII_client(struct datalink_proto *dl)
+{
+	kfree(dl);
+}
 
 static unsigned char ipx_8022_type = 0xE0;
 static unsigned char ipx_snap_id[5] = { 0x0, 0x0, 0x0, 0x81, 0x37 };
--- linux-2.6.15-rc1-mm1-full/include/net/p8022.h	2005-10-28 02:02:08.000000000 +0200
+++ /dev/null	2005-11-08 19:07:57.000000000 +0100
@@ -1,13 +0,0 @@
-#ifndef _NET_P8022_H
-#define _NET_P8022_H
-extern struct datalink_proto *
-	register_8022_client(unsigned char type,
-			     int (*func)(struct sk_buff *skb,
-					 struct net_device *dev,
-					 struct packet_type *pt,
-					 struct net_device *orig_dev));
-extern void unregister_8022_client(struct datalink_proto *proto);
-
-extern struct datalink_proto *make_8023_client(void);
-extern void destroy_8023_client(struct datalink_proto *dl);
-#endif
--- linux-2.6.15-rc1-mm1-full/net/ethernet/pe2.c	2005-11-17 21:30:56.000000000 +0100
+++ /dev/null	2005-11-08 19:07:57.000000000 +0100
@@ -1,39 +0,0 @@
-#include <linux/in.h>
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/netdevice.h>
-#include <linux/skbuff.h>
-
-#include <net/datalink.h>
-
-static int pEII_request(struct datalink_proto *dl,
-			struct sk_buff *skb, unsigned char *dest_node)
-{
-	struct net_device *dev = skb->dev;
-
-	skb->protocol = htons(ETH_P_IPX);
-	if (dev->hard_header)
-		dev->hard_header(skb, dev, ETH_P_IPX,
-				 dest_node, NULL, skb->len);
-	return dev_queue_xmit(skb);
-}
-
-struct datalink_proto *make_EII_client(void)
-{
-	struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
-
-	if (proto) {
-		proto->header_length = 0;
-		proto->request = pEII_request;
-	}
-
-	return proto;
-}
-
-void destroy_EII_client(struct datalink_proto *dl)
-{
-	kfree(dl);
-}
-
-EXPORT_SYMBOL(destroy_EII_client);
-EXPORT_SYMBOL(make_EII_client);
--- linux-2.6.15-rc1-mm1-full/net/802/p8022.c	2005-10-28 02:02:08.000000000 +0200
+++ /dev/null	2005-11-08 19:07:57.000000000 +0100
@@ -1,66 +0,0 @@
-/*
- *	NET3:	Support for 802.2 demultiplexing off Ethernet (Token ring
- *		is kept separate see p8022tr.c)
- *		This program is free software; you can redistribute it and/or
- *		modify it under the terms of the GNU General Public License
- *		as published by the Free Software Foundation; either version
- *		2 of the License, or (at your option) any later version.
- *
- *		Demultiplex 802.2 encoded protocols. We match the entry by the
- *		SSAP/DSAP pair and then deliver to the registered datalink that
- *		matches. The control byte is ignored and handling of such items
- *		is up to the routine passed the frame.
- *
- *		Unlike the 802.3 datalink we have a list of 802.2 entries as
- *		there are multiple protocols to demux. The list is currently
- *		short (3 or 4 entries at most). The current demux assumes this.
- */
-#include <linux/module.h>
-#include <linux/netdevice.h>
-#include <linux/skbuff.h>
-#include <net/datalink.h>
-#include <linux/mm.h>
-#include <linux/in.h>
-#include <linux/init.h>
-#include <net/llc.h>
-#include <net/p8022.h>
-
-static int p8022_request(struct datalink_proto *dl, struct sk_buff *skb,
-			 unsigned char *dest)
-{
-	llc_build_and_send_ui_pkt(dl->sap, skb, dest, dl->sap->laddr.lsap);
-	return 0;
-}
-
-struct datalink_proto *register_8022_client(unsigned char type,
-					    int (*func)(struct sk_buff *skb,
-							struct net_device *dev,
-							struct packet_type *pt,
-							struct net_device *orig_dev))
-{
-	struct datalink_proto *proto;
-
-	proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
-	if (proto) {
-		proto->type[0]		= type;
-		proto->header_length	= 3;
-		proto->request		= p8022_request;
-		proto->sap = llc_sap_open(type, func);
-		if (!proto->sap) {
-			kfree(proto);
-			proto = NULL;
-		}
-	}
-	return proto;
-}
-
-void unregister_8022_client(struct datalink_proto *proto)
-{
-	llc_sap_put(proto->sap);
-	kfree(proto);
-}
-
-EXPORT_SYMBOL(register_8022_client);
-EXPORT_SYMBOL(unregister_8022_client);
-
-MODULE_LICENSE("GPL");
--- linux-2.6.15-rc1-mm1-full/net/802/p8023.c	2005-11-17 21:30:55.000000000 +0100
+++ /dev/null	2005-11-08 19:07:57.000000000 +0100
@@ -1,61 +0,0 @@
-/*
- *	NET3:	802.3 data link hooks used for IPX 802.3
- *
- *	This program is free software; you can redistribute it and/or
- *	modify it under the terms of the GNU General Public License
- *	as published by the Free Software Foundation; either version
- *	2 of the License, or (at your option) any later version.
- *
- *	802.3 isn't really a protocol data link layer. Some old IPX stuff
- *	uses it however. Note that there is only one 802.3 protocol layer
- *	in the system. We don't currently support different protocols
- *	running raw 802.3 on different devices. Thankfully nobody else
- *	has done anything like the old IPX.
- */
-
-#include <linux/in.h>
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/netdevice.h>
-#include <linux/skbuff.h>
-
-#include <net/datalink.h>
-#include <net/p8022.h>
-
-/*
- *	Place an 802.3 header on a packet. The driver will do the mac
- *	addresses, we just need to give it the buffer length.
- */
-static int p8023_request(struct datalink_proto *dl,
-			 struct sk_buff *skb, unsigned char *dest_node)
-{
-	struct net_device *dev = skb->dev;
-
-	dev->hard_header(skb, dev, ETH_P_802_3, dest_node, NULL, skb->len);
-	return dev_queue_xmit(skb);
-}
-
-/*
- *	Create an 802.3 client. Note there can be only one 802.3 client
- */
-struct datalink_proto *make_8023_client(void)
-{
-	struct datalink_proto *proto = kmalloc(sizeof(*proto), GFP_ATOMIC);
-
-	if (proto) {
-		proto->header_length = 0;
-		proto->request	     = p8023_request;
-	}
-	return proto;
-}
-
-/*
- *	Destroy the 802.3 client.
- */
-void destroy_8023_client(struct datalink_proto *dl)
-{
-	kfree(dl);
-}
-
-EXPORT_SYMBOL(destroy_8023_client);
-EXPORT_SYMBOL(make_8023_client);


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [2.6 patch] move some code to net/ipx/af_ipx.c
  2005-11-18  5:22               ` [2.6 patch] move some code to net/ipx/af_ipx.c Adrian Bunk
@ 2005-11-18 17:27                 ` Matt Mackall
  2005-11-18 20:24                 ` Arnaldo Carvalho de Melo
  1 sibling, 0 replies; 50+ messages in thread
From: Matt Mackall @ 2005-11-18 17:27 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: acme, Andrew Morton, linux-kernel, netdev

On Fri, Nov 18, 2005 at 06:22:52AM +0100, Adrian Bunk wrote:
> > 
> > This patch isn't bad, but looking closer we could move the contents of 
> > p8023.c as well as the contents of at least p8022.c and pe2.c into 
> > af_ipx.c.
> > 
> > Is the contents of any of these three files expected to be used
> > outside IPX (closest candidate would be appletalk)?
> 
> Below is a patch implementing what I was thinking of.

Looks reasonable.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [2.6 patch] move some code to net/ipx/af_ipx.c
  2005-11-18  5:22               ` [2.6 patch] move some code to net/ipx/af_ipx.c Adrian Bunk
  2005-11-18 17:27                 ` Matt Mackall
@ 2005-11-18 20:24                 ` Arnaldo Carvalho de Melo
  2005-12-05 21:35                   ` Adrian Bunk
  1 sibling, 1 reply; 50+ messages in thread
From: Arnaldo Carvalho de Melo @ 2005-11-18 20:24 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Matt Mackall, acme, Andrew Morton, linux-kernel, netdev

On 11/18/05, Adrian Bunk <bunk@stusta.de> wrote:
> On Mon, Nov 14, 2005 at 02:57:07AM +0100, Adrian Bunk wrote:
> > On Fri, Nov 11, 2005 at 02:35:51AM -0600, Matt Mackall wrote:
> > > trivial: drop unused 802.3 code if we compile without IPX
> > >
> > > (originally from http://wohnheim.fh-wedel.de/~joern/software/kernel/je/25/)

Thanks Adrian, from a quick glance looks OK, I'll review it later
today to see if everything is fine wrt appletalk, tr, etc.

- Arnaldo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [2.6 patch] move some code to net/ipx/af_ipx.c
  2005-11-18 20:24                 ` Arnaldo Carvalho de Melo
@ 2005-12-05 21:35                   ` Adrian Bunk
  0 siblings, 0 replies; 50+ messages in thread
From: Adrian Bunk @ 2005-12-05 21:35 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Matt Mackall, acme, Andrew Morton, linux-kernel, netdev

On Fri, Nov 18, 2005 at 06:24:10PM -0200, Arnaldo Carvalho de Melo wrote:
> On 11/18/05, Adrian Bunk <bunk@stusta.de> wrote:
> > On Mon, Nov 14, 2005 at 02:57:07AM +0100, Adrian Bunk wrote:
> > > On Fri, Nov 11, 2005 at 02:35:51AM -0600, Matt Mackall wrote:
> > > > trivial: drop unused 802.3 code if we compile without IPX
> > > >
> > > > (originally from http://wohnheim.fh-wedel.de/~joern/software/kernel/je/25/)
> 
> Thanks Adrian, from a quick glance looks OK, I'll review it later
> today to see if everything is fine wrt appletalk, tr, etc.

Any result from your review?

> - Arnaldo

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-11-16 19:21                   ` Scott Garfinkle
  2005-11-16 19:45                     ` Adrian Bunk
@ 2005-12-12 10:36                     ` Ingo Molnar
  2005-12-12 16:22                       ` Andi Kleen
  1 sibling, 1 reply; 50+ messages in thread
From: Ingo Molnar @ 2005-12-12 10:36 UTC (permalink / raw)
  To: Scott Garfinkle; +Cc: linux-kernel, Matt Mackall, Andrew Morton


* Scott Garfinkle <scotteglist@gmail.com> wrote:

> I tend to agree with the spirit of Andi's comment -- disabling this 
> will (I think) make the rare time when it happens into something 
> impossible to debug without a new kernel and reproducing the problem.

in the past couple of years i saw double-faults at a rate of perhaps 
once a year - and i frequently hack lowlevel glue code! So the 
usefulness of this code in the field, and especially on an embedded 
platforms, is extremely limited.

in fact, i've experienced triple-faults (== spontaneous reboots) to be 
at least 10 times more frequent than double-faults! I.e. _if_ your 
kernel (or hardware) is screwed up to the degree that it would 
double-fault, it will much more likely also triple-fault.

IIRC we added the double-fault handler to debug the PAE code originally.  
Now years down the road, making it configurable-out if EMBEDDED makes 
lots of sense.

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-12-12 16:22                       ` Andi Kleen
@ 2005-12-12 15:32                         ` Matt Mackall
  2005-12-13  8:39                         ` Ingo Molnar
  1 sibling, 0 replies; 50+ messages in thread
From: Matt Mackall @ 2005-12-12 15:32 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Ingo Molnar, linux-kernel, Andrew Morton

On Mon, Dec 12, 2005 at 09:22:42AM -0700, Andi Kleen wrote:
> Ingo Molnar <mingo@elte.hu> writes:
> > 
> > in the past couple of years i saw double-faults at a rate of perhaps 
> > once a year - and i frequently hack lowlevel glue code! So the 
> > usefulness of this code in the field, and especially on an embedded 
> > platforms, is extremely limited.
> 
> If it only saves an hour or developer time on some bug report
> it has already justified its value.
> 
> Also to really save memory there are much better areas
> of attack than this relatively slim code.

Such as? Odds are good I've already attacked them, but I'd be happy
for some new ideas.

I think anything easily disabled larger than 1k is a pretty decent
target in a minimal config.

> -Andi (who sees double faults more often) 

You will *not* see them on a platform with no console and no printk,
hence CONFIG_EMBEDDED. Can we be done with this yet?

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-12-12 10:36                     ` Ingo Molnar
@ 2005-12-12 16:22                       ` Andi Kleen
  2005-12-12 15:32                         ` Matt Mackall
  2005-12-13  8:39                         ` Ingo Molnar
  0 siblings, 2 replies; 50+ messages in thread
From: Andi Kleen @ 2005-12-12 16:22 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel, Matt Mackall, Andrew Morton

Ingo Molnar <mingo@elte.hu> writes:
> 
> in the past couple of years i saw double-faults at a rate of perhaps 
> once a year - and i frequently hack lowlevel glue code! So the 
> usefulness of this code in the field, and especially on an embedded 
> platforms, is extremely limited.

If it only saves an hour or developer time on some bug report
it has already justified its value.

Also to really save memory there are much better areas
of attack than this relatively slim code.

> in fact, i've experienced triple-faults (== spontaneous reboots) to be 
> at least 10 times more frequent than double-faults! I.e. _if_ your 
> kernel (or hardware) is screwed up to the degree that it would 
> double-fault, it will much more likely also triple-fault.

A common case where this doesn't hold is breaking the [er]sp 
in kernel code.

-Andi (who sees double faults more often) 

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 7/15] misc: Make x86 doublefault handling optional
  2005-12-12 16:22                       ` Andi Kleen
  2005-12-12 15:32                         ` Matt Mackall
@ 2005-12-13  8:39                         ` Ingo Molnar
  1 sibling, 0 replies; 50+ messages in thread
From: Ingo Molnar @ 2005-12-13  8:39 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel, Matt Mackall, Andrew Morton


* Andi Kleen <ak@suse.de> wrote:

> Ingo Molnar <mingo@elte.hu> writes:
> > 
> > in the past couple of years i saw double-faults at a rate of perhaps 
> > once a year - and i frequently hack lowlevel glue code! So the 
> > usefulness of this code in the field, and especially on an embedded 
> > platforms, is extremely limited.
> 
> If it only saves an hour or developer time on some bug report it has 
> already justified its value.

yes, of course. Are you arguing that all debugging options should be 
made unconditional? Matt's patch simply makes double-fault-debugging 
optional. More than that, it will still be unconditionally enabled 
unless CONFIG_EMBEDDED is specified.

> Also to really save memory there are much better areas of attack than 
> this relatively slim code.

the dynamics of memory reduction patches is just like the dynamics of 
scalability patches: we have to attack on _every front_ and even then 
progress will appear to be very slow. We almost never reject a 
scalability micro-optimization just because there might be larger fruits 
hanging.

> > in fact, i've experienced triple-faults (== spontaneous reboots) to 
> > be at least 10 times more frequent than double-faults! I.e. _if_ 
> > your kernel (or hardware) is screwed up to the degree that it would 
> > double-fault, it will much more likely also triple-fault.
> 
> A common case where this doesn't hold is breaking the [er]sp in kernel 
> code.
> 
> -Andi (who sees double faults more often)

yeah. Still, i see no problem with making it optional. (as long as it 
does not result in significant uglification of the code - which clearly 
is not a problem for this particular patch.)

	Ingo

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 10/15] misc: Make *[ug]id16 support optional
  2005-11-16 18:01                       ` Matt Mackall
@ 2005-12-20 15:46                         ` Zdenek Pavlas
  2005-12-20 16:50                           ` Rob Landley
  0 siblings, 1 reply; 50+ messages in thread
From: Zdenek Pavlas @ 2005-12-20 15:46 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Rob Landley, Andrew Morton, linux-kernel

Matt Mackall wrote:

> On Wed, Nov 16, 2005 at 07:21:30AM -0600, Rob Landley wrote:
>>Is there an easy way to make sure our programs aren't using these?  (If I 
>>build a new system from source with busybox and uclibc, how do I know if I 
>>can disable this?)
> 
> These should only be found in legacy binaries, ie 5+ years old.

Not true, unfortunately.  To make uClibc work with linux-tiny
and [ug]id16 disabled one has to apply patches like this.
uClibc probably assumes 16 bit __kernel_[ug]id_t and uses
legacy syscalls exclusively.

--- uClibc-0.9.28/libc/sysdeps/linux/common/chown.c
+++ uclibc/libc/sysdeps/linux/common/chown.c
@@ -10,16 +10,11 @@
  #include "syscalls.h"
  #include <unistd.h>

-#define __NR___syscall_chown __NR_chown
+#define __NR___syscall_chown __NR_chown32
  static inline _syscall3(int, __syscall_chown, const char *, path,
                 __kernel_uid_t, owner, __kernel_gid_t, group);

  int chown(const char *path, uid_t owner, gid_t group)
  {
-       if (((owner + 1) > (uid_t) ((__kernel_uid_t) - 1U))
-               || ((group + 1) > (gid_t) ((__kernel_gid_t) - 1U))) {
-               __set_errno(EINVAL);
-               return -1;
-       }
         return (__syscall_chown(path, owner, group));
  }

-- 
Zdenek Pavlas
NEXTRA Czech Republic s.r.o.  http://www.nextra.cz

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 10/15] misc: Make *[ug]id16 support optional
  2005-12-20 15:46                         ` Zdenek Pavlas
@ 2005-12-20 16:50                           ` Rob Landley
  2005-12-21 17:30                             ` Zdenek Pavlas
  0 siblings, 1 reply; 50+ messages in thread
From: Rob Landley @ 2005-12-20 16:50 UTC (permalink / raw)
  To: Zdenek Pavlas, uclibc; +Cc: Matt Mackall, Andrew Morton, linux-kernel

On Tuesday 20 December 2005 09:46, Zdenek Pavlas wrote:
> Matt Mackall wrote:
> > On Wed, Nov 16, 2005 at 07:21:30AM -0600, Rob Landley wrote:
> >>Is there an easy way to make sure our programs aren't using these?  (If I
> >>build a new system from source with busybox and uclibc, how do I know if
> >> I can disable this?)
> >
> > These should only be found in legacy binaries, ie 5+ years old.
>
> Not true, unfortunately.  To make uClibc work with linux-tiny
> and [ug]id16 disabled one has to apply patches like this.
> uClibc probably assumes 16 bit __kernel_[ug]id_t and uses
> legacy syscalls exclusively.

They've been fixing that.  Working with linux-tiny is definitely something 
uClibc is interested in.  When you say "patches like this", do you have a 
complete list or is there something we could grep for?

> --- uClibc-0.9.28/libc/sysdeps/linux/common/chown.c
> +++ uclibc/libc/sysdeps/linux/common/chown.c
> @@ -10,16 +10,11 @@
>   #include "syscalls.h"
>   #include <unistd.h>
>
> -#define __NR___syscall_chown __NR_chown
> +#define __NR___syscall_chown __NR_chown32
>   static inline _syscall3(int, __syscall_chown, const char *, path,
>                  __kernel_uid_t, owner, __kernel_gid_t, group);
>
>   int chown(const char *path, uid_t owner, gid_t group)
>   {
> -       if (((owner + 1) > (uid_t) ((__kernel_uid_t) - 1U))
> -               || ((group + 1) > (gid_t) ((__kernel_gid_t) - 1U))) {
> -               __set_errno(EINVAL);
> -               return -1;
> -       }
>          return (__syscall_chown(path, owner, group));
>   }

Rob
-- 
Steve Ballmer: Innovation!  Inigo Montoya: You keep using that word.
I do not think it means what you think it means.

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 10/15] misc: Make *[ug]id16 support optional
  2005-12-20 16:50                           ` Rob Landley
@ 2005-12-21 17:30                             ` Zdenek Pavlas
  0 siblings, 0 replies; 50+ messages in thread
From: Zdenek Pavlas @ 2005-12-21 17:30 UTC (permalink / raw)
  To: Rob Landley; +Cc: uclibc, Matt Mackall, Andrew Morton, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 510 bytes --]

Rob Landley wrote:

> They've been fixing that.  Working with linux-tiny is definitely something 
> uClibc is interested in.  When you say "patches like this", do you have a 
> complete list or is there something we could grep for?

I've made linux-tiny + uClibc + busybox to work with following patch.
Very lightly tested, not sure it's correct or complete, but at least
stuff like 'su', 'chown' etc started to work.

-- 
Zdenek Pavlas
Application Developer
NEXTRA Czech Republic s.r.o.  http://www.nextra.cz

[-- Attachment #2: uClibc-no-ugid16.patch --]
[-- Type: text/plain, Size: 5201 bytes --]

--- uClibc-0.9.28/libc/sysdeps/linux/common/chown.c
+++ uclibc/libc/sysdeps/linux/common/chown.c
@@ -10,16 +10,11 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#define __NR___syscall_chown __NR_chown
+#define __NR___syscall_chown __NR_chown32
 static inline _syscall3(int, __syscall_chown, const char *, path,
 		__kernel_uid_t, owner, __kernel_gid_t, group);
 
 int chown(const char *path, uid_t owner, gid_t group)
 {
-	if (((owner + 1) > (uid_t) ((__kernel_uid_t) - 1U))
-		|| ((group + 1) > (gid_t) ((__kernel_gid_t) - 1U))) {
-		__set_errno(EINVAL);
-		return -1;
-	}
 	return (__syscall_chown(path, owner, group));
 }
--- uClibc-0.9.28/libc/sysdeps/linux/common/fchown.c
+++ uclibc/libc/sysdeps/linux/common/fchown.c
@@ -10,16 +10,11 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#define __NR___syscall_fchown __NR_fchown
+#define __NR___syscall_fchown __NR_fchown32
 static inline _syscall3(int, __syscall_fchown, int, fd,
 		__kernel_uid_t, owner, __kernel_gid_t, group);
 
 int fchown(int fd, uid_t owner, gid_t group)
 {
-	if (((owner + 1) > (uid_t) ((__kernel_uid_t) - 1U))
-		|| ((group + 1) > (gid_t) ((__kernel_gid_t) - 1U))) {
-		__set_errno(EINVAL);
-		return -1;
-	}
 	return (__syscall_fchown(fd, owner, group));
 }
--- uClibc-0.9.28/libc/sysdeps/linux/common/getegid.c
+++ uclibc/libc/sysdeps/linux/common/getegid.c
@@ -11,7 +11,7 @@
 #include <unistd.h>
 
 #ifdef	__NR_getegid
-#define __NR___syscall_getegid __NR_getegid
+#define __NR___syscall_getegid __NR_getegid32
 static inline _syscall0(int, __syscall_getegid);
 gid_t getegid(void)
 {
--- uClibc-0.9.28/libc/sysdeps/linux/common/geteuid.c
+++ uclibc/libc/sysdeps/linux/common/geteuid.c
@@ -11,7 +11,7 @@
 #include <unistd.h>
 
 #ifdef	__NR_geteuid
-#define __NR___syscall_geteuid __NR_geteuid
+#define __NR___syscall_geteuid __NR_geteuid32
 static inline _syscall0(int, __syscall_geteuid);
 uid_t geteuid(void)
 {
--- uClibc-0.9.28/libc/sysdeps/linux/common/getgid.c
+++ uclibc/libc/sysdeps/linux/common/getgid.c
@@ -10,7 +10,7 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#define __NR___syscall_getgid __NR_getgid
+#define __NR___syscall_getgid __NR_getgid32
 #if defined (__alpha__)
 #define __NR_getgid     __NR_getxgid
 #endif
--- uClibc-0.9.28/libc/sysdeps/linux/common/getuid.c
+++ uclibc/libc/sysdeps/linux/common/getuid.c
@@ -13,7 +13,7 @@
 #if defined (__alpha__)
 #define __NR_getuid     __NR_getxuid
 #endif
-#define __NR___syscall_getuid __NR_getuid
+#define __NR___syscall_getuid __NR_getuid32
 
 static inline _syscall0(int, __syscall_getuid);
 
--- uClibc-0.9.28/libc/sysdeps/linux/common/lchown.c
+++ uclibc/libc/sysdeps/linux/common/lchown.c
@@ -10,16 +10,11 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#define __NR___syscall_lchown __NR_lchown
+#define __NR___syscall_lchown __NR_lchown32
 static inline _syscall3(int, __syscall_lchown, const char *, path,
 		__kernel_uid_t, owner, __kernel_gid_t, group);
 
 int lchown(const char *path, uid_t owner, gid_t group)
 {
-	if (((owner + 1) > (uid_t) ((__kernel_uid_t) - 1U))
-		|| ((group + 1) > (gid_t) ((__kernel_gid_t) - 1U))) {
-		__set_errno(EINVAL);
-		return -1;
-	}
 	return __syscall_lchown(path, owner, group);
 }
--- uClibc-0.9.28/libc/sysdeps/linux/common/setegid.c
+++ uclibc/libc/sysdeps/linux/common/setegid.c
@@ -10,12 +10,6 @@
 {
     int result;
 
-    if (gid == (gid_t) ~0)
-    {
-	__set_errno (EINVAL);
-	return -1;
-    }
-
 #ifdef __NR_setresgid
     result = setresgid(-1, gid, -1);
     if (result == -1 && errno == ENOSYS)
--- uClibc-0.9.28/libc/sysdeps/linux/common/seteuid.c
+++ uclibc/libc/sysdeps/linux/common/seteuid.c
@@ -10,12 +10,6 @@
 {
     int result;
 
-    if (uid == (uid_t) ~0)
-    {
-	__set_errno (EINVAL);
-	return -1;
-    }
-
 #ifdef __NR_setresuid
     result = setresuid(-1, uid, -1);
     if (result == -1 && errno == ENOSYS)
--- uClibc-0.9.28/libc/sysdeps/linux/common/setgid.c
+++ uclibc/libc/sysdeps/linux/common/setgid.c
@@ -10,14 +10,10 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#define __NR___syscall_setgid __NR_setgid
+#define __NR___syscall_setgid __NR_setgid32
 static inline _syscall1(int, __syscall_setgid, __kernel_gid_t, gid);
 
 int setgid(gid_t gid)
 {
-	if (gid == (gid_t) ~ 0 || gid != (gid_t) ((__kernel_gid_t) gid)) {
-		__set_errno(EINVAL);
-		return -1;
-	}
 	return (__syscall_setgid(gid));
 }
--- uClibc-0.9.28/libc/sysdeps/linux/common/setgroups.c
+++ uclibc/libc/sysdeps/linux/common/setgroups.c
@@ -11,7 +11,7 @@
 #include <unistd.h>
 #include <grp.h>
 
-#define __NR___syscall_setgroups __NR_setgroups
+#define __NR___syscall_setgroups __NR_setgroups32
 static inline _syscall2(int, __syscall_setgroups,
 		size_t, size, const __kernel_gid_t *, list);
 
--- uClibc-0.9.28/libc/sysdeps/linux/common/setuid.c
+++ uclibc/libc/sysdeps/linux/common/setuid.c
@@ -10,14 +10,10 @@
 #include "syscalls.h"
 #include <unistd.h>
 
-#define __NR___syscall_setuid __NR_setuid
+#define __NR___syscall_setuid __NR_setuid32
 static inline _syscall1(int, __syscall_setuid, __kernel_uid_t, uid);
 
 int setuid(uid_t uid)
 {
-	if (uid == (uid_t) ~ 0 || uid != (uid_t) ((__kernel_uid_t) uid)) {
-		__set_errno(EINVAL);
-		return -1;
-	}
 	return (__syscall_setuid(uid));
 }

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 15/15] misc: Configurable support for PCI serial ports
  2005-11-11  8:35                             ` [PATCH 15/15] misc: Configurable support for PCI serial ports Matt Mackall
  2005-11-11 11:03                               ` Geert Uytterhoeven
@ 2006-01-07 16:50                               ` Russell King
  2006-01-08  2:26                                 ` Matt Mackall
  1 sibling, 1 reply; 50+ messages in thread
From: Russell King @ 2006-01-07 16:50 UTC (permalink / raw)
  To: Matt Mackall; +Cc: Andrew Morton, linux-kernel

On Fri, Nov 11, 2005 at 02:35:57AM -0600, Matt Mackall wrote:
> Configurable support for PCI serial devices
> 
> This allows disabling support for _non_-legacy PCI serial devices.

Why is the config for SERIAL_PCI in init/Kconfig rather than
drivers/serial/Kconfig ?

> --- 2.6.14-misc.orig/init/Kconfig	2005-11-09 11:27:26.000000000 -0800
> +++ 2.6.14-misc/init/Kconfig	2005-11-09 11:27:28.000000000 -0800
> @@ -473,6 +473,15 @@ config BOOTFLAG
>  	help
>  	  This enables support for the Simple Bootflag Specification.
>  
> +config SERIAL_PCI
> +	depends PCI && SERIAL_8250
> +	default y
> +	bool "Enable standard PCI serial support" if EMBEDDED
> +	help
> +	  This builds standard PCI serial support. You may be able to disable
> +          this feature if you are only need legacy serial support.
> +	  Saves about 9K.
> +
>  endmenu		# General setup
>  
>  config TINY_SHMEM

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core

^ permalink raw reply	[flat|nested] 50+ messages in thread

* Re: [PATCH 15/15] misc: Configurable support for PCI serial ports
  2006-01-07 16:50                               ` Russell King
@ 2006-01-08  2:26                                 ` Matt Mackall
  0 siblings, 0 replies; 50+ messages in thread
From: Matt Mackall @ 2006-01-08  2:26 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel

On Sat, Jan 07, 2006 at 04:50:28PM +0000, Russell King wrote:
> On Fri, Nov 11, 2005 at 02:35:57AM -0600, Matt Mackall wrote:
> > Configurable support for PCI serial devices
> > 
> > This allows disabling support for _non_-legacy PCI serial devices.
> 
> Why is the config for SERIAL_PCI in init/Kconfig rather than
> drivers/serial/Kconfig ?

No good reason, will fix.

-- 
Mathematics is the supreme nostalgia of our time.

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2006-01-08  2:33 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-11  8:35 [PATCH 0/15] misc: Miscellaneous bits from -tiny Matt Mackall
2005-11-11  8:35 ` [PATCH 1/15] misc: Add bloat-o-meter to scripts Matt Mackall
2005-11-11  8:35   ` [PATCH 2/15] misc: Uninline some namei.c functions Matt Mackall
2005-11-11  8:35     ` [PATCH 3/15] misc: Uninline some open.c functions Matt Mackall
2005-11-11  8:35       ` [PATCH 4/15] misc: Uninline some inode.c functions Matt Mackall
2005-11-11  8:35         ` [PATCH 5/15] misc: Uninline some fslocks.c functions Matt Mackall
2005-11-11  8:35           ` [PATCH 6/15] misc: Trim non-IPX builds Matt Mackall
2005-11-11  8:35             ` [PATCH 7/15] misc: Make x86 doublefault handling optional Matt Mackall
2005-11-11  8:35               ` [PATCH 8/15] misc: Make vm86 support optional Matt Mackall
2005-11-11  8:35                 ` [PATCH 9/15] misc: Make sysenter " Matt Mackall
2005-11-11  8:35                   ` [PATCH 10/15] misc: Make *[ug]id16 " Matt Mackall
2005-11-11  8:35                     ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Matt Mackall
2005-11-11  8:35                       ` [PATCH 12/15] misc: Configurable panic support Matt Mackall
2005-11-11  8:35                         ` [PATCH 13/15] misc: Configure ELF core dump support Matt Mackall
2005-11-11  8:35                           ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Matt Mackall
2005-11-11  8:35                             ` [PATCH 15/15] misc: Configurable support for PCI serial ports Matt Mackall
2005-11-11 11:03                               ` Geert Uytterhoeven
2006-01-07 16:50                               ` Russell King
2006-01-08  2:26                                 ` Matt Mackall
2005-11-11 10:14                             ` [PATCH 14/15] misc: Configurable number of supported IDE interfaces Bartlomiej Zolnierkiewicz
2005-11-11 17:18                               ` Matt Mackall
2005-11-11 17:34                                 ` Roman Zippel
2005-11-11 17:37                                   ` Matt Mackall
2005-11-11 17:47                                     ` Matt Mackall
2005-11-11 17:49                                     ` Roman Zippel
2005-11-11 11:03                       ` [PATCH 11/15] misc: Allow dropping panic text strings from kernel image Geert Uytterhoeven
2005-11-11 17:21                         ` Matt Mackall
2005-11-12  6:06                       ` Andrew Morton
2005-11-11 10:22                     ` [PATCH 10/15] misc: Make *[ug]id16 support optional Geert Uytterhoeven
2005-11-16 13:21                     ` Rob Landley
2005-11-16 18:01                       ` Matt Mackall
2005-12-20 15:46                         ` Zdenek Pavlas
2005-12-20 16:50                           ` Rob Landley
2005-12-21 17:30                             ` Zdenek Pavlas
2005-11-12  5:57                   ` [PATCH 9/15] misc: Make sysenter " Andrew Morton
2005-11-12  5:55                 ` [PATCH 8/15] misc: Make vm86 " Andrew Morton
2005-11-13  3:30               ` [PATCH 7/15] misc: Make x86 doublefault handling optional Andi Kleen
2005-11-16 13:13               ` Rob Landley
2005-11-16 18:21                 ` Matt Mackall
2005-11-16 19:21                   ` Scott Garfinkle
2005-11-16 19:45                     ` Adrian Bunk
2005-12-12 10:36                     ` Ingo Molnar
2005-12-12 16:22                       ` Andi Kleen
2005-12-12 15:32                         ` Matt Mackall
2005-12-13  8:39                         ` Ingo Molnar
2005-11-14  1:57             ` [PATCH 6/15] misc: Trim non-IPX builds Adrian Bunk
2005-11-18  5:22               ` [2.6 patch] move some code to net/ipx/af_ipx.c Adrian Bunk
2005-11-18 17:27                 ` Matt Mackall
2005-11-18 20:24                 ` Arnaldo Carvalho de Melo
2005-12-05 21:35                   ` Adrian Bunk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.