linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* s390 update.
@ 2006-01-12 17:13 Martin Schwidefsky
  0 siblings, 0 replies; 8+ messages in thread
From: Martin Schwidefsky @ 2006-01-12 17:13 UTC (permalink / raw)
  To: akpm, linux-kernel

Hi Andrew,
a couple of s390 patches for the current git tree. Bug fixes and
some cleanup, nothing to worry about (but I bet Christoph will
find something to nit-pick anyway ;-).

I won't be able to sent patches for couple of weeks, as usual
Heiko Carstens will take over until I'm back.

blue skies,
  Martin.


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

* s390 update.
@ 2006-07-10  9:31 Martin Schwidefsky
  0 siblings, 0 replies; 8+ messages in thread
From: Martin Schwidefsky @ 2006-07-10  9:31 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel

Please pull from 'for-linus' branch of

	git://git390.osdl.marist.edu/pub/scm/linux-2.6.git for-linus

to receive the following updates:

 drivers/s390/cio/cio.c       |    1 +
 drivers/s390/cio/cio.h       |    3 ++-
 drivers/s390/cio/css.c       |   24 +++++++++++++++++++++---
 drivers/s390/cio/css.h       |    2 ++
 drivers/s390/cio/device.c    |    6 +++---
 include/asm-s390/bug.h       |   11 ++++++++++-
 include/asm-s390/futex.h     |    5 +++--
 include/asm-s390/irqflags.h  |   18 ++++++++++++------
 include/asm-s390/processor.h |   16 +++++++---------
 include/asm-s390/setup.h     |    3 ++-
 10 files changed, 63 insertions(+), 26 deletions(-)

Cornelia Huck:
      [S390] subchannel register/unregister mutex.

Heiko Carstens:
      [S390] __builtin_trap() and gcc version.
      [S390] raw_local_save_flags/raw_local_irq_restore type check
      [S390] cpu_relax() is supposed to have barrier() semantics.

Martin Schwidefsky:
      [S390] fix futex_atomic_cmpxchg_inatomic

diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 6fec90e..f27b2b8 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -519,6 +519,7 @@ cio_validate_subchannel (struct subchann
 	memset(sch, 0, sizeof(struct subchannel));
 
 	spin_lock_init(&sch->lock);
+	mutex_init(&sch->reg_mutex);
 
 	/* Set a name for the subchannel */
 	snprintf (sch->dev.bus_id, BUS_ID_SIZE, "0.%x.%04x", schid.ssid,
diff --git a/drivers/s390/cio/cio.h b/drivers/s390/cio/cio.h
index 0ca9873..4541c1a 100644
--- a/drivers/s390/cio/cio.h
+++ b/drivers/s390/cio/cio.h
@@ -2,6 +2,7 @@ #ifndef S390_CIO_H
 #define S390_CIO_H
 
 #include "schid.h"
+#include <linux/mutex.h>
 
 /*
  * where we put the ssd info
@@ -87,7 +88,7 @@ struct orb {
 struct subchannel {
 	struct subchannel_id schid;
 	spinlock_t lock;	/* subchannel lock */
-
+	struct mutex reg_mutex;
 	enum {
 		SUBCHANNEL_TYPE_IO = 0,
 		SUBCHANNEL_TYPE_CHSC = 1,
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 1d3be80..a09deea 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -108,6 +108,24 @@ css_subchannel_release(struct device *de
 
 extern int css_get_ssd_info(struct subchannel *sch);
 
+
+int css_sch_device_register(struct subchannel *sch)
+{
+	int ret;
+
+	mutex_lock(&sch->reg_mutex);
+	ret = device_register(&sch->dev);
+	mutex_unlock(&sch->reg_mutex);
+	return ret;
+}
+
+void css_sch_device_unregister(struct subchannel *sch)
+{
+	mutex_lock(&sch->reg_mutex);
+	device_unregister(&sch->dev);
+	mutex_unlock(&sch->reg_mutex);
+}
+
 static int
 css_register_subchannel(struct subchannel *sch)
 {
@@ -119,7 +137,7 @@ css_register_subchannel(struct subchanne
 	sch->dev.release = &css_subchannel_release;
 	
 	/* make it known to the system */
-	ret = device_register(&sch->dev);
+	ret = css_sch_device_register(sch);
 	if (ret)
 		printk (KERN_WARNING "%s: could not register %s\n",
 			__func__, sch->dev.bus_id);
@@ -250,7 +268,7 @@ css_evaluate_subchannel(struct subchanne
 		 * The device will be killed automatically.
 		 */
 		cio_disable_subchannel(sch);
-		device_unregister(&sch->dev);
+		css_sch_device_unregister(sch);
 		/* Reset intparm to zeroes. */
 		sch->schib.pmcw.intparm = 0;
 		cio_modify(sch);
@@ -264,7 +282,7 @@ css_evaluate_subchannel(struct subchanne
 		 * away in any case.
 		 */
 		if (!disc) {
-			device_unregister(&sch->dev);
+			css_sch_device_unregister(sch);
 			/* Reset intparm to zeroes. */
 			sch->schib.pmcw.intparm = 0;
 			cio_modify(sch);
diff --git a/drivers/s390/cio/css.h b/drivers/s390/cio/css.h
index e210f89..15f7f7c 100644
--- a/drivers/s390/cio/css.h
+++ b/drivers/s390/cio/css.h
@@ -136,6 +136,8 @@ 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 void css_sch_device_unregister(struct subchannel *);
 extern struct subchannel * get_subchannel_by_schid(struct subchannel_id);
 extern int css_init_done;
 extern int for_each_subchannel(int(*fn)(struct subchannel_id, void *), void *);
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 67f0de6..9db0987 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -280,7 +280,7 @@ ccw_device_remove_disconnected(struct cc
 	 * 'throw away device'.
 	 */
 	sch = to_subchannel(cdev->dev.parent);
-	device_unregister(&sch->dev);
+	css_sch_device_unregister(sch);
 	/* Reset intparm to zeroes. */
 	sch->schib.pmcw.intparm = 0;
 	cio_modify(sch);
@@ -625,7 +625,7 @@ ccw_device_do_unreg_rereg(void *data)
 					other_sch->schib.pmcw.intparm = 0;
 					cio_modify(other_sch);
 				}
-				device_unregister(&other_sch->dev);
+				css_sch_device_unregister(other_sch);
 			}
 		}
 		/* Update ssd info here. */
@@ -709,7 +709,7 @@ ccw_device_call_sch_unregister(void *dat
 	struct subchannel *sch;
 
 	sch = to_subchannel(cdev->dev.parent);
-	device_unregister(&sch->dev);
+	css_sch_device_unregister(sch);
 	/* Reset intparm to zeroes. */
 	sch->schib.pmcw.intparm = 0;
 	cio_modify(sch);
diff --git a/include/asm-s390/bug.h b/include/asm-s390/bug.h
index 7ddaa05..8768983 100644
--- a/include/asm-s390/bug.h
+++ b/include/asm-s390/bug.h
@@ -5,9 +5,18 @@ #include <linux/kernel.h>
 
 #ifdef CONFIG_BUG
 
+static inline __attribute__((noreturn)) void __do_illegal_op(void)
+{
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
+	__builtin_trap();
+#else
+	asm volatile(".long 0");
+#endif
+}
+
 #define BUG() do { \
 	printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
-	__builtin_trap(); \
+	__do_illegal_op(); \
 } while (0)
 
 #define HAVE_ARCH_BUG
diff --git a/include/asm-s390/futex.h b/include/asm-s390/futex.h
index 1802775..ffedf14 100644
--- a/include/asm-s390/futex.h
+++ b/include/asm-s390/futex.h
@@ -98,9 +98,10 @@ futex_atomic_cmpxchg_inatomic(int __user
 
 	if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
 		return -EFAULT;
-	asm volatile("   cs   %1,%4,0(%5)\n"
+	asm volatile("   sacf 256\n"
+		     "   cs   %1,%4,0(%5)\n"
 		     "0: lr   %0,%1\n"
-		     "1:\n"
+		     "1: sacf 0\n"
 #ifndef __s390x__
 		     ".section __ex_table,\"a\"\n"
 		     "   .align 4\n"
diff --git a/include/asm-s390/irqflags.h b/include/asm-s390/irqflags.h
index 65f4db6..3b566a5 100644
--- a/include/asm-s390/irqflags.h
+++ b/include/asm-s390/irqflags.h
@@ -25,16 +25,22 @@ #define raw_local_irq_disable() ({ \
 	__flags; \
 	})
 
-#define raw_local_save_flags(x) \
-	__asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) )
-
-#define raw_local_irq_restore(x) \
-	__asm__ __volatile__("ssm   0(%0)" : : "a" (&x), "m" (x) : "memory")
+#define raw_local_save_flags(x)							\
+do {										\
+	typecheck(unsigned long, x);						\
+	__asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) );	\
+} while (0)
+
+#define raw_local_irq_restore(x)						\
+do {										\
+	typecheck(unsigned long, x);						\
+	__asm__ __volatile__("ssm   0(%0)" : : "a" (&x), "m" (x) : "memory");	\
+} while (0)
 
 #define raw_irqs_disabled()		\
 ({					\
 	unsigned long flags;		\
-	local_save_flags(flags);	\
+	raw_local_save_flags(flags);	\
 	!((flags >> __FLAG_SHIFT) & 3);	\
 })
 
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h
index c5cbc4b..5b71d37 100644
--- a/include/asm-s390/processor.h
+++ b/include/asm-s390/processor.h
@@ -199,15 +199,13 @@ #define KSTK_ESP(tsk)	(task_pt_regs(tsk)
 /*
  * Give up the time slice of the virtual PU.
  */
-#ifndef __s390x__
-# define cpu_relax()	asm volatile ("diag 0,0,68" : : : "memory")
-#else /* __s390x__ */
-# define cpu_relax() \
-	do { \
-		if (MACHINE_HAS_DIAG44) \
-			asm volatile ("diag 0,0,68" : : : "memory"); \
-	} while (0)
-#endif /* __s390x__ */
+static inline void cpu_relax(void)
+{
+	if (MACHINE_HAS_DIAG44)
+		asm volatile ("diag 0,0,68" : : : "memory");
+	else
+		barrier();
+}
 
 /*
  * Set PSW to specified value.
diff --git a/include/asm-s390/setup.h b/include/asm-s390/setup.h
index da3fd4a..19e3197 100644
--- a/include/asm-s390/setup.h
+++ b/include/asm-s390/setup.h
@@ -40,15 +40,16 @@ extern unsigned long machine_flags;
 #define MACHINE_IS_VM		(machine_flags & 1)
 #define MACHINE_IS_P390		(machine_flags & 4)
 #define MACHINE_HAS_MVPG	(machine_flags & 16)
-#define MACHINE_HAS_DIAG44	(machine_flags & 32)
 #define MACHINE_HAS_IDTE	(machine_flags & 128)
 
 #ifndef __s390x__
 #define MACHINE_HAS_IEEE	(machine_flags & 2)
 #define MACHINE_HAS_CSP		(machine_flags & 8)
+#define MACHINE_HAS_DIAG44	(1)
 #else /* __s390x__ */
 #define MACHINE_HAS_IEEE	(1)
 #define MACHINE_HAS_CSP		(1)
+#define MACHINE_HAS_DIAG44	(machine_flags & 32)
 #endif /* __s390x__ */
 
 



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

* Re: s390 update.
@ 2002-12-09 12:04 Martin Schwidefsky
  0 siblings, 0 replies; 8+ messages in thread
From: Martin Schwidefsky @ 2002-12-09 12:04 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Arnd Bergmann, linux-kernel, torvalds, com.ibm, idrys


Hi Sam,
> > I have put all the patches on bkbits. Just pull from
> Did that and took a look at the Makefiles.
> Here is an update for s390.

Makefile magic, how lovely. Arnd said something about "obvious". Oh, well
thanks for the patch. Arnd takes care of it.

blue skies,
   Martin

Linux/390 Design & Development, IBM Deutschland Entwicklung GmbH
Schönaicherstr. 220, D-71032 Böblingen, Telefon: 49 - (0)7031 - 16-2247
E-Mail: schwidefsky@de.ibm.com



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

* Re: s390 update.
  2002-12-07 22:30   ` Sam Ravnborg
@ 2002-12-08  0:25     ` Arnd Bergmann
  0 siblings, 0 replies; 8+ messages in thread
From: Arnd Bergmann @ 2002-12-08  0:25 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Martin Schwidefsky, linux-kernel, idrys

On Saturday 07 December 2002 23:30, Sam Ravnborg wrote:

> +makeboot =$(Q)$(MAKE) -f script/Makefile.build obj=arch/$(ARCH)/boot $(1)
				^^^^
That needs to be 'scripts', the rest is ok. I'll put it in our tree.
Thanks!

	Arnd <><

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

* Re: s390 update.
  2002-12-06 21:28 ` Arnd Bergmann
@ 2002-12-07 22:30   ` Sam Ravnborg
  2002-12-08  0:25     ` Arnd Bergmann
  0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2002-12-07 22:30 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Martin Schwidefsky, linux-kernel, torvalds, com.ibm, idrys

On fre, dec 06, 2002 at 10:28:12 +0100, Arnd Bergmann wrote:
> I have put all the patches on bkbits. Just pull from
Did that and took a look at the Makefiles.
Here is an update for s390.

They are untested, I did not have any 390 system handy :-)
In arch/s390/boot/Makefile I have added "FORCE" as prerequisite for
listing and image target. Thats the only real bug fixed.
The rest is just cleaning up.

A similar update is required for s390x, but I assume the s390 team will
do that.

Summary of changes:
o Added FORCE prerequisite in boot/Makefile
o Do not use shorthand targets when calling the boot/Makefile
o No longer use BOOT_IMAGE, not needed now
o Use kbuild clean infrastructure when cleaning up in boot
o Offset generation shrinked with one rule
o removed inclusion of Rules.make in all Makefiles
o no longer use the descend macro, use $(Q)$(MAKE) as replacement

Feedback welcome,
	Sam


 Makefile          |   21 +++++++++++----------
 boot/Makefile     |   25 ++++++++++---------------
 kernel/Makefile   |    2 --
 lib/Makefile      |    3 ---
 math-emu/Makefile |    8 ++------
 mm/Makefile       |    2 --
 6 files changed, 23 insertions(+), 38 deletions(-)


===== arch/s390/Makefile 1.19 vs edited =====
--- 1.19/arch/s390/Makefile	Mon Nov 18 21:11:00 2002
+++ edited/arch/s390/Makefile	Sat Dec  7 23:16:49 2002
@@ -27,29 +27,30 @@
 drivers-$(CONFIG_MATHEMU)	+= arch/s390/math-emu/
 libs-y				+= arch/s390/lib/
 
+
+makeboot =$(Q)$(MAKE) -f script/Makefile.build obj=arch/$(ARCH)/boot $(1)
+
 all: image listing
 
-makeboot = $(call descend,arch/$(ARCH)/boot,$(1))
-BOOTIMAGE= arch/$(ARCH)/boot/image
+listing image: vmlinux
+	$(call makeboot,arch/$(ARCH)/boot/$@)
 
-listing install image: vmlinux
-	+@$(call makeboot,BOOTIMAGE=$(BOOTIMAGE) $@)
+install: vmlinux
+	$(call makeboot, $@)
 
+archmrproper:
 archclean:
-	+@$(call makeboot,clean)
+	$(Q)$(MAKE) -f scripts/Makefile.clean obj=arch/$(ARCH)/boot
 
-archmrproper:
 
 prepare: include/asm-$(ARCH)/offsets.h
 
 arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
 				   include/config/MARKER
 
-include/asm-$(ARCH)/offsets.h.tmp: arch/$(ARCH)/kernel/asm-offsets.s
-	@$(generate-asm-offsets.h) < $< > $@
-
-include/asm-$(ARCH)/offsets.h: include/asm-$(ARCH)/offsets.h.tmp
+include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
 	@echo -n '  Generating $@'
+	@$(generate-asm-offsets.h) < $< > $@.tmp
 	@$(update-if-changed)
 
 CLEAN_FILES += include/asm-$(ARCH)/offsets.h.tmp \
===== arch/s390/boot/Makefile 1.12 vs edited =====
--- 1.12/arch/s390/boot/Makefile	Mon Nov 18 21:11:00 2002
+++ edited/arch/s390/boot/Makefile	Sat Dec  7 23:16:52 2002
@@ -2,26 +2,21 @@
 # Makefile for the linux s390-specific parts of the memory manager.
 #
 
-EXTRA_AFLAGS := -traditional
+EXTRA_TARGETS := image listing
+EXTRA_AFLAGS  := -traditional
 
-include $(TOPDIR)/Rules.make
 
-quiet_cmd_listing = OBJDUMP $(echo_target)
-cmd_listing	  = $(OBJDUMP) --disassemble --disassemble-all \
-			--disassemble-zeroes --reloc vmlinux > $@
+quiet_cmd_listing = OBJDUMP $@
+      cmd_listing = $(OBJDUMP) --disassemble --disassemble-all \
+			       --disassemble-zeroes --reloc vmlinux > $@
 
-$(obj)/image: vmlinux
+$(obj)/image: vmlinux FORCE
 	$(call if_changed,objcopy)
 
-$(obj)/listing: vmlinux
+$(obj)/listing: vmlinux FORCE
 	$(call if_changed,listing)
 
-image: $(obj)/image
 
-listing: $(obj)/listing
-
-clean:
-	rm -f $(obj)/image $(obj)/listing
-
-install: $(CONFIGURE) $(BOOTIMAGE)
-	sh -x $(obj)/install.sh $(KERNELRELEASE) $(BOOTIMAGE) System.map Kerntypes "$(INSTALL_PATH)"
+install: $(CONFIGURE) $(obj)/image
+	sh -x $(obj)/install.sh $(KERNELRELEASE) $(obj)/image \
+	      System.map Kerntypes "$(INSTALL_PATH)"
===== arch/s390/kernel/Makefile 1.13 vs edited =====
--- 1.13/arch/s390/kernel/Makefile	Mon Nov 18 21:11:24 2002
+++ edited/arch/s390/kernel/Makefile	Sat Dec  7 23:17:42 2002
@@ -17,5 +17,3 @@
 # Kernel debugging
 #
 obj-$(CONFIG_REMOTE_DEBUG)	+= gdb-stub.o #gdb-low.o 
-
-include $(TOPDIR)/Rules.make
===== arch/s390/lib/Makefile 1.6 vs edited =====
--- 1.6/arch/s390/lib/Makefile	Fri Oct  4 18:15:49 2002
+++ edited/arch/s390/lib/Makefile	Sat Dec  7 23:19:26 2002
@@ -7,6 +7,3 @@
 EXTRA_AFLAGS := -traditional
 
 obj-y = delay.o memset.o strcmp.o strncpy.o uaccess.o
-
-include $(TOPDIR)/Rules.make
-
===== arch/s390/math-emu/Makefile 1.3 vs edited =====
--- 1.3/arch/s390/math-emu/Makefile	Mon Sep 23 01:37:56 2002
+++ edited/arch/s390/math-emu/Makefile	Sat Dec  7 23:19:09 2002
@@ -4,9 +4,5 @@
 
 obj-$(CONFIG_MATHEMU) := math.o qrnnd.o
 
-EXTRA_CFLAGS = -I. -I$(TOPDIR)/include/math-emu -w
-EXTRA_AFLAGS	:= -traditional
-
-include $(TOPDIR)/Rules.make
-
-
+EXTRA_CFLAGS := -I$(src) -Iinclude/math-emu -w
+EXTRA_AFLAGS := -traditional
===== arch/s390/mm/Makefile 1.4 vs edited =====
--- 1.4/arch/s390/mm/Makefile	Mon Sep 23 01:37:56 2002
+++ edited/arch/s390/mm/Makefile	Sat Dec  7 23:17:13 2002
@@ -3,5 +3,3 @@
 #
 
 obj-y	 := init.o fault.o ioremap.o extable.o
-
-include $(TOPDIR)/Rules.make

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

* Re: s390 update.
  2002-12-06 19:11 Martin Schwidefsky
  2002-12-06 19:44 ` Sam Ravnborg
@ 2002-12-06 21:28 ` Arnd Bergmann
  2002-12-07 22:30   ` Sam Ravnborg
  1 sibling, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2002-12-06 21:28 UTC (permalink / raw)
  To: Martin Schwidefsky, linux-kernel, torvalds; +Cc: com.ibm, idrys

On Friday 06 December 2002 20:11, Martin Schwidefsky wrote:

> P.S. some of the patches are too big for lkm. I only post the description
>      file on lkm. If anybody needs the patches just send me a mail and I'll
>      forward them.

I have put all the patches on bkbits. Just pull from

http://linux-390.bkbits.net/main

	Arnd <><

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

* Re: s390 update.
  2002-12-06 19:11 Martin Schwidefsky
@ 2002-12-06 19:44 ` Sam Ravnborg
  2002-12-06 21:28 ` Arnd Bergmann
  1 sibling, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2002-12-06 19:44 UTC (permalink / raw)
  To: Martin Schwidefsky; +Cc: linux-kernel, torvalds, com.ibm, idrys

On fre, dec 06, 2002 at 08:11:04 +0100, Martin Schwidefsky wrote:
> P.S. some of the patches are too big for lkm. I only post the description
>      file on lkm. If anybody needs the patches just send me a mail and I'll
>      forward them.

Privately I sent you some comments about missing FORCE in the
Makefiles. Is it addressed in this set of patches?

	Sam

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

* s390 update.
@ 2002-12-06 19:11 Martin Schwidefsky
  2002-12-06 19:44 ` Sam Ravnborg
  2002-12-06 21:28 ` Arnd Bergmann
  0 siblings, 2 replies; 8+ messages in thread
From: Martin Schwidefsky @ 2002-12-06 19:11 UTC (permalink / raw)
  To: linux-kernel, torvalds; +Cc: com.ibm, idrys

Hi Linus,
big sellout for s/390. We have progressed with the common i/o layer rework
to a point where its working fine again. There are some leftovers but
we can fix these later without causing another huge patch. Dependent on
the cio rework are the device drivers. There are patches to get 3215, iucv,
dasd, tape, lcs and ctc working with the new cio layer.
Changes worth noticing:
 * Remove the award winning channel device layer ("How to NOT write kernel
   driver"). It gets replaced by ccwgroups.
 * Overall conversion to the new device model (sysfs).
 * CIO is now completly asynchronous and has a proper state machine for
   the ccw devices. Channel path verification while the device is up 
   should work now.
 * Clean separation between a subchannel and a ccw device (not every
   subchannel is a ccw device). 
 * Better integration of qdio.
 * Rewritten tape device driver.
 * Rewritten lcs network driver.

The patch overview:

01: Kconfig and defconfig again. New options: DEBUG_KERNEL, DEBUG_SLAB,
    KALLSYMS and DEBUG_SPINLOCK_SLEEP.
02: gcc 3.3 allocates variables that are initialized to zero to the .bss
    section instead of .data. This caused some mischief with memory_size
    that is detected and stored before .bss is cleared.
03: Add s390 elf relocations to include/linux/elf.h
04: Suppress kern info message about debug levels if DEBUG is off. This
    removes quite a lot of unnecessary noise in the boot messages.
05: Adapt s390 backend to changed do_fork call.
06: Add missing include in ptrace.c
07: Documentation changes for the s390 debugging guide.
08: Remove channel device layer.
09: This is the big one: the reworked common i/o layer.  I can't see a way
    to split this into meaningful parts. It is basically: delete the old
    code, add the new code.
10: Add the ccwgroup driver. This is the replacement for chandev and is
    surprisingly simple. Grouping is done by echoing a string containing
    the subchannels identifiers of a group to an entry in the sysfs.
    E.g. for lcs "echo 0:0100,0:0101 > /sysfs/bus/ccwgroup/drivers/lcs/group".
    This creates a ccw group with the first subchannel as group leader. The
    lcs driver then creates additional attributes in 
    /sysfs/bus/ccw/devices/0:0100 that are used to configure the lcs device.
    Same method is used for ctc but with different attributes. The burden
    to find the subchannels which belong to a device is put into the
    userspace where it belongs (configure scripts).
11: Update for the documentation about the common io layer.
12: 3215 adaptions for the new channel subsystem interface.
13: sysfs changes for the iucv driver.
14: dasd changes related to the new channel subsystem driver.
15: The rewritten tape device driver.
16: Add cu3088 metadriver. ctc and lcs both use the cu type 3088. To support
    these two in the new driver model a metadriver for 3088 subchannels
    is introduced. ctc and lcs plug into it to get their subchannels. The
    3088 driver just gets all 3088 subchannels for safe-keeping until
    ctc or lcs will pick their channels at the time the ccwgroup is created.
17: Convert ctc to the new channel subsystem and 3088 driver.
18: Complete rewrite of the lcs driver. It now uses the new channel subsystem
    interface and the 3088 driver. It shrunk a lot and is imho now much
    easier to read and understand.
19: Some improvements for the rewritten sclp driver I sent last time.
    Most of them are concerned about error recovery.

I keep the finger crossed that everythings applies on the bitkeeper tree.

blue skies,
  Martin.

P.S. some of the patches are too big for lkm. I only post the description
     file on lkm. If anybody needs the patches just send me a mail and I'll
     forward them.


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

end of thread, other threads:[~2006-07-10  9:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-12 17:13 s390 update Martin Schwidefsky
  -- strict thread matches above, loose matches on Subject: below --
2006-07-10  9:31 Martin Schwidefsky
2002-12-09 12:04 Martin Schwidefsky
2002-12-06 19:11 Martin Schwidefsky
2002-12-06 19:44 ` Sam Ravnborg
2002-12-06 21:28 ` Arnd Bergmann
2002-12-07 22:30   ` Sam Ravnborg
2002-12-08  0:25     ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).