浏览代码

Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6

* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] update default configuration.
  [S390] Kconfig: no wireless on s390.
  [S390] Kconfig: use common Kconfig files for s390.
  [S390] Kconfig: common config options for s390.
  [S390] Kconfig: unwanted menus for s390.
  [S390] Kconfig: menus with depends on HAS_IOMEM.
  [S390] Kconfig: refine depends statements.
  [S390] Avoid compile warning.
  [S390] qdio: re-add lost perf_stats.tl_runs change in qdio_handle_pci
  [S390] Avoid sparse warnings.
  [S390] dasd: Fix modular build.
  [S390] monreader inlining cleanup.
  [S390] cio: Make some structures and a function static.
  [S390] cio: Get rid of _ccw_device_get_device_number().
  [S390] fix subsystem removal fallout
Linus Torvalds 18 年之前
父节点
当前提交
fc0b60f1dc
共有 68 个文件被更改,包括 321 次插入312 次删除
  1. 16 33
      arch/s390/Kconfig
  2. 128 106
      arch/s390/defconfig
  3. 1 1
      arch/s390/hypfs/inode.c
  4. 13 13
      arch/s390/kernel/ipl.c
  5. 4 1
      arch/s390/mm/fault.c
  6. 1 0
      drivers/ata/Kconfig
  7. 1 0
      drivers/auxdisplay/Kconfig
  8. 2 2
      drivers/block/Kconfig
  9. 8 3
      drivers/char/Kconfig
  10. 2 0
      drivers/char/ipmi/Kconfig
  11. 1 0
      drivers/char/tpm/Kconfig
  12. 22 0
      drivers/crypto/Kconfig
  13. 1 0
      drivers/dma/Kconfig
  14. 1 0
      drivers/edac/Kconfig
  15. 1 0
      drivers/hwmon/Kconfig
  16. 1 0
      drivers/i2c/Kconfig
  17. 1 0
      drivers/ide/Kconfig
  18. 1 0
      drivers/ieee1394/Kconfig
  19. 1 0
      drivers/infiniband/Kconfig
  20. 1 0
      drivers/input/Kconfig
  21. 1 0
      drivers/isdn/Kconfig
  22. 1 0
      drivers/kvm/Kconfig
  23. 1 0
      drivers/leds/Kconfig
  24. 1 0
      drivers/media/Kconfig
  25. 1 0
      drivers/message/fusion/Kconfig
  26. 1 0
      drivers/message/i2o/Kconfig
  27. 1 0
      drivers/mfd/Kconfig
  28. 1 0
      drivers/mmc/Kconfig
  29. 1 0
      drivers/mtd/Kconfig
  30. 1 0
      drivers/net/phy/Kconfig
  31. 1 0
      drivers/net/wireless/Kconfig
  32. 1 0
      drivers/parport/Kconfig
  33. 1 0
      drivers/pnp/Kconfig
  34. 1 0
      drivers/rtc/Kconfig
  35. 4 7
      drivers/s390/block/Kconfig
  36. 5 3
      drivers/s390/block/dasd.c
  37. 6 4
      drivers/s390/block/dasd_diag.c
  38. 3 3
      drivers/s390/block/dasd_eckd.c
  39. 3 1
      drivers/s390/block/dasd_ioctl.c
  40. 19 92
      drivers/s390/char/Kconfig
  41. 7 7
      drivers/s390/char/monreader.c
  42. 3 2
      drivers/s390/char/raw3270.c
  43. 3 0
      drivers/s390/char/sclp.h
  44. 4 4
      drivers/s390/char/sclp_sdias.c
  45. 3 6
      drivers/s390/char/zcore.c
  46. 1 2
      drivers/s390/cio/css.c
  47. 0 2
      drivers/s390/cio/css.h
  48. 2 2
      drivers/s390/cio/device.c
  49. 11 0
      drivers/s390/cio/device_ops.c
  50. 1 0
      drivers/s390/cio/qdio.c
  51. 4 4
      drivers/s390/net/Kconfig
  52. 2 2
      drivers/s390/net/qeth_mpc.c
  53. 3 5
      drivers/s390/scsi/zfcp_aux.c
  54. 1 1
      drivers/s390/scsi/zfcp_dbf.c
  55. 1 0
      drivers/serial/Kconfig
  56. 1 0
      drivers/spi/Kconfig
  57. 1 0
      drivers/telephony/Kconfig
  58. 1 0
      drivers/usb/Kconfig
  59. 1 0
      drivers/video/Kconfig
  60. 1 0
      drivers/w1/Kconfig
  61. 2 1
      include/asm-s390/ccwdev.h
  62. 1 1
      include/asm-s390/ipl.h
  63. 1 1
      include/asm-s390/param.h
  64. 1 0
      net/Kconfig
  65. 1 1
      net/ax25/Kconfig
  66. 1 1
      net/bluetooth/Kconfig
  67. 1 1
      net/irda/Kconfig
  68. 1 0
      sound/Kconfig

+ 16 - 33
arch/s390/Kconfig

@@ -4,27 +4,23 @@
 #
 #
 
 
 config MMU
 config MMU
-	bool
-	default y
+	def_bool y
 
 
 config ZONE_DMA
 config ZONE_DMA
 	def_bool y
 	def_bool y
 	depends on 64BIT
 	depends on 64BIT
 
 
 config LOCKDEP_SUPPORT
 config LOCKDEP_SUPPORT
-	bool
-	default y
+	def_bool y
 
 
 config STACKTRACE_SUPPORT
 config STACKTRACE_SUPPORT
-	bool
-	default y
+	def_bool y
 
 
 config RWSEM_GENERIC_SPINLOCK
 config RWSEM_GENERIC_SPINLOCK
 	bool
 	bool
 
 
 config RWSEM_XCHGADD_ALGORITHM
 config RWSEM_XCHGADD_ALGORITHM
-	bool
-	default y
+	def_bool y
 
 
 config ARCH_HAS_ILOG2_U32
 config ARCH_HAS_ILOG2_U32
 	bool
 	bool
@@ -35,8 +31,7 @@ config ARCH_HAS_ILOG2_U64
 	default n
 	default n
 
 
 config GENERIC_HWEIGHT
 config GENERIC_HWEIGHT
-	bool
-	default y
+	def_bool y
 
 
 config GENERIC_TIME
 config GENERIC_TIME
 	def_bool y
 	def_bool y
@@ -55,8 +50,7 @@ config NO_DMA
 mainmenu "Linux Kernel Configuration"
 mainmenu "Linux Kernel Configuration"
 
 
 config S390
 config S390
-	bool
-	default y
+	def_bool y
 
 
 source "init/Kconfig"
 source "init/Kconfig"
 
 
@@ -280,6 +274,10 @@ config WARN_STACK_SIZE
 config ARCH_POPULATES_NODE_MAP
 config ARCH_POPULATES_NODE_MAP
 	def_bool y
 	def_bool y
 
 
+comment "Kernel preemption"
+
+source "kernel/Kconfig.preempt"
+
 source "mm/Kconfig"
 source "mm/Kconfig"
 
 
 config HOLES_IN_ZONE
 config HOLES_IN_ZONE
@@ -320,17 +318,6 @@ config QDIO_DEBUG
 
 
 comment "Misc"
 comment "Misc"
 
 
-config PREEMPT
-	bool "Preemptible Kernel"
-	help
-	  This option reduces the latency of the kernel when reacting to
-	  real-time or interactive events by allowing a low priority process to
-	  be preempted even if it is in kernel mode executing a system call.
-	  This allows applications to run more reliably even when the system is
-	  under load.
-
-	  Say N if you are unsure.
-
 config IPL
 config IPL
 	bool "Builtin IPL record support"
 	bool "Builtin IPL record support"
 	help
 	help
@@ -488,6 +475,8 @@ config APPLDATA_NET_SUM
 	  This can also be compiled as a module, which will be called
 	  This can also be compiled as a module, which will be called
 	  appldata_net_sum.o.
 	  appldata_net_sum.o.
 
 
+source kernel/Kconfig.hz
+
 config NO_IDLE_HZ
 config NO_IDLE_HZ
 	bool "No HZ timer ticks in idle"
 	bool "No HZ timer ticks in idle"
 	help
 	help
@@ -535,18 +524,12 @@ endmenu
 source "net/Kconfig"
 source "net/Kconfig"
 
 
 config PCMCIA
 config PCMCIA
-	bool
-	default n
-
-source "drivers/base/Kconfig"
+	def_bool n
 
 
-source "drivers/connector/Kconfig"
-
-source "drivers/scsi/Kconfig"
-
-source "drivers/s390/Kconfig"
+config CCW
+	def_bool y
 
 
-source "drivers/net/Kconfig"
+source "drivers/Kconfig"
 
 
 source "fs/Kconfig"
 source "fs/Kconfig"
 
 

+ 128 - 106
arch/s390/defconfig

@@ -1,7 +1,7 @@
 #
 #
 # Automatically generated make config: don't edit
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-rc1
-# Wed Feb 21 10:44:30 2007
+# Linux kernel version: 2.6.21
+# Thu May 10 15:18:19 2007
 #
 #
 CONFIG_MMU=y
 CONFIG_MMU=y
 CONFIG_ZONE_DMA=y
 CONFIG_ZONE_DMA=y
@@ -14,6 +14,7 @@ CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_BUG=y
 CONFIG_NO_IOMEM=y
 CONFIG_NO_IOMEM=y
+CONFIG_NO_DMA=y
 CONFIG_S390=y
 CONFIG_S390=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 
 
@@ -41,9 +42,11 @@ CONFIG_AUDIT=y
 # CONFIG_AUDITSYSCALL is not set
 # CONFIG_AUDITSYSCALL is not set
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=17
 # CONFIG_CPUSETS is not set
 # CONFIG_CPUSETS is not set
 CONFIG_SYSFS_DEPRECATED=y
 CONFIG_SYSFS_DEPRECATED=y
 # CONFIG_RELAY is not set
 # CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_INITRAMFS_SOURCE=""
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_SYSCTL=y
@@ -60,12 +63,14 @@ CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
 CONFIG_EPOLL=y
 CONFIG_SHMEM=y
 CONFIG_SHMEM=y
-CONFIG_SLAB=y
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
 CONFIG_RT_MUTEXES=y
 CONFIG_RT_MUTEXES=y
 # CONFIG_TINY_SHMEM is not set
 # CONFIG_TINY_SHMEM is not set
 CONFIG_BASE_SMALL=0
 CONFIG_BASE_SMALL=0
-# CONFIG_SLOB is not set
 
 
 #
 #
 # Loadable module support
 # Loadable module support
@@ -128,6 +133,14 @@ CONFIG_CHECK_STACK=y
 CONFIG_STACK_GUARD=256
 CONFIG_STACK_GUARD=256
 # CONFIG_WARN_STACK is not set
 # CONFIG_WARN_STACK is not set
 CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_ARCH_POPULATES_NODE_MAP=y
+
+#
+# Kernel preemption
+#
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_BKL=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
 CONFIG_FLATMEM_MANUAL=y
 # CONFIG_DISCONTIGMEM_MANUAL is not set
 # CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -150,7 +163,6 @@ CONFIG_QDIO=y
 #
 #
 # Misc
 # Misc
 #
 #
-CONFIG_PREEMPT=y
 CONFIG_IPL=y
 CONFIG_IPL=y
 # CONFIG_IPL_TAPE is not set
 # CONFIG_IPL_TAPE is not set
 CONFIG_IPL_VM=y
 CONFIG_IPL_VM=y
@@ -163,6 +175,11 @@ CONFIG_PFAULT=y
 CONFIG_VIRT_TIMER=y
 CONFIG_VIRT_TIMER=y
 CONFIG_VIRT_CPU_ACCOUNTING=y
 CONFIG_VIRT_CPU_ACCOUNTING=y
 # CONFIG_APPLDATA_BASE is not set
 # CONFIG_APPLDATA_BASE is not set
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
 CONFIG_NO_IDLE_HZ=y
 CONFIG_NO_IDLE_HZ=y
 CONFIG_NO_IDLE_HZ_INIT=y
 CONFIG_NO_IDLE_HZ_INIT=y
 CONFIG_S390_HYPFS_FS=y
 CONFIG_S390_HYPFS_FS=y
@@ -177,7 +194,6 @@ CONFIG_NET=y
 #
 #
 # Networking options
 # Networking options
 #
 #
-# CONFIG_NETDEBUG is not set
 CONFIG_PACKET=y
 CONFIG_PACKET=y
 # CONFIG_PACKET_MMAP is not set
 # CONFIG_PACKET_MMAP is not set
 CONFIG_UNIX=y
 CONFIG_UNIX=y
@@ -216,6 +232,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 CONFIG_IPV6=y
 CONFIG_IPV6=y
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_PRIVACY is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
 # CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
 # CONFIG_INET6_AH is not set
 # CONFIG_INET6_AH is not set
 # CONFIG_INET6_ESP is not set
 # CONFIG_INET6_ESP is not set
 # CONFIG_INET6_IPCOMP is not set
 # CONFIG_INET6_IPCOMP is not set
@@ -240,7 +257,12 @@ CONFIG_IPV6_SIT=y
 #
 #
 # SCTP Configuration (EXPERIMENTAL)
 # SCTP Configuration (EXPERIMENTAL)
 #
 #
-# CONFIG_IP_SCTP is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
 
 
 #
 #
 # TIPC Configuration (EXPERIMENTAL)
 # TIPC Configuration (EXPERIMENTAL)
@@ -263,9 +285,6 @@ CONFIG_IPV6_SIT=y
 #
 #
 CONFIG_NET_SCHED=y
 CONFIG_NET_SCHED=y
 CONFIG_NET_SCH_FIFO=y
 CONFIG_NET_SCH_FIFO=y
-CONFIG_NET_SCH_CLK_JIFFIES=y
-# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
-# CONFIG_NET_SCH_CLK_CPU is not set
 
 
 #
 #
 # Queueing/Scheduling
 # Queueing/Scheduling
@@ -308,11 +327,14 @@ CONFIG_NET_ESTIMATOR=y
 #
 #
 # CONFIG_NET_PKTGEN is not set
 # CONFIG_NET_PKTGEN is not set
 # CONFIG_NET_TCPPROBE is not set
 # CONFIG_NET_TCPPROBE is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_IEEE80211 is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_RFKILL is not set
 # CONFIG_PCMCIA is not set
 # CONFIG_PCMCIA is not set
+CONFIG_CCW=y
+
+#
+# Device Drivers
+#
 
 
 #
 #
 # Generic Driver Options
 # Generic Driver Options
@@ -329,6 +351,37 @@ CONFIG_SYS_HYPERVISOR=y
 #
 #
 # CONFIG_CONNECTOR is not set
 # CONFIG_CONNECTOR is not set
 
 
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# S/390 block device drivers
+#
+CONFIG_BLK_DEV_XPRAM=m
+# CONFIG_DCSSBLK is not set
+CONFIG_DASD=y
+CONFIG_DASD_PROFILE=y
+CONFIG_DASD_ECKD=y
+CONFIG_DASD_FBA=y
+CONFIG_DASD_DIAG=y
+CONFIG_DASD_EER=y
+
+#
+# Misc devices
+#
+# CONFIG_BLINK is not set
+
 #
 #
 # SCSI device support
 # SCSI device support
 #
 #
@@ -356,6 +409,7 @@ CONFIG_SCSI_MULTI_LUN=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_CONSTANTS=y
 CONFIG_SCSI_LOGGING=y
 CONFIG_SCSI_LOGGING=y
 CONFIG_SCSI_SCAN_ASYNC=y
 CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_WAIT_SCAN=m
 
 
 #
 #
 # SCSI Transports
 # SCSI Transports
@@ -372,34 +426,6 @@ CONFIG_SCSI_FC_ATTRS=y
 # CONFIG_ISCSI_TCP is not set
 # CONFIG_ISCSI_TCP is not set
 # CONFIG_SCSI_DEBUG is not set
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_ZFCP=y
 CONFIG_ZFCP=y
-CONFIG_CCW=y
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-CONFIG_BLK_DEV_INITRD=y
-# CONFIG_CDROM_PKTCDVD is not set
-
-#
-# S/390 block device drivers
-#
-CONFIG_BLK_DEV_XPRAM=m
-# CONFIG_DCSSBLK is not set
-CONFIG_DASD=y
-CONFIG_DASD_PROFILE=y
-CONFIG_DASD_ECKD=y
-CONFIG_DASD_FBA=y
-CONFIG_DASD_DIAG=y
-CONFIG_DASD_EER=y
-# CONFIG_ATA_OVER_ETH is not set
 
 
 #
 #
 # Multi-device support (RAID and LVM)
 # Multi-device support (RAID and LVM)
@@ -421,56 +447,7 @@ CONFIG_DM_MIRROR=y
 CONFIG_DM_ZERO=y
 CONFIG_DM_ZERO=y
 CONFIG_DM_MULTIPATH=y
 CONFIG_DM_MULTIPATH=y
 # CONFIG_DM_MULTIPATH_EMC is not set
 # CONFIG_DM_MULTIPATH_EMC is not set
-
-#
-# Character device drivers
-#
-CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=2048
-# CONFIG_HANGCHECK_TIMER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-
-#
-# S/390 character device drivers
-#
-CONFIG_TN3270=y
-CONFIG_TN3270_TTY=y
-CONFIG_TN3270_FS=m
-CONFIG_TN3270_CONSOLE=y
-CONFIG_TN3215=y
-CONFIG_TN3215_CONSOLE=y
-CONFIG_CCW_CONSOLE=y
-CONFIG_SCLP_TTY=y
-CONFIG_SCLP_CONSOLE=y
-CONFIG_SCLP_VT220_TTY=y
-CONFIG_SCLP_VT220_CONSOLE=y
-CONFIG_SCLP_CPI=m
-CONFIG_S390_TAPE=m
-
-#
-# S/390 tape interface support
-#
-CONFIG_S390_TAPE_BLOCK=y
-
-#
-# S/390 tape hardware support
-#
-CONFIG_S390_TAPE_34XX=m
-# CONFIG_S390_TAPE_3590 is not set
-# CONFIG_VMLOGRDR is not set
-# CONFIG_VMCP is not set
-# CONFIG_MONREADER is not set
-CONFIG_MONWRITER=m
-
-#
-# Cryptographic devices
-#
-CONFIG_ZCRYPT=m
-# CONFIG_ZCRYPT_MONOLITHIC is not set
+# CONFIG_DM_DELAY is not set
 
 
 #
 #
 # Network device support
 # Network device support
@@ -481,10 +458,6 @@ CONFIG_BONDING=m
 CONFIG_EQUALIZER=m
 CONFIG_EQUALIZER=m
 CONFIG_TUN=m
 CONFIG_TUN=m
 
 
-#
-# PHY device support
-#
-
 #
 #
 # Ethernet (10 or 100Mbit)
 # Ethernet (10 or 100Mbit)
 #
 #
@@ -498,17 +471,13 @@ CONFIG_NET_ETHERNET=y
 #
 #
 # Ethernet (10000 Mbit)
 # Ethernet (10000 Mbit)
 #
 #
+CONFIG_MLX4_DEBUG=y
 
 
 #
 #
 # Token Ring devices
 # Token Ring devices
 #
 #
 # CONFIG_TR is not set
 # CONFIG_TR is not set
 
 
-#
-# Wireless LAN (non-hamradio)
-#
-# CONFIG_NET_RADIO is not set
-
 #
 #
 # Wan interfaces
 # Wan interfaces
 #
 #
@@ -536,6 +505,56 @@ CONFIG_CCWGROUP=y
 # CONFIG_NETPOLL is not set
 # CONFIG_NETPOLL is not set
 # CONFIG_NET_POLL_CONTROLLER is not set
 # CONFIG_NET_POLL_CONTROLLER is not set
 
 
+#
+# Character devices
+#
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=m
+# CONFIG_R3964 is not set
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
+# CONFIG_HANGCHECK_TIMER is not set
+
+#
+# S/390 character device drivers
+#
+CONFIG_TN3270=y
+CONFIG_TN3270_TTY=y
+CONFIG_TN3270_FS=m
+CONFIG_TN3270_CONSOLE=y
+CONFIG_TN3215=y
+CONFIG_TN3215_CONSOLE=y
+CONFIG_CCW_CONSOLE=y
+CONFIG_SCLP=y
+CONFIG_SCLP_TTY=y
+CONFIG_SCLP_CONSOLE=y
+CONFIG_SCLP_VT220_TTY=y
+CONFIG_SCLP_VT220_CONSOLE=y
+CONFIG_SCLP_CPI=m
+CONFIG_S390_TAPE=m
+
+#
+# S/390 tape interface support
+#
+CONFIG_S390_TAPE_BLOCK=y
+
+#
+# S/390 tape hardware support
+#
+CONFIG_S390_TAPE_34XX=m
+# CONFIG_S390_TAPE_3590 is not set
+# CONFIG_VMLOGRDR is not set
+# CONFIG_VMCP is not set
+# CONFIG_MONREADER is not set
+CONFIG_MONWRITER=m
+
 #
 #
 # File systems
 # File systems
 #
 #
@@ -628,6 +647,7 @@ CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=y
 CONFIG_EXPORTFS=y
 CONFIG_NFS_COMMON=y
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=y
 CONFIG_SUNRPC=y
+# CONFIG_SUNRPC_BIND34 is not set
 # CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
 # CONFIG_SMB_FS is not set
@@ -658,6 +678,7 @@ CONFIG_MSDOS_PARTITION=y
 # CONFIG_SUN_PARTITION is not set
 # CONFIG_SUN_PARTITION is not set
 # CONFIG_KARMA_PARTITION is not set
 # CONFIG_KARMA_PARTITION is not set
 # CONFIG_EFI_PARTITION is not set
 # CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
 
 
 #
 #
 # Native Language Support
 # Native Language Support
@@ -668,8 +689,6 @@ CONFIG_MSDOS_PARTITION=y
 # Distributed Lock Manager
 # Distributed Lock Manager
 #
 #
 CONFIG_DLM=m
 CONFIG_DLM=m
-CONFIG_DLM_TCP=y
-# CONFIG_DLM_SCTP is not set
 # CONFIG_DLM_DEBUG is not set
 # CONFIG_DLM_DEBUG is not set
 
 
 #
 #
@@ -693,7 +712,6 @@ CONFIG_MAGIC_SYSRQ=y
 CONFIG_DEBUG_FS=y
 CONFIG_DEBUG_FS=y
 CONFIG_HEADERS_CHECK=y
 CONFIG_HEADERS_CHECK=y
 CONFIG_DEBUG_KERNEL=y
 CONFIG_DEBUG_KERNEL=y
-CONFIG_LOG_BUF_SHIFT=17
 # CONFIG_SCHEDSTATS is not set
 # CONFIG_SCHEDSTATS is not set
 # CONFIG_TIMER_STATS is not set
 # CONFIG_TIMER_STATS is not set
 # CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_SLAB is not set
@@ -729,12 +747,13 @@ CONFIG_FORCED_INLINING=y
 CONFIG_CRYPTO=y
 CONFIG_CRYPTO=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_BLKCIPHER=y
 CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=m
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER=y
-# CONFIG_CRYPTO_HMAC is not set
+CONFIG_CRYPTO_HMAC=m
 # CONFIG_CRYPTO_XCBC is not set
 # CONFIG_CRYPTO_XCBC is not set
 # CONFIG_CRYPTO_NULL is not set
 # CONFIG_CRYPTO_NULL is not set
 # CONFIG_CRYPTO_MD4 is not set
 # CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
+CONFIG_CRYPTO_MD5=m
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA1 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 # CONFIG_CRYPTO_SHA256 is not set
 # CONFIG_CRYPTO_SHA512 is not set
 # CONFIG_CRYPTO_SHA512 is not set
@@ -745,6 +764,7 @@ CONFIG_CRYPTO_ECB=m
 CONFIG_CRYPTO_CBC=y
 CONFIG_CRYPTO_CBC=y
 CONFIG_CRYPTO_PCBC=m
 CONFIG_CRYPTO_PCBC=m
 # CONFIG_CRYPTO_LRW is not set
 # CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_CRYPTD is not set
 # CONFIG_CRYPTO_DES is not set
 # CONFIG_CRYPTO_DES is not set
 CONFIG_CRYPTO_FCRYPT=m
 CONFIG_CRYPTO_FCRYPT=m
 # CONFIG_CRYPTO_BLOWFISH is not set
 # CONFIG_CRYPTO_BLOWFISH is not set
@@ -771,6 +791,8 @@ CONFIG_CRYPTO_CAMELLIA=m
 # CONFIG_CRYPTO_DES_S390 is not set
 # CONFIG_CRYPTO_DES_S390 is not set
 # CONFIG_CRYPTO_AES_S390 is not set
 # CONFIG_CRYPTO_AES_S390 is not set
 CONFIG_S390_PRNG=m
 CONFIG_S390_PRNG=m
+CONFIG_ZCRYPT=m
+# CONFIG_ZCRYPT_MONOLITHIC is not set
 
 
 #
 #
 # Library routines
 # Library routines

+ 1 - 1
arch/s390/hypfs/inode.c

@@ -477,7 +477,7 @@ static int __init hypfs_init(void)
 			goto fail_diag;
 			goto fail_diag;
 		}
 		}
 	}
 	}
-	kset_set_kset_s(&s390_subsys, hypervisor_subsys);
+	kobj_set_kset_s(&s390_subsys, hypervisor_subsys);
 	rc = subsystem_register(&s390_subsys);
 	rc = subsystem_register(&s390_subsys);
 	if (rc)
 	if (rc)
 		goto fail_sysfs;
 		goto fail_sysfs;

+ 13 - 13
arch/s390/kernel/ipl.c

@@ -816,23 +816,23 @@ static int __init ipl_register_fcp_files(void)
 {
 {
 	int rc;
 	int rc;
 
 
-	rc = sysfs_create_group(&ipl_subsys.kset.kobj,
+	rc = sysfs_create_group(&ipl_subsys.kobj,
 				&ipl_fcp_attr_group);
 				&ipl_fcp_attr_group);
 	if (rc)
 	if (rc)
 		goto out;
 		goto out;
-	rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj,
+	rc = sysfs_create_bin_file(&ipl_subsys.kobj,
 				   &ipl_parameter_attr);
 				   &ipl_parameter_attr);
 	if (rc)
 	if (rc)
 		goto out_ipl_parm;
 		goto out_ipl_parm;
-	rc = sysfs_create_bin_file(&ipl_subsys.kset.kobj,
+	rc = sysfs_create_bin_file(&ipl_subsys.kobj,
 				   &ipl_scp_data_attr);
 				   &ipl_scp_data_attr);
 	if (!rc)
 	if (!rc)
 		goto out;
 		goto out;
 
 
-	sysfs_remove_bin_file(&ipl_subsys.kset.kobj, &ipl_parameter_attr);
+	sysfs_remove_bin_file(&ipl_subsys.kobj, &ipl_parameter_attr);
 
 
 out_ipl_parm:
 out_ipl_parm:
-	sysfs_remove_group(&ipl_subsys.kset.kobj, &ipl_fcp_attr_group);
+	sysfs_remove_group(&ipl_subsys.kobj, &ipl_fcp_attr_group);
 out:
 out:
 	return rc;
 	return rc;
 }
 }
@@ -846,7 +846,7 @@ static int __init ipl_init(void)
 		return rc;
 		return rc;
 	switch (ipl_info.type) {
 	switch (ipl_info.type) {
 	case IPL_TYPE_CCW:
 	case IPL_TYPE_CCW:
-		rc = sysfs_create_group(&ipl_subsys.kset.kobj,
+		rc = sysfs_create_group(&ipl_subsys.kobj,
 					&ipl_ccw_attr_group);
 					&ipl_ccw_attr_group);
 		break;
 		break;
 	case IPL_TYPE_FCP:
 	case IPL_TYPE_FCP:
@@ -854,11 +854,11 @@ static int __init ipl_init(void)
 		rc = ipl_register_fcp_files();
 		rc = ipl_register_fcp_files();
 		break;
 		break;
 	case IPL_TYPE_NSS:
 	case IPL_TYPE_NSS:
-		rc = sysfs_create_group(&ipl_subsys.kset.kobj,
+		rc = sysfs_create_group(&ipl_subsys.kobj,
 					&ipl_nss_attr_group);
 					&ipl_nss_attr_group);
 		break;
 		break;
 	default:
 	default:
-		rc = sysfs_create_group(&ipl_subsys.kset.kobj,
+		rc = sysfs_create_group(&ipl_subsys.kobj,
 					&ipl_unknown_attr_group);
 					&ipl_unknown_attr_group);
 		break;
 		break;
 	}
 	}
@@ -885,7 +885,7 @@ static int __init reipl_nss_init(void)
 
 
 	if (!MACHINE_IS_VM)
 	if (!MACHINE_IS_VM)
 		return 0;
 		return 0;
-	rc = sysfs_create_group(&reipl_subsys.kset.kobj, &reipl_nss_attr_group);
+	rc = sysfs_create_group(&reipl_subsys.kobj, &reipl_nss_attr_group);
 	if (rc)
 	if (rc)
 		return rc;
 		return rc;
 	strncpy(reipl_nss_name, kernel_nss_name, NSS_NAME_SIZE + 1);
 	strncpy(reipl_nss_name, kernel_nss_name, NSS_NAME_SIZE + 1);
@@ -900,7 +900,7 @@ static int __init reipl_ccw_init(void)
 	reipl_block_ccw = (void *) get_zeroed_page(GFP_KERNEL);
 	reipl_block_ccw = (void *) get_zeroed_page(GFP_KERNEL);
 	if (!reipl_block_ccw)
 	if (!reipl_block_ccw)
 		return -ENOMEM;
 		return -ENOMEM;
-	rc = sysfs_create_group(&reipl_subsys.kset.kobj, &reipl_ccw_attr_group);
+	rc = sysfs_create_group(&reipl_subsys.kobj, &reipl_ccw_attr_group);
 	if (rc) {
 	if (rc) {
 		free_page((unsigned long)reipl_block_ccw);
 		free_page((unsigned long)reipl_block_ccw);
 		return rc;
 		return rc;
@@ -938,7 +938,7 @@ static int __init reipl_fcp_init(void)
 	reipl_block_fcp = (void *) get_zeroed_page(GFP_KERNEL);
 	reipl_block_fcp = (void *) get_zeroed_page(GFP_KERNEL);
 	if (!reipl_block_fcp)
 	if (!reipl_block_fcp)
 		return -ENOMEM;
 		return -ENOMEM;
-	rc = sysfs_create_group(&reipl_subsys.kset.kobj, &reipl_fcp_attr_group);
+	rc = sysfs_create_group(&reipl_subsys.kobj, &reipl_fcp_attr_group);
 	if (rc) {
 	if (rc) {
 		free_page((unsigned long)reipl_block_fcp);
 		free_page((unsigned long)reipl_block_fcp);
 		return rc;
 		return rc;
@@ -990,7 +990,7 @@ static int __init dump_ccw_init(void)
 	dump_block_ccw = (void *) get_zeroed_page(GFP_KERNEL);
 	dump_block_ccw = (void *) get_zeroed_page(GFP_KERNEL);
 	if (!dump_block_ccw)
 	if (!dump_block_ccw)
 		return -ENOMEM;
 		return -ENOMEM;
-	rc = sysfs_create_group(&dump_subsys.kset.kobj, &dump_ccw_attr_group);
+	rc = sysfs_create_group(&dump_subsys.kobj, &dump_ccw_attr_group);
 	if (rc) {
 	if (rc) {
 		free_page((unsigned long)dump_block_ccw);
 		free_page((unsigned long)dump_block_ccw);
 		return rc;
 		return rc;
@@ -1014,7 +1014,7 @@ static int __init dump_fcp_init(void)
 	dump_block_fcp = (void *) get_zeroed_page(GFP_KERNEL);
 	dump_block_fcp = (void *) get_zeroed_page(GFP_KERNEL);
 	if (!dump_block_fcp)
 	if (!dump_block_fcp)
 		return -ENOMEM;
 		return -ENOMEM;
-	rc = sysfs_create_group(&dump_subsys.kset.kobj, &dump_fcp_attr_group);
+	rc = sysfs_create_group(&dump_subsys.kobj, &dump_fcp_attr_group);
 	if (rc) {
 	if (rc) {
 		free_page((unsigned long)dump_block_fcp);
 		free_page((unsigned long)dump_block_fcp);
 		return rc;
 		return rc;

+ 4 - 1
arch/s390/mm/fault.c

@@ -253,7 +253,10 @@ static int signal_return(struct mm_struct *mm, struct pt_regs *regs,
 			 unsigned long address, unsigned long error_code)
 			 unsigned long address, unsigned long error_code)
 {
 {
 	u16 instruction;
 	u16 instruction;
-	int rc, compat;
+	int rc;
+#ifdef CONFIG_COMPAT
+	int compat;
+#endif
 
 
 	pagefault_disable();
 	pagefault_disable();
 	rc = __get_user(instruction, (u16 __user *) regs->psw.addr);
 	rc = __get_user(instruction, (u16 __user *) regs->psw.addr);

+ 1 - 0
drivers/ata/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Serial ATA (prod) and Parallel ATA (experimental) drivers"
 menu "Serial ATA (prod) and Parallel ATA (experimental) drivers"
+	depends on HAS_IOMEM
 
 
 config ATA
 config ATA
 	tristate "ATA device support"
 	tristate "ATA device support"

+ 1 - 0
drivers/auxdisplay/Kconfig

@@ -6,6 +6,7 @@
 #
 #
 
 
 menu "Auxiliary Display support"
 menu "Auxiliary Display support"
+	depends on PARPORT
 
 
 config KS0108
 config KS0108
 	tristate "KS0108 LCD Controller"
 	tristate "KS0108 LCD Controller"

+ 2 - 2
drivers/block/Kconfig

@@ -444,8 +444,6 @@ config CDROM_PKTCDVD_WCACHE
 	  this option is dangerous unless the CD-RW media is known good, as we
 	  this option is dangerous unless the CD-RW media is known good, as we
 	  don't do deferred write error handling yet.
 	  don't do deferred write error handling yet.
 
 
-source "drivers/s390/block/Kconfig"
-
 config ATA_OVER_ETH
 config ATA_OVER_ETH
 	tristate "ATA over Ethernet support"
 	tristate "ATA over Ethernet support"
 	depends on NET
 	depends on NET
@@ -453,6 +451,8 @@ config ATA_OVER_ETH
 	This driver provides Support for ATA over Ethernet block
 	This driver provides Support for ATA over Ethernet block
 	devices like the Coraid EtherDrive (R) Storage Blade.
 	devices like the Coraid EtherDrive (R) Storage Blade.
 
 
+source "drivers/s390/block/Kconfig"
+
 endmenu
 endmenu
 
 
 endif
 endif

+ 8 - 3
drivers/char/Kconfig

@@ -6,6 +6,7 @@ menu "Character devices"
 
 
 config VT
 config VT
 	bool "Virtual terminal" if EMBEDDED
 	bool "Virtual terminal" if EMBEDDED
+	depends on !S390
 	select INPUT
 	select INPUT
 	default y if !VIOCONS
 	default y if !VIOCONS
 	---help---
 	---help---
@@ -81,6 +82,7 @@ config VT_HW_CONSOLE_BINDING
 
 
 config SERIAL_NONSTANDARD
 config SERIAL_NONSTANDARD
 	bool "Non-standard serial port support"
 	bool "Non-standard serial port support"
+	depends on HAS_IOMEM
 	---help---
 	---help---
 	  Say Y here if you have any non-standard serial boards -- boards
 	  Say Y here if you have any non-standard serial boards -- boards
 	  which aren't supported using the standard "dumb" serial driver.
 	  which aren't supported using the standard "dumb" serial driver.
@@ -765,7 +767,7 @@ config NVRAM
 
 
 config RTC
 config RTC
 	tristate "Enhanced Real Time Clock Support"
 	tristate "Enhanced Real Time Clock Support"
-	depends on !PPC && !PARISC && !IA64 && !M68K && (!SPARC || PCI) && !FRV && !ARM && !SUPERH
+	depends on !PPC && !PARISC && !IA64 && !M68K && (!SPARC || PCI) && !FRV && !ARM && !SUPERH && !S390
 	---help---
 	---help---
 	  If you say Y here and create a character special file /dev/rtc with
 	  If you say Y here and create a character special file /dev/rtc with
 	  major number 10 and minor number 135 using mknod ("man mknod"), you
 	  major number 10 and minor number 135 using mknod ("man mknod"), you
@@ -813,7 +815,7 @@ config SGI_IP27_RTC
 
 
 config GEN_RTC
 config GEN_RTC
 	tristate "Generic /dev/rtc emulation"
 	tristate "Generic /dev/rtc emulation"
-	depends on RTC!=y && !IA64 && !ARM && !M32R && !SPARC && !FRV
+	depends on RTC!=y && !IA64 && !ARM && !M32R && !SPARC && !FRV && !S390
 	---help---
 	---help---
 	  If you say Y here and create a character special file /dev/rtc with
 	  If you say Y here and create a character special file /dev/rtc with
 	  major number 10 and minor number 135 using mknod ("man mknod"), you
 	  major number 10 and minor number 135 using mknod ("man mknod"), you
@@ -858,6 +860,7 @@ config COBALT_LCD
 
 
 config DTLK
 config DTLK
 	tristate "Double Talk PC internal speech card support"
 	tristate "Double Talk PC internal speech card support"
+	depends on ISA
 	help
 	help
 	  This driver is for the DoubleTalk PC, a speech synthesizer
 	  This driver is for the DoubleTalk PC, a speech synthesizer
 	  manufactured by RC Systems (<http://www.rcsys.com/>).  It is also
 	  manufactured by RC Systems (<http://www.rcsys.com/>).  It is also
@@ -1043,7 +1046,7 @@ config HPET_MMAP
 
 
 config HANGCHECK_TIMER
 config HANGCHECK_TIMER
 	tristate "Hangcheck timer"
 	tristate "Hangcheck timer"
-	depends on X86 || IA64 || PPC64
+	depends on X86 || IA64 || PPC64 || S390
 	help
 	help
 	  The hangcheck-timer module detects when the system has gone
 	  The hangcheck-timer module detects when the system has gone
 	  out to lunch past a certain margin.  It can reboot the system
 	  out to lunch past a certain margin.  It can reboot the system
@@ -1078,5 +1081,7 @@ config DEVPORT
 	depends on ISA || PCI
 	depends on ISA || PCI
 	default y
 	default y
 
 
+source "drivers/s390/char/Kconfig"
+
 endmenu
 endmenu
 
 

+ 2 - 0
drivers/char/ipmi/Kconfig

@@ -3,6 +3,8 @@
 #
 #
 
 
 menu "IPMI"
 menu "IPMI"
+	depends on HAS_IOMEM
+
 config IPMI_HANDLER
 config IPMI_HANDLER
        tristate 'IPMI top-level message handler'
        tristate 'IPMI top-level message handler'
        help
        help

+ 1 - 0
drivers/char/tpm/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "TPM devices"
 menu "TPM devices"
+	depends on HAS_IOMEM
 
 
 config TCG_TPM
 config TCG_TPM
 	tristate "TPM Hardware Support"
 	tristate "TPM Hardware Support"

+ 22 - 0
drivers/crypto/Kconfig

@@ -56,4 +56,26 @@ config CRYPTO_DEV_GEODE
 	  To compile this driver as a module, choose M here: the module
 	  To compile this driver as a module, choose M here: the module
 	  will be called geode-aes.
 	  will be called geode-aes.
 
 
+config ZCRYPT
+	tristate "Support for PCI-attached cryptographic adapters"
+	depends on S390
+	select ZCRYPT_MONOLITHIC if ZCRYPT="y"
+	default "m"
+	help
+	  Select this option if you want to use a PCI-attached cryptographic
+	  adapter like:
+	  + PCI Cryptographic Accelerator (PCICA)
+	  + PCI Cryptographic Coprocessor (PCICC)
+	  + PCI-X Cryptographic Coprocessor (PCIXCC)
+	  + Crypto Express2 Coprocessor (CEX2C)
+	  + Crypto Express2 Accelerator (CEX2A)
+
+config ZCRYPT_MONOLITHIC
+	bool "Monolithic zcrypt module"
+	depends on ZCRYPT="m"
+	help
+	  Select this option if you want to have a single module z90crypt.ko
+	  that contains all parts of the crypto device driver (ap bus,
+	  request router and all the card drivers).
+
 endmenu
 endmenu

+ 1 - 0
drivers/dma/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "DMA Engine support"
 menu "DMA Engine support"
+	depends on !S390
 
 
 config DMA_ENGINE
 config DMA_ENGINE
 	bool "Support for DMA engines"
 	bool "Support for DMA engines"

+ 1 - 0
drivers/edac/Kconfig

@@ -7,6 +7,7 @@
 #
 #
 
 
 menu 'EDAC - error detection and reporting (RAS) (EXPERIMENTAL)'
 menu 'EDAC - error detection and reporting (RAS) (EXPERIMENTAL)'
+	depends on HAS_IOMEM
 
 
 config EDAC
 config EDAC
 	tristate "EDAC core system error reporting (EXPERIMENTAL)"
 	tristate "EDAC core system error reporting (EXPERIMENTAL)"

+ 1 - 0
drivers/hwmon/Kconfig

@@ -4,6 +4,7 @@
 
 
 menuconfig HWMON
 menuconfig HWMON
 	tristate "Hardware Monitoring support"
 	tristate "Hardware Monitoring support"
+	depends on HAS_IOMEM
 	default y
 	default y
 	help
 	help
 	  Hardware monitoring devices let you monitor the hardware health
 	  Hardware monitoring devices let you monitor the hardware health

+ 1 - 0
drivers/i2c/Kconfig

@@ -4,6 +4,7 @@
 
 
 menuconfig I2C
 menuconfig I2C
 	tristate "I2C support"
 	tristate "I2C support"
+	depends on HAS_IOMEM
 	---help---
 	---help---
 	  I2C (pronounce: I-square-C) is a slow serial bus protocol used in
 	  I2C (pronounce: I-square-C) is a slow serial bus protocol used in
 	  many micro controller applications and developed by Philips.  SMBus,
 	  many micro controller applications and developed by Philips.  SMBus,

+ 1 - 0
drivers/ide/Kconfig

@@ -7,6 +7,7 @@
 if BLOCK
 if BLOCK
 
 
 menu "ATA/ATAPI/MFM/RLL support"
 menu "ATA/ATAPI/MFM/RLL support"
+	depends on HAS_IOMEM
 
 
 config IDE
 config IDE
 	tristate "ATA/ATAPI/MFM/RLL support"
 	tristate "ATA/ATAPI/MFM/RLL support"

+ 1 - 0
drivers/ieee1394/Kconfig

@@ -1,4 +1,5 @@
 menu "IEEE 1394 (FireWire) support"
 menu "IEEE 1394 (FireWire) support"
+	depends on PCI || BROKEN
 
 
 config IEEE1394
 config IEEE1394
 	tristate "IEEE 1394 (FireWire) support"
 	tristate "IEEE 1394 (FireWire) support"

+ 1 - 0
drivers/infiniband/Kconfig

@@ -1,4 +1,5 @@
 menu "InfiniBand support"
 menu "InfiniBand support"
+	depends on HAS_IOMEM
 
 
 config INFINIBAND
 config INFINIBAND
 	depends on PCI || BROKEN
 	depends on PCI || BROKEN

+ 1 - 0
drivers/input/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Input device support"
 menu "Input device support"
+	depends on !S390
 
 
 config INPUT
 config INPUT
 	tristate "Generic input layer (needed for keyboard, mouse, ...)" if EMBEDDED
 	tristate "Generic input layer (needed for keyboard, mouse, ...)" if EMBEDDED

+ 1 - 0
drivers/isdn/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "ISDN subsystem"
 menu "ISDN subsystem"
+	depends on !S390
 
 
 config ISDN
 config ISDN
 	tristate "ISDN support"
 	tristate "ISDN support"

+ 1 - 0
drivers/kvm/Kconfig

@@ -2,6 +2,7 @@
 # KVM configuration
 # KVM configuration
 #
 #
 menu "Virtualization"
 menu "Virtualization"
+	depends on X86
 
 
 config KVM
 config KVM
 	tristate "Kernel-based Virtual Machine (KVM) support"
 	tristate "Kernel-based Virtual Machine (KVM) support"

+ 1 - 0
drivers/leds/Kconfig

@@ -1,5 +1,6 @@
 
 
 menu "LED devices"
 menu "LED devices"
+	depends on HAS_IOMEM
 
 
 config NEW_LEDS
 config NEW_LEDS
 	bool "LED Support"
 	bool "LED Support"

+ 1 - 0
drivers/media/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Multimedia devices"
 menu "Multimedia devices"
+	depends on HAS_IOMEM
 
 
 config VIDEO_DEV
 config VIDEO_DEV
 	tristate "Video For Linux"
 	tristate "Video For Linux"

+ 1 - 0
drivers/message/fusion/Kconfig

@@ -1,5 +1,6 @@
 
 
 menu "Fusion MPT device support"
 menu "Fusion MPT device support"
+	depends on PCI
 
 
 config FUSION
 config FUSION
 	bool
 	bool

+ 1 - 0
drivers/message/i2o/Kconfig

@@ -1,5 +1,6 @@
 
 
 menu "I2O device support"
 menu "I2O device support"
+	depends on PCI
 
 
 config I2O
 config I2O
 	tristate "I2O support"
 	tristate "I2O support"

+ 1 - 0
drivers/mfd/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Multifunction device drivers"
 menu "Multifunction device drivers"
+	depends on HAS_IOMEM
 
 
 config MFD_SM501
 config MFD_SM501
 	tristate "Support for Silicon Motion SM501"
 	tristate "Support for Silicon Motion SM501"

+ 1 - 0
drivers/mmc/Kconfig

@@ -4,6 +4,7 @@
 
 
 menuconfig MMC
 menuconfig MMC
 	tristate "MMC/SD card support"
 	tristate "MMC/SD card support"
+	depends on HAS_IOMEM
 	help
 	help
 	  MMC is the "multi-media card" bus protocol.
 	  MMC is the "multi-media card" bus protocol.
 
 

+ 1 - 0
drivers/mtd/Kconfig

@@ -2,6 +2,7 @@
 
 
 menuconfig MTD
 menuconfig MTD
 	tristate "Memory Technology Device (MTD) support"
 	tristate "Memory Technology Device (MTD) support"
+	depends on HAS_IOMEM
 	help
 	help
 	  Memory Technology Devices are flash, RAM and similar chips, often
 	  Memory Technology Devices are flash, RAM and similar chips, often
 	  used for solid state file systems on embedded devices. This option
 	  used for solid state file systems on embedded devices. This option

+ 1 - 0
drivers/net/phy/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "PHY device support"
 menu "PHY device support"
+	depends on !S390
 
 
 config PHYLIB
 config PHYLIB
 	tristate "PHY Device support and infrastructure"
 	tristate "PHY Device support and infrastructure"

+ 1 - 0
drivers/net/wireless/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Wireless LAN"
 menu "Wireless LAN"
+	depends on !S390
 
 
 config WLAN_PRE80211
 config WLAN_PRE80211
 	bool "Wireless LAN (pre-802.11)"
 	bool "Wireless LAN (pre-802.11)"

+ 1 - 0
drivers/parport/Kconfig

@@ -6,6 +6,7 @@
 #
 #
 
 
 menu "Parallel port support"
 menu "Parallel port support"
+	depends on HAS_IOMEM
 
 
 config PARPORT
 config PARPORT
 	tristate "Parallel port support"
 	tristate "Parallel port support"

+ 1 - 0
drivers/pnp/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Plug and Play support"
 menu "Plug and Play support"
+	depends on HAS_IOMEM
 
 
 config PNP
 config PNP
 	bool "Plug and Play support"
 	bool "Plug and Play support"

+ 1 - 0
drivers/rtc/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Real Time Clock"
 menu "Real Time Clock"
+	depends on !S390
 
 
 config RTC_LIB
 config RTC_LIB
 	tristate
 	tristate

+ 4 - 7
drivers/s390/block/Kconfig

@@ -1,11 +1,9 @@
-if S390 && BLOCK
-
 comment "S/390 block device drivers"
 comment "S/390 block device drivers"
-	depends on S390
+	depends on S390 && BLOCK
 
 
 config BLK_DEV_XPRAM
 config BLK_DEV_XPRAM
 	tristate "XPRAM disk support"
 	tristate "XPRAM disk support"
-	depends on S390
+	depends on S390 && BLOCK
 	help
 	help
 	  Select this option if you want to use your expanded storage on S/390
 	  Select this option if you want to use your expanded storage on S/390
 	  or zSeries as a disk.  This is useful as a _fast_ swap device if you
 	  or zSeries as a disk.  This is useful as a _fast_ swap device if you
@@ -15,12 +13,13 @@ config BLK_DEV_XPRAM
 
 
 config DCSSBLK
 config DCSSBLK
 	tristate "DCSSBLK support"
 	tristate "DCSSBLK support"
+	depends on S390 && BLOCK
 	help
 	help
 	  Support for dcss block device
 	  Support for dcss block device
 
 
 config DASD
 config DASD
 	tristate "Support for DASD devices"
 	tristate "Support for DASD devices"
-	depends on CCW
+	depends on CCW && BLOCK
 	help
 	help
 	  Enable this option if you want to access DASDs directly utilizing
 	  Enable this option if you want to access DASDs directly utilizing
 	  S/390s channel subsystem commands. This is necessary for running
 	  S/390s channel subsystem commands. This is necessary for running
@@ -62,5 +61,3 @@ config DASD_EER
 	  This driver provides a character device interface to the
 	  This driver provides a character device interface to the
 	  DASD extended error reporting. This is only needed if you want to
 	  DASD extended error reporting. This is only needed if you want to
 	  use applications written for the EER facility.
 	  use applications written for the EER facility.
-
-endif

+ 5 - 3
drivers/s390/block/dasd.c

@@ -2174,9 +2174,10 @@ dasd_generic_notify(struct ccw_device *cdev, int event)
 	return ret;
 	return ret;
 }
 }
 
 
-struct dasd_ccw_req * dasd_generic_build_rdc(struct dasd_device *device,
-					     void *rdc_buffer,
-					     int rdc_buffer_size, char *magic)
+static struct dasd_ccw_req *dasd_generic_build_rdc(struct dasd_device *device,
+						   void *rdc_buffer,
+						   int rdc_buffer_size,
+						   char *magic)
 {
 {
 	struct dasd_ccw_req *cqr;
 	struct dasd_ccw_req *cqr;
 	struct ccw1 *ccw;
 	struct ccw1 *ccw;
@@ -2219,6 +2220,7 @@ int dasd_generic_read_dev_chars(struct dasd_device *device, char *magic,
 	dasd_sfree_request(cqr, cqr->device);
 	dasd_sfree_request(cqr, cqr->device);
 	return ret;
 	return ret;
 }
 }
+EXPORT_SYMBOL_GPL(dasd_generic_read_dev_chars);
 
 
 static int __init
 static int __init
 dasd_init(void)
 dasd_init(void)

+ 6 - 4
drivers/s390/block/dasd_diag.c

@@ -50,6 +50,7 @@ struct dasd_diag_private {
 	struct dasd_diag_rw_io iob;
 	struct dasd_diag_rw_io iob;
 	struct dasd_diag_init_io iib;
 	struct dasd_diag_init_io iib;
 	blocknum_t pt_block;
 	blocknum_t pt_block;
+	struct ccw_dev_id dev_id;
 };
 };
 
 
 struct dasd_diag_req {
 struct dasd_diag_req {
@@ -102,7 +103,7 @@ mdsk_init_io(struct dasd_device *device, unsigned int blocksize,
 	iib = &private->iib;
 	iib = &private->iib;
 	memset(iib, 0, sizeof (struct dasd_diag_init_io));
 	memset(iib, 0, sizeof (struct dasd_diag_init_io));
 
 
-	iib->dev_nr = _ccw_device_get_device_number(device->cdev);
+	iib->dev_nr = private->dev_id.devno;
 	iib->block_size = blocksize;
 	iib->block_size = blocksize;
 	iib->offset = offset;
 	iib->offset = offset;
 	iib->flaga = DASD_DIAG_FLAGA_DEFAULT;
 	iib->flaga = DASD_DIAG_FLAGA_DEFAULT;
@@ -127,7 +128,7 @@ mdsk_term_io(struct dasd_device * device)
 	private = (struct dasd_diag_private *) device->private;
 	private = (struct dasd_diag_private *) device->private;
 	iib = &private->iib;
 	iib = &private->iib;
 	memset(iib, 0, sizeof (struct dasd_diag_init_io));
 	memset(iib, 0, sizeof (struct dasd_diag_init_io));
-	iib->dev_nr = _ccw_device_get_device_number(device->cdev);
+	iib->dev_nr = private->dev_id.devno;
 	rc = dia250(iib, TERM_BIO);
 	rc = dia250(iib, TERM_BIO);
 	return rc;
 	return rc;
 }
 }
@@ -166,7 +167,7 @@ dasd_start_diag(struct dasd_ccw_req * cqr)
 	private = (struct dasd_diag_private *) device->private;
 	private = (struct dasd_diag_private *) device->private;
 	dreq = (struct dasd_diag_req *) cqr->data;
 	dreq = (struct dasd_diag_req *) cqr->data;
 
 
-	private->iob.dev_nr = _ccw_device_get_device_number(device->cdev);
+	private->iob.dev_nr = private->dev_id.devno;
 	private->iob.key = 0;
 	private->iob.key = 0;
 	private->iob.flags = DASD_DIAG_RWFLAG_ASYNC;
 	private->iob.flags = DASD_DIAG_RWFLAG_ASYNC;
 	private->iob.block_count = dreq->block_count;
 	private->iob.block_count = dreq->block_count;
@@ -323,11 +324,12 @@ dasd_diag_check_device(struct dasd_device *device)
 				"memory allocation failed for private data");
 				"memory allocation failed for private data");
 			return -ENOMEM;
 			return -ENOMEM;
 		}
 		}
+		ccw_device_get_id(device->cdev, &private->dev_id);
 		device->private = (void *) private;
 		device->private = (void *) private;
 	}
 	}
 	/* Read Device Characteristics */
 	/* Read Device Characteristics */
 	rdc_data = (void *) &(private->rdc_data);
 	rdc_data = (void *) &(private->rdc_data);
-	rdc_data->dev_nr = _ccw_device_get_device_number(device->cdev);
+	rdc_data->dev_nr = private->dev_id.devno;
 	rdc_data->rdc_len = sizeof (struct dasd_diag_characteristics);
 	rdc_data->rdc_len = sizeof (struct dasd_diag_characteristics);
 
 
 	rc = diag210((struct diag210 *) rdc_data);
 	rc = diag210((struct diag210 *) rdc_data);

+ 3 - 3
drivers/s390/block/dasd_eckd.c

@@ -450,9 +450,9 @@ dasd_eckd_generate_uid(struct dasd_device *device, struct dasd_uid *uid)
 	return 0;
 	return 0;
 }
 }
 
 
-struct dasd_ccw_req * dasd_eckd_build_rcd_lpm(struct dasd_device *device,
-					      void *rcd_buffer,
-					      struct ciw *ciw, __u8 lpm)
+static struct dasd_ccw_req *dasd_eckd_build_rcd_lpm(struct dasd_device *device,
+						    void *rcd_buffer,
+						    struct ciw *ciw, __u8 lpm)
 {
 {
 	struct dasd_ccw_req *cqr;
 	struct dasd_ccw_req *cqr;
 	struct ccw1 *ccw;
 	struct ccw1 *ccw;

+ 3 - 1
drivers/s390/block/dasd_ioctl.c

@@ -255,6 +255,7 @@ dasd_ioctl_information(struct dasd_device *device,
 	unsigned long flags;
 	unsigned long flags;
 	int rc;
 	int rc;
 	struct ccw_device *cdev;
 	struct ccw_device *cdev;
+	struct ccw_dev_id dev_id;
 
 
 	if (!device->discipline->fill_info)
 	if (!device->discipline->fill_info)
 		return -EINVAL;
 		return -EINVAL;
@@ -270,8 +271,9 @@ dasd_ioctl_information(struct dasd_device *device,
 	}
 	}
 
 
 	cdev = device->cdev;
 	cdev = device->cdev;
+	ccw_device_get_id(cdev, &dev_id);
 
 
-	dasd_info->devno = _ccw_device_get_device_number(device->cdev);
+	dasd_info->devno = dev_id.devno;
 	dasd_info->schid = _ccw_device_get_subchannel_number(device->cdev);
 	dasd_info->schid = _ccw_device_get_subchannel_number(device->cdev);
 	dasd_info->cu_type = cdev->id.cu_type;
 	dasd_info->cu_type = cdev->id.cu_type;
 	dasd_info->cu_model = cdev->id.cu_model;
 	dasd_info->cu_model = cdev->id.cu_model;

+ 19 - 92
drivers/s390/Kconfig → drivers/s390/char/Kconfig

@@ -1,69 +1,9 @@
-config CCW
-	bool
-	default y
-
-source "drivers/block/Kconfig"
-
-source "drivers/md/Kconfig"
-
-
-menu "Character device drivers"
-
-config UNIX98_PTYS
-	bool "Unix98 PTY support"
-	---help---
-	  A pseudo terminal (PTY) is a software device consisting of two
-	  halves: a master and a slave. The slave device behaves identical to
-	  a physical terminal; the master device is used by a process to
-	  read data from and write data to the slave, thereby emulating a
-	  terminal. Typical programs for the master side are telnet servers
-	  and xterms.
-
-	  Linux has traditionally used the BSD-like names /dev/ptyxx for
-	  masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
-	  has a number of problems. The GNU C library glibc 2.1 and later,
-	  however, supports the Unix98 naming standard: in order to acquire a
-	  pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
-	  terminal is then made available to the process and the pseudo
-	  terminal slave can be accessed as /dev/pts/<number>. What was
-	  traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
-
-	  The entries in /dev/pts/ are created on the fly by a virtual
-	  file system; therefore, if you say Y here you should say Y to
-	  "/dev/pts file system for Unix98 PTYs" as well.
-
-	  If you want to say Y here, you need to have the C library glibc 2.1
-	  or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*").
-	  Read the instructions in <file:Documentation/Changes> pertaining to
-	  pseudo terminals. It's safe to say N.
-
-config UNIX98_PTY_COUNT
-	int "Maximum number of Unix98 PTYs in use (0-2048)"
-	depends on UNIX98_PTYS
-	default "256"
-	help
-	  The maximum number of Unix98 PTYs that can be used at any one time.
-	  The default is 256, and should be enough for desktop systems. Server
-	  machines which support incoming telnet/rlogin/ssh connections and/or
-	  serve several X terminals may want to increase this: every incoming
-	  connection and every xterm uses up one PTY.
-
-	  When not in use, each additional set of 256 PTYs occupy
-	  approximately 8 KB of kernel memory on 32-bit architectures.
-
-config HANGCHECK_TIMER
-	tristate "Hangcheck timer"
-	help
-	  The hangcheck-timer module detects when the system has gone
-	  out to lunch past a certain margin.  It can reboot the system
-	  or merely print a warning.
-
-source "drivers/char/watchdog/Kconfig"
-
 comment "S/390 character device drivers"
 comment "S/390 character device drivers"
+	depends on S390
 
 
 config TN3270
 config TN3270
 	tristate "Support for locally attached 3270 terminals"
 	tristate "Support for locally attached 3270 terminals"
+	depends on CCW
 	help
 	help
 	  Include support for IBM 3270 terminals.
 	  Include support for IBM 3270 terminals.
 
 
@@ -88,6 +28,7 @@ config TN3270_CONSOLE
 
 
 config TN3215
 config TN3215
 	bool "Support for 3215 line mode terminal"
 	bool "Support for 3215 line mode terminal"
+	depends on CCW
 	help
 	help
 	  Include support for IBM 3215 line-mode terminals.
 	  Include support for IBM 3215 line-mode terminals.
 
 
@@ -99,12 +40,19 @@ config TN3215_CONSOLE
 	  Linux system console.
 	  Linux system console.
 
 
 config CCW_CONSOLE
 config CCW_CONSOLE
- 	bool
- 	depends on TN3215_CONSOLE || TN3270_CONSOLE
- 	default y
- 
+	bool
+	depends on TN3215_CONSOLE || TN3270_CONSOLE
+	default y
+
+config SCLP
+	bool "Support for SCLP"
+	depends on S390
+	help
+	  Include support for the SCLP interface to the service element.
+
 config SCLP_TTY
 config SCLP_TTY
 	bool "Support for SCLP line mode terminal"
 	bool "Support for SCLP line mode terminal"
+	depends on SCLP
 	help
 	help
 	  Include support for IBM SCLP line-mode terminals.
 	  Include support for IBM SCLP line-mode terminals.
 
 
@@ -117,6 +65,7 @@ config SCLP_CONSOLE
 
 
 config SCLP_VT220_TTY
 config SCLP_VT220_TTY
 	bool "Support for SCLP VT220-compatible terminal"
 	bool "Support for SCLP VT220-compatible terminal"
+	depends on SCLP
 	help
 	help
 	  Include support for an IBM SCLP VT220-compatible terminal.
 	  Include support for an IBM SCLP VT220-compatible terminal.
 
 
@@ -129,6 +78,7 @@ config SCLP_VT220_CONSOLE
 
 
 config SCLP_CPI
 config SCLP_CPI
 	tristate "Control-Program Identification"
 	tristate "Control-Program Identification"
+	depends on SCLP
 	help
 	help
 	  This option enables the hardware console interface for system
 	  This option enables the hardware console interface for system
 	  identification. This is commonly used for workload management and
 	  identification. This is commonly used for workload management and
@@ -140,6 +90,7 @@ config SCLP_CPI
 
 
 config S390_TAPE
 config S390_TAPE
 	tristate "S/390 tape device support"
 	tristate "S/390 tape device support"
+	depends on CCW
 	help
 	help
 	  Select this option if you want to access channel-attached tape
 	  Select this option if you want to access channel-attached tape
 	  devices on IBM S/390 or zSeries.
 	  devices on IBM S/390 or zSeries.
@@ -194,6 +145,7 @@ config VMLOGRDR
 
 
 config VMCP
 config VMCP
 	tristate "Support for the z/VM CP interface (VM only)"
 	tristate "Support for the z/VM CP interface (VM only)"
+	depends on S390
 	help
 	help
 	  Select this option if you want to be able to interact with the control
 	  Select this option if you want to be able to interact with the control
 	  program on z/VM
 	  program on z/VM
@@ -207,33 +159,8 @@ config MONREADER
 
 
 config MONWRITER
 config MONWRITER
 	tristate "API for writing z/VM monitor service records"
 	tristate "API for writing z/VM monitor service records"
+	depends on S390
 	default "m"
 	default "m"
 	help
 	help
 	  Character device driver for writing z/VM monitor service records
 	  Character device driver for writing z/VM monitor service records
 
 
-endmenu
-
-menu "Cryptographic devices"
-
-config ZCRYPT
-	tristate "Support for PCI-attached cryptographic adapters"
-	select ZCRYPT_MONOLITHIC if ZCRYPT="y"
-	default "m"
-	help
-	  Select this option if you want to use a PCI-attached cryptographic
-	  adapter like:
-	  + PCI Cryptographic Accelerator (PCICA)
-	  + PCI Cryptographic Coprocessor (PCICC)
-	  + PCI-X Cryptographic Coprocessor (PCIXCC)
-	  + Crypto Express2 Coprocessor (CEX2C)
-	  + Crypto Express2 Accelerator (CEX2A)
-
-config ZCRYPT_MONOLITHIC
-	bool "Monolithic zcrypt module"
-	depends on ZCRYPT="m"
-	help
-	  Select this option if you want to have a single module z90crypt.ko
-	  that contains all parts of the crypto device driver (ap bus,
-	  request router and all the card drivers).
-
-endmenu

+ 7 - 7
drivers/s390/char/monreader.c

@@ -97,7 +97,7 @@ static u8 user_data_sever[16] = {
  * Create the 8 bytes EBCDIC DCSS segment name from
  * Create the 8 bytes EBCDIC DCSS segment name from
  * an ASCII name, incl. padding
  * an ASCII name, incl. padding
  */
  */
-static inline void dcss_mkname(char *ascii_name, char *ebcdic_name)
+static void dcss_mkname(char *ascii_name, char *ebcdic_name)
 {
 {
 	int i;
 	int i;
 
 
@@ -191,7 +191,7 @@ static inline u32 mon_rec_end(struct mon_msg *monmsg)
 	return *((u32 *) (mon_mca_start(monmsg) + monmsg->mca_offset + 8));
 	return *((u32 *) (mon_mca_start(monmsg) + monmsg->mca_offset + 8));
 }
 }
 
 
-static inline int mon_check_mca(struct mon_msg *monmsg)
+static int mon_check_mca(struct mon_msg *monmsg)
 {
 {
 	if ((mon_rec_end(monmsg) <= mon_rec_start(monmsg)) ||
 	if ((mon_rec_end(monmsg) <= mon_rec_start(monmsg)) ||
 	    (mon_rec_start(monmsg) < mon_dcss_start) ||
 	    (mon_rec_start(monmsg) < mon_dcss_start) ||
@@ -209,8 +209,8 @@ static inline int mon_check_mca(struct mon_msg *monmsg)
 	return 0;
 	return 0;
 }
 }
 
 
-static inline int mon_send_reply(struct mon_msg *monmsg,
-				 struct mon_private *monpriv)
+static int mon_send_reply(struct mon_msg *monmsg,
+			  struct mon_private *monpriv)
 {
 {
 	int rc;
 	int rc;
 
 
@@ -236,7 +236,7 @@ static inline int mon_send_reply(struct mon_msg *monmsg,
 	return 0;
 	return 0;
 }
 }
 
 
-static inline void mon_free_mem(struct mon_private *monpriv)
+static void mon_free_mem(struct mon_private *monpriv)
 {
 {
 	int i;
 	int i;
 
 
@@ -246,7 +246,7 @@ static inline void mon_free_mem(struct mon_private *monpriv)
 	kfree(monpriv);
 	kfree(monpriv);
 }
 }
 
 
-static inline struct mon_private *mon_alloc_mem(void)
+static struct mon_private *mon_alloc_mem(void)
 {
 {
 	int i;
 	int i;
 	struct mon_private *monpriv;
 	struct mon_private *monpriv;
@@ -307,7 +307,7 @@ static inline void mon_next_mca(struct mon_msg *monmsg)
 	monmsg->pos = 0;
 	monmsg->pos = 0;
 }
 }
 
 
-static inline struct mon_msg *mon_next_message(struct mon_private *monpriv)
+static struct mon_msg *mon_next_message(struct mon_private *monpriv)
 {
 {
 	struct mon_msg *monmsg;
 	struct mon_msg *monmsg;
 
 

+ 3 - 2
drivers/s390/char/raw3270.c

@@ -589,9 +589,10 @@ static int
 __raw3270_size_device_vm(struct raw3270 *rp)
 __raw3270_size_device_vm(struct raw3270 *rp)
 {
 {
 	int rc, model;
 	int rc, model;
+	struct ccw_dev_id dev_id;
 
 
-	raw3270_init_diag210.vrdcdvno = 
-		_ccw_device_get_device_number(rp->cdev);
+	ccw_device_get_id(rp->cdev, &dev_id);
+	raw3270_init_diag210.vrdcdvno = dev_id.devno;
 	raw3270_init_diag210.vrdclen = sizeof(struct diag210);
 	raw3270_init_diag210.vrdclen = sizeof(struct diag210);
 	rc = diag210(&raw3270_init_diag210);
 	rc = diag210(&raw3270_init_diag210);
 	if (rc)
 	if (rc)

+ 3 - 0
drivers/s390/char/sclp.h

@@ -132,6 +132,9 @@ int sclp_deactivate(void);
 int sclp_reactivate(void);
 int sclp_reactivate(void);
 int sclp_service_call(sclp_cmdw_t command, void *sccb);
 int sclp_service_call(sclp_cmdw_t command, void *sccb);
 
 
+int sclp_sdias_init(void);
+void sclp_sdias_exit(void);
+
 /* useful inlines */
 /* useful inlines */
 
 
 /* VM uses EBCDIC 037, LPAR+native(SE+HMC) use EBCDIC 500 */
 /* VM uses EBCDIC 037, LPAR+native(SE+HMC) use EBCDIC 500 */

+ 4 - 4
drivers/s390/char/sclp_sdias.c

@@ -66,9 +66,9 @@ static DEFINE_MUTEX(sdias_mutex);
 
 
 static void sdias_callback(struct sclp_req *request, void *data)
 static void sdias_callback(struct sclp_req *request, void *data)
 {
 {
-	struct sdias_sccb *sccb;
+	struct sdias_sccb *cbsccb;
 
 
-	sccb = (struct sdias_sccb *) request->sccb;
+	cbsccb = (struct sdias_sccb *) request->sccb;
 	sclp_req_done = 1;
 	sclp_req_done = 1;
 	wake_up(&sdias_wq); /* Inform caller, that request is complete */
 	wake_up(&sdias_wq); /* Inform caller, that request is complete */
 	TRACE("callback done\n");
 	TRACE("callback done\n");
@@ -229,7 +229,7 @@ out:
 	return rc;
 	return rc;
 }
 }
 
 
-int __init sdias_init(void)
+int __init sclp_sdias_init(void)
 {
 {
 	int rc;
 	int rc;
 
 
@@ -248,7 +248,7 @@ int __init sdias_init(void)
 	return 0;
 	return 0;
 }
 }
 
 
-void __exit sdias_exit(void)
+void __exit sclp_sdias_exit(void)
 {
 {
 	debug_unregister(sdias_dbf);
 	debug_unregister(sdias_dbf);
 	sclp_unregister(&sclp_sdias_register);
 	sclp_unregister(&sclp_sdias_register);

+ 3 - 6
drivers/s390/char/zcore.c

@@ -21,6 +21,7 @@
 #include <asm/debug.h>
 #include <asm/debug.h>
 #include <asm/processor.h>
 #include <asm/processor.h>
 #include <asm/irqflags.h>
 #include <asm/irqflags.h>
+#include "sclp.h"
 
 
 #define TRACE(x...) debug_sprintf_event(zcore_dbf, 1, x)
 #define TRACE(x...) debug_sprintf_event(zcore_dbf, 1, x)
 #define MSG(x...) printk( KERN_ALERT x )
 #define MSG(x...) printk( KERN_ALERT x )
@@ -564,8 +565,6 @@ static void __init zcore_header_init(int arch, struct zcore_header *hdr)
 	get_cpu_id(&hdr->cpu_id);
 	get_cpu_id(&hdr->cpu_id);
 }
 }
 
 
-extern int sdias_init(void);
-
 static int __init zcore_init(void)
 static int __init zcore_init(void)
 {
 {
 	unsigned char arch;
 	unsigned char arch;
@@ -582,7 +581,7 @@ static int __init zcore_init(void)
 	TRACE("wwpn:   %llx\n", (unsigned long long) ipl_info.data.fcp.wwpn);
 	TRACE("wwpn:   %llx\n", (unsigned long long) ipl_info.data.fcp.wwpn);
 	TRACE("lun:    %llx\n", (unsigned long long) ipl_info.data.fcp.lun);
 	TRACE("lun:    %llx\n", (unsigned long long) ipl_info.data.fcp.lun);
 
 
-	rc = sdias_init();
+	rc = sclp_sdias_init();
 	if (rc)
 	if (rc)
 		goto fail;
 		goto fail;
 
 
@@ -634,12 +633,10 @@ fail:
 	return rc;
 	return rc;
 }
 }
 
 
-extern void sdias_exit(void);
-
 static void __exit zcore_exit(void)
 static void __exit zcore_exit(void)
 {
 {
 	debug_unregister(zcore_dbf);
 	debug_unregister(zcore_dbf);
-	sdias_exit();
+	sclp_sdias_exit();
 	diag308(DIAG308_REL_HSA, NULL);
 	diag308(DIAG308_REL_HSA, NULL);
 }
 }
 
 

+ 1 - 2
drivers/s390/cio/css.c

@@ -191,8 +191,7 @@ static int css_register_subchannel(struct subchannel *sch)
 	return ret;
 	return ret;
 }
 }
 
 
-int
-css_probe_device(struct subchannel_id schid)
+static int css_probe_device(struct subchannel_id schid)
 {
 {
 	int ret;
 	int ret;
 	struct subchannel *sch;
 	struct subchannel *sch;

+ 0 - 2
drivers/s390/cio/css.h

@@ -138,9 +138,7 @@ struct css_driver {
  * all css_drivers have the css_bus_type
  * all css_drivers have the css_bus_type
  */
  */
 extern struct bus_type css_bus_type;
 extern struct bus_type css_bus_type;
-extern struct css_driver io_subchannel_driver;
 
 
-extern int css_probe_device(struct subchannel_id);
 extern int css_sch_device_register(struct subchannel *);
 extern int css_sch_device_register(struct subchannel *);
 extern void css_sch_device_unregister(struct subchannel *);
 extern void css_sch_device_unregister(struct subchannel *);
 extern struct subchannel * get_subchannel_by_schid(struct subchannel_id);
 extern struct subchannel * get_subchannel_by_schid(struct subchannel_id);

+ 2 - 2
drivers/s390/cio/device.c

@@ -129,7 +129,7 @@ static void io_subchannel_verify(struct device *);
 static void io_subchannel_ioterm(struct device *);
 static void io_subchannel_ioterm(struct device *);
 static void io_subchannel_shutdown(struct subchannel *);
 static void io_subchannel_shutdown(struct subchannel *);
 
 
-struct css_driver io_subchannel_driver = {
+static struct css_driver io_subchannel_driver = {
 	.subchannel_type = SUBCHANNEL_TYPE_IO,
 	.subchannel_type = SUBCHANNEL_TYPE_IO,
 	.drv = {
 	.drv = {
 		.name = "io_subchannel",
 		.name = "io_subchannel",
@@ -546,7 +546,7 @@ static struct attribute_group ccwdev_attr_group = {
 	.attrs = ccwdev_attrs,
 	.attrs = ccwdev_attrs,
 };
 };
 
 
-struct attribute_group *ccwdev_attr_groups[] = {
+static struct attribute_group *ccwdev_attr_groups[] = {
 	&ccwdev_attr_group,
 	&ccwdev_attr_group,
 	NULL,
 	NULL,
 };
 };

+ 11 - 0
drivers/s390/cio/device_ops.c

@@ -616,6 +616,17 @@ ccw_device_get_chp_desc(struct ccw_device *cdev, int chp_no)
 	return chp_get_chp_desc(chpid);
 	return chp_get_chp_desc(chpid);
 }
 }
 
 
+/**
+ * ccw_device_get_id - obtain a ccw device id
+ * @cdev: device to obtain the id for
+ * @dev_id: where to fill in the values
+ */
+void ccw_device_get_id(struct ccw_device *cdev, struct ccw_dev_id *dev_id)
+{
+	*dev_id = cdev->private->dev_id;
+}
+EXPORT_SYMBOL(ccw_device_get_id);
+
 // FIXME: these have to go:
 // FIXME: these have to go:
 
 
 int
 int

+ 1 - 0
drivers/s390/cio/qdio.c

@@ -1983,6 +1983,7 @@ qdio_handle_pci(struct qdio_irq *irq_ptr)
 		if (q->is_input_q&QDIO_FLAG_NO_INPUT_INTERRUPT_CONTEXT)
 		if (q->is_input_q&QDIO_FLAG_NO_INPUT_INTERRUPT_CONTEXT)
 			qdio_mark_q(q);
 			qdio_mark_q(q);
 		else {
 		else {
+			qdio_perf_stat_dec(&perf_stats.tl_runs);
 			__qdio_inbound_processing(q);
 			__qdio_inbound_processing(q);
 		}
 		}
 	}
 	}

+ 4 - 4
drivers/s390/net/Kconfig

@@ -3,7 +3,7 @@ menu "S/390 network device drivers"
 
 
 config LCS
 config LCS
 	tristate "Lan Channel Station Interface"
 	tristate "Lan Channel Station Interface"
-	depends on NETDEVICES && (NET_ETHERNET || TR || FDDI)
+	depends on CCW && NETDEVICES && (NET_ETHERNET || TR || FDDI)
 	help
 	help
 	   Select this option if you want to use LCS networking  on IBM S/390
 	   Select this option if you want to use LCS networking  on IBM S/390
   	   or zSeries. This device driver supports Token Ring (IEEE 802.5),
   	   or zSeries. This device driver supports Token Ring (IEEE 802.5),
@@ -13,7 +13,7 @@ config LCS
 
 
 config CTC
 config CTC
 	tristate "CTC device support"
 	tristate "CTC device support"
-	depends on NETDEVICES
+	depends on CCW && NETDEVICES
 	help
 	help
 	  Select this option if you want to use channel-to-channel networking
 	  Select this option if you want to use channel-to-channel networking
 	  on IBM S/390 or zSeries. This device driver supports real CTC
 	  on IBM S/390 or zSeries. This device driver supports real CTC
@@ -42,7 +42,7 @@ config SMSGIUCV
 
 
 config CLAW
 config CLAW
 	tristate "CLAW device support"
 	tristate "CLAW device support"
-	depends on NETDEVICES
+	depends on CCW && NETDEVICES
 	help
 	help
 	  This driver supports channel attached CLAW devices.
 	  This driver supports channel attached CLAW devices.
 	  CLAW is Common Link Access for Workstation.  Common devices
 	  CLAW is Common Link Access for Workstation.  Common devices
@@ -52,7 +52,7 @@ config CLAW
 
 
 config QETH
 config QETH
 	tristate "Gigabit Ethernet device support"
 	tristate "Gigabit Ethernet device support"
-	depends on NETDEVICES && IP_MULTICAST && QDIO
+	depends on CCW && NETDEVICES && IP_MULTICAST && QDIO
 	help
 	help
 	  This driver supports the IBM S/390 and zSeries OSA Express adapters
 	  This driver supports the IBM S/390 and zSeries OSA Express adapters
 	  in QDIO mode (all media types), HiperSockets interfaces and VM GuestLAN
 	  in QDIO mode (all media types), HiperSockets interfaces and VM GuestLAN

+ 2 - 2
drivers/s390/net/qeth_mpc.c

@@ -162,7 +162,7 @@ struct ipa_rc_msg {
 	char *msg;
 	char *msg;
 };
 };
 
 
-struct ipa_rc_msg qeth_ipa_rc_msg[] = {
+static struct ipa_rc_msg qeth_ipa_rc_msg[] = {
 	{IPA_RC_SUCCESS,		"success"},
 	{IPA_RC_SUCCESS,		"success"},
 	{IPA_RC_NOTSUPP,		"Command not supported"},
 	{IPA_RC_NOTSUPP,		"Command not supported"},
 	{IPA_RC_IP_TABLE_FULL,		"Add Addr IP Table Full - ipv6"},
 	{IPA_RC_IP_TABLE_FULL,		"Add Addr IP Table Full - ipv6"},
@@ -226,7 +226,7 @@ struct ipa_cmd_names {
 	char *name;
 	char *name;
 };
 };
 
 
-struct ipa_cmd_names qeth_ipa_cmd_names[] = {
+static struct ipa_cmd_names qeth_ipa_cmd_names[] = {
 	{IPA_CMD_STARTLAN,	"startlan"},
 	{IPA_CMD_STARTLAN,	"startlan"},
 	{IPA_CMD_STOPLAN,	"stoplan"},
 	{IPA_CMD_STOPLAN,	"stoplan"},
 	{IPA_CMD_SETVMAC,	"setvmac"},
 	{IPA_CMD_SETVMAC,	"setvmac"},

+ 3 - 5
drivers/s390/scsi/zfcp_aux.c

@@ -607,8 +607,7 @@ zfcp_sg_list_free(struct zfcp_sg_list *sg_list)
  * @sg_count: elements in array
  * @sg_count: elements in array
  * Return: size of entire scatter-gather list
  * Return: size of entire scatter-gather list
  */
  */
-size_t
-zfcp_sg_size(struct scatterlist *sg, unsigned int sg_count)
+static size_t zfcp_sg_size(struct scatterlist *sg, unsigned int sg_count)
 {
 {
 	unsigned int i;
 	unsigned int i;
 	struct scatterlist *p;
 	struct scatterlist *p;
@@ -975,8 +974,7 @@ zfcp_free_low_mem_buffers(struct zfcp_adapter *adapter)
 		mempool_destroy(adapter->pool.data_gid_pn);
 		mempool_destroy(adapter->pool.data_gid_pn);
 }
 }
 
 
-void
-zfcp_dummy_release(struct device *dev)
+static void zfcp_dummy_release(struct device *dev)
 {
 {
 	return;
 	return;
 }
 }
@@ -1336,7 +1334,7 @@ zfcp_nameserver_enqueue(struct zfcp_adapter *adapter)
 
 
 #define ZFCP_LOG_AREA                   ZFCP_LOG_AREA_FC
 #define ZFCP_LOG_AREA                   ZFCP_LOG_AREA_FC
 
 
-void
+static void
 zfcp_fsf_incoming_els_rscn(struct zfcp_adapter *adapter,
 zfcp_fsf_incoming_els_rscn(struct zfcp_adapter *adapter,
 			   struct fsf_status_read_buffer *status_buffer)
 			   struct fsf_status_read_buffer *status_buffer)
 {
 {

+ 1 - 1
drivers/s390/scsi/zfcp_dbf.c

@@ -478,7 +478,7 @@ static struct debug_view zfcp_hba_dbf_view = {
 	NULL
 	NULL
 };
 };
 
 
-void
+static void
 _zfcp_san_dbf_event_common_ct(const char *tag, struct zfcp_fsf_req *fsf_req,
 _zfcp_san_dbf_event_common_ct(const char *tag, struct zfcp_fsf_req *fsf_req,
 			      u32 s_id, u32 d_id, void *buffer, int buflen)
 			      u32 s_id, u32 d_id, void *buffer, int buflen)
 {
 {

+ 1 - 0
drivers/serial/Kconfig

@@ -5,6 +5,7 @@
 #
 #
 
 
 menu "Serial drivers"
 menu "Serial drivers"
+	depends on HAS_IOMEM
 
 
 #
 #
 # The new 8250/16550 serial drivers
 # The new 8250/16550 serial drivers

+ 1 - 0
drivers/spi/Kconfig

@@ -6,6 +6,7 @@
 # fully appropriate there, so it'd need some thought to do well.
 # fully appropriate there, so it'd need some thought to do well.
 #
 #
 menu "SPI support"
 menu "SPI support"
+	depends on HAS_IOMEM
 
 
 config SPI
 config SPI
 	bool "SPI support"
 	bool "SPI support"

+ 1 - 0
drivers/telephony/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Telephony Support"
 menu "Telephony Support"
+	depends on HAS_IOMEM
 
 
 config PHONE
 config PHONE
 	tristate "Linux telephony support"
 	tristate "Linux telephony support"

+ 1 - 0
drivers/usb/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "USB support"
 menu "USB support"
+	depends on HAS_IOMEM
 
 
 # Host-side USB depends on having a host controller
 # Host-side USB depends on having a host controller
 # NOTE:  dummy_hcd is always an option, but it's ignored here ...
 # NOTE:  dummy_hcd is always an option, but it's ignored here ...

+ 1 - 0
drivers/video/Kconfig

@@ -3,6 +3,7 @@
 #
 #
 
 
 menu "Graphics support"
 menu "Graphics support"
+	depends on HAS_IOMEM
 
 
 source "drivers/video/backlight/Kconfig"
 source "drivers/video/backlight/Kconfig"
 source "drivers/video/display/Kconfig"
 source "drivers/video/display/Kconfig"

+ 1 - 0
drivers/w1/Kconfig

@@ -1,4 +1,5 @@
 menu "Dallas's 1-wire bus"
 menu "Dallas's 1-wire bus"
+	depends on HAS_IOMEM
 
 
 config W1
 config W1
 	tristate "Dallas's 1-wire support"
 	tristate "Dallas's 1-wire support"

+ 2 - 1
include/asm-s390/ccwdev.h

@@ -16,6 +16,7 @@
 /* structs from asm/cio.h */
 /* structs from asm/cio.h */
 struct irb;
 struct irb;
 struct ccw1;
 struct ccw1;
+struct ccw_dev_id;
 
 
 /* simplified initializers for struct ccw_device:
 /* simplified initializers for struct ccw_device:
  * CCW_DEVICE and CCW_DEVICE_DEVTYPE initialize one
  * CCW_DEVICE and CCW_DEVICE_DEVTYPE initialize one
@@ -175,6 +176,7 @@ extern int ccw_device_set_offline(struct ccw_device *cdev);
 
 
 extern struct ciw *ccw_device_get_ciw(struct ccw_device *, __u32 cmd);
 extern struct ciw *ccw_device_get_ciw(struct ccw_device *, __u32 cmd);
 extern __u8 ccw_device_get_path_mask(struct ccw_device *);
 extern __u8 ccw_device_get_path_mask(struct ccw_device *);
+extern void ccw_device_get_id(struct ccw_device *, struct ccw_dev_id *);
 
 
 #define get_ccwdev_lock(x) (x)->ccwlock
 #define get_ccwdev_lock(x) (x)->ccwlock
 
 
@@ -184,7 +186,6 @@ extern __u8 ccw_device_get_path_mask(struct ccw_device *);
 extern struct ccw_device *ccw_device_probe_console(void);
 extern struct ccw_device *ccw_device_probe_console(void);
 
 
 // FIXME: these have to go
 // FIXME: these have to go
-extern int _ccw_device_get_device_number(struct ccw_device *);
 extern int _ccw_device_get_subchannel_number(struct ccw_device *);
 extern int _ccw_device_get_subchannel_number(struct ccw_device *);
 
 
 extern void *ccw_device_get_chp_desc(struct ccw_device *, int);
 extern void *ccw_device_get_chp_desc(struct ccw_device *, int);

+ 1 - 1
include/asm-s390/ipl.h

@@ -79,8 +79,8 @@ struct ipl_parameter_block {
  * IPL validity flags
  * IPL validity flags
  */
  */
 extern u32 ipl_flags;
 extern u32 ipl_flags;
-
 extern u32 dump_prefix_page;
 extern u32 dump_prefix_page;
+extern unsigned int zfcpdump_prefix_array[];
 
 
 extern void do_reipl(void);
 extern void do_reipl(void);
 extern void ipl_save_parameters(void);
 extern void ipl_save_parameters(void);

+ 1 - 1
include/asm-s390/param.h

@@ -10,7 +10,7 @@
 #define _ASMS390_PARAM_H
 #define _ASMS390_PARAM_H
 
 
 #ifdef __KERNEL__
 #ifdef __KERNEL__
-# define HZ		100		/* Internal kernel timer frequency */
+# define HZ		CONFIG_HZ	/* Internal kernel timer frequency */
 # define USER_HZ	100		/* .. some user interfaces are in "ticks" */
 # define USER_HZ	100		/* .. some user interfaces are in "ticks" */
 # define CLOCKS_PER_SEC	(USER_HZ)	/* like times() */
 # define CLOCKS_PER_SEC	(USER_HZ)	/* like times() */
 #endif
 #endif

+ 1 - 0
net/Kconfig

@@ -218,6 +218,7 @@ config FIB_RULES
 	bool
 	bool
 
 
 menu "Wireless"
 menu "Wireless"
+	depends on !S390
 
 
 source "net/wireless/Kconfig"
 source "net/wireless/Kconfig"
 source "net/mac80211/Kconfig"
 source "net/mac80211/Kconfig"

+ 1 - 1
net/ax25/Kconfig

@@ -3,7 +3,7 @@
 #
 #
 
 
 menuconfig HAMRADIO
 menuconfig HAMRADIO
-	depends on NET
+	depends on NET && !S390
 	bool "Amateur Radio support"
 	bool "Amateur Radio support"
 	help
 	help
 	  If you want to connect your Linux box to an amateur radio, answer Y
 	  If you want to connect your Linux box to an amateur radio, answer Y

+ 1 - 1
net/bluetooth/Kconfig

@@ -3,7 +3,7 @@
 #
 #
 
 
 menuconfig BT
 menuconfig BT
-	depends on NET
+	depends on NET && !S390
 	tristate "Bluetooth subsystem support"
 	tristate "Bluetooth subsystem support"
 	help
 	help
 	  Bluetooth is low-cost, low-power, short-range wireless technology.
 	  Bluetooth is low-cost, low-power, short-range wireless technology.

+ 1 - 1
net/irda/Kconfig

@@ -3,7 +3,7 @@
 #
 #
 
 
 menuconfig IRDA
 menuconfig IRDA
-	depends on NET
+	depends on NET && !S390
 	tristate "IrDA (infrared) subsystem support"
 	tristate "IrDA (infrared) subsystem support"
 	select CRC_CCITT
 	select CRC_CCITT
 	---help---
 	---help---

+ 1 - 0
sound/Kconfig

@@ -2,6 +2,7 @@
 #
 #
 
 
 menu "Sound"
 menu "Sound"
+	depends on HAS_IOMEM
 
 
 config SOUND
 config SOUND
 	tristate "Sound card support"
 	tristate "Sound card support"