diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:48:46 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:48:46 -0400 |
| commit | cc106eb35ed4abea675bce0d8fe40a46ff0b4a72 (patch) | |
| tree | 7d18624a769680049f2933ce48a02c8e08e5937c | |
| parent | 4e455c6782bd6bf6a0135c1e1c9f018ec191979e (diff) | |
| parent | 3bfe68580a9d2a25465fc004986acd7991d700d1 (diff) | |
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] fill out file list in s390 MAINTAINERS entry
[S390] Add support for LZO-compressed kernels.
[S390] cmm: get rid of CMM_PROC config option
[S390] cmm: remove superfluous EXPORT_SYMBOLs plus cleanups
[S390] dasd: unit check handling during internal cio I/O
[S390] cio: unit check handling during internal I/O
[S390] ccwgroup: add locking around drvdata access
[S390] cio: remove stsch
[S390] spp: remove KVM_AWARE_CMF config option
[S390] kprobes: forbid probing of stnsm/stosm/epsw
[S390] spp: fix compilation for CONFIG_32BIT
[S390] atomic: implement atomic64_dec_if_positive
[S390] cmm: fix crash on module unload
| -rw-r--r-- | MAINTAINERS | 3 | ||||
| -rw-r--r-- | arch/s390/Kconfig | 8 | ||||
| -rw-r--r-- | arch/s390/boot/compressed/Makefile | 5 | ||||
| -rw-r--r-- | arch/s390/boot/compressed/misc.c | 4 | ||||
| -rw-r--r-- | arch/s390/include/asm/atomic.h | 19 | ||||
| -rw-r--r-- | arch/s390/include/asm/ccwdev.h | 10 | ||||
| -rw-r--r-- | arch/s390/kernel/asm-offsets.c | 4 | ||||
| -rw-r--r-- | arch/s390/kernel/entry64.S | 2 | ||||
| -rw-r--r-- | arch/s390/kernel/kprobes.c | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/setup.c | 2 | ||||
| -rw-r--r-- | arch/s390/kvm/Kconfig | 11 | ||||
| -rw-r--r-- | arch/s390/kvm/sie64a.S | 4 | ||||
| -rw-r--r-- | arch/s390/mm/cmm.c | 109 | ||||
| -rw-r--r-- | drivers/s390/block/dasd.c | 23 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_eckd.c | 1 | ||||
| -rw-r--r-- | drivers/s390/block/dasd_int.h | 1 | ||||
| -rw-r--r-- | drivers/s390/cio/ccwgroup.c | 7 | ||||
| -rw-r--r-- | drivers/s390/cio/ccwreq.c | 15 | ||||
| -rw-r--r-- | drivers/s390/cio/ioasm.h | 15 |
19 files changed, 134 insertions, 112 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 8b7eba2de603..33047a605438 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -4836,6 +4836,9 @@ W: http://www.ibm.com/developerworks/linux/linux390/ | |||
| 4836 | S: Supported | 4836 | S: Supported |
| 4837 | F: arch/s390/ | 4837 | F: arch/s390/ |
| 4838 | F: drivers/s390/ | 4838 | F: drivers/s390/ |
| 4839 | F: fs/partitions/ibm.c | ||
| 4840 | F: Documentation/s390/ | ||
| 4841 | F: Documentation/DocBook/s390* | ||
| 4839 | 4842 | ||
| 4840 | S390 NETWORK DRIVERS | 4843 | S390 NETWORK DRIVERS |
| 4841 | M: Ursula Braun <ursula.braun@de.ibm.com> | 4844 | M: Ursula Braun <ursula.braun@de.ibm.com> |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 79d0ca086820..bee1c0f794cf 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
| @@ -102,6 +102,7 @@ config S390 | |||
| 102 | select HAVE_KERNEL_GZIP | 102 | select HAVE_KERNEL_GZIP |
| 103 | select HAVE_KERNEL_BZIP2 | 103 | select HAVE_KERNEL_BZIP2 |
| 104 | select HAVE_KERNEL_LZMA | 104 | select HAVE_KERNEL_LZMA |
| 105 | select HAVE_KERNEL_LZO | ||
| 105 | select ARCH_INLINE_SPIN_TRYLOCK | 106 | select ARCH_INLINE_SPIN_TRYLOCK |
| 106 | select ARCH_INLINE_SPIN_TRYLOCK_BH | 107 | select ARCH_INLINE_SPIN_TRYLOCK_BH |
| 107 | select ARCH_INLINE_SPIN_LOCK | 108 | select ARCH_INLINE_SPIN_LOCK |
| @@ -479,13 +480,6 @@ config CMM | |||
| 479 | Everybody who wants to run Linux under VM should select this | 480 | Everybody who wants to run Linux under VM should select this |
| 480 | option. | 481 | option. |
| 481 | 482 | ||
| 482 | config CMM_PROC | ||
| 483 | bool "/proc interface to cooperative memory management" | ||
| 484 | depends on CMM | ||
| 485 | help | ||
| 486 | Select this option to enable the /proc interface to the | ||
| 487 | cooperative memory management. | ||
| 488 | |||
| 489 | config CMM_IUCV | 483 | config CMM_IUCV |
| 490 | bool "IUCV special message interface to cooperative memory management" | 484 | bool "IUCV special message interface to cooperative memory management" |
| 491 | depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV) | 485 | depends on CMM && (SMSGIUCV=y || CMM=SMSGIUCV) |
diff --git a/arch/s390/boot/compressed/Makefile b/arch/s390/boot/compressed/Makefile index 6e4a67ad07e1..1c999f726a58 100644 --- a/arch/s390/boot/compressed/Makefile +++ b/arch/s390/boot/compressed/Makefile | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | BITS := $(if $(CONFIG_64BIT),64,31) | 7 | BITS := $(if $(CONFIG_64BIT),64,31) |
| 8 | 8 | ||
| 9 | targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \ | 9 | targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \ |
| 10 | vmlinux.bin.lzma misc.o piggy.o sizes.h head$(BITS).o | 10 | vmlinux.bin.lzma vmlinux.bin.lzo misc.o piggy.o sizes.h head$(BITS).o |
| 11 | 11 | ||
| 12 | KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 | 12 | KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 |
| 13 | KBUILD_CFLAGS += $(cflags-y) | 13 | KBUILD_CFLAGS += $(cflags-y) |
| @@ -47,6 +47,7 @@ vmlinux.bin.all-y := $(obj)/vmlinux.bin | |||
| 47 | suffix-$(CONFIG_KERNEL_GZIP) := gz | 47 | suffix-$(CONFIG_KERNEL_GZIP) := gz |
| 48 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 | 48 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 |
| 49 | suffix-$(CONFIG_KERNEL_LZMA) := lzma | 49 | suffix-$(CONFIG_KERNEL_LZMA) := lzma |
| 50 | suffix-$(CONFIG_KERNEL_LZO) := lzo | ||
| 50 | 51 | ||
| 51 | $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) | 52 | $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) |
| 52 | $(call if_changed,gzip) | 53 | $(call if_changed,gzip) |
| @@ -54,6 +55,8 @@ $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) | |||
| 54 | $(call if_changed,bzip2) | 55 | $(call if_changed,bzip2) |
| 55 | $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) | 56 | $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) |
| 56 | $(call if_changed,lzma) | 57 | $(call if_changed,lzma) |
| 58 | $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) | ||
| 59 | $(call if_changed,lzo) | ||
| 57 | 60 | ||
| 58 | LDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T | 61 | LDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T |
| 59 | $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) | 62 | $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) |
diff --git a/arch/s390/boot/compressed/misc.c b/arch/s390/boot/compressed/misc.c index 14e0479d3888..0851eb1e919e 100644 --- a/arch/s390/boot/compressed/misc.c +++ b/arch/s390/boot/compressed/misc.c | |||
| @@ -50,6 +50,10 @@ static unsigned long free_mem_end_ptr; | |||
| 50 | #include "../../../../lib/decompress_unlzma.c" | 50 | #include "../../../../lib/decompress_unlzma.c" |
| 51 | #endif | 51 | #endif |
| 52 | 52 | ||
| 53 | #ifdef CONFIG_KERNEL_LZO | ||
| 54 | #include "../../../../lib/decompress_unlzo.c" | ||
| 55 | #endif | ||
| 56 | |||
| 53 | extern _sclp_print_early(const char *); | 57 | extern _sclp_print_early(const char *); |
| 54 | 58 | ||
| 55 | int puts(const char *s) | 59 | int puts(const char *s) |
diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h index 451bfbb9db3d..76daea117181 100644 --- a/arch/s390/include/asm/atomic.h +++ b/arch/s390/include/asm/atomic.h | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | #include <linux/compiler.h> | 16 | #include <linux/compiler.h> |
| 17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
| 18 | #include <asm/system.h> | ||
| 18 | 19 | ||
| 19 | #define ATOMIC_INIT(i) { (i) } | 20 | #define ATOMIC_INIT(i) { (i) } |
| 20 | 21 | ||
| @@ -274,6 +275,7 @@ static inline void atomic64_clear_mask(unsigned long long mask, atomic64_t *v) | |||
| 274 | static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u) | 275 | static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u) |
| 275 | { | 276 | { |
| 276 | long long c, old; | 277 | long long c, old; |
| 278 | |||
| 277 | c = atomic64_read(v); | 279 | c = atomic64_read(v); |
| 278 | for (;;) { | 280 | for (;;) { |
| 279 | if (unlikely(c == u)) | 281 | if (unlikely(c == u)) |
| @@ -286,6 +288,23 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u) | |||
| 286 | return c != u; | 288 | return c != u; |
| 287 | } | 289 | } |
| 288 | 290 | ||
| 291 | static inline long long atomic64_dec_if_positive(atomic64_t *v) | ||
| 292 | { | ||
| 293 | long long c, old, dec; | ||
| 294 | |||
| 295 | c = atomic64_read(v); | ||
| 296 | for (;;) { | ||
| 297 | dec = c - 1; | ||
| 298 | if (unlikely(dec < 0)) | ||
| 299 | break; | ||
| 300 | old = atomic64_cmpxchg((v), c, dec); | ||
| 301 | if (likely(old == c)) | ||
| 302 | break; | ||
| 303 | c = old; | ||
| 304 | } | ||
| 305 | return dec; | ||
| 306 | } | ||
| 307 | |||
| 289 | #define atomic64_add(_i, _v) atomic64_add_return(_i, _v) | 308 | #define atomic64_add(_i, _v) atomic64_add_return(_i, _v) |
| 290 | #define atomic64_add_negative(_i, _v) (atomic64_add_return(_i, _v) < 0) | 309 | #define atomic64_add_negative(_i, _v) (atomic64_add_return(_i, _v) < 0) |
| 291 | #define atomic64_inc(_v) atomic64_add_return(1, _v) | 310 | #define atomic64_inc(_v) atomic64_add_return(1, _v) |
diff --git a/arch/s390/include/asm/ccwdev.h b/arch/s390/include/asm/ccwdev.h index f4bd346a52d3..1c0030f9b890 100644 --- a/arch/s390/include/asm/ccwdev.h +++ b/arch/s390/include/asm/ccwdev.h | |||
| @@ -91,6 +91,14 @@ struct ccw_device { | |||
| 91 | void (*handler) (struct ccw_device *, unsigned long, struct irb *); | 91 | void (*handler) (struct ccw_device *, unsigned long, struct irb *); |
| 92 | }; | 92 | }; |
| 93 | 93 | ||
| 94 | /* | ||
| 95 | * Possible CIO actions triggered by the unit check handler. | ||
| 96 | */ | ||
| 97 | enum uc_todo { | ||
| 98 | UC_TODO_RETRY, | ||
| 99 | UC_TODO_RETRY_ON_NEW_PATH, | ||
| 100 | UC_TODO_STOP | ||
| 101 | }; | ||
| 94 | 102 | ||
| 95 | /** | 103 | /** |
