[PATCH] s390: common i/o layer
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
- Make blacklist busid-aware. Add "all" keyword and ! operator to cio_ignore
kernel parameter.
- Add state change notify function for ccw devices (not mandatory) and
introduce the "device disconnected" state.
- Remove auto offline from remove function for ccw devices to be able to
distinguish between user initiated offline and implicit offline due to
device removal.
- Store pointer to subchannel structure in the (hardware) subchannel intparm
and remove the ioinfo array (hurray...). Remove intparm parameter of
cio_start.
- Use busid instead of subchannel number for debug output.
- Use an opm mask to track which paths are logically online for a subchannel.
- Pathgroup every device it was requested for, even single path devices.
- Give i/o on a logically switched off path a grace period to complete, then
kill the i/o to get the path offline.
- Correctly initialize all spin_locks with spin_lock_init.
- Handle status pending/busy while disabling subchannel.
- Set busid already in cio_validate_subchannel.
- Add s390_root_dev_{register,unregister} functions.
- Do stcrw() inside a kernel thread. Add crw overflow handling.
- Use subchannel lock directly instead of ccw device lock pointer in
ccw_device_recognition to avoid accessing an already free structure.
- Take/release ccw device lock in ccw_device_console_enable.
- Don't wipe out the busid field in ccw_device_console_enable.
- Call ccw_device_unregister() directly on a notoper event - delaying it via
queue_work is harmful (subchannel may be removed before ccw_device).
- Handle not opertional condition in ccw_device_cancel_halt_clear.
- Correct status pending handling: don't collect pending status directly
but wait for the interrupt to show up.
- Enable subchannel when trying a steal lock operation.
- Introduce doverify bit for delayed path verification.
- Fix locking in __ccw_device_retry_loop/read_conf_data/read_dev/chars.
- Make SPID retry mechanism more obvious.
- qdio: check return code of ccw_device_{halt,clear} in qdio_cleanup. Don't
try to wait for an interrupt we won't get.
- qdio: fix shared indicators.
- qdio: add code to handle i/o killed by cio with active queues.
- qdio: don't do a shutdown on timeout in interrupt context.
- Update cio documentation.
22 files changed: