diff options
| author | Jan Höppner <[email protected]> | 2023-10-25 13:24:37 +0000 |
|---|---|---|
| committer | Jens Axboe <[email protected]> | 2023-11-20 18:50:54 +0000 |
| commit | db46cd1e0426f52999d50fa72cfa97fa39952885 (patch) | |
| tree | 2a1112c964ae25fb82efb63edf67dcee1ada7c69 /drivers/fpga/fpga-bridge.c | |
| parent | s390/dasd: resolve spelling mistake (diff) | |
| download | kernel-db46cd1e0426f52999d50fa72cfa97fa39952885.tar.gz kernel-db46cd1e0426f52999d50fa72cfa97fa39952885.zip | |
s390/dasd: protect device queue against concurrent access
In dasd_profile_start() the amount of requests on the device queue are
counted. The access to the device queue is unprotected against
concurrent access. With a lot of parallel I/O, especially with alias
devices enabled, the device queue can change while dasd_profile_start()
is accessing the queue. In the worst case this leads to a kernel panic
due to incorrect pointer accesses.
Fix this by taking the device lock before accessing the queue and
counting the requests. Additionally the check for a valid profile data
pointer can be done earlier to avoid unnecessary locking in a hot path.
Cc: <[email protected]>
Fixes: 4fa52aa7a82f ("[S390] dasd: add enhanced DASD statistics interface")
Reviewed-by: Stefan Haberland <[email protected]>
Signed-off-by: Jan Höppner <[email protected]>
Signed-off-by: Stefan Haberland <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'drivers/fpga/fpga-bridge.c')
0 files changed, 0 insertions, 0 deletions
