linux/drivers/s390/cio
Vineeth Vijayan 9e9590f5e0 s390/cio: Do not unregister the subchannel based on DNV
[ Upstream commit 8c58a22968 ]

Starting with commit 2297791c92 ("s390/cio: dont unregister
subchannel from child-drivers"), CIO does not unregister subchannels
when the attached device is invalid or unavailable. Instead, it
allows subchannels to exist without a connected device. However, if
the DNV value is 0, such as, when all the CHPIDs of a subchannel are
configured in standby state, the subchannel is unregistered, which
contradicts the current subchannel specification.

Update the logic so that subchannels are not unregistered based
on the DNV value. Also update the SCHIB information even if the
DNV bit is zero.

Suggested-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Vineeth Vijayan <vneethv@linux.ibm.com>
Fixes: 2297791c92 ("s390/cio: dont unregister subchannel from child-drivers")
Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-12-05 14:01:11 +01:00
..
airq.c s390/irq: Set CIF_NOHZ_DELAY in do_io_irq() 2024-05-14 20:19:46 +02:00
blacklist.c s390/cio: avoid excessive path-verification requests 2021-09-27 13:54:38 +02:00
blacklist.h s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
ccwgroup.c s390/cio: Add missing MODULE_DESCRIPTION() macros 2024-07-31 16:30:20 +02:00
ccwreq.c s390/cio: add basic protected virtualization support 2019-06-15 12:25:00 +02:00
chp.c s390/cio: export CHPID operating speed 2024-04-12 16:11:29 +02:00
chp.h s390/cio: export CHPID operating speed 2024-04-12 16:11:29 +02:00
chsc.c s390/cio: export CHPID operating speed 2024-04-12 16:11:29 +02:00
chsc.h s390/cio: export extended channel-path-measurement data 2024-04-12 16:11:29 +02:00
chsc_sch.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
chsc_sch.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cio.c s390/cio: Do not unregister the subchannel based on DNV 2024-12-05 14:01:11 +01:00
cio.h s390/cio: make sch->lock spinlock pointer a member 2023-12-12 14:41:58 +01:00
cio_debug.h s390/cio: introduce CIO debugfs directory 2021-03-22 11:36:04 +01:00
cio_debugfs.c s390/cio: introduce CIO debugfs directory 2021-03-22 11:36:04 +01:00
cio_inject.c s390/cio: Ensure the copied buf is NUL terminated 2024-04-29 19:21:34 +02:00
cio_inject.h s390/cio: add CRW inject functionality 2021-03-22 11:36:04 +01:00
cmf.c s390/cmf: fix virtual vs physical address confusion 2024-02-09 13:58:15 +01:00
crw.c s390: use control register bit defines 2023-09-19 13:26:57 +02:00
css.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
css.h driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
device.c s390/cio: Do not unregister the subchannel based on DNV 2024-12-05 14:01:11 +01:00
device.h s390/cio: remove pm support from ccw bus driver 2020-12-02 18:19:25 +01:00
device_fsm.c s390/cio: log fake IRB events 2024-04-12 16:13:03 +02:00
device_id.c s390/cio: use new address translation helpers 2024-03-13 09:23:47 +01:00
device_ops.c s390/cio: log fake IRB events 2024-04-12 16:13:03 +02:00
device_pgid.c s390/cio: use new address translation helpers 2024-03-13 09:23:47 +01:00
device_status.c s390/cio: use new address translation helpers 2024-03-13 09:23:47 +01:00
eadm_sch.c s390/cio: use new address translation helpers 2024-03-13 09:23:47 +01:00
eadm_sch.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fcx.c s390/cio: use new address translation helpers 2024-03-13 09:23:47 +01:00
idset.c bitmap: introduce generic optimized bitmap_size() 2024-04-01 10:49:28 +01:00
idset.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io_sch.h s390/cio: remove pm support from ccw bus driver 2020-12-02 18:19:25 +01:00
ioasm.c s390/extable: move EX_TABLE define to asm-extable.h 2022-03-08 00:33:00 +01:00
ioasm.h s390: assume diag308 set always works 2018-04-10 07:38:59 +02:00
isc.c s390/ctlreg: add local and system prefix to some functions 2023-09-19 13:26:56 +02:00
itcw.c s390/cio: sort out physical vs virtual pointers usage 2022-12-01 10:58:04 +01:00
Makefile s390/cio: add CRW inject functionality 2021-03-22 11:36:04 +01:00
orb.h s390/cio: use bitwise types to allow for type checking 2024-03-13 09:23:46 +01:00
qdio.h s390/qdio: fix do_sqbs() inline assembly constraint 2023-05-17 15:20:17 +02:00
qdio_debug.c s390: move from strlcpy with unused retval to strscpy 2022-08-30 22:00:33 +02:00
qdio_debug.h s390/qdio: cleanly split alloc and establish 2020-04-06 13:13:50 +02:00
qdio_main.c s390/drivers: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
qdio_setup.c s390/cio: use new address translation helpers 2024-03-13 09:23:47 +01:00
qdio_thinint.c s390/drivers: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
scm.c s390/cio: make scm_bus_type const 2024-02-09 13:58:16 +01:00
trace.c s390/cio: Remove tracing for rchp instruction 2019-05-08 15:01:22 +02:00
trace.h s390/drivers: Replace S390_lowcore by get_lowcore() 2024-06-18 17:01:33 +02:00
vfio_ccw_async.c vfio/ccw: Remove private->mdev 2022-07-07 14:06:12 -06:00
vfio_ccw_chp.c eventfd: simplify eventfd_signal() 2023-11-28 14:08:38 +01:00
vfio_ccw_cp.c s390/vfio_ccw: Fix target addresses of TIC CCWs 2024-07-03 12:05:32 +02:00
vfio_ccw_cp.h vfio/ccw: simplify the cp_get_orb interface 2023-01-09 14:34:07 +01:00
vfio_ccw_drv.c s390/cio: Add missing MODULE_DESCRIPTION() macros 2024-07-31 16:30:20 +02:00
vfio_ccw_fsm.c s390/vfio_ccw: fix virtual vs physical address confusion 2024-03-13 09:23:45 +01:00
vfio_ccw_ops.c eventfd: simplify eventfd_signal() 2023-11-28 14:08:38 +01:00
vfio_ccw_private.h vfio/ccw: replace one-element array with flexible-array member 2023-06-01 17:07:55 +02:00
vfio_ccw_trace.c vfio-ccw: Add trace for CRW event 2020-06-03 11:28:19 +02:00
vfio_ccw_trace.h vfio-ccw: Add trace for CRW event 2020-06-03 11:28:19 +02:00