linux/drivers/s390/block
Jan Höppner ccc45cb4e7 s390/dasd: Use correct lock while counting channel queue length
The lock around counting the channel queue length in the BIODASDINFO
ioctl was incorrectly changed to the dasd_block->queue_lock with commit
583d6535cb ("dasd: remove dead code"). This can lead to endless list
iterations and a subsequent crash.

The queue_lock is supposed to be used only for queue lists belonging to
dasd_block. For dasd_device related queue lists the ccwdev lock must be
used.

Fix the mentioned issues by correctly using the ccwdev lock instead of
the queue lock.

Fixes: 583d6535cb ("dasd: remove dead code")
Cc: stable@vger.kernel.org # v5.0+
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Link: https://lore.kernel.org/r/20230609153750.1258763-2-sth@linux.ibm.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2023-06-09 11:35:52 -06:00
..
dasd_3990_erp.c s390/dasd: sort out physical vs virtual pointers usage 2023-02-09 17:05:43 -07:00
dasd_alias.c s390/dasd: sort out physical vs virtual pointers usage 2023-02-09 17:05:43 -07:00
dasd_devmap.c s390/dasd: add aq_timeouts autoquiesce trigger 2023-04-11 19:53:08 -06:00
dasd_diag.c s390/dasd: use blk_mq_alloc_disk 2022-09-28 08:56:34 -06:00
dasd_diag.h
dasd_eckd.c s390/dasd: fix command reject error on ESE devices 2023-05-19 20:03:59 -06:00
dasd_eckd.h s390/dasd: add device ping attribute 2022-09-21 08:32:51 -06:00
dasd_eer.c s390/dasd: add autoquiesce feature 2023-04-11 19:53:08 -06:00
dasd_erp.c s390/dasd: handle request magic consistently as unsigned int 2021-10-20 08:10:41 -06:00
dasd_fba.c s390/dasd: sort out physical vs virtual pointers usage 2023-02-09 17:05:43 -07:00
dasd_fba.h s390/dasd: fix typo in copyright statement 2019-12-20 11:52:01 -07:00
dasd_genhd.c s390/dasd: use blk_mq_alloc_disk 2022-09-28 08:56:34 -06:00
dasd_int.h s390/dasd: add aq_timeouts autoquiesce trigger 2023-04-11 19:53:08 -06:00
dasd_ioctl.c s390/dasd: Use correct lock while counting channel queue length 2023-06-09 11:35:52 -06:00
dasd_proc.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
dasd.c s390/dasd: fix hanging blockdevice after request requeue 2023-04-11 19:53:08 -06:00
dcssblk.c s390/dcssblk:: don't call bio_split_to_limits 2023-01-29 15:18:35 -07:00
Kconfig dax: remove CONFIG_DAX_DRIVER 2021-12-04 08:58:51 -08:00
Makefile s390: remove xpram device driver 2021-09-07 13:38:42 +02:00
scm_blk.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
scm_blk.h block: remove genhd.h 2022-02-02 07:49:59 -07:00
scm_drv.c s390/scm: Make struct scm_driver::remove return void 2021-07-21 11:53:42 +02:00