s390 update.

From: Martin Schwidefsky (schwidefsky@de.ibm.com)
Date: Fri Dec 06 2002 - 14:11:04 EST


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.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:27 EST