diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c index bf616daeff4c..34b38fb7c2f7 100644 --- a/drivers/s390/cio/cio.c +++ b/drivers/s390/cio/cio.c @@ -786,12 +786,13 @@ cio_probe_console(void) /* * enable console I/O-interrupt subclass */ - ctl_set_bit(6, 31 - CONSOLE_ISC); + isc_register(CONSOLE_ISC); console_subchannel.schib.pmcw.isc = CONSOLE_ISC; console_subchannel.schib.pmcw.intparm = (u32)(addr_t)&console_subchannel; ret = cio_modify(&console_subchannel); if (ret) { + isc_unregister(CONSOLE_ISC); console_subchannel_in_use = 0; return ERR_PTR(ret); } @@ -803,7 +804,7 @@ cio_release_console(void) { console_subchannel.schib.pmcw.intparm = 0; cio_modify(&console_subchannel); - ctl_clear_bit(6, 31 - CONSOLE_ISC); + isc_unregister(CONSOLE_ISC); console_subchannel_in_use = 0; } diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index b24618b5362e..45ba07c0a286 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c @@ -806,7 +806,7 @@ init_channel_subsystem (void) css_init_done = 1; /* Enable default isc for I/O subchannels. */ - ctl_set_bit(6, 31 - IO_SCH_ISC); + isc_register(IO_SCH_ISC); for_each_subchannel(__init_channel_subsystem, NULL); return 0; diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 8476f8c35c2d..2bf36e14b102 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c @@ -3892,6 +3892,7 @@ init_QDIO(void) qdio_mempool_alloc, qdio_mempool_free, NULL); + isc_register(QDIO_AIRQ_ISC); if (tiqdio_check_chsc_availability()) QDIO_PRINT_ERR("Not all CHSCs supported. Continuing.\n"); @@ -3904,6 +3905,7 @@ static void __exit cleanup_QDIO(void) { tiqdio_unregister_thinints(); + isc_unregister(QDIO_AIRQ_ISC); qdio_remove_procfs_entry(); qdio_release_qdio_memory(); qdio_unregister_dbf_views();