From 094cbe1ca2fa28ae845ef80da6dad02e90cfbe04 Mon Sep 17 00:00:00 2001 From: Will Newton Date: Wed, 23 Apr 2008 15:28:37 +0100 Subject: [PATCH] Introduce ARCH_HAS_SYS_SYSFS Kconfig symbol. This symbol should be defined by all arches that implement the sysfs(2) system call. Arches that do not wish to implement this legacy system call can save a little bit of kernel code size. The only current architecture to benefit from this is blackfin, but in the future other arches may wish to do this as well. --- arch/alpha/Kconfig | 4 ++++ arch/arm/Kconfig | 4 ++++ arch/avr32/Kconfig | 4 ++++ arch/cris/Kconfig | 4 ++++ arch/frv/Kconfig | 4 ++++ arch/h8300/Kconfig | 4 ++++ arch/ia64/Kconfig | 4 ++++ arch/m32r/Kconfig | 4 ++++ arch/m68k/Kconfig | 4 ++++ arch/m68knommu/Kconfig | 4 ++++ arch/mips/Kconfig | 4 ++++ arch/mn10300/Kconfig | 4 ++++ arch/parisc/Kconfig | 4 ++++ arch/powerpc/Kconfig | 4 ++++ arch/ppc/Kconfig | 4 ++++ arch/s390/Kconfig | 4 ++++ arch/sh/Kconfig | 4 ++++ arch/sparc/Kconfig | 4 ++++ arch/sparc64/Kconfig | 4 ++++ arch/um/Kconfig | 4 ++++ arch/v850/Kconfig | 4 ++++ arch/x86/Kconfig | 4 ++++ arch/xtensa/Kconfig | 4 ++++ fs/filesystems.c | 4 ++++ kernel/sys_ni.c | 1 + 25 files changed, 97 insertions(+), 0 deletions(-) diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 729cdbd..9b7b4d2 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig @@ -71,6 +71,10 @@ config AUTO_IRQ_AFFINITY config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + source "init/Kconfig" diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4039a13..c806808 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -137,6 +137,10 @@ config ZONE_DMA bool default y +config ARCH_HAS_SYS_SYSFS + bool + default y + config GENERIC_ISA_DMA bool diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 28e0caf..2f9f01d 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig @@ -66,6 +66,10 @@ config GENERIC_BUG def_bool y depends on BUG +config ARCH_HAS_SYS_SYSFS + bool + default y + source "init/Kconfig" menu "System Type and features" diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 9389d38..7aec04b 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig @@ -32,6 +32,10 @@ config ARCH_HAS_ILOG2_U64 bool default n +config ARCH_HAS_SYS_SYSFS + bool + default y + config GENERIC_FIND_NEXT_BIT bool default y diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index a5aac1b..f08fb9a 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig @@ -58,6 +58,10 @@ config ARCH_HAS_ILOG2_U64 bool default y +config ARCH_HAS_SYS_SYSFS + bool + default y + config HZ int default 1000 diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 085dc6e..8184c99 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig @@ -69,6 +69,10 @@ config TIME_LOW_RES config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + config NO_IOPORT def_bool y diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 8fa3faf..513d960 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -111,6 +111,10 @@ config AUDIT_ARCH bool default y +config ARCH_HAS_SYS_SYSFS + bool + default y + choice prompt "System type" default IA64_GENERIC diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index de153de..79d6f79 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig @@ -39,6 +39,10 @@ config NO_DMA config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + config HZ int default 100 diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 65db226..26859b1 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -56,6 +56,10 @@ config NO_DMA config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + config HZ int default 100 diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index 07eb4c4..d9240a6 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig @@ -68,6 +68,10 @@ config NO_IOPORT config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + source "init/Kconfig" menu "Processor type and features" diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 8724ed3..0716726 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -752,6 +752,10 @@ config GENERIC_HARDIRQS_NO__DO_IRQ bool default n +config ARCH_HAS_SYS_SYSFS + bool + default y + # # Select some configuration options automatically based on user selections. # diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 6a6409a..3666f5f 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig @@ -63,6 +63,10 @@ config GENERIC_HARDIRQS config HOTPLUG_CPU def_bool n +config ARCH_HAS_SYS_SYSFS + bool + default y + config HZ int default 1000 diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index bc7a19d..c6f5139 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -91,6 +91,10 @@ config ARCH_MAY_HAVE_PC_FDC depends on BROKEN default y +config ARCH_HAS_SYS_SYSFS + bool + default y + source "init/Kconfig" diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 1189d8d..21803f2 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -194,6 +194,10 @@ config PPC_OF_PLATFORM_PCI depends on PPC64 # not supported on 32 bits yet default n +config ARCH_HAS_SYS_SYSFS + bool + default y + source "init/Kconfig" source "arch/powerpc/sysdev/Kconfig" diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig index abc877f..0156eb2 100644 --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig @@ -72,6 +72,10 @@ config GENERIC_BUG default y depends on BUG +config ARCH_HAS_SYS_SYSFS + bool + default y + source "init/Kconfig" menu "Processor" diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 1831833..c04b232 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -55,6 +55,10 @@ config GENERIC_LOCKBREAK default y depends on SMP && PREEMPT +config ARCH_HAS_SYS_SYSFS + bool + default y + mainmenu "Linux Kernel Configuration" config S390 diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 8d2cd1d..66b74dc 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -93,6 +93,10 @@ config ARCH_SUPPORTS_AOUT config IO_TRAPPED bool +config ARCH_HAS_SYS_SYSFS + bool + default y + source "init/Kconfig" menu "System type" diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index c40343c..25c17e3 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -30,6 +30,10 @@ config OF config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + config HZ int default 100 diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index 463d1be..9f5d1ed 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig @@ -90,6 +90,10 @@ config GENERIC_HARDIRQS_NO__DO_IRQ config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + choice prompt "Kernel page size" default SPARC64_PAGE_SIZE_8KB diff --git a/arch/um/Kconfig b/arch/um/Kconfig index dba8e05..be0cb93 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -68,6 +68,10 @@ config IRQ_RELEASE_METHOD bool default y +config ARCH_HAS_SYS_SYSFS + bool + default y + config HZ int default 100 diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig index 4379f43..b54d1f4 100644 --- a/arch/v850/Kconfig +++ b/arch/v850/Kconfig @@ -56,6 +56,10 @@ config ARCH_HAS_ILOG2_U64 config ARCH_SUPPORTS_AOUT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + # Turn off some random 386 crap that can affect device config config ISA bool diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 6c70fed..e0b830b 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -155,6 +155,10 @@ config GENERIC_PENDING_IRQ depends on GENERIC_HARDIRQS && SMP default y +config ARCH_HAS_SYS_SYSFS + bool + default y + config X86_SMP bool depends on SMP && ((X86_32 && !X86_VOYAGER) || X86_64) diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 9fc8551..7834ad7 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -50,6 +50,10 @@ config ARCH_HAS_ILOG2_U64 config NO_IOPORT def_bool y +config ARCH_HAS_SYS_SYSFS + bool + default y + config HZ int default 100 diff --git a/fs/filesystems.c b/fs/filesystems.c index f37f872..f6e1567 100644 --- a/fs/filesystems.c +++ b/fs/filesystems.c @@ -118,6 +118,8 @@ int unregister_filesystem(struct file_system_type * fs) EXPORT_SYMBOL(unregister_filesystem); +#ifdef CONFIG_ARCH_HAS_SYS_SYSFS + static int fs_index(const char __user * __name) { struct file_system_type * tmp; @@ -197,6 +199,8 @@ asmlinkage long sys_sysfs(int option, unsigned long arg1, unsigned long arg2) return retval; } +#endif + int get_filesystem_list(char * buf) { int len = 0; diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c index 5b9b467..866ff4b 100644 --- a/kernel/sys_ni.c +++ b/kernel/sys_ni.c @@ -121,6 +121,7 @@ cond_syscall(sys_vm86old); cond_syscall(sys_vm86); cond_syscall(compat_sys_ipc); cond_syscall(compat_sys_sysctl); +cond_syscall(sys_sysfs); /* arch-specific weak syscall entries */ cond_syscall(sys_pciconfig_read); -- 1.5.3.5